ofd-view 0.1.18 → 0.1.19
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ofd-view might be problematic. Click here for more details.
- package/README.md +9 -0
- package/lib/ofd-view.common.js +21699 -9
- package/lib/ofd-view.common.js.map +1 -1
- package/lib/ofd-view.umd.js +21699 -9
- package/lib/ofd-view.umd.js.map +1 -1
- package/lib/ofd-view.umd.min.js +66 -1
- package/lib/ofd-view.umd.min.js.map +1 -1
- package/package.json +49 -48
- package/img.png +0 -0
- package/lib/images/annotation-check.svg +0 -11
- package/lib/images/annotation-comment.svg +0 -16
- package/lib/images/annotation-help.svg +0 -26
- package/lib/images/annotation-insert.svg +0 -10
- package/lib/images/annotation-key.svg +0 -11
- package/lib/images/annotation-newparagraph.svg +0 -11
- package/lib/images/annotation-noicon.svg +0 -7
- package/lib/images/annotation-note.svg +0 -42
- package/lib/images/annotation-paragraph.svg +0 -16
- package/lib/images/eSignature.svg +0 -1
- package/lib/images/findbarButton-next.svg +0 -4
- package/lib/images/findbarButton-previous.svg +0 -4
- package/lib/images/loading-dark.svg +0 -24
- package/lib/images/loading-icon.gif +0 -0
- package/lib/images/loading.svg +0 -1
- package/lib/images/secondaryToolbarButton-documentProperties.svg +0 -15
- package/lib/images/secondaryToolbarButton-firstPage.svg +0 -1
- package/lib/images/secondaryToolbarButton-handTool.svg +0 -1
- package/lib/images/secondaryToolbarButton-lastPage.svg +0 -1
- package/lib/images/secondaryToolbarButton-rotateCcw.svg +0 -1
- package/lib/images/secondaryToolbarButton-rotateCw.svg +0 -4
- package/lib/images/secondaryToolbarButton-scrollHorizontal.svg +0 -1
- package/lib/images/secondaryToolbarButton-scrollPage.svg +0 -1
- package/lib/images/secondaryToolbarButton-scrollVertical.svg +0 -1
- package/lib/images/secondaryToolbarButton-scrollWrapped.svg +0 -1
- package/lib/images/secondaryToolbarButton-selectTool.svg +0 -4
- package/lib/images/secondaryToolbarButton-spreadEven.svg +0 -1
- package/lib/images/secondaryToolbarButton-spreadNone.svg +0 -1
- package/lib/images/secondaryToolbarButton-spreadOdd.svg +0 -1
- package/lib/images/shadow.png +0 -0
- package/lib/images/toolbarButton-bookmark.svg +0 -1
- package/lib/images/toolbarButton-currentOutlineItem.svg +0 -1
- package/lib/images/toolbarButton-download.svg +0 -4
- package/lib/images/toolbarButton-menuArrow.svg +0 -1
- package/lib/images/toolbarButton-openFile.svg +0 -4
- package/lib/images/toolbarButton-pageDown.svg +0 -7
- package/lib/images/toolbarButton-pageUp.svg +0 -12
- package/lib/images/toolbarButton-presentationMode.svg +0 -1
- package/lib/images/toolbarButton-print.svg +0 -4
- package/lib/images/toolbarButton-search.svg +0 -4
- package/lib/images/toolbarButton-secondaryToolbarToggle.svg +0 -4
- package/lib/images/toolbarButton-sidebarToggle.svg +0 -4
- package/lib/images/toolbarButton-viewAttachments.svg +0 -1
- package/lib/images/toolbarButton-viewLayers.svg +0 -1
- package/lib/images/toolbarButton-viewOutline.svg +0 -1
- package/lib/images/toolbarButton-viewSignatures.svg +0 -1
- package/lib/images/toolbarButton-viewThumbnail.svg +0 -4
- package/lib/images/toolbarButton-zoomIn.svg +0 -4
- package/lib/images/toolbarButton-zoomOut.svg +0 -4
- package/lib/images/treeitem-collapsed.svg +0 -1
- package/lib/images/treeitem-expanded.svg +0 -1
- package/lib/viewer.css +0 -3208
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ofd-view.umd.min.js","mappings":"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","sources":["webpack://ofd-view/webpack/universalModuleDefinition","webpack://ofd-view/webpack/bootstrap","webpack://ofd-view/webpack/runtime/define property getters","webpack://ofd-view/webpack/runtime/hasOwnProperty shorthand","webpack://ofd-view/webpack/runtime/make namespace object","webpack://ofd-view/webpack/runtime/publicPath","webpack://ofd-view/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://ofd-view/./packages/ofdView/src/index.vue?a8db","webpack://ofd-view/packages/ofdView/src/index.vue","webpack://ofd-view/./packages/ofdView/src/index.vue?3d0b","webpack://ofd-view/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://ofd-view/./packages/ofdView/src/index.vue","webpack://ofd-view/./packages/ofdView/index.js","webpack://ofd-view/./packages/index.js","webpack://ofd-view/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ofd-view\"] = factory();\n\telse\n\t\troot[\"ofd-view\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"outerContainer\"}},[_c('div',{attrs:{\"id\":\"mainContainer\"}},[_c('div',{staticClass:\"secondaryToolbar hidden doorHangerRight\",attrs:{\"id\":\"secondaryToolbar\"}},[_c('div',{attrs:{\"id\":\"secondaryToolbarButtonContainer\"}},[_c('button',{staticClass:\"secondaryToolbarButton openFile visibleLargeView\",attrs:{\"id\":\"secondaryOpenFile\",\"title\":\"打开文件\",\"tabindex\":\"52\",\"data-l10n-id\":\"open_file\"}},[_c('span',{attrs:{\"data-l10n-id\":\"open_file_label\"}},[_vm._v(\"打开\")])]),_c('button',{staticClass:\"secondaryToolbarButton print visibleMediumView\",attrs:{\"id\":\"secondaryPrint\",\"title\":\"打印\",\"tabindex\":\"53\",\"data-l10n-id\":\"print\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_label\"}},[_vm._v(\"打印\")])]),_c('button',{staticClass:\"secondaryToolbarButton documentProperties\",attrs:{\"id\":\"documentProperties\",\"title\":\"文档属性…\",\"tabindex\":\"69\",\"data-l10n-id\":\"document_properties\",\"aria-controls\":\"documentPropertiesDialog\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_label\"}},[_vm._v(\"文档属性…\")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"toolbar\"},[_c('div',{attrs:{\"id\":\"toolbarContainer\"}},[_c('div',{attrs:{\"id\":\"toolbarViewer\"}},[_c('div',{attrs:{\"id\":\"toolbarViewerLeft\"}},[_c('div',{staticClass:\"splitToolbarButton hiddenSmallView\"},[_c('button',{staticClass:\"toolbarButton pageUp\",attrs:{\"title\":\"上一页\",\"id\":\"previous\",\"tabindex\":\"13\",\"data-l10n-id\":\"previous\"}},[_c('span',{attrs:{\"data-l10n-id\":\"previous_label\"}},[_vm._v(\"上一页\")])]),_c('div',{staticClass:\"splitToolbarButtonSeparator\"}),_c('button',{staticClass:\"toolbarButton pageDown\",attrs:{\"title\":\"下一页\",\"id\":\"next\",\"tabindex\":\"14\",\"data-l10n-id\":\"next\"}},[_c('span',{attrs:{\"data-l10n-id\":\"next_label\"}},[_vm._v(\"下一页\")])])]),_c('input',{staticClass:\"toolbarField pageNumber\",attrs:{\"type\":\"number\",\"id\":\"pageNumber\",\"title\":\"页面\",\"value\":\"1\",\"size\":\"4\",\"min\":\"1\",\"tabindex\":\"15\",\"data-l10n-id\":\"page\",\"autocomplete\":\"off\"}}),_c('span',{staticClass:\"toolbarLabel\",attrs:{\"id\":\"numPages\"}})]),_c('div',{attrs:{\"id\":\"toolbarViewerRight\"}},[_c('button',{staticClass:\"toolbarButton openFile hiddenLargeView\",attrs:{\"id\":\"openFile\",\"title\":\"打开文件\",\"tabindex\":\"32\",\"data-l10n-id\":\"open_file\"}},[_c('span',{attrs:{\"data-l10n-id\":\"open_file_label\"}},[_vm._v(\"打开\")])]),_c('button',{staticClass:\"toolbarButton print hiddenMediumView\",attrs:{\"id\":\"print\",\"title\":\"打印\",\"tabindex\":\"33\",\"data-l10n-id\":\"print\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_label\"}},[_vm._v(\"打印\")])]),_c('div',{staticClass:\"verticalToolbarSeparator hiddenSmallView\"}),_c('button',{staticClass:\"toolbarButton\",attrs:{\"id\":\"secondaryToolbarToggle\",\"title\":\"工具\",\"tabindex\":\"36\",\"data-l10n-id\":\"tools\",\"aria-expanded\":\"false\",\"aria-controls\":\"secondaryToolbar\"}},[_c('span',{attrs:{\"data-l10n-id\":\"tools_label\"}},[_vm._v(\"工具\")])])]),_c('div',{attrs:{\"id\":\"toolbarViewerMiddle\"}},[_c('div',{staticClass:\"splitToolbarButton\"},[_c('button',{staticClass:\"toolbarButton zoomOut\",attrs:{\"id\":\"zoomOut\",\"title\":\"缩小\",\"tabindex\":\"21\",\"data-l10n-id\":\"zoom_out\"}},[_c('span',{attrs:{\"data-l10n-id\":\"zoom_out_label\"}},[_vm._v(\"缩小\")])]),_c('div',{staticClass:\"splitToolbarButtonSeparator\"}),_c('button',{staticClass:\"toolbarButton zoomIn\",attrs:{\"id\":\"zoomIn\",\"title\":\"放大\",\"tabindex\":\"22\",\"data-l10n-id\":\"zoom_in\"}},[_c('span',{attrs:{\"data-l10n-id\":\"zoom_in_label\"}},[_vm._v(\"放大\")])])]),_c('span',{staticClass:\"dropdownToolbarButton\",attrs:{\"id\":\"scaleSelectContainer\"}},[_c('select',{attrs:{\"id\":\"scaleSelect\",\"title\":\"缩放\",\"tabindex\":\"23\",\"data-l10n-id\":\"zoom\"}},[_c('option',{attrs:{\"id\":\"pageAutoOption\",\"title\":\"\",\"value\":\"auto\",\"selected\":\"selected\",\"data-l10n-id\":\"page_scale_auto\"}},[_vm._v(\"自动缩放\")]),_c('option',{attrs:{\"id\":\"pageActualOption\",\"title\":\"\",\"value\":\"page-actual\",\"data-l10n-id\":\"page_scale_actual\"}},[_vm._v(\"实际大小\")]),_c('option',{attrs:{\"id\":\"pageFitOption\",\"title\":\"\",\"value\":\"page-fit\",\"data-l10n-id\":\"page_scale_fit\"}},[_vm._v(\"适合页面\")]),_c('option',{attrs:{\"id\":\"pageWidthOption\",\"title\":\"\",\"value\":\"page-width\",\"data-l10n-id\":\"page_scale_width\"}},[_vm._v(\"适合页宽\")]),_c('option',{attrs:{\"id\":\"customScaleOption\",\"title\":\"\",\"value\":\"custom\",\"disabled\":\"disabled\",\"hidden\":\"true\"}}),_c('option',{attrs:{\"title\":\"\",\"value\":\"0.5\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 50 }\"}},[_vm._v(\"50%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"0.75\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 75 }\"}},[_vm._v(\"75%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 100 }\"}},[_vm._v(\"100%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1.25\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 125 }\"}},[_vm._v(\"125%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1.5\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 150 }\"}},[_vm._v(\"150%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"2\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 200 }\"}},[_vm._v(\"200%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"3\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 300 }\"}},[_vm._v(\"300%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"4\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 400 }\"}},[_vm._v(\"400%\")])])])])])])]),_c('div',{attrs:{\"id\":\"viewerContainer\",\"tabindex\":\"0\"}},[_c('div',{staticClass:\"pdfViewer\",attrs:{\"id\":\"viewer\"}})]),_c('div',{attrs:{\"id\":\"errorWrapper\",\"hidden\":\"true\"}},[_c('div',{attrs:{\"id\":\"errorMessageLeft\"}},[_c('span',{attrs:{\"id\":\"errorMessage\"}}),_c('button',{attrs:{\"id\":\"errorShowMore\",\"data-l10n-id\":\"error_more_info\"}},[_vm._v(\" More Information \")]),_c('button',{attrs:{\"id\":\"errorShowLess\",\"data-l10n-id\":\"error_less_info\",\"hidden\":\"true\"}},[_vm._v(\" Less Information \")])]),_c('div',{attrs:{\"id\":\"errorMessageRight\"}},[_c('button',{attrs:{\"id\":\"errorClose\",\"data-l10n-id\":\"error_close\"}},[_vm._v(\" Close \")])]),_c('div',{staticClass:\"clearBoth\"}),_c('textarea',{attrs:{\"id\":\"errorMoreInfo\",\"hidden\":\"true\",\"readonly\":\"readonly\"}})])]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"dialogContainer\"}},[_c('dialog',{attrs:{\"id\":\"documentPropertiesDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"fileNameLabel\",\"data-l10n-id\":\"document_properties_file_name\"}},[_vm._v(\"文件名:\")]),_c('p',{attrs:{\"id\":\"fileNameField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"fileSizeLabel\",\"data-l10n-id\":\"document_properties_file_size\"}},[_vm._v(\"文件大小:\")]),_c('p',{attrs:{\"id\":\"fileSizeField\",\"aria-labelledby\":\"fileSizeLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"titleLabel\",\"data-l10n-id\":\"document_properties_title\"}},[_vm._v(\"标题:\")]),_c('p',{attrs:{\"id\":\"titleField\",\"aria-labelledby\":\"titleLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"authorLabel\",\"data-l10n-id\":\"document_properties_author\"}},[_vm._v(\"作者:\")]),_c('p',{attrs:{\"id\":\"authorField\",\"aria-labelledby\":\"authorLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"subjectLabel\",\"data-l10n-id\":\"document_properties_subject\"}},[_vm._v(\"主题:\")]),_c('p',{attrs:{\"id\":\"subjectField\",\"aria-labelledby\":\"subjectLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"keywordsLabel\",\"data-l10n-id\":\"document_properties_keywords\"}},[_vm._v(\"关键词:\")]),_c('p',{attrs:{\"id\":\"keywordsField\",\"aria-labelledby\":\"keywordsLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"creationDateLabel\",\"data-l10n-id\":\"document_properties_creation_date\"}},[_vm._v(\"创建日期:\")]),_c('p',{attrs:{\"id\":\"creationDateField\",\"aria-labelledby\":\"creationDateLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"modificationDateLabel\",\"data-l10n-id\":\"document_properties_modification_date\"}},[_vm._v(\"修改日期:\")]),_c('p',{attrs:{\"id\":\"modificationDateField\",\"aria-labelledby\":\"modificationDateLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"creatorLabel\",\"data-l10n-id\":\"document_properties_creator\"}},[_vm._v(\"创建者:\")]),_c('p',{attrs:{\"id\":\"creatorField\",\"aria-labelledby\":\"creatorLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"producerLabel\",\"data-l10n-id\":\"document_properties_producer\"}},[_vm._v(\"OFD 生成器:\")]),_c('p',{attrs:{\"id\":\"producerField\",\"aria-labelledby\":\"producerLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"versionLabel\",\"data-l10n-id\":\"document_properties_version\"}},[_vm._v(\"OFD 版本:\")]),_c('p',{attrs:{\"id\":\"versionField\",\"aria-labelledby\":\"versionLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"pageCountLabel\",\"data-l10n-id\":\"document_properties_page_count\"}},[_vm._v(\"页数:\")]),_c('p',{attrs:{\"id\":\"pageCountField\",\"aria-labelledby\":\"pageCountLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"pageSizeLabel\",\"data-l10n-id\":\"document_properties_page_size\"}},[_vm._v(\"页面大小:\")]),_c('p',{attrs:{\"id\":\"pageSizeField\",\"aria-labelledby\":\"pageSizeLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\",attrs:{\"hidden\":\"hidden\"}},[_c('span',{attrs:{\"id\":\"linearizedLabel\",\"data-l10n-id\":\"document_properties_linearized\"}},[_vm._v(\"快速 Web 视图:\")]),_c('p',{attrs:{\"id\":\"linearizedField\",\"aria-labelledby\":\"linearizedLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"documentPropertiesClose\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_close\"}},[_vm._v(\"关闭\")])])])]),_c('dialog',{staticStyle:{\"min-width\":\"200px\"},attrs:{\"id\":\"printServiceDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"data-l10n-id\":\"print_progress_message\"}},[_vm._v(\"正在准备打印文档…\")])]),_c('div',{staticClass:\"row\"},[_c('progress',{attrs:{\"id\":\"printProgress\",\"value\":\"0\",\"max\":\"100\"}}),_c('span',{staticClass:\"relative-progress\",attrs:{\"data-l10n-id\":\"print_progress_percent\",\"data-l10n-args\":\"{ \\\"progress\\\": 0 }\"}},[_vm._v(\"0%\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"printCancel\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_progress_close\"}},[_vm._v(\"取消\")])])])]),_c('dialog',{attrs:{\"id\":\"signaturePropertiesDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signerLabel\"}},[_vm._v(\"签章人:\")]),_c('p',{attrs:{\"id\":\"signerField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"providerLabel\"}},[_vm._v(\"签章提供者:\")]),_c('p',{attrs:{\"id\":\"providerField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"hashedValueLabel\"}},[_vm._v(\"原文摘要值:\")]),_c('p',{attrs:{\"id\":\"hashedValueField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signedValueLabel\"}},[_vm._v(\"签名值:\")]),_c('p',{attrs:{\"id\":\"signedValueField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signMethodLabel\"}},[_vm._v(\"签名算法:\")]),_c('p',{attrs:{\"id\":\"signMethodField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signVersionLabel\"}},[_vm._v(\"版本号:\")]),_c('p',{attrs:{\"id\":\"signVersionField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"verifyLabel\"}},[_vm._v(\"验签结果:\")]),_c('p',{attrs:{\"id\":\"verifyField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealIDLabel\"}},[_vm._v(\"印章标识:\")]),_c('p',{attrs:{\"id\":\"sealIDField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealNameLabel\"}},[_vm._v(\"印章名称:\")]),_c('p',{attrs:{\"id\":\"sealNameField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealTypeLabel\"}},[_vm._v(\"印章类型:\")]),_c('p',{attrs:{\"id\":\"sealTypeField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealAuthTimeLabel\"}},[_vm._v(\"有效时间:\")]),_c('p',{attrs:{\"id\":\"sealAuthTimeField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealMakeTimeLabel\"}},[_vm._v(\"制章日期:\")]),_c('p',{attrs:{\"id\":\"sealMakeTimeField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealVersionLabel\"}},[_vm._v(\"印章版本:\")]),_c('p',{attrs:{\"id\":\"sealVersionField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"signaturePropertiesClose\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_close\"}},[_vm._v(\"关闭\")])])])])])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"outerContainer\">\r\n\r\n <div id=\"mainContainer\">\r\n\r\n <div id=\"secondaryToolbar\" class=\"secondaryToolbar hidden doorHangerRight\">\r\n <div id=\"secondaryToolbarButtonContainer\">\r\n <button id=\"secondaryOpenFile\" class=\"secondaryToolbarButton openFile visibleLargeView\" title=\"打开文件\"\r\n tabindex=\"52\" data-l10n-id=\"open_file\">\r\n <span data-l10n-id=\"open_file_label\">打开</span>\r\n </button>\r\n\r\n <button id=\"secondaryPrint\" class=\"secondaryToolbarButton print visibleMediumView\" title=\"打印\" tabindex=\"53\"\r\n data-l10n-id=\"print\">\r\n <span data-l10n-id=\"print_label\">打印</span>\r\n </button>\r\n\r\n <button id=\"documentProperties\" class=\"secondaryToolbarButton documentProperties\" title=\"文档属性…\"\r\n tabindex=\"69\" data-l10n-id=\"document_properties\" aria-controls=\"documentPropertiesDialog\">\r\n <span data-l10n-id=\"document_properties_label\">文档属性…</span>\r\n </button>\r\n </div>\r\n </div> <!-- secondaryToolbar -->\r\n\r\n <div class=\"toolbar\">\r\n <div id=\"toolbarContainer\">\r\n <div id=\"toolbarViewer\">\r\n <div id=\"toolbarViewerLeft\">\r\n <div class=\"splitToolbarButton hiddenSmallView\">\r\n <button class=\"toolbarButton pageUp\" title=\"上一页\" id=\"previous\" tabindex=\"13\"\r\n data-l10n-id=\"previous\">\r\n <span data-l10n-id=\"previous_label\">上一页</span>\r\n </button>\r\n <div class=\"splitToolbarButtonSeparator\"></div>\r\n <button class=\"toolbarButton pageDown\" title=\"下一页\" id=\"next\" tabindex=\"14\" data-l10n-id=\"next\">\r\n <span data-l10n-id=\"next_label\">下一页</span>\r\n </button>\r\n </div>\r\n <input type=\"number\" id=\"pageNumber\" class=\"toolbarField pageNumber\" title=\"页面\" value=\"1\" size=\"4\"\r\n min=\"1\" tabindex=\"15\" data-l10n-id=\"page\" autocomplete=\"off\">\r\n <span id=\"numPages\" class=\"toolbarLabel\"></span>\r\n </div>\r\n <div id=\"toolbarViewerRight\">\r\n\r\n <button id=\"openFile\" class=\"toolbarButton openFile hiddenLargeView\" title=\"打开文件\" tabindex=\"32\"\r\n data-l10n-id=\"open_file\">\r\n <span data-l10n-id=\"open_file_label\">打开</span>\r\n </button>\r\n\r\n <button id=\"print\" class=\"toolbarButton print hiddenMediumView\" title=\"打印\" tabindex=\"33\"\r\n data-l10n-id=\"print\">\r\n <span data-l10n-id=\"print_label\">打印</span>\r\n </button>\r\n\r\n <div class=\"verticalToolbarSeparator hiddenSmallView\"></div>\r\n\r\n <button id=\"secondaryToolbarToggle\" class=\"toolbarButton\" title=\"工具\" tabindex=\"36\" data-l10n-id=\"tools\"\r\n aria-expanded=\"false\" aria-controls=\"secondaryToolbar\">\r\n <span data-l10n-id=\"tools_label\">工具</span>\r\n </button>\r\n </div>\r\n <div id=\"toolbarViewerMiddle\">\r\n <div class=\"splitToolbarButton\">\r\n <button id=\"zoomOut\" class=\"toolbarButton zoomOut\" title=\"缩小\" tabindex=\"21\"\r\n data-l10n-id=\"zoom_out\">\r\n <span data-l10n-id=\"zoom_out_label\">缩小</span>\r\n </button>\r\n <div class=\"splitToolbarButtonSeparator\"></div>\r\n <button id=\"zoomIn\" class=\"toolbarButton zoomIn\" title=\"放大\" tabindex=\"22\" data-l10n-id=\"zoom_in\">\r\n <span data-l10n-id=\"zoom_in_label\">放大</span>\r\n </button>\r\n </div>\r\n <span id=\"scaleSelectContainer\" class=\"dropdownToolbarButton\">\r\n <select id=\"scaleSelect\" title=\"缩放\" tabindex=\"23\" data-l10n-id=\"zoom\">\r\n <option id=\"pageAutoOption\" title=\"\" value=\"auto\" selected=\"selected\"\r\n data-l10n-id=\"page_scale_auto\">自动缩放</option>\r\n <option id=\"pageActualOption\" title=\"\" value=\"page-actual\" data-l10n-id=\"page_scale_actual\">实际大小</option>\r\n <option id=\"pageFitOption\" title=\"\" value=\"page-fit\" data-l10n-id=\"page_scale_fit\">适合页面</option>\r\n <option id=\"pageWidthOption\" title=\"\" value=\"page-width\"\r\n data-l10n-id=\"page_scale_width\">适合页宽</option>\r\n <option id=\"customScaleOption\" title=\"\" value=\"custom\" disabled=\"disabled\" hidden=\"true\"></option>\r\n <option title=\"\" value=\"0.5\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 50 }'>50%</option>\r\n <option title=\"\" value=\"0.75\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 75 }'>75%</option>\r\n <option title=\"\" value=\"1\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 100 }'>100%</option>\r\n <option title=\"\" value=\"1.25\" data-l10n-id=\"page_scale_percent\" data-l10n-args='{ \"scale\": 125 }'>125%</option>\r\n <option title=\"\" value=\"1.5\" data-l10n-id=\"page_scale_percent\" data-l10n-args='{ \"scale\": 150 }'>150%</option>\r\n <option title=\"\" value=\"2\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 200 }'>200%</option>\r\n <option title=\"\" value=\"3\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 300 }'>300%</option>\r\n <option title=\"\" value=\"4\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 400 }'>400%</option>\r\n </select>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"viewerContainer\" tabindex=\"0\">\r\n <div id=\"viewer\" class=\"pdfViewer\"></div>\r\n </div>\r\n\r\n <!--#if !MOZCENTRAL-->\r\n <div id=\"errorWrapper\" hidden='true'>\r\n <div id=\"errorMessageLeft\">\r\n <span id=\"errorMessage\"></span>\r\n <button id=\"errorShowMore\" data-l10n-id=\"error_more_info\">\r\n More Information\r\n </button>\r\n <button id=\"errorShowLess\" data-l10n-id=\"error_less_info\" hidden='true'>\r\n Less Information\r\n </button>\r\n </div>\r\n <div id=\"errorMessageRight\">\r\n <button id=\"errorClose\" data-l10n-id=\"error_close\">\r\n Close\r\n </button>\r\n </div>\r\n <div class=\"clearBoth\"></div>\r\n <textarea id=\"errorMoreInfo\" hidden='true' readonly=\"readonly\"></textarea>\r\n </div>\r\n <!--#endif-->\r\n </div> <!-- mainContainer -->\r\n\r\n <div id=\"dialogContainer\">\r\n <dialog id=\"documentPropertiesDialog\">\r\n <div class=\"row\">\r\n <span id=\"fileNameLabel\" data-l10n-id=\"document_properties_file_name\">文件名:</span>\r\n <p id=\"fileNameField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"fileSizeLabel\" data-l10n-id=\"document_properties_file_size\">文件大小:</span>\r\n <p id=\"fileSizeField\" aria-labelledby=\"fileSizeLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"titleLabel\" data-l10n-id=\"document_properties_title\">标题:</span>\r\n <p id=\"titleField\" aria-labelledby=\"titleLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"authorLabel\" data-l10n-id=\"document_properties_author\">作者:</span>\r\n <p id=\"authorField\" aria-labelledby=\"authorLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"subjectLabel\" data-l10n-id=\"document_properties_subject\">主题:</span>\r\n <p id=\"subjectField\" aria-labelledby=\"subjectLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"keywordsLabel\" data-l10n-id=\"document_properties_keywords\">关键词:</span>\r\n <p id=\"keywordsField\" aria-labelledby=\"keywordsLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"creationDateLabel\" data-l10n-id=\"document_properties_creation_date\">创建日期:</span>\r\n <p id=\"creationDateField\" aria-labelledby=\"creationDateLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"modificationDateLabel\"\r\n data-l10n-id=\"document_properties_modification_date\">修改日期:</span>\r\n <p id=\"modificationDateField\" aria-labelledby=\"modificationDateLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"creatorLabel\" data-l10n-id=\"document_properties_creator\">创建者:</span>\r\n <p id=\"creatorField\" aria-labelledby=\"creatorLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"producerLabel\" data-l10n-id=\"document_properties_producer\">OFD 生成器:</span>\r\n <p id=\"producerField\" aria-labelledby=\"producerLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"versionLabel\" data-l10n-id=\"document_properties_version\">OFD 版本:</span>\r\n <p id=\"versionField\" aria-labelledby=\"versionLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"pageCountLabel\" data-l10n-id=\"document_properties_page_count\">页数:</span>\r\n <p id=\"pageCountField\" aria-labelledby=\"pageCountLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"pageSizeLabel\" data-l10n-id=\"document_properties_page_size\">页面大小:</span>\r\n <p id=\"pageSizeField\" aria-labelledby=\"pageSizeLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\" hidden=\"hidden\">\r\n <span id=\"linearizedLabel\" data-l10n-id=\"document_properties_linearized\">快速 Web 视图:</span>\r\n <p id=\"linearizedField\" aria-labelledby=\"linearizedLabel\">-</p>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"documentPropertiesClose\" class=\"dialogButton\"><span\r\n data-l10n-id=\"document_properties_close\">关闭</span></button>\r\n </div>\r\n </dialog>\r\n <!--#if !MOZCENTRAL-->\r\n <dialog id=\"printServiceDialog\" style=\"min-width: 200px;\">\r\n <div class=\"row\">\r\n <span data-l10n-id=\"print_progress_message\">正在准备打印文档…</span>\r\n </div>\r\n <div class=\"row\">\r\n <progress id=\"printProgress\" value=\"0\" max=\"100\"></progress>\r\n <span data-l10n-id=\"print_progress_percent\" data-l10n-args='{ \"progress\": 0 }'\r\n class=\"relative-progress\">0%</span>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"printCancel\" class=\"dialogButton\"><span data-l10n-id=\"print_progress_close\">取消</span></button>\r\n </div>\r\n </dialog>\r\n\r\n <dialog id=\"signaturePropertiesDialog\">\r\n <div class=\"row\">\r\n <span id=\"signerLabel\">签章人:</span>\r\n <p id=\"signerField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"providerLabel\">签章提供者:</span>\r\n <p id=\"providerField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"hashedValueLabel\">原文摘要值:</span>\r\n <p id=\"hashedValueField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"signedValueLabel\">签名值:</span>\r\n <p id=\"signedValueField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"signMethodLabel\">签名算法:</span>\r\n <p id=\"signMethodField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"signVersionLabel\">版本号:</span>\r\n <p id=\"signVersionField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"verifyLabel\">验签结果:</span>\r\n <p id=\"verifyField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"sealIDLabel\">印章标识:</span>\r\n <p id=\"sealIDField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealNameLabel\">印章名称:</span>\r\n <p id=\"sealNameField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealTypeLabel\">印章类型:</span>\r\n <p id=\"sealTypeField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealAuthTimeLabel\">有效时间:</span>\r\n <p id=\"sealAuthTimeField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealMakeTimeLabel\">制章日期:</span>\r\n <p id=\"sealMakeTimeField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealVersionLabel\">印章版本:</span>\r\n <p id=\"sealVersionField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"signaturePropertiesClose\" class=\"dialogButton\"><span data-l10n-id=\"document_properties_close\">关闭</span>\r\n </button>\r\n </div>\r\n </dialog>\r\n <!--#endif-->\r\n <!--#if CHROME-->\r\n <!--#include viewer-snippet-chrome-overlays.html-->\r\n <!--#endif-->\r\n </div> <!-- dialogContainer -->\r\n\r\n </div> <!-- outerContainer -->\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"OfdView\",\r\n props: {\r\n\r\n },\r\n\r\n watch: {\r\n\r\n },\r\n\r\n\r\n data() {\r\n return {\r\n\r\n config: null,\r\n }\r\n },\r\n\r\n mounted() {\r\n if (!this.config) {\r\n this.config = this.getViewerConfiguration()\r\n //vue下viewerContainer必须设置height\r\n // this.containerHeight = `${window.innerHeight - 100}px`\r\n let img = new Image();\r\n img.style.position = 'absolute';\r\n img.style.left = 0;\r\n img.style.right = 0;\r\n img.style.margin = 'auto';\r\n img.style.top = 0;\r\n img.style.bottom = 0;\r\n img.src = 'data:image/gif;base64,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';\r\n img.draggable = false;\r\n this.config.loadingContainer = img\r\n // config.onPageChanging = pageNumber => {\r\n // // console.log(pageNumber)\r\n // }\r\n // config.parserOFDSuccess = core => {\r\n // // console.log(core)\r\n // }\r\n // config.onPageScale = scale => {\r\n // // console.log(scale)\r\n // }\r\n }\r\n this.$emit('configCallback', this.config)\r\n },\r\n\r\n methods: {\r\n getViewerConfiguration() {\r\n let errorWrapper = null\r\n errorWrapper = {\r\n container: document.getElementById('errorWrapper'),\r\n errorMessage: document.getElementById('errorMessage'),\r\n closeButton: document.getElementById('errorClose'),\r\n errorMoreInfo: document.getElementById('errorMoreInfo'),\r\n moreInfoButton: document.getElementById('errorShowMore'),\r\n lessInfoButton: document.getElementById('errorShowLess'),\r\n }\r\n\r\n return {\r\n appContainer: document.body,\r\n mainContainer: document.getElementById('viewerContainer'),\r\n viewerContainer: document.getElementById('viewer'),\r\n toolbar: {\r\n container: document.getElementById('toolbarViewer'),\r\n numPages: document.getElementById('numPages'),\r\n pageNumber: document.getElementById('pageNumber'),\r\n scaleSelect: document.getElementById('scaleSelect'),\r\n customScaleOption: document.getElementById('customScaleOption'),\r\n previous: document.getElementById('previous'),\r\n next: document.getElementById('next'),\r\n zoomIn: document.getElementById('zoomIn'),\r\n zoomOut: document.getElementById('zoomOut'),\r\n openFile: document.getElementById('openFile'),\r\n print: document.getElementById('print'),\r\n },\r\n secondaryToolbar: {\r\n toolbar: document.getElementById('secondaryToolbar'),\r\n toggleButton: document.getElementById('secondaryToolbarToggle'),\r\n toolbarButtonContainer: document.getElementById(\r\n 'secondaryToolbarButtonContainer'\r\n ),\r\n openFileButton: document.getElementById('secondaryOpenFile'),\r\n printButton: document.getElementById('secondaryPrint'),\r\n documentPropertiesButton: document.getElementById('documentProperties'),\r\n },\r\n sidebar: {\r\n // Divs (and sidebar button)\r\n outerContainer: document.getElementById('outerContainer'),\r\n viewerContainer: document.getElementById('viewerContainer'),\r\n },\r\n sidebarResizer: {\r\n outerContainer: document.getElementById('outerContainer'),\r\n },\r\n documentProperties: {\r\n dialog: document.getElementById('documentPropertiesDialog'),\r\n closeButton: document.getElementById('documentPropertiesClose'),\r\n fields: {\r\n fileName: document.getElementById('fileNameField'),\r\n fileSize: document.getElementById('fileSizeField'),\r\n title: document.getElementById('titleField'),\r\n author: document.getElementById('authorField'),\r\n subject: document.getElementById('subjectField'),\r\n keywords: document.getElementById('keywordsField'),\r\n creationDate: document.getElementById('creationDateField'),\r\n modificationDate: document.getElementById('modificationDateField'),\r\n creator: document.getElementById('creatorField'),\r\n producer: document.getElementById('producerField'),\r\n version: document.getElementById('versionField'),\r\n pageCount: document.getElementById('pageCountField'),\r\n pageSize: document.getElementById('pageSizeField'),\r\n linearized: document.getElementById('linearizedField'),\r\n },\r\n },\r\n signatureProperties: {\r\n dialog: document.getElementById('signaturePropertiesDialog'),\r\n closeButton: document.getElementById('signaturePropertiesClose'),\r\n fields: {\r\n signer: document.getElementById('signerField'),\r\n provider: document.getElementById('providerField'),\r\n hashedValue: document.getElementById('hashedValueField'),\r\n signedValue: document.getElementById('signedValueField'),\r\n signMethod: document.getElementById('signMethodField'),\r\n signVersion: document.getElementById('signVersionField'),\r\n verify: document.getElementById('verifyField'),\r\n\r\n sealID: document.getElementById('sealIDField'),\r\n sealName: document.getElementById('sealNameField'),\r\n sealType: document.getElementById('sealTypeField'),\r\n sealAuthTime: document.getElementById('sealAuthTimeField'),\r\n sealMakeTime: document.getElementById('sealMakeTimeField'),\r\n sealVersion: document.getElementById('sealVersionField'),\r\n },\r\n },\r\n errorWrapper,\r\n printContainer: document.getElementById('printContainer'),\r\n openFileInputName: 'fileInput',\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=52ea580a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52ea580a\",\n null\n \n)\n\nexport default component.exports","import OfdView from './src';\r\n\r\nOfdView.install = Vue => Vue.component(OfdView.name, OfdView);//注册组件\r\n\r\nexport default OfdView\r\n","import OfdView from './ofdView'\r\n\r\nconst components = [\r\n OfdView\r\n]\r\n\r\n// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册\r\nconst install = function (Vue) {\r\n\r\n// 判断是否安装\r\n if (install.installed) return\r\n // 遍历注册全局组件\r\n components.map(component => Vue.component(component.name, component))\r\n}\r\n\r\n// 判断是否是直接引入文件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n install(window.Vue)\r\n}\r\n\r\nexport default {\r\n // 导出的对象必须具有 install,才能被 Vue.use() 方法安装\r\n install,\r\n // 以下是具体的组件列表\r\n OfdView\r\n}\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","define","amd","self","this","__webpack_require__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","p","window","currentScript","document","src","match","render","_vm","_self","_c","_m","staticRenderFns","attrs","staticClass","_v","staticStyle","name","props","watch","data","config","mounted","getViewerConfiguration","img","Image","style","position","left","right","margin","top","bottom","draggable","loadingContainer","$emit","methods","errorWrapper","container","getElementById","errorMessage","closeButton","errorMoreInfo","moreInfoButton","lessInfoButton","appContainer","body","mainContainer","viewerContainer","toolbar","numPages","pageNumber","scaleSelect","customScaleOption","previous","next","zoomIn","zoomOut","openFile","print","secondaryToolbar","toggleButton","toolbarButtonContainer","openFileButton","printButton","documentPropertiesButton","sidebar","outerContainer","sidebarResizer","documentProperties","dialog","fields","fileName","fileSize","title","author","subject","keywords","creationDate","modificationDate","creator","producer","version","pageCount","pageSize","linearized","signatureProperties","signer","provider","hashedValue","signedValue","signMethod","signVersion","verify","sealID","sealName","sealType","sealAuthTime","sealMakeTime","sealVersion","printContainer","openFileInputName","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","component","Vue","components","install","installed","map","OfdView"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"ofd-view.umd.min.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,kBAAZC,SAA0C,kBAAXC,OACxCA,OAAOD,QAAUD,IACQ,oBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,kBAAZC,QACdA,QAAQ,YAAcD,IAEtBD,EAAK,YAAcC,GACpB,EATD,CASoB,qBAATK,KAAuBA,KAAOC,MAAO,WAChD,O,mHCPIC,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACN,EAAOO,GAAI,wGAAyG,KAElJ,c,+BCDAP,EAAOD,QAAU,SAAUS,GACzB,IAAIC,EAAO,GA6FX,OA3FAA,EAAKC,SAAW,WACd,OAAON,KAAKO,KAAI,SAAUC,GACxB,IAAIC,EAAU,GACVC,EAA+B,qBAAZF,EAAK,GA4B5B,OA1BIA,EAAK,KACPC,GAAW,cAAcE,OAAOH,EAAK,GAAI,QAGvCA,EAAK,KACPC,GAAW,UAAUE,OAAOH,EAAK,GAAI,OAGnCE,IACFD,GAAW,SAASE,OAAOH,EAAK,GAAGI,OAAS,EAAI,IAAID,OAAOH,EAAK,IAAM,GAAI,OAG5EC,GAAWL,EAAuBI,GAE9BE,IACFD,GAAW,KAGTD,EAAK,KACPC,GAAW,KAGTD,EAAK,KACPC,GAAW,KAGNA,CACT,IAAGI,KAAK,GACV,EAGAR,EAAKS,EAAI,SAAWC,EAASC,EAAOC,EAAQC,EAAUC,GAC7B,kBAAZJ,IACTA,EAAU,CAAC,CAAC,KAAMA,OAASK,KAG7B,IAAIC,EAAyB,CAAC,EAE9B,GAAIJ,EACF,IAAK,IAAIK,EAAI,EAAGA,EAAItB,KAAKY,OAAQU,IAAK,CACpC,IAAInB,EAAKH,KAAKsB,GAAG,GAEP,MAANnB,IACFkB,EAAuBlB,IAAM,EAEjC,CAGF,IAAK,IAAIoB,EAAK,EAAGA,EAAKR,EAAQH,OAAQW,IAAM,CAC1C,IAAIf,EAAO,GAAGG,OAAOI,EAAQQ,IAEzBN,GAAUI,EAAuBb,EAAK,MAIrB,qBAAVW,IACc,qBAAZX,EAAK,KAGdA,EAAK,GAAK,SAASG,OAAOH,EAAK,GAAGI,OAAS,EAAI,IAAID,OAAOH,EAAK,IAAM,GAAI,MAAMG,OAAOH,EAAK,GAAI,MAF/FA,EAAK,GAAKW,GAOVH,IACGR,EAAK,IAGRA,EAAK,GAAK,UAAUG,OAAOH,EAAK,GAAI,MAAMG,OAAOH,EAAK,GAAI,KAC1DA,EAAK,GAAKQ,GAHVR,EAAK,GAAKQ,GAOVE,IACGV,EAAK,IAGRA,EAAK,GAAK,cAAcG,OAAOH,EAAK,GAAI,OAAOG,OAAOH,EAAK,GAAI,KAC/DA,EAAK,GAAKU,GAHVV,EAAK,GAAK,GAAGG,OAAOO,IAOxBb,EAAKH,KAAKM,GACZ,CACF,EAEOH,CACT,C,8BCnGAT,EAAOD,QAAU,SAAUmB,GACzB,OAAOA,EAAE,EACX,C;;;;;;;;;;;;;;;;;;;;;;CCkBA,SAA2CrB,EAAMC,GAE/CE,OAAOD,QAAUD,GAOlB,EATD,CASGM,GAAM,WACT,OAAgB,SAAUe,GAEhB,IAAIS,EAAmB,CAAC,EAGxB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAU/B,QAGnC,IAAIC,EAAS4B,EAAiBE,GAAY,CACzCZ,EAAGY,EACHC,GAAG,EACHhC,QAAS,CAAC,GAUX,OANAoB,EAAQW,GAAUE,KAAKhC,EAAOD,QAASC,EAAQA,EAAOD,QAAS8B,GAG/D7B,EAAO+B,GAAI,EAGJ/B,EAAOD,OACf,CAyDA,OArDA8B,EAAoBI,EAAId,EAGxBU,EAAoBK,EAAIN,EAGxBC,EAAoBM,EAAI,SAASpC,EAASqC,EAAMC,GAC3CR,EAAoBS,EAAEvC,EAASqC,IAClCG,OAAOC,eAAezC,EAASqC,EAAM,CAAEK,YAAY,EAAMC,IAAKL,GAEhE,EAGAR,EAAoBc,EAAI,SAAS5C,GACX,qBAAX6C,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAezC,EAAS6C,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAezC,EAAS,aAAc,CAAE+C,OAAO,GACvD,EAOAjB,EAAoBkB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQjB,EAAoBiB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAtB,EAAoBc,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOjB,EAAoBM,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,EAAM,EAAEC,KAAK,KAAMD,IAC9I,OAAOF,CACR,EAGArB,EAAoByB,EAAI,SAAStD,GAChC,IAAIqC,EAASrC,GAAUA,EAAOiD,WAC7B,WAAwB,OAAOjD,EAAO,UAAY,EAClD,WAA8B,OAAOA,CAAQ,EAE9C,OADA6B,EAAoBM,EAAEE,EAAQ,IAAKA,GAC5BA,CACR,EAGAR,EAAoBS,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,EAAW,EAGpH3B,EAAoB8B,EAAI,GAIjB9B,EAAoBA,EAAoB+B,EAAI,EACnD,CApFM,CAsFN,CAEJ,SAAU5D,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAETP,OAAOC,eAAezC,EAAS,oBAAqB,CAClD0C,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeC,iBACxB,IAEFvB,OAAOC,eAAezC,EAAS,qBAAsB,CACnD0C,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeE,kBACxB,IAEFxB,OAAOC,eAAezC,EAAS,aAAc,CAC3C0C,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeG,UACxB,IAEFzB,OAAOC,eAAezC,EAAS,aAAc,CAC3C0C,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeI,UACxB,IAEF1B,OAAOC,eAAezC,EAAS,gBAAiB,CAC9C0C,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeK,aACxB,IAEF3B,OAAOC,eAAezC,EAAS,8BAA+B,CAC5D0C,YAAY,EACZC,IAAK,WACH,OAAOmB,EAAeM,2BACxB,IAEF5B,OAAOC,eAAezC,EAAS,QAAS,CACtC0C,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKC,KACd,IAEF9B,OAAOC,eAAezC,EAAS,cAAe,CAC5C0C,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKE,WACd,IAEF/B,OAAOC,eAAezC,EAAS,eAAgB,CAC7C0C,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKG,YACd,IAEFhC,OAAOC,eAAezC,EAAS,wBAAyB,CACtD0C,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKI,qBACd,IAEFjC,OAAOC,eAAezC,EAAS,YAAa,CAC1C0C,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKK,SACd,IAEFlC,OAAOC,eAAezC,EAAS,UAAW,CACxC0C,YAAY,EACZC,IAAK,WACH,OAAO0B,EAAKM,OACd,IAEFnC,OAAOC,eAAezC,EAAS,sBAAuB,CACpD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMC,mBACf,IAEFrC,OAAOC,eAAezC,EAAS,kBAAmB,CAChD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAME,eACf,IAEFtC,OAAOC,eAAezC,EAAS,0BAA2B,CACxD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMG,uBACf,IAEFvC,OAAOC,eAAezC,EAAS,yBAA0B,CACvD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMI,sBACf,IAEFxC,OAAOC,eAAezC,EAAS,sBAAuB,CACpD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMK,mBACf,IAEFzC,OAAOC,eAAezC,EAAS,sBAAuB,CACpD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMM,mBACf,IAEF1C,OAAOC,eAAezC,EAAS,MAAO,CACpC0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMO,GACf,IAEF3C,OAAOC,eAAezC,EAAS,oBAAqB,CAClD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMQ,iBACf,IAEF5C,OAAOC,eAAezC,EAAS,iBAAkB,CAC/C0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMS,cACf,IAEF7C,OAAOC,eAAezC,EAAS,uBAAwB,CACrD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMU,oBACf,IAEF9C,OAAOC,eAAezC,EAAS,SAAU,CACvC0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMW,MACf,IAEF/C,OAAOC,eAAezC,EAAS,8BAA+B,CAC5D0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMY,2BACf,IAEFhD,OAAOC,eAAezC,EAAS,uBAAwB,CACrD0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMa,oBACf,IAEFjD,OAAOC,eAAezC,EAAS,OAAQ,CACrC0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMc,IACf,IAEFlD,OAAOC,eAAezC,EAAS,iBAAkB,CAC/C0C,YAAY,EACZC,IAAK,WACH,OAAOiC,EAAMe,cACf,IAEFnD,OAAOC,eAAezC,EAAS,kBAAmB,CAChD0C,YAAY,EACZC,IAAK,WACH,OAAOiD,EAAkBC,eAC3B,IAEFrD,OAAOC,eAAezC,EAAS,yBAA0B,CACvD0C,YAAY,EACZC,IAAK,WACH,OAAOmD,EAAmBC,sBAC5B,IAEFvD,OAAOC,eAAezC,EAAS,sBAAuB,CACpD0C,YAAY,EACZC,IAAK,WACH,OAAOqD,EAAgBC,mBACzB,IAEFzD,OAAOC,eAAezC,EAAS,kBAAmB,CAChD0C,YAAY,EACZC,IAAK,WACH,OAAOuD,EAAYC,eACrB,IAEF3D,OAAOC,eAAezC,EAAS,cAAe,CAC5C0C,YAAY,EACZC,IAAK,WACH,OAAOyD,EAAKC,WACd,IAGF,IAAIvC,EAAiBhC,EAAoB,GAErCuC,EAAOvC,EAAoB,GAE3B8C,EAAQ9C,EAAoB,GAE5B8D,EAAoB9D,EAAoB,IAExCgE,EAAqBhE,EAAoB,GAEzCkE,EAAkBlE,EAAoB,IAEtCoE,EAAcpE,EAAoB,IAElCsE,EAAOtE,EAAoB,IAI/B,CACE,MAAM,SACJwE,GACExE,EAAoB,GAExB,GAAIwE,EAAU,CACZ,MAAMC,EAAgBzE,EAAoB,IAAIyE,eAE9C,EAAIlC,EAAKmC,6BAA4BC,GAC5B,IAAIF,EAAcE,IAE7B,KAAO,CACL,MAAMC,EAAmB5E,EAAoB,IAAI4E,iBAEjD,IAAIC,GAEA,EAAI7C,EAAe8C,sBACrBD,EAAiB7E,EAAoB,IAAI6E,iBAG3C,EAAItC,EAAKmC,6BAA4BC,GAC/BE,IAAkB,EAAI7C,EAAe+C,iBAAiBJ,EAAOK,KACxD,IAAIH,EAAeF,GAGrB,IAAIC,EAAiBD,IAEhC,CACF,CAEO,EAED,SAAUxG,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ+D,kBAAoBA,EAC5B/D,EAAQgE,mBAAqBA,EAC7BhE,EAAQ4G,iBAAmBA,EAC3B5G,EAAQ6G,gBAAkBA,EAC1B7G,EAAQkE,WAAaA,EACrBlE,EAAQ+G,WAAaA,EACrB/G,EAAQmE,cAAgBnE,EAAQgH,UAAYhH,EAAQiH,cAAgBjH,EAAQkH,qBAAuBlH,EAAQmH,iBAAmBnH,EAAQoH,iBAAmBpH,EAAQiE,WAAajE,EAAQoE,4BAA8BpE,EAAQqH,kBAAe,EAE3O,IAAIzC,EAAQ9C,EAAoB,GAEhC,MAAMsF,EAAmB,+BACzBpH,EAAQoH,iBAAmBA,EAC3B,MAAME,EAAS,6BAEf,MAAMH,EACJ/D,OAAOmE,EAAOC,GACZ,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIC,MAAM,uBAGlB,MAAMC,EAASC,SAASC,cAAc,UAChCC,EAAUH,EAAOI,WAAW,MAGlC,OAFAJ,EAAOH,MAAQA,EACfG,EAAOF,OAASA,EACT,CACLE,SACAG,UAEJ,CAEAE,MAAMC,EAAkBT,EAAOC,GAC7B,IAAKQ,EAAiBN,OACpB,MAAM,IAAID,MAAM,2BAGlB,GAAIF,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIC,MAAM,uBAGlBO,EAAiBN,OAAOH,MAAQA,EAChCS,EAAiBN,OAAOF,OAASA,CACnC,CAEAS,QAAQD,GACN,IAAKA,EAAiBN,OACpB,MAAM,IAAID,MAAM,2BAGlBO,EAAiBN,OAAOH,MAAQ,EAChCS,EAAiBN,OAAOF,OAAS,EACjCQ,EAAiBN,OAAS,KAC1BM,EAAiBH,QAAU,IAC7B,EAIF7H,EAAQmH,iBAAmBA,EAE3B,MAAMD,EACJgB,aAAY,QACVC,EAAU,KAAI,aACdC,GAAe,IAEf/H,KAAK8H,QAAUA,EACf9H,KAAK+H,aAAeA,CACtB,CAEAC,aAAY,KACVhG,IAEA,IAAKhC,KAAK8H,QACR,MAAM,IAAIV,MAAM,2HAGlB,IAAKpF,EACH,MAAM,IAAIoF,MAAM,gCAGlB,MAAMX,EAAMzG,KAAK8H,QAAU9F,GAAQhC,KAAK+H,aAAe,SAAW,IAC5DE,EAAkBjI,KAAK+H,aAAexD,EAAMC,oBAAoB0D,OAAS3D,EAAMC,oBAAoB2D,KAEzG,OAAI5B,KAAsBC,EAAgBC,EAAKa,SAASc,SAC/CC,MAAM5B,GAAK6B,MAAKN,UACrB,IAAKO,EAASC,GACZ,MAAM,IAAIpB,MAAMmB,EAASE,YAG3B,IAAIC,EAQJ,OALEA,EADE1I,KAAK+H,aACI,IAAIY,iBAAiBJ,EAASK,gBAE9B,EAAIrE,EAAMsE,qBAAqBN,EAASO,QAG9C,CACLJ,WACAT,kBACD,IACAc,OAAMC,IACP,MAAM,IAAI5B,MAAM,mBAAkBpH,KAAK+H,aAAe,UAAY,IAAO,YAAYtB,IAAM,IAIxF,IAAIwC,SAAQ,CAACC,EAASC,KAC3B,MAAMC,EAAU,IAAIC,eACpBD,EAAQE,KAAK,MAAO7C,GAAK,GAErBzG,KAAK+H,eACPqB,EAAQG,aAAe,eAGzBH,EAAQI,mBAAqB,KAC3B,GAAIJ,EAAQK,aAAeJ,eAAeK,KAA1C,CAIA,GAAuB,MAAnBN,EAAQO,QAAqC,IAAnBP,EAAQO,OAAc,CAClD,IAAIjB,EAQJ,GANI1I,KAAK+H,cAAgBqB,EAAQb,SAC/BG,EAAW,IAAIC,WAAWS,EAAQb,WACxBvI,KAAK+H,cAAgBqB,EAAQQ,eACvClB,GAAW,EAAInE,EAAMsE,eAAeO,EAAQQ,eAG1ClB,EAKF,YAJAQ,EAAQ,CACNR,WACAT,mBAIN,CAEAkB,EAAO,IAAI/B,MAAMgC,EAAQX,YApBzB,CAoBqC,EAGvCW,EAAQS,KAAK,KAAK,IACjBd,OAAMC,IACP,MAAM,IAAI5B,MAAM,mBAAkBpH,KAAK+H,aAAe,UAAY,IAAO,YAAYtB,IAAM,GAE/F,EAIF9G,EAAQkH,qBAAuBA,EAE/B,MAAMD,EACJ7D,OAAOmE,EAAOC,IACZ,EAAI5C,EAAMuF,QAAQ5C,EAAQ,GAAKC,EAAS,EAAG,0BAC3C,MAAM4C,EAAMzC,SAAS0C,gBAAgB/C,EAAQ,WAM7C,OALA8C,EAAIE,aAAa,UAAW,OAC5BF,EAAIE,aAAa,QAAS/C,EAAQ,MAClC6C,EAAIE,aAAa,SAAU9C,EAAS,MACpC4C,EAAIE,aAAa,sBAAuB,QACxCF,EAAIE,aAAa,UAAW,OAAS/C,EAAQ,IAAMC,GAC5C4C,CACT,CAEAxC,cAAc2C,GAEZ,OADA,EAAI3F,EAAMuF,QAAwB,kBAATI,EAAmB,4BACrC5C,SAAS0C,gBAAgB/C,EAAQiD,EAC1C,EAIFvK,EAAQiH,cAAgBA,EAExB,MAAMI,EACJa,aAAY,QACVsC,EAAO,MACPC,EAAK,SACLC,EAAQ,QACRC,EAAU,EAAC,QACXC,EAAU,EAAC,SACXC,GAAW,IAEXxK,KAAKmK,QAAUA,EACfnK,KAAKoK,MAAQA,EACbpK,KAAKqK,SAAWA,EAChBrK,KAAKsK,QAAUA,EACftK,KAAKuK,QAAUA,EACf,MAAME,GAAWN,EAAQ,GAAKA,EAAQ,IAAM,EACtCO,GAAWP,EAAQ,GAAKA,EAAQ,IAAM,EAC5C,IAAIQ,EAASC,EAASC,EAASC,EA0C3BC,EAAeC,EACf9D,EAAOC,EAvCX,OAHAkD,GAAsB,IACtBA,EAAWA,EAAW,EAAIA,EAAW,IAAMA,EAEnCA,GACN,KAAK,IACHM,GAAW,EACXC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MAEF,KAAK,GACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MAEF,KAAK,IACHH,EAAU,EACVC,GAAW,EACXC,GAAW,EACXC,EAAU,EACV,MAEF,KAAK,EACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,GAAW,EACX,MAEF,QACE,MAAM,IAAI1D,MAAM,qEAGhBoD,IACFK,GAAWA,EACXC,GAAWA,GAMG,IAAZH,GACFI,EAAgBE,KAAKC,IAAIR,EAAUP,EAAQ,IAAMC,EAAQE,EACzDU,EAAgBC,KAAKC,IAAIT,EAAUN,EAAQ,IAAMC,EAAQG,EACzDrD,EAAQ+D,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,EAC5CjD,EAAS8D,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,IAE7CW,EAAgBE,KAAKC,IAAIT,EAAUN,EAAQ,IAAMC,EAAQE,EACzDU,EAAgBC,KAAKC,IAAIR,EAAUP,EAAQ,IAAMC,EAAQG,EACzDrD,EAAQ+D,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,EAC5CjD,EAAS8D,KAAKC,IAAIf,EAAQ,GAAKA,EAAQ,IAAMC,GAG/CpK,KAAKmL,UAAY,CAACR,EAAUP,EAAOQ,EAAUR,EAAOS,EAAUT,EAAOU,EAAUV,EAAOW,EAAgBJ,EAAUP,EAAQK,EAAUI,EAAUT,EAAQM,EAASM,EAAgBJ,EAAUR,EAAQK,EAAUK,EAAUV,EAAQM,GAC3N1K,KAAKkH,MAAQA,EACblH,KAAKmH,OAASA,CAChB,CAEAiE,OAAM,MACJhB,EAAQpK,KAAKoK,MAAK,SAClBC,EAAWrK,KAAKqK,SAAQ,QACxBC,EAAUtK,KAAKsK,QAAO,QACtBC,EAAUvK,KAAKuK,QAAO,SACtBC,GAAW,GACT,CAAC,GACH,OAAO,IAAIxD,EAAa,CACtBmD,QAASnK,KAAKmK,QAAQkB,QACtBjB,QACAC,WACAC,UACAC,UACAC,YAEJ,CAEAc,uBAAuBC,EAAGC,GACxB,OAAOjH,EAAMc,KAAKoG,eAAe,CAACF,EAAGC,GAAIxL,KAAKmL,UAChD,CAEAO,2BAA2BC,GACzB,MAAMC,EAAUrH,EAAMc,KAAKoG,eAAe,CAACE,EAAK,GAAIA,EAAK,IAAK3L,KAAKmL,WAE7DU,EAActH,EAAMc,KAAKoG,eAAe,CAACE,EAAK,GAAIA,EAAK,IAAK3L,KAAKmL,WAEvE,MAAO,CAACS,EAAQ,GAAIA,EAAQ,GAAIC,EAAY,GAAIA,EAAY,GAC9D,CAEAC,kBAAkBP,EAAGC,GACnB,OAAOjH,EAAMc,KAAK0G,sBAAsB,CAACR,EAAGC,GAAIxL,KAAKmL,UACvD,EAIFxL,EAAQqH,aAAeA,EAEvB,MAAMjD,UAAoCQ,EAAMyH,cAC9CnE,YAAYoE,EAAK/B,GACfgC,MAAMD,GACNjM,KAAKkK,KAAOA,CACd,EAIFvK,EAAQoE,4BAA8BA,EACtC,MAAMH,EAAa,CACjBuE,KAAM,EACNgE,KAAM,EACNC,MAAO,EACPC,OAAQ,EACRC,IAAK,GAIP,SAAS5I,EAAkB6I,GAAM,IAC/B9F,EAAG,OACH+F,EAAM,IACNC,EAAG,QACHC,GAAU,GACR,CAAC,IACH,EAAInI,EAAMuF,QAAQrD,GAAsB,kBAARA,EAAkB,6DAClD,MAAMkG,GAAiB,EAAIpI,EAAMU,sBAAsBwB,GAEnDiG,EACFH,EAAKK,KAAOL,EAAKM,MAAQF,GAEzBJ,EAAKK,KAAO,GACZL,EAAKM,MAAQ,aAAaF,IAE1BJ,EAAKO,QAAU,KACN,GAIX,IAAIC,EAAY,GAEhB,OAAQP,GACN,KAAK5I,EAAWuE,KACd,MAEF,KAAKvE,EAAWuI,KACdY,EAAY,QACZ,MAEF,KAAKnJ,EAAWwI,MACdW,EAAY,SACZ,MAEF,KAAKnJ,EAAWyI,OACdU,EAAY,UACZ,MAEF,KAAKnJ,EAAW0I,IACdS,EAAY,OACZ,MAGJR,EAAKC,OAASO,EACdR,EAAKE,IAAqB,kBAARA,EAAmBA,EAAM1F,CAC7C,CAEA,SAASpD,EAAmB8C,GAC1B,MAAMuG,EAASvG,EAAIwG,QAAQ,KACrBC,EAAQzG,EAAIwG,QAAQ,KACpBE,EAAMlC,KAAKmC,IAAIJ,EAAS,EAAIA,EAASvG,EAAI7F,OAAQsM,EAAQ,EAAIA,EAAQzG,EAAI7F,QAC/E,OAAO6F,EAAI4G,UAAU5G,EAAI6G,YAAY,IAAKH,GAAO,EAAGA,EACtD,CAtDAxN,EAAQiE,WAAaA,EAwDrB,MAAM+C,EACJkB,cACE7H,KAAKuN,QAAUpL,OAAOY,OAAO,MAC7B/C,KAAKwN,MAAQ,EACf,CAEAC,KAAKzL,GACCA,KAAQhC,KAAKuN,UACf,EAAIhJ,EAAMmJ,MAAM,gCAAgC1L,KAGlDhC,KAAKuN,QAAQvL,GAAQ2L,KAAKC,KAC5B,CAEAC,QAAQ7L,GACAA,KAAQhC,KAAKuN,UACjB,EAAIhJ,EAAMmJ,MAAM,kCAAkC1L,KAGpDhC,KAAKwN,MAAMtN,KAAK,CACd8B,OACA8L,MAAO9N,KAAKuN,QAAQvL,GACpBmL,IAAKQ,KAAKC,eAEL5N,KAAKuN,QAAQvL,EACtB,CAEA1B,WACE,MAAMyN,EAAS,GACf,IAAIC,EAAU,EAEd,IAAK,MAAMP,KAAQzN,KAAKwN,MAAO,CAC7B,MAAMxL,EAAOyL,EAAKzL,KAEdA,EAAKpB,OAASoN,IAChBA,EAAUhM,EAAKpB,OAEnB,CAEA,IAAK,MAAM6M,KAAQzN,KAAKwN,MAAO,CAC7B,MAAMS,EAAWR,EAAKN,IAAMM,EAAKK,MACjCC,EAAO7N,KAAK,GAAGuN,EAAKzL,KAAKkM,OAAOF,MAAYC,QAC9C,CAEA,OAAOF,EAAOlN,KAAK,GACrB,EAMF,SAAS0F,IACP,MAAwB,qBAAV8B,OAA6C,qBAAb8F,UAA4B,SAAUA,SAAS9K,WAAuC,qBAAnB+K,cACnH,CAEA,SAAS5H,EAAgBC,EAAKqB,GAC5B,IACE,MAAM,SACJuG,GACEvG,EAAU,IAAIwG,IAAI7H,EAAKqB,GAAW,IAAIwG,IAAI7H,GAC9C,MAAoB,UAAb4H,GAAqC,WAAbA,CAGjC,CAFE,MAAOE,GACP,OAAO,CACT,CACF,CAEA,SAAS1K,EAAW2K,GAClB,OAAO,IAAIvF,SAAQ,CAACC,EAASC,KAC3B,MAAMsF,EAASnH,SAASC,cAAc,UACtCkH,EAAOD,IAAMA,EACbC,EAAOC,OAASxF,EAEhBuF,EAAOE,QAAU,WACfxF,EAAO,IAAI/B,MAAM,0BAA0BqH,EAAOD,OACpD,GAEClH,SAASsH,MAAQtH,SAASuH,iBAAiBC,YAAYL,EAAO,GAEnE,CAEA,SAAS/H,EAAWqI,GAClBC,QAAQC,IAAI,yBAA2BF,EACzC,CAEA,IAAIG,EAnCJvP,EAAQgH,UAAYA,EAqCpB,MAAM7C,EACJqL,oBAAoBC,GAClB,IAAKA,KAAU,EAAI7K,EAAM8K,UAAUD,GACjC,OAAO,KAGJF,IACHA,EAAqB,IAAII,OAAO,6FAGlC,MAAMC,EAAUL,EAAmBM,KAAKJ,GAExC,IAAKG,EACH,OAAO,KAGT,MAAME,EAAOC,SAASH,EAAQ,GAAI,IAClC,IAAII,EAAQD,SAASH,EAAQ,GAAI,IACjCI,EAAQA,GAAS,GAAKA,GAAS,GAAKA,EAAQ,EAAI,EAChD,IAAIC,EAAMF,SAASH,EAAQ,GAAI,IAC/BK,EAAMA,GAAO,GAAKA,GAAO,GAAKA,EAAM,EACpC,IAAIC,EAAOH,SAASH,EAAQ,GAAI,IAChCM,EAAOA,GAAQ,GAAKA,GAAQ,GAAKA,EAAO,EACxC,IAAIC,EAASJ,SAASH,EAAQ,GAAI,IAClCO,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,IAAIC,EAASL,SAASH,EAAQ,GAAI,IAClCQ,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,MAAMC,EAAwBT,EAAQ,IAAM,IAC5C,IAAIU,EAAaP,SAASH,EAAQ,GAAI,IACtCU,EAAaA,GAAc,GAAKA,GAAc,GAAKA,EAAa,EAChE,IAAIC,EAAeR,SAASH,EAAQ,GAAI,KAAO,EAW/C,OAVAW,EAAeA,GAAgB,GAAKA,GAAgB,GAAKA,EAAe,EAE1C,MAA1BF,GACFH,GAAQI,EACRH,GAAUI,GACyB,MAA1BF,IACTH,GAAQI,EACRH,GAAUI,GAGL,IAAIvC,KAAKA,KAAKwC,IAAIV,EAAME,EAAOC,EAAKC,EAAMC,EAAQC,GAC3D,EAIFpQ,EAAQmE,cAAgBA,CAEjB,EAED,SAAUlE,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQyQ,gBAAkBA,EAC1BzQ,EAAQ0Q,cAAgBA,EACxB1Q,EAAQmK,OAASA,EACjBnK,EAAQ2Q,cAAgBA,EACxB3Q,EAAQ+E,wBAA0BA,GAClC/E,EAAQ4Q,kBAAoBA,EAC5B5Q,EAAQ6Q,KAAOA,EACf7Q,EAAQ8Q,cAAgBA,GACxB9Q,EAAQ+Q,aAAeA,GACvB/Q,EAAQgR,OAASA,GACjBhR,EAAQiR,WAAaA,GACrBjR,EAAQkR,MAAQA,GAChBlR,EAAQ0P,SAAWA,GACnB1P,EAAQmR,aAAeA,EACvBnR,EAAQgF,uBAAyBA,EACjChF,EAAQsF,qBAAuBA,EAC/BtF,EAAQoR,kBAAoBA,EAC5BpR,EAAQuF,OAASA,EACjBvF,EAAQqR,SAAWA,EACnBrR,EAAQkJ,cAAgBA,EACxBlJ,EAAQsR,kBAAoBA,GAC5BtR,EAAQuR,mBAAqBA,GAC7BvR,EAAQwR,mBAAqBA,GAC7BxR,EAAQ+N,KAAOA,EACf/N,EAAQyR,YAAcA,EACtBzR,EAAQ0R,sBAAwB1R,EAAQ2R,qBAAuB3R,EAAQ8E,gBAAkB9E,EAAQ4R,YAAc5R,EAAQ0F,KAAO1F,EAAQ6R,sBAAwB7R,EAAQwF,4BAA8BxF,EAAQ8R,kBAAoB9R,EAAQ+R,WAAa/R,EAAQqF,eAAiBrF,EAAQoF,kBAAoBpF,EAAQgS,kBAAoBhS,EAAQkF,oBAAsBlF,EAAQiF,oBAAsBjF,EAAQiS,eAAiBjS,EAAQ6E,oBAAsB7E,EAAQkS,UAAYlS,EAAQmS,SAAWnS,EAAQoS,eAAiBpS,EAAQqS,yBAA2BrS,EAAQsS,sBAAwBtS,EAAQuS,oBAAsBvS,EAAQwS,sBAAwBxS,EAAQyS,eAAiBzS,EAAQ0S,oBAAsB1S,EAAQ2S,0BAA4B3S,EAAQyF,qBAAuBzF,EAAQ2F,eAAiB3F,EAAQmF,IAAMnF,EAAQ4S,gBAAkB5S,EAAQ6S,qBAAuB7S,EAAQqM,mBAAgB,EAE52BvK,EAAoB,GAEpB,MAAM8Q,EAAkB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACxC5S,EAAQ4S,gBAAkBA,EAC1B,MAAMC,EAAuB,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,GACrD7S,EAAQ6S,qBAAuBA,EAC/B,MAAMxN,EAAiB,CACrByN,MAAO,EACPC,gBAAiB,EACjBC,KAAM,GACNC,mBAAoB,GACpBC,uBAAwB,IACxBC,uBAAwB,IACxBC,SAAU,KACVC,mBAAoB,MAEtBrT,EAAQqF,eAAiBA,EACzB,MAAMyM,EAAoB,CACxBwB,KAAM,EACNC,OAAQ,EACRC,YAAa,EACbC,UAAW,EACXC,iBAAkB,EAClBC,mBAAoB,EACpBC,wBAAyB,EACzBC,YAAa,EACbC,iBAAkB,EAClBC,iBAAkB,GAEpB/T,EAAQ8R,kBAAoBA,EAC5B,MAAMI,EAAY,CAChB8B,eAAgB,EAChBC,UAAW,EACXC,WAAY,GAEdlU,EAAQkS,UAAYA,EACpB,MAAME,EAAiB,CACrB+B,KAAM,EACNC,KAAM,EACNC,SAAU,EACVC,KAAM,EACNC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTC,SAAU,EACVC,UAAW,EACXC,UAAW,GACXC,SAAU,GACVC,UAAW,GACXC,MAAO,GACPC,MAAO,GACPC,IAAK,GACLC,MAAO,GACPC,eAAgB,GAChBC,MAAO,GACPC,MAAO,GACPC,OAAQ,GACRC,OAAQ,GACRC,YAAa,GACbC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,OAAQ,IAEV5V,EAAQoS,eAAiBA,EACzB,MAAMC,EAA2B,CAC/BwD,OAAQ,SACRC,OAAQ,UAEV9V,EAAQqS,yBAA2BA,EACnC,MAAMG,EAAwB,CAC5BqD,OAAQ,SACRE,SAAU,YAEZ/V,EAAQwS,sBAAwBA,EAChC,MAAMF,EAAwB,CAC5B0D,SAAU,WACVC,SAAU,WACVC,UAAW,YACXC,UAAW,YACX3N,KAAM,QAERxI,EAAQsS,sBAAwBA,EAChC,MAAMC,EAAsB,CAC1B6D,MAAO,QACPC,MAAO,KAETrW,EAAQuS,oBAAsBA,EAC9B,MAAME,EAAiB,CACrBgB,UAAW,EACX6C,OAAQ,EACRxD,MAAO,EACPyD,OAAQ,EACRC,SAAU,GACVC,OAAQ,GACRC,SAAU,GACVC,OAAQ,IACRC,aAAc,IACdC,eAAgB,KAElB7W,EAAQyS,eAAiBA,EACzB,MAAMC,EAAsB,CAC1BgE,SAAU,EACVI,SAAU,EACVC,SAAU,EACVC,UAAW,KACXC,SAAU,KACVC,cAAe,MACfC,MAAO,MACPC,WAAY,MACZC,MAAO,OACPC,KAAM,OACNC,KAAM,OACNC,WAAY,QACZC,YAAa,QACbC,gBAAiB,QACjBC,YAAa,QACbC,KAAM,SACNC,SAAU,SACVC,eAAgB,SAChBC,kBAAmB,UAErB/X,EAAQ0S,oBAAsBA,EAC9B,MAAMC,EAA4B,CAChCqF,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACPvD,UAAW,GAEb5U,EAAQ2S,0BAA4BA,EACpC,MAAMZ,EAAa,CACjBqG,QAAS,UACTC,MAAO,QACPC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OAEP7Y,EAAQ+R,WAAaA,EACrB,MAAMI,EAAW,CACfiG,QAAS,UACTU,MAAO,QACPC,OAAQ,SACRC,aAAc,eACdC,cAAe,gBACfC,SAAU,WACVC,aAAc,eACdC,MAAO,QACPC,SAAU,WACVC,MAAO,QACPC,QAAS,WAEXvZ,EAAQmS,SAAWA,EACnB,MAAMxM,EAAiB,CACrB6T,OAAQ,EACRC,SAAU,EACVC,MAAO,GAET1Z,EAAQ2F,eAAiBA,EACzB,MAAMd,EAAsB,CAC1B2D,KAAM,EACND,OAAQ,EACRoR,OAAQ,GAEV3Z,EAAQ6E,oBAAsBA,EAC9B,MAAMM,EAAM,CACVyU,WAAY,EACZC,aAAc,EACdC,WAAY,EACZC,YAAa,EACbC,cAAe,EACfC,QAAS,EACTC,mBAAoB,EACpBC,YAAa,EACbC,UAAW,EACXC,KAAM,GACNC,QAAS,GACT9O,UAAW,GACX+O,OAAQ,GACRC,OAAQ,GACRC,QAAS,GACTC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,UAAW,GACXC,OAAQ,GACRC,YAAa,GACbC,KAAM,GACNC,OAAQ,GACRC,WAAY,GACZC,aAAc,GACdC,gBAAiB,GACjBC,kBAAmB,GACnBC,QAAS,GACTC,KAAM,GACNC,OAAQ,GACRC,UAAW,GACXC,QAAS,GACTC,eAAgB,GAChBC,eAAgB,GAChBC,UAAW,GACXC,WAAY,GACZC,QAAS,GACTC,qBAAsB,GACtBC,YAAa,GACbC,SAAU,GACVC,mBAAoB,GACpBC,cAAe,GACfC,SAAU,GACVC,SAAU,GACVC,eAAgB,GAChBC,iBAAkB,GAClBC,2BAA4B,GAC5BC,aAAc,GACdC,sBAAuB,GACvBC,oBAAqB,GACrBC,kBAAmB,GACnBC,eAAgB,GAChBC,gBAAiB,GACjBC,aAAc,GACdC,cAAe,GACfC,cAAe,GACfC,YAAa,GACbC,kBAAmB,GACnBC,gBAAiB,GACjBC,mBAAoB,GACpBC,iBAAkB,GAClBC,YAAa,GACbC,iBAAkB,GAClBC,eAAgB,GAChBC,eAAgB,GAChBC,aAAc,GACdC,UAAW,GACXC,eAAgB,GAChBC,mBAAoB,GACpBC,wBAAyB,GACzBC,iBAAkB,GAClBC,YAAa,GACbC,UAAW,GACXC,sBAAuB,GACvBC,oBAAqB,GACrBC,WAAY,GACZC,SAAU,GACVC,iBAAkB,GAClBC,eAAgB,GAChBC,gBAAiB,GACjBC,cAAe,GACfC,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,kBAAmB,GACnBC,wBAAyB,GACzBC,6BAA8B,GAC9BC,wBAAyB,GACzBC,4BAA6B,GAC7BC,yBAA0B,GAC1BC,cAAe,IAEjBrf,EAAQmF,IAAMA,EACd,MAAMM,EAAuB,CAC3B6Z,QAAS,UACTC,MAAO,QACPC,WAAY,aACZC,MAAO,QACPC,eAAgB,iBAChBC,KAAM,OACNC,mBAAoB,qBACpBC,eAAgB,iBAChBC,aAAc,eACdC,mBAAoB,qBACpBC,eAAgB,iBAChBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,gBAAiB,kBACjBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,iBAAkB,oBAEpBvgB,EAAQyF,qBAAuBA,EAC/B,MAAML,EAAoB,CACxBob,cAAe,EACfC,mBAAoB,GAEtBzgB,EAAQoF,kBAAoBA,EAC5B,IAAIsb,EAAY/a,EAAe8T,SAE/B,SAASrI,EAAkBuP,GACrBC,OAAOC,UAAUF,KACnBD,EAAYC,EAEhB,CAEA,SAAS/P,IACP,OAAO8P,CACT,CAEA,SAAS7P,EAAKvE,GACRoU,GAAa/a,EAAe+T,OAC9BrK,QAAQC,IAAI,SAAShD,IAEzB,CAEA,SAASyB,EAAKzB,GACRoU,GAAa/a,EAAe8T,UAC9BpK,QAAQC,IAAI,YAAYhD,IAE5B,CAEA,SAASmF,EAAYnF,GACnB,MAAM,IAAI7E,MAAM6E,EAClB,CAEA,SAASnC,EAAO2W,EAAMxU,GACfwU,GACHrP,EAAYnF,EAEhB,CAEA,SAAS6E,EAAahJ,EAAS4Y,GAC7B,IAAIC,EAEJ,IAGE,GAFAA,EAAO,IAAIrS,IAAIxG,IAEV6Y,EAAKC,QAA0B,SAAhBD,EAAKC,OACvB,OAAO,CAIX,CAFE,MAAOC,GACP,OAAO,CACT,CAEA,MAAMC,EAAQ,IAAIxS,IAAIoS,EAAUC,GAChC,OAAOA,EAAKC,SAAWE,EAAMF,MAC/B,CAEA,SAASG,EAAiBta,GACxB,IAAKA,EACH,OAAO,EAGT,OAAQA,EAAI4H,UACV,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,OACH,OAAO,EAET,QACE,OAAO,EAEb,CAEA,SAAS1J,EAAuB8B,EAAKqB,GACnC,IAAKrB,EACH,OAAO,KAGT,IACE,MAAMua,EAAclZ,EAAU,IAAIwG,IAAI7H,EAAKqB,GAAW,IAAIwG,IAAI7H,GAE9D,GAAIsa,EAAiBC,GACnB,OAAOA,CAEG,CAAZ,MAAOzS,GAAK,CAEd,OAAO,IACT,CAEA,SAASrJ,EAAO+b,EAAKC,EAAMxe,GAOzB,OANAP,OAAOC,eAAe6e,EAAKC,EAAM,CAC/Bxe,QACAL,YAAY,EACZ8e,cAAc,EACdC,UAAU,IAEL1e,CACT,CAEA,MAAMsJ,EAAgB,WACpB,SAASA,EAAcqV,GACjBrhB,KAAK6H,cAAgBmE,GACvBoF,EAAY,oCAGdpR,KAAKqhB,QAAUA,EACfrhB,KAAKgC,KAAOhC,KAAK6H,YAAY7F,IAC/B,CAIA,OAFAgK,EAAc3I,UAAY,IAAI+D,MAC9B4E,EAAcnE,YAAcmE,EACrBA,CACT,CAbsB,GAetBrM,EAAQqM,cAAgBA,EAExB,MAAM2F,UAA0B3F,EAC9BnE,YAAYoE,EAAKqV,GACfpV,MAAMD,GACNjM,KAAKshB,KAAOA,CACd,EAIF3hB,EAAQgS,kBAAoBA,EAE5B,MAAMH,UAA8BxF,EAClCnE,YAAYoE,EAAK8C,GACf7C,MAAMD,GACNjM,KAAK+O,QAAUA,CACjB,EAIFpP,EAAQ6R,sBAAwBA,EAEhC,MAAM5M,UAA4BoH,GAElCrM,EAAQiF,oBAAsBA,EAE9B,MAAMC,UAA4BmH,GAElCrM,EAAQkF,oBAAsBA,EAE9B,MAAMM,UAAoC6G,EACxCnE,YAAYoE,EAAKtC,GACfuC,MAAMD,GACNjM,KAAK2J,OAASA,CAChB,EAIFhK,EAAQwF,4BAA8BA,EAEtC,MAAMoM,UAAoBvF,GAE1BrM,EAAQ4R,YAAcA,EAEtB,MAAMK,UAAuB5F,GAE7BrM,EAAQiS,eAAiBA,EACzB,MAAM2P,EAAuB,QAE7B,SAAStc,EAAqBuc,GAC5B,MAAmB,kBAARA,GACT9T,EAAK,2DACE8T,GAGFA,EAAIC,QAAQF,EAAsB,GAC3C,CAEA,SAASjR,EAAcoR,GACrB5X,EAAiB,OAAV4X,GAAmC,kBAAVA,QAAuCtgB,IAAjBsgB,EAAM9gB,OAAsB,sCAClF,MAAMA,EAAS8gB,EAAM9gB,OACf+gB,EAAqB,KAE3B,GAAI/gB,EAAS+gB,EACX,OAAOC,OAAOC,aAAaC,MAAM,KAAMJ,GAGzC,MAAMK,EAAS,GAEf,IAAK,IAAIjhB,EAAI,EAAGA,EAAIF,EAAQE,GAAK6gB,EAAoB,CACnD,MAAMK,EAAW/W,KAAKmC,IAAItM,EAAI6gB,EAAoB/gB,GAC5CqhB,EAAQP,EAAMQ,SAASphB,EAAGkhB,GAChCD,EAAO7hB,KAAK0hB,OAAOC,aAAaC,MAAM,KAAMG,GAC9C,CAEA,OAAOF,EAAOlhB,KAAK,GACrB,CAEA,SAASgI,EAAc2Y,GACrB1X,EAAsB,kBAAR0X,EAAkB,sCAChC,MAAM5gB,EAAS4gB,EAAI5gB,OACb8gB,EAAQ,IAAI/Y,WAAW/H,GAE7B,IAAK,IAAIE,EAAI,EAAGA,EAAIF,IAAUE,EAC5B4gB,EAAM5gB,GAAyB,IAApB0gB,EAAIW,WAAWrhB,GAG5B,OAAO4gB,CACT,CAEA,SAAStR,EAAgBgS,GACvB,YAAmBhhB,IAAfghB,EAAIxhB,OACCwhB,EAAIxhB,QAGbkJ,OAA0B1I,IAAnBghB,EAAIC,WAA0B,uCAC9BD,EAAIC,WACb,CAEA,SAAShS,EAAc+R,GACrB,MAAMxhB,EAASwhB,EAAIxhB,OAEnB,GAAe,IAAXA,GAAgBwhB,EAAI,aAAczZ,WACpC,OAAOyZ,EAAI,GAGb,IAAIE,EAAe,EAEnB,IAAK,IAAIxhB,EAAI,EAAGA,EAAIF,EAAQE,IAC1BwhB,GAAgBlS,EAAgBgS,EAAIthB,IAGtC,IAAIyhB,EAAM,EACV,MAAMC,EAAO,IAAI7Z,WAAW2Z,GAE5B,IAAK,IAAIxhB,EAAI,EAAGA,EAAIF,EAAQE,IAAK,CAC/B,IAAIN,EAAO4hB,EAAIthB,GAETN,aAAgBmI,aAElBnI,EADkB,kBAATA,EACFqI,EAAcrI,GAEd,IAAImI,WAAWnI,IAI1B,MAAMiiB,EAAajiB,EAAK6hB,WACxBG,EAAKE,IAAIliB,EAAM+hB,GACfA,GAAOE,CACT,CAEA,OAAOD,CACT,CAEA,SAASxR,EAAStO,GAChB,OAAOkf,OAAOC,aAAanf,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,EACxF,CAEA,SAASigB,IACP,MAAMC,EAAU,IAAIja,WAAW,GAC/Bia,EAAQ,GAAK,EACb,MAAMC,EAAS,IAAIC,YAAYF,EAAQG,OAAQ,EAAG,GAClD,OAAqB,IAAdF,EAAO,EAChB,CAEA,MAAMvR,EAAuB,CACvB5O,YACF,OAAOwC,EAAOlF,KAAM,QAAS2iB,IAC/B,GAKF,SAASK,IACP,IAEE,OADA,IAAIC,SAAS,KACN,CAGT,CAFE,MAAOpC,GACP,OAAO,CACT,CACF,CATAlhB,EAAQ2R,qBAAuBA,EAW/B,MAAMD,EAAwB,CACxB3O,YACF,OAAOwC,EAAOlF,KAAM,QAASgjB,IAC/B,GAGFrjB,EAAQ0R,sBAAwBA,EAChC,MAAM6R,EAAS,CAAC,OAAQ,EAAG,IAAK,EAAG,IAAK,EAAG,KAE3C,MAAM7d,GACJ8J,kBAAkB5M,EAAG4gB,EAAGC,GAItB,OAHAF,EAAO,GAAK3gB,EACZ2gB,EAAO,GAAKC,EACZD,EAAO,GAAKE,EACLF,EAAOriB,KAAK,GACrB,CAEAsO,iBAAiBkU,EAAIC,GACnB,MAAO,CAACD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAIA,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAChN,CAEAlU,sBAAsB5L,EAAG1B,GACvB,MAAM0hB,EAAKhgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GACnC2hB,EAAKjgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GACzC,MAAO,CAAC0hB,EAAIC,EACd,CAEArU,6BAA6B5L,EAAG1B,GAC9B,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAC3B0hB,GAAMhgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EAC/DyhB,IAAOjgB,EAAE,GAAK1B,EAAE,GAAK0B,EAAE,GAAK1B,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EACtE,MAAO,CAACwhB,EAAIC,EACd,CAEArU,kCAAkC5M,EAAGV,GACnC,MAAM4hB,EAAKpe,GAAKoG,eAAelJ,EAAGV,GAC5B6hB,EAAKre,GAAKoG,eAAelJ,EAAE8I,MAAM,EAAG,GAAIxJ,GACxC8hB,EAAKte,GAAKoG,eAAe,CAAClJ,EAAE,GAAIA,EAAE,IAAKV,GACvC+hB,EAAKve,GAAKoG,eAAe,CAAClJ,EAAE,GAAIA,EAAE,IAAKV,GAC7C,MAAO,CAACoJ,KAAKmC,IAAIqW,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAAK3Y,KAAKmC,IAAIqW,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAAK3Y,KAAK4Y,IAAIJ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAAK3Y,KAAK4Y,IAAIJ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAC7J,CAEAzU,wBAAwBtN,GACtB,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACjC,MAAO,CAACA,EAAE,GAAKE,GAAIF,EAAE,GAAKE,GAAIF,EAAE,GAAKE,EAAGF,EAAE,GAAKE,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EACnH,CAEAoN,wBAAwBtN,EAAGiiB,GACzB,MAAO,CAACjiB,EAAE,GAAKiiB,EAAE,GAAKjiB,EAAE,GAAKiiB,EAAE,GAAKjiB,EAAE,GAAKiiB,EAAE,GAAIjiB,EAAE,GAAKiiB,EAAE,GAAKjiB,EAAE,GAAKiiB,EAAE,GAAKjiB,EAAE,GAAKiiB,EAAE,GAAIjiB,EAAE,GAAKiiB,EAAE,GAAKjiB,EAAE,GAAKiiB,EAAE,GAAKjiB,EAAE,GAAKiiB,EAAE,GACjI,CAEA3U,qCAAqCtN,GACnC,MAAMkiB,EAAY,CAACliB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACjCmiB,EAAIniB,EAAE,GAAKkiB,EAAU,GAAKliB,EAAE,GAAKkiB,EAAU,GAC3CX,EAAIvhB,EAAE,GAAKkiB,EAAU,GAAKliB,EAAE,GAAKkiB,EAAU,GAC3CjiB,EAAID,EAAE,GAAKkiB,EAAU,GAAKliB,EAAE,GAAKkiB,EAAU,GAC3ChiB,EAAIF,EAAE,GAAKkiB,EAAU,GAAKliB,EAAE,GAAKkiB,EAAU,GAC3CE,GAASD,EAAIjiB,GAAK,EAClBgO,EAAS9E,KAAKiZ,MAAMF,EAAIjiB,IAAMiiB,EAAIjiB,GAAK,GAAKiiB,EAAIjiB,EAAID,EAAIshB,IAAM,EAC9De,EAAKF,EAAQlU,GAAU,EACvBqU,EAAKH,EAAQlU,GAAU,EAC7B,MAAO,CAAC9E,KAAKiZ,KAAKC,GAAKlZ,KAAKiZ,KAAKE,GACnC,CAEAjV,qBAAqBxD,GACnB,MAAMpJ,EAAIoJ,EAAKN,MAAM,GAYrB,OAVIM,EAAK,GAAKA,EAAK,KACjBpJ,EAAE,GAAKoJ,EAAK,GACZpJ,EAAE,GAAKoJ,EAAK,IAGVA,EAAK,GAAKA,EAAK,KACjBpJ,EAAE,GAAKoJ,EAAK,GACZpJ,EAAE,GAAKoJ,EAAK,IAGPpJ,CACT,CAEA4M,iBAAiBkV,EAAOC,GACtB,SAASC,EAAQP,EAAGZ,GAClB,OAAOY,EAAIZ,CACb,CAEA,MAAMoB,EAAW,CAACH,EAAM,GAAIA,EAAM,GAAIC,EAAM,GAAIA,EAAM,IAAIG,KAAKF,GACzDG,EAAW,CAACL,EAAM,GAAIA,EAAM,GAAIC,EAAM,GAAIA,EAAM,IAAIG,KAAKF,GACzDI,EAAS,GAIf,OAHAN,EAAQhf,GAAKuf,cAAcP,GAC3BC,EAAQjf,GAAKuf,cAAcN,GAEvBE,EAAS,KAAOH,EAAM,IAAMG,EAAS,KAAOF,EAAM,IAAME,EAAS,KAAOF,EAAM,IAAME,EAAS,KAAOH,EAAM,IAC5GM,EAAO,GAAKH,EAAS,GACrBG,EAAO,GAAKH,EAAS,GAKnBE,EAAS,KAAOL,EAAM,IAAMK,EAAS,KAAOJ,EAAM,IAAMI,EAAS,KAAOJ,EAAM,IAAMI,EAAS,KAAOL,EAAM,IAC5GM,EAAO,GAAKD,EAAS,GACrBC,EAAO,GAAKD,EAAS,GAKhBC,GAHE,MAPA,IAWX,EAIFhlB,EAAQ0F,KAAOA,GACf,MAAMwf,GAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,IAAO,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,MAEjrB,SAAS5T,GAAkBuQ,GACzB,MAAM5gB,EAAS4gB,EAAI5gB,OACbmhB,EAAS,GAEf,GAAe,MAAXP,EAAI,IAA4B,MAAXA,EAAI,GAC3B,IAAK,IAAI1gB,EAAI,EAAGA,EAAIF,EAAQE,GAAK,EAC/BihB,EAAO7hB,KAAK0hB,OAAOC,aAAaL,EAAIW,WAAWrhB,IAAM,EAAI0gB,EAAIW,WAAWrhB,EAAI,UAEzE,GAAe,MAAX0gB,EAAI,IAA4B,MAAXA,EAAI,GAClC,IAAK,IAAI1gB,EAAI,EAAGA,EAAIF,EAAQE,GAAK,EAC/BihB,EAAO7hB,KAAK0hB,OAAOC,aAAaL,EAAIW,WAAWrhB,EAAI,IAAM,EAAI0gB,EAAIW,WAAWrhB,UAG9E,IAAK,IAAIA,EAAI,EAAGA,EAAIF,IAAUE,EAAG,CAC/B,MAAMwgB,EAAOuD,GAAwBrD,EAAIW,WAAWrhB,IACpDihB,EAAO7hB,KAAKohB,EAAOM,OAAOC,aAAaP,GAAQE,EAAIsD,OAAOhkB,GAC5D,CAGF,OAAOihB,EAAOlhB,KAAK,GACrB,CAEA,SAASqQ,GAAmBsQ,GAC1B,OAAOuD,mBAAmBC,OAAOxD,GACnC,CAEA,SAASrQ,GAAmBqQ,GAC1B,OAAOyD,SAASC,mBAAmB1D,GACrC,CAEA,SAAS5Q,GAAWqQ,GAClB,IAAK,MAAMje,KAAOie,EAChB,OAAO,EAGT,OAAO,CACT,CAEA,SAAStQ,GAAOmT,GACd,MAAoB,mBAANA,CAChB,CAEA,SAASjT,GAAMiT,GACb,MAAoB,kBAANA,CAChB,CAEA,SAASzU,GAASyU,GAChB,MAAoB,kBAANA,CAChB,CAEA,SAASrT,GAAcqT,GACrB,MAAoB,kBAANA,GAAwB,OAANA,QAA+B1iB,IAAjB0iB,EAAEzB,UAClD,CAEA,SAAS3R,GAAayU,EAAMC,GAC1B,OAAID,EAAKvkB,SAAWwkB,EAAKxkB,QAIlBukB,EAAKE,OAAM,SAAUC,EAASC,GACnC,OAAOD,IAAYF,EAAKG,EAC1B,GACF,CAEA,SAAS7gB,KACP,MAAM8gB,EAAarjB,OAAOY,OAAO,MACjC,IAAI0iB,GAAY,EAkBhB,OAjBAtjB,OAAOC,eAAeojB,EAAY,UAAW,CAC3CljB,MACE,OAAOmjB,CACT,IAGFD,EAAWE,QAAU,IAAIzc,SAAQ,SAAUC,EAASC,GAClDqc,EAAWtc,QAAU,SAAUsZ,GAC7BiD,GAAY,EACZvc,EAAQsZ,EACV,EAEAgD,EAAWrc,OAAS,SAAUH,GAC5Byc,GAAY,EACZtc,EAAOH,EACT,CACF,IACOwc,CACT,CAEA,MAAM/gB,GAAkB,WACtB,MAAMkhB,EAAS,oEACf,OAAO,SAAyBnD,EAAMoD,EAAaC,GAAkB,GACnE,IAAKA,GAAmBvX,IAAI7J,gBAAiB,CAC3C,MAAMqhB,EAAO,IAAIC,KAAK,CAACvD,GAAO,CAC5BtY,KAAM0b,IAER,OAAOtX,IAAI7J,gBAAgBqhB,EAC7B,CAEA,IAAI/C,EAAS,QAAQ6C,YAErB,IAAK,IAAI9kB,EAAI,EAAGklB,EAAKxD,EAAK5hB,OAAQE,EAAIklB,EAAIllB,GAAK,EAAG,CAChD,MAAMmlB,EAAe,IAAVzD,EAAK1hB,GACVolB,EAAmB,IAAd1D,EAAK1hB,EAAI,GACdqlB,EAAmB,IAAd3D,EAAK1hB,EAAI,GACdslB,EAAKH,GAAM,EACXI,GAAW,EAALJ,IAAW,EAAIC,GAAM,EAC3BI,EAAKxlB,EAAI,EAAIklB,GAAW,GAALE,IAAa,EAAIC,GAAM,EAAI,GAC9CI,EAAKzlB,EAAI,EAAIklB,EAAU,GAALG,EAAY,GACpCpD,GAAU4C,EAAOS,GAAMT,EAAOU,GAAMV,EAAOW,GAAMX,EAAOY,EAC1D,CAEA,OAAOxD,CACT,CACF,CAzBwB,GA2BxBpjB,EAAQ8E,gBAAkBA,EAEnB,EAED,SAAU7E,EAAQD,EAAS8B,GAEjC,aAGeA,EAAoB,EAI5B,EAED,SAAU7B,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQsG,cAAW,EACnB,MAAMA,EAA8B,kBAAZugB,SAAwBA,QAAU,KAAO,qBAAuBA,QAAQC,SAASC,KAAOF,QAAQC,SAASE,SACjIhnB,EAAQsG,SAAWA,CAEZ,EAED,SAAUrG,OAAQD,QAAS8B,qBAEjC,aAGAU,OAAOC,eAAezC,QAAS,aAAc,CAC3C+C,OAAO,IAET/C,QAAQuE,YAAcA,YACtBvE,QAAQwG,2BAA6BA,2BACrCxG,QAAQsE,MAAQtE,QAAQ2E,QAAU3E,QAAQinB,aAAejnB,QAAQknB,iBAAmBlnB,QAAQ0E,UAAY1E,QAAQyE,sBAAwBzE,QAAQwE,kBAAe,EAE/J,IAAII,MAAQ9C,oBAAoB,GAE5BgC,eAAiBhC,oBAAoB,GAErCqlB,aAAerlB,oBAAoB,GAEnCgE,mBAAqBhE,oBAAoB,GAEzCslB,QAAUtlB,oBAAoB,GAE9BkE,gBAAkBlE,oBAAoB,IAEtCulB,SAAWvlB,oBAAoB,GAE/BwlB,iBAAmBxlB,oBAAoB,IAEvCylB,UAAYzlB,oBAAoB,IAEhC0lB,kBAAoB1lB,oBAAoB,IAExC2lB,OAAS3lB,oBAAoB,IAEjC,MAAM4lB,yBAA2B,MAC3BC,4BAA8B,IACpC,IAAIC,uBAEJ,SAASphB,2BAA2BqhB,GAClCD,uBAAyBC,CAC3B,CAEA,SAAStjB,YAAYsK,GACnB,MAAMiZ,EAAO,IAAIC,uBACjB,IAAIC,EAEJ,GAAmB,kBAARnZ,EACTmZ,EAAS,CACPlhB,IAAK+H,QAEF,IAAI,EAAIjK,MAAMkM,eAAejC,GAClCmZ,EAAS,CACPnF,KAAMhU,QAEH,GAAIA,aAAepK,sBACxBujB,EAAS,CACPC,MAAOpZ,OAEJ,CACL,GAAmB,kBAARA,EACT,MAAM,IAAIpH,MAAM,0FAGlB,IAAKoH,EAAI/H,MAAQ+H,EAAIgU,OAAShU,EAAIoZ,MAChC,MAAM,IAAIxgB,MAAM,+DAGlBugB,EAASnZ,CACX,CAEA,MAAMpI,EAASjE,OAAOY,OAAO,MAC7B,IAAI8kB,EAAiB,KACjBC,EAAS,KAEb,IAAK,MAAM9kB,KAAO2kB,EAChB,GAAY,QAAR3kB,GAAmC,qBAAX+kB,OAGrB,GAAY,UAAR/kB,EAGJ,GAAY,WAARA,EAGJ,GAAY,SAARA,GAAoB2kB,EAAO3kB,aAAgB2F,WAgBtDvC,EAAOpD,GAAO2kB,EAAO3kB,OAhBd,CACL,MAAMglB,EAAWL,EAAO3kB,GAExB,GAAwB,kBAAbglB,EACT5hB,EAAOpD,IAAO,EAAIuB,MAAMsE,eAAemf,QAClC,GAAwB,kBAAbA,GAAsC,OAAbA,GAAsBC,MAAMD,EAASpnB,QAEzE,MAAI,EAAI2D,MAAMkM,eAAeuX,GAGlC,MAAM,IAAI5gB,MAAM,8GAFhBhB,EAAOpD,GAAO,IAAI2F,WAAWqf,EAG/B,MALE5hB,EAAOpD,GAAO,IAAI2F,WAAWqf,EAQjC,MAhBEF,EAASH,EAAO3kB,QAHhB6kB,EAAiBF,EAAO3kB,QAHxBoD,EAAOpD,GAAO,IAAIsL,IAAIqZ,EAAO3kB,GAAM+kB,OAAOG,UAAUtb,KA2DxD,GAhCAxG,EAAO+hB,eAAiB/hB,EAAO+hB,gBAAkBd,yBACjDjhB,EAAOgiB,kBAAoBhiB,EAAOgiB,mBAAqB3kB,eAAeoD,qBACtET,EAAOiiB,cAAuC,IAAxBjiB,EAAOkiB,aAC7BliB,EAAOmiB,qBAAqD,IAA/BniB,EAAOmiB,oBACpCniB,EAAOoiB,QAA2B,IAAlBpiB,EAAOoiB,OAElBjI,OAAOC,UAAUpa,EAAOqiB,gBAC3BriB,EAAOqiB,cAAgB,GAGa,mBAA3BriB,EAAO4c,kBAChB5c,EAAO4c,iBAAkB,GAGW,mBAA3B5c,EAAOsiB,kBAChBtiB,EAAOsiB,gBAAkBjjB,mBAAmBC,uBAAuBgjB,kBAAmB,GAGrD,mBAAxBtiB,EAAOuiB,eAChBviB,EAAOuiB,cAAe,GAGY,mBAAzBviB,EAAOwiB,gBAChBxiB,EAAOwiB,eAAgB,GAGc,mBAA5BxiB,EAAOyiB,mBAChBziB,EAAOyiB,kBAAmB,IAG5B,EAAItkB,MAAMwM,mBAAmB3K,EAAOia,YAE/ByH,EAAQ,CACX,MAAMgB,EAAe,CACnBzI,UAAWja,EAAOia,UAClB0I,KAAMpjB,gBAAgBC,oBAAoBojB,YAE5ClB,EAASgB,EAAaC,KAAO1kB,UAAU4kB,SAASH,GAAgB,IAAIzkB,UAAUykB,GAC9ErB,EAAKyB,QAAUpB,CACjB,CAEA,MAAMqB,EAAQ1B,EAAK0B,MA6CnB,OA5CArB,EAAOpC,QAAQpd,MAAK,WAClB,GAAImf,EAAK2B,UACP,MAAM,IAAIhiB,MAAM,mBAGlB,MAAMiiB,EAAkBC,eAAexB,EAAQ1hB,EAAQyhB,EAAgBsB,GAEjEI,EAAuB,IAAItgB,SAAQ,SAAUC,GACjD,IAAIsgB,EAEA3B,EACF2B,EAAgB,IAAIrC,kBAAkBsC,uBAAuB,CAC3D7oB,OAAQwF,EAAOxF,OACf8oB,YAAatjB,EAAOsjB,YACpBC,gBAAiBvjB,EAAOujB,gBACxBhB,aAAcviB,EAAOuiB,aACrBC,cAAexiB,EAAOwiB,eACrBf,GACOzhB,EAAOoc,OACjBgH,EAAgBjC,uBAAuB,CACrC9gB,IAAKL,EAAOK,IACZ7F,OAAQwF,EAAOxF,OACfgpB,YAAaxjB,EAAOwjB,YACpBC,gBAAiBzjB,EAAOyjB,gBACxB1B,eAAgB/hB,EAAO+hB,eACvBQ,aAAcviB,EAAOuiB,aACrBC,cAAexiB,EAAOwiB,iBAI1B1f,EAAQsgB,EACV,IACA,OAAOvgB,QAAQ6gB,IAAI,CAACT,EAAiBE,IAAuBjhB,MAAK,UAAWyhB,EAAUP,IACpF,GAAI/B,EAAK2B,UACP,MAAM,IAAIhiB,MAAM,mBAGlB,MAAM4iB,EAAiB,IAAI/C,iBAAiBgD,eAAed,EAAOY,EAAUjC,EAAOiB,MACnFiB,EAAeE,qBAAuBpC,EAAOoC,qBAC7C,MAAMC,EAAY,IAAIC,gBAAgBJ,EAAgBvC,EAAM+B,EAAepjB,GAC3EqhB,EAAK4C,WAAaF,EAClBH,EAAengB,KAAK,QAAS,KAC/B,GACF,IAAGd,MAAM0e,EAAK6C,YAAYnhB,QACnBse,CACT,CAEA,SAAS6B,eAAexB,EAAQH,EAAQ4C,EAAuBpB,GAC7D,OAAIrB,EAAOsB,UACFngB,QAAQE,OAAO,IAAI/B,MAAM,0BAG9BmjB,IACF5C,EAAO/mB,OAAS2pB,EAAsB3pB,OACtC+mB,EAAO+B,YAAca,EAAsBb,YAC3C/B,EAAOgC,gBAAkBY,EAAsBZ,iBAG1C7B,EAAOkC,eAAeQ,gBAAgB,gBAAiB,CAC5DrB,QACAsB,WAAY,UACZ9C,OAAQ,CACNnF,KAAMmF,EAAOnF,KACb/b,IAAKkhB,EAAOlhB,IACZikB,SAAU/C,EAAO+C,SACjB7B,iBAAkBlB,EAAOkB,iBACzBV,eAAgBR,EAAOQ,eACvBvnB,OAAQ+mB,EAAO/mB,QAEjB6nB,aAAcd,EAAOc,aACrBC,gBAAiBf,EAAOe,gBACxBwB,qBAAsBpC,EAAOoC,qBAC7BS,WAAYhD,EAAOgD,WACnBtC,aAAcV,EAAOU,aACrBrF,gBAAiB2E,EAAO3E,gBACxBuF,oBAAqBZ,EAAOY,sBAC3BjgB,MAAK,SAAUyhB,GAChB,GAAIjC,EAAOsB,UACT,MAAM,IAAIhiB,MAAM,wBAGlB,OAAO2iB,CACT,IACF,CAEA,MAAMrC,uBAAyB,WAC7B,IAAIkD,EAAiB,EAErB,MAAMlD,EACJ7f,cACE7H,KAAKsqB,aAAc,EAAI/lB,MAAMG,2BAC7B1E,KAAKqqB,WAAa,KAClBrqB,KAAKkpB,QAAU,KACflpB,KAAKmpB,MAAQ,IAAMyB,IACnB5qB,KAAKopB,WAAY,EACjBppB,KAAK6qB,WAAa,KAClB7qB,KAAK8qB,WAAa,KAClB9qB,KAAK+qB,qBAAuB,IAC9B,CAEIrF,cACF,OAAO1lB,KAAKsqB,YAAY5E,OAC1B,CAEA9d,UACE5H,KAAKopB,WAAY,EACjB,MAAM4B,EAAsBhrB,KAAKqqB,WAAiCrqB,KAAKqqB,WAAWziB,UAApCqB,QAAQC,UACtD,OAAO8hB,EAAmB1iB,MAAK,KAC7BtI,KAAKqqB,WAAa,KAEdrqB,KAAKkpB,UACPlpB,KAAKkpB,QAAQthB,UAEb5H,KAAKkpB,QAAU,KACjB,GAEJ,EAIF,OAAOxB,CACT,CApC+B,GAsC/B,MAAMtjB,sBACJyD,YAAYjH,EAAQ8oB,EAAaC,GAAkB,GACjD3pB,KAAKY,OAASA,EACdZ,KAAK0pB,YAAcA,EACnB1pB,KAAK2pB,gBAAkBA,EACvB3pB,KAAKirB,gBAAkB,GACvBjrB,KAAKkrB,mBAAqB,GAC1BlrB,KAAKmrB,0BAA4B,GACjCnrB,KAAKorB,0BAA4B,GACjCprB,KAAKqrB,kBAAmB,EAAI9mB,MAAMG,0BACpC,CAEA4mB,iBAAiBC,GACfvrB,KAAKirB,gBAAgB/qB,KAAKqrB,EAC5B,CAEAC,oBAAoBD,GAClBvrB,KAAKkrB,mBAAmBhrB,KAAKqrB,EAC/B,CAEAE,2BAA2BF,GACzBvrB,KAAKmrB,0BAA0BjrB,KAAKqrB,EACtC,CAEAG,2BAA2BH,GACzBvrB,KAAKorB,0BAA0BlrB,KAAKqrB,EACtC,CAEAI,YAAYC,EAAO3J,GACjB,IAAK,MAAMsJ,KAAYvrB,KAAKirB,gBAC1BM,EAASK,EAAO3J,EAEpB,CAEA4J,eAAeC,EAAQC,GACrB/rB,KAAKqrB,iBAAiB3F,QAAQpd,MAAK,KACjC,IAAK,MAAMijB,KAAYvrB,KAAKkrB,mBAC1BK,EAASO,EAAQC,EACnB,GAEJ,CAEAC,sBAAsB/J,GACpBjiB,KAAKqrB,iBAAiB3F,QAAQpd,MAAK,KACjC,IAAK,MAAMijB,KAAYvrB,KAAKmrB,0BAC1BI,EAAStJ,EACX,GAEJ,CAEAgK,wBACEjsB,KAAKqrB,iBAAiB3F,QAAQpd,MAAK,KACjC,IAAK,MAAMijB,KAAYvrB,KAAKorB,0BAC1BG,GACF,GAEJ,CAEAW,iBACElsB,KAAKqrB,iBAAiBniB,SACxB,CAEAijB,iBAAiBP,EAAOze,IACtB,EAAI5I,MAAM6M,aAAa,yDACzB,CAEAgb,QAAS,EAIXzsB,QAAQyE,sBAAwBA,sBAEhC,MAAMyiB,iBACJhf,YAAYwkB,EAASlC,GACnBnqB,KAAKssB,SAAWD,EAChBrsB,KAAKqqB,WAAaF,CACpB,CAEIoC,eACF,OAAOvsB,KAAKssB,SAASC,QACvB,CAEIC,kBACF,OAAOxsB,KAAKssB,SAASE,WACvB,CAEAC,QAAQC,GACN,OAAO1sB,KAAKqqB,WAAWoC,QAAQC,EACjC,CAEAC,aAAaC,GACX,OAAO5sB,KAAKqqB,WAAWsC,aAAaC,EACtC,CAEAC,kBACE,OAAO7sB,KAAKqqB,WAAWwC,iBACzB,CAEAC,eAAe3sB,GACb,OAAOH,KAAKqqB,WAAWyC,eAAe3sB,EACxC,CAEA4sB,gBACE,OAAO/sB,KAAKqqB,WAAW0C,eACzB,CAEAC,gBACE,OAAOhtB,KAAKqqB,WAAW2C,eACzB,CAEAC,cACE,OAAOjtB,KAAKqqB,WAAW4C,aACzB,CAEAC,uBACE,OAAOltB,KAAKqqB,WAAW6C,sBACzB,CAEAC,gBACE,OAAOntB,KAAKqqB,WAAW8C,eACzB,CAEAC,2BAEE,OADA,EAAI3pB,eAAeiD,YAAY,wDACxB1G,KAAKmtB,gBAAgB7kB,MAAK,SAAU+kB,GACzC,OAAOA,GAAcA,EAAWC,KAAOD,EAAWC,KAAO,IAC3D,GACF,CAEAC,iBACE,OAAOvtB,KAAKqqB,WAAWkD,gBACzB,CAEAC,gBACE,OAAOxtB,KAAKqqB,WAAWmD,eACzB,CAEAC,aACE,OAAOztB,KAAKqqB,WAAWoD,YACzB,CAEAC,iBACE,OAAO1tB,KAAKqqB,WAAWqD,gBACzB,CAEAC,cACE,OAAO3tB,KAAKqqB,WAAWsD,aACzB,CAEAC,UACE,OAAO5tB,KAAKqqB,WAAWuD,SACzB,CAEAC,kBACE,OAAO7tB,KAAKqqB,WAAWyD,uBAAuBpI,OAChD,CAEAqI,WACE,OAAO/tB,KAAKqqB,WAAW0D,UACzB,CAEAC,UACE,OAAOhuB,KAAKqqB,WAAW4D,cACzB,CAEArmB,UACE,OAAO5H,KAAKkuB,YAAYtmB,SAC1B,CAEIumB,oBACF,OAAOnuB,KAAKqqB,WAAW8D,aACzB,CAEID,kBACF,OAAOluB,KAAKqqB,WAAW6D,WACzB,EAIFvuB,QAAQknB,iBAAmBA,iBAE3B,MAAMD,aACJ/e,YAAYumB,EAAWC,EAAUlE,EAAW3B,GAAS,GACnDxoB,KAAKsuB,WAAaF,EAClBpuB,KAAKuuB,UAAYF,EACjBruB,KAAKqqB,WAAaF,EAClBnqB,KAAKwuB,OAAShG,EAAS,IAAI/kB,eAAekD,UAAc,KACxD3G,KAAKyuB,QAAUjG,EACfxoB,KAAK0uB,WAAavE,EAAUuE,WAC5B1uB,KAAK2uB,KAAO,IAAIC,WAChB5uB,KAAK6uB,oBAAqB,EAC1B7uB,KAAK8uB,gBAAiB,EACtB9uB,KAAK+uB,aAAe5sB,OAAOY,OAAO,MAClC/C,KAAKopB,WAAY,CACnB,CAEIsD,iBACF,OAAO1sB,KAAKsuB,WAAa,CAC3B,CAEIU,aACF,OAAOhvB,KAAKuuB,UAAUS,MACxB,CAEIpC,UACF,OAAO5sB,KAAKuuB,UAAU3B,GACxB,CAEIqC,eACF,OAAOjvB,KAAKuuB,UAAUU,QACxB,CAEIC,WACF,OAAOlvB,KAAKuuB,UAAUW,IACxB,CAEAC,aAAY,MACV/kB,EAAK,SACLC,EAAWrK,KAAKgvB,OAAM,QACtB1kB,EAAU,EAAC,QACXC,EAAU,EAAC,SACXC,GAAW,GACT,CAAC,GACH,OAAO,IAAI/G,eAAeuD,aAAa,CACrCmD,QAASnK,KAAKkvB,KACd9kB,QACAC,WACAC,UACAC,UACAC,YAEJ,CAEA4kB,gBAAe,OACbC,EAAS,MACP,CAAC,GAMH,OALKrvB,KAAKsvB,oBAAsBtvB,KAAKuvB,oBAAsBF,IACzDrvB,KAAKsvB,mBAAqBtvB,KAAKqqB,WAAW+E,eAAepvB,KAAKsuB,WAAYe,GAC1ErvB,KAAKuvB,kBAAoBF,GAGpBrvB,KAAKsvB,kBACd,CAEAE,QAAO,cACLC,EAAa,SACbC,EAAQ,OACRL,EAAS,UAAS,YAClBM,GAAc,EAAK,uBACnBC,GAAyB,EAAK,UAC9BzkB,EAAY,KAAI,WAChB0kB,EAAa,KAAI,cACjBC,EAAgB,KAAI,WACpBC,EAAa,OAET/vB,KAAKwuB,QACPxuB,KAAKwuB,OAAO/gB,KAAK,WAGnB,MAAMuiB,EAA6B,UAAXX,EAAqB,QAAU,UACvDrvB,KAAK8uB,gBAAiB,EAEjB9uB,KAAK+uB,aAAaiB,KACrBhwB,KAAK+uB,aAAaiB,GAAmB7tB,OAAOY,OAAO,OAGrD,MAAMktB,EAAcjwB,KAAK+uB,aAAaiB,GAElCC,EAAYC,4BACdC,aAAaF,EAAYC,2BACzBD,EAAYC,0BAA4B,MAG1C,MAAME,EAAwBN,GAAiB,IAAIrsB,eAAeqD,iBAC5DupB,EAAe,IAAIjJ,OAAOkJ,aAAa,CAC3CC,OAAQZ,IAGLM,EAAYO,yBACfP,EAAYO,wBAAyB,EAAIjsB,MAAMG,2BAC/CurB,EAAYQ,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,GAGT5wB,KAAKwuB,QACPxuB,KAAKwuB,OAAO/gB,KAAK,gBAGnBzN,KAAK6wB,kBAAkB,CACrBzC,UAAWpuB,KAAKsuB,WAChBe,OAAQW,EACRJ,wBAAmD,IAA3BA,KAI5B,MAAMkB,EAAWC,IACf,MAAMjwB,EAAImvB,EAAYe,YAAY/jB,QAAQgkB,GAEtCnwB,GAAK,GACPmvB,EAAYe,YAAYE,OAAOpwB,EAAG,IAGhCd,KAAK6uB,oBAA0C,UAApBmB,KAC7BhwB,KAAK8uB,gBAAiB,GAGxB9uB,KAAKmxB,cAEDJ,GACFE,EAAmBzL,WAAWrc,OAAO4nB,GAErC/wB,KAAKoxB,mBAAmB,CACtBnB,cACAjnB,OAAQ+nB,KAGVE,EAAmBzL,WAAWtc,UAG5BlJ,KAAKwuB,SACPxuB,KAAKwuB,OAAO3gB,QAAQ,aAEpB7N,KAAKwuB,OAAO3gB,QAAQ,WACtB,EAGIojB,EAAqB,IAAII,mBAAmB,CAChDC,SAAUR,EACV1qB,OAAQ,CACNqpB,gBACAC,WACAvkB,YACA0kB,aACAE,cAEFpB,KAAM3uB,KAAK2uB,KACXD,WAAY1uB,KAAK0uB,WACjB+B,aAAcR,EAAYQ,aAC1BrC,UAAWpuB,KAAKsuB,WAChBwB,cAAeM,EACfC,eACAkB,yBAA8C,UAApBvB,EAC1BxH,OAAQxoB,KAAKyuB,UAGVwB,EAAYe,cACff,EAAYe,YAAc,IAG5Bf,EAAYe,YAAY9wB,KAAK+wB,GAC7B,MAAMO,EAAaP,EAAmBxJ,KActC,OAbAwI,EAAYO,uBAAuB9K,QAAQpd,MAAKmpB,IAC1CzxB,KAAK8uB,eACPgC,KAIE9wB,KAAKwuB,QACPxuB,KAAKwuB,OAAO/gB,KAAK,aAGnBwjB,EAAmBS,mBAAmBD,GACtCR,EAAmBU,sBAAqB,IACvC5oB,MAAM+nB,GACFU,CACT,CAEAI,kBACE,SAASD,IACP,GAAI1B,EAAYQ,aAAaG,UAAW,CACtCX,EAAY4B,qBAAqB3oB,QAAQ+mB,EAAYQ,cACrD,MAAM3vB,EAAImvB,EAAYe,YAAY/jB,QAAQ6kB,GAEtChxB,GAAK,GACPmvB,EAAYe,YAAYE,OAAOpwB,EAAG,EAEtC,CACF,CAEA,MAAMkvB,EAAkB,SAEnBhwB,KAAK+uB,aAAaiB,KACrBhwB,KAAK+uB,aAAaiB,GAAmB7tB,OAAOY,OAAO,OAGrD,MAAMktB,EAAcjwB,KAAK+uB,aAAaiB,GACtC,IAAI8B,EAwBJ,OAtBK7B,EAAY4B,uBACfC,EAAa,CAAC,EACdA,EAAWH,oBAAsBA,EACjC1B,EAAY4B,sBAAuB,EAAIttB,MAAMG,2BAC7CurB,EAAYe,YAAc,GAC1Bf,EAAYe,YAAY9wB,KAAK4xB,GAC7B7B,EAAYQ,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,GAGT5wB,KAAKwuB,QACPxuB,KAAKwuB,OAAO/gB,KAAK,gBAGnBzN,KAAK6wB,kBAAkB,CACrBzC,UAAWpuB,KAAKsuB,WAChBe,OAAQW,KAILC,EAAY4B,qBAAqBnM,OAC1C,CAEAqM,mBAAkB,oBAChBC,GAAsB,EAAK,wBAC3BC,GAA0B,GACxB,CAAC,GACH,MAAMC,EAA0B,IAChC,OAAOlyB,KAAKqqB,WAAWL,eAAemI,eAAe,iBAAkB,CACrE/D,UAAWpuB,KAAKsuB,WAChB0D,qBAA6C,IAAxBA,EACrBI,kBAA8C,IAA5BH,GACjB,CACDI,cAAeH,EAEfI,KAAKC,GACH,OAAOA,EAAYC,MAAM5xB,MAC3B,GAGJ,CAEA6xB,eAAersB,EAAS,CAAC,GACvB,MAAMssB,EAAiB1yB,KAAK+xB,kBAAkB3rB,GAC9C,OAAO,IAAI6C,SAAQ,SAAUC,EAASC,GACpC,SAASwpB,IACPC,EAAOC,OAAOvqB,MAAK,UAAU,MAC3B5F,EAAK,KACLowB,IAEIA,EACF5pB,EAAQqpB,IAIVpwB,OAAO4wB,OAAOR,EAAYS,OAAQtwB,EAAMswB,QACxCT,EAAYC,MAAMtyB,QAAQwC,EAAM8vB,OAChCG,IACF,GAAGxpB,EACL,CAEA,MAAMypB,EAASF,EAAeO,YACxBV,EAAc,CAClBC,MAAO,GACPQ,OAAQ7wB,OAAOY,OAAO,OAExB4vB,GACF,GACF,CAEAO,WACElzB,KAAKopB,WAAY,EACjBppB,KAAKqqB,WAAW8I,UAAUnzB,KAAKsuB,YAAc,KAC7C,MAAM8E,EAAS,GAuBf,OAtBAjxB,OAAOkxB,KAAKrzB,KAAK+uB,cAAcuE,SAAQjE,IACrC,MAAMY,EAAcjwB,KAAK+uB,aAAaM,GAEtCrvB,KAAKoxB,mBAAmB,CACtBnB,cACAjnB,OAAQ,IAAI5B,MAAM,uBAClBmsB,OAAO,IAGM,WAAXlE,GAIJY,EAAYe,YAAYsC,SAAQ,SAAU9B,GACxC,MAAMgC,EAAkBhC,EAAWhM,WAAWE,QAAQ3c,OAAM,WAAa,IACzEqqB,EAAOlzB,KAAKszB,GACZhC,EAAWiC,QACb,GAAE,IAEJzzB,KAAK2uB,KAAK+E,QACV1zB,KAAKsvB,mBAAqB,KAC1BtvB,KAAK8uB,gBAAiB,EACf7lB,QAAQ6gB,IAAIsJ,EACrB,CAEApF,QAAQ2F,GAAa,GAEnB,OADA3zB,KAAK8uB,gBAAiB,EACf9uB,KAAKmxB,YAAYwC,EAC1B,CAEAxC,YAAYwC,GAAa,GACvB,SAAK3zB,KAAK8uB,gBAAkB3sB,OAAOkxB,KAAKrzB,KAAK+uB,cAAc6E,MAAKvE,IAC9D,MAAMY,EAAcjwB,KAAK+uB,aAAaM,GACtC,OAA0C,IAAnCY,EAAYe,YAAYpwB,SAAiBqvB,EAAYQ,aAAaG,SAAS,OAKpFzuB,OAAOkxB,KAAKrzB,KAAK+uB,cAAcuE,SAAQjE,WAC9BrvB,KAAK+uB,aAAaM,EAAO,IAElCrvB,KAAK2uB,KAAK+E,QACV1zB,KAAKsvB,mBAAqB,KAEtBqE,GAAc3zB,KAAKwuB,SACrBxuB,KAAKwuB,OAAS,IAAI/qB,eAAekD,WAGnC3G,KAAK8uB,gBAAiB,GACf,EACT,CAEA+E,iBAAiBpC,EAAcpC,GAC7B,MAAMY,EAAcjwB,KAAK+uB,aAAaM,GAEjCY,IAIDjwB,KAAKwuB,QACPxuB,KAAKwuB,OAAO3gB,QAAQ,gBAGlBoiB,EAAYO,wBACdP,EAAYO,uBAAuBtnB,QAAQuoB,GAE/C,CAEAqC,iBAAiBC,EAAmB9D,GAClC,IAAK,IAAInvB,EAAI,EAAGklB,EAAK+N,EAAkBnzB,OAAQE,EAAIklB,EAAIllB,IACrDmvB,EAAYQ,aAAaC,QAAQxwB,KAAK6zB,EAAkBrD,QAAQ5vB,IAChEmvB,EAAYQ,aAAaE,UAAUzwB,KAAK6zB,EAAkBpD,UAAU7vB,IAGtEmvB,EAAYQ,aAAaG,UAAYmD,EAAkBnD,UAEvD,IAAK,IAAI9vB,EAAI,EAAGA,EAAImvB,EAAYe,YAAYpwB,OAAQE,IAClDmvB,EAAYe,YAAYlwB,GAAG6wB,sBAGzBoC,EAAkBnD,WACpB5wB,KAAKmxB,aAET,CAEAN,kBAAkBmD,IAChB,EAAIzvB,MAAMuF,QAAQkqB,EAAK3E,OAAQ,+DAE/B,MAAMqD,EAAiB1yB,KAAKqqB,WAAWL,eAAemI,eAAe,kBAAmB6B,GAElFpB,EAASF,EAAeO,YACxBhD,EAAcjwB,KAAK+uB,aAAaiF,EAAK3E,QAC3CY,EAAYgE,aAAerB,EAE3B,MAAMD,EAAO,KACXC,EAAOC,OAAOvqB,MAAK,EACjB5F,QACAowB,WAEIA,EACF7C,EAAYgE,aAAe,KAIzBj0B,KAAKqqB,WAAWjB,YAIpBppB,KAAK8zB,iBAAiBpxB,EAAOutB,GAE7B0C,IAAM,IACL3pB,IAGD,GAFAinB,EAAYgE,aAAe,MAEvBj0B,KAAKqqB,WAAWjB,UAApB,CAIA,GAAI6G,EAAYQ,aAAc,CAC5BR,EAAYQ,aAAaG,WAAY,EAErC,IAAK,IAAI9vB,EAAI,EAAGA,EAAImvB,EAAYe,YAAYpwB,OAAQE,IAClDmvB,EAAYe,YAAYlwB,GAAG6wB,sBAG7B3xB,KAAKmxB,aACP,CAEA,GAAIlB,EAAYO,uBACdP,EAAYO,uBAAuBrnB,OAAOH,OACrC,KAAIinB,EAAY4B,qBAGrB,MAAM7oB,EAFNinB,EAAY4B,qBAAqB1oB,OAAOH,EAG1C,CAlBA,CAkBA,GACA,EAGJ2pB,GACF,CAEAvB,oBAAmB,YACjBnB,EAAW,OACXjnB,EAAM,MACNuqB,GAAQ,IAIR,IAFA,EAAIhvB,MAAMuF,QAAQd,aAAkB5B,OAA2B,kBAAX4B,GAAkC,OAAXA,EAAiB,gEAEvFinB,EAAYgE,aAAjB,CAIA,IAAKV,EAAO,CACV,GAAuC,IAAnCtD,EAAYe,YAAYpwB,OAC1B,OAGF,GAAIoI,aAAkBvF,eAAeM,4BAUnC,YATAksB,EAAYC,0BAA4BgE,YAAW,KACjDl0B,KAAKoxB,mBAAmB,CACtBnB,cACAjnB,SACAuqB,OAAO,IAGTtD,EAAYC,0BAA4B,IAAI,GAC3C5I,6BAGP,CAEA2I,EAAYgE,aAAaR,OAAO,IAAIlvB,MAAMqN,eAAe5I,GAAUA,EAAOqY,UAC1E4O,EAAYgE,aAAe,KAEvBj0B,KAAKqqB,WAAWjB,YAIpBjnB,OAAOkxB,KAAKrzB,KAAK+uB,cAAc6E,MAAKvE,GAC9BrvB,KAAK+uB,aAAaM,KAAYY,WACzBjwB,KAAK+uB,aAAaM,IAClB,KAKXrvB,KAAKguB,UApCL,CAqCF,CAEImG,YACF,OAAOn0B,KAAKwuB,MACd,EAIF7uB,QAAQinB,aAAeA,aAEvB,MAAMziB,aACJ0D,YAAYusB,GAAQ,GAClBp0B,KAAKq0B,WAAa,GAClBr0B,KAAKs0B,OAASF,EACdp0B,KAAKu0B,UAAYtrB,QAAQC,aAAQ9H,EACnC,CAEAozB,YAAYvT,EAAKwT,GACf,SAASC,EAAWhyB,GAClB,GAAqB,kBAAVA,GAAgC,OAAVA,EAC/B,OAAOA,EAGT,GAAIiyB,EAAOC,IAAIlyB,GACb,OAAOiyB,EAAOryB,IAAII,GAGpB,IAAIqgB,EAAQ4B,EAEZ,IAAK5B,EAASrgB,EAAMqgB,UAAW,EAAIxe,MAAMkM,eAAesS,GAAS,CAC/D,MAAM8R,EAAeJ,GAAaA,EAAUK,SAAS/R,GASrD,OANE4B,EADEkQ,EACO,IAAInyB,EAAMmF,YAAYkb,EAAQrgB,EAAMqyB,WAAYryB,EAAM2f,YAEtD,IAAI3f,EAAMmF,YAAYnF,GAGjCiyB,EAAOjS,IAAIhgB,EAAOiiB,GACXA,CACT,CAEAA,EAASqQ,MAAMC,QAAQvyB,GAAS,GAAK,CAAC,EACtCiyB,EAAOjS,IAAIhgB,EAAOiiB,GAElB,IAAK,MAAM7jB,KAAK4B,EAAO,CACrB,IAAIwyB,EACA3xB,EAAIb,EAER,QAASwyB,EAAO/yB,OAAOgzB,yBAAyB5xB,EAAGzC,IACjDyC,EAAIpB,OAAOizB,eAAe7xB,GAG5B,GAA0B,qBAAf2xB,EAAKxyB,MAIhB,GAA0B,oBAAfwyB,EAAKxyB,MAQhBiiB,EAAO7jB,GAAK4zB,EAAWQ,EAAKxyB,YAP1B,GAAIA,EAAMY,gBAAkBZ,EAAMY,eAAexC,GAC/C,MAAM,IAAIsG,MAAM,4CAA4C1E,EAAM5B,KAOxE,CAEA,OAAO6jB,CACT,CAEA,IAAK3kB,KAAKs0B,OAOR,YANAt0B,KAAKq0B,WAAWf,SAAQ/H,IACtBA,EAAS3pB,KAAK5B,KAAM,CAClBwiB,KAAMvB,GACN,IAMN,MAAM0T,EAAS,IAAIU,QACbxU,EAAI,CACR2B,KAAMkS,EAAWzT,IAGnBjhB,KAAKu0B,UAAUjsB,MAAK,KAClBtI,KAAKq0B,WAAWf,SAAQ/H,IACtBA,EAAS3pB,KAAK5B,KAAM6gB,EAAE,GACtB,GAEN,CAEAyU,iBAAiBtzB,EAAMupB,GACrBvrB,KAAKq0B,WAAWn0B,KAAKqrB,EACvB,CAEAgK,oBAAoBvzB,EAAMupB,GACxB,MAAMzqB,EAAId,KAAKq0B,WAAWpnB,QAAQse,GAElCvrB,KAAKq0B,WAAWnD,OAAOpwB,EAAG,EAC5B,CAEA00B,YACEx1B,KAAKq0B,WAAWzzB,OAAS,CAC3B,EAIFjB,QAAQwE,aAAeA,aAEvB,MAAME,UAAY,SAASoxB,mBACzB,MAAMC,eAAiB,IAAIL,QAC3B,IAAIM,kBAAmB,EACnBC,kBACAC,iBAAmB,EACnBC,qBAEJ,GAAI9O,SAAS/gB,SACX0vB,kBAAmB,EACnBC,kBAAoB,uBACf,GAAwB,kBAAbtuB,UAAyB,kBAAmBA,SAAU,CACtE,MAAMyuB,EAAgBzuB,SAAS0uB,eAAiB1uB,SAAS0uB,cAAcxnB,IAEnEunB,IACFH,kBAAoBG,EAActU,QAAQ,4BAA6B,eAE3E,CAEA,SAASwU,eACP,GAAItwB,gBAAgBC,oBAAoBswB,UACtC,OAAOvwB,gBAAgBC,oBAAoBswB,UAG7C,GAAiC,qBAAtBN,kBAKT,OAJK5O,SAAS/gB,WACZ,EAAIxC,eAAeiD,YAAY,iDAG1BkvB,kBAGT,MAAM,IAAIxuB,MAAM,gDAClB,CAEA,SAAS+uB,oCACP,IAAIC,EAEJ,IACEA,EAA2BC,WAAWC,aAAeD,WAAWC,YAAYC,oBAChE,CAAZ,MAAOhoB,GAAK,CAEd,OAAO6nB,GAA4B,IACrC,CAEA,SAASI,wBACP,GAAIV,qBACF,OAAOA,qBAAqBpQ,QAG9BoQ,sBAAuB,EAAIvxB,MAAMG,2BAEjC,MAAM+xB,OAASzuB,iBACb,MAAMouB,yBAA2BD,oCAEjC,GAAIC,yBACF,OAAOA,yBAGT,GAAIpP,SAAS/gB,SAA2C,CACtD,MAAM6hB,OAAS4O,KAAK,UAALA,CAAgBT,gBAC/B,OAAOnO,OAAOyO,oBAChB,CAGA,aADM,EAAI9yB,eAAeI,YAAYoyB,gBAC9BlO,OAAOuO,YAAYC,oBAC5B,EAGA,OADAE,SAASnuB,KAAKwtB,qBAAqB5sB,QAAS4sB,qBAAqB3sB,QAC1D2sB,qBAAqBpQ,OAC9B,CAEA,SAASiR,iBAAiBlwB,GACxB,MAAMmwB,EAAU,kBAAoBnwB,EAAM,MAC1C,OAAO6H,IAAI7J,gBAAgB,IAAIshB,KAAK,CAAC6Q,IACvC,CAEA,MAAMvyB,UACJwD,aAAY,KACV7F,EAAO,KAAI,KACX+mB,EAAO,KAAI,UACX1I,GAAY,EAAI9b,MAAMgM,sBACpB,CAAC,GACH,GAAIwY,GAAQ2M,eAAed,IAAI7L,GAC7B,MAAM,IAAI3hB,MAAM,+CAYlB,GATApH,KAAKgC,KAAOA,EACZhC,KAAKopB,WAAY,EACjBppB,KAAKkqB,sBAAuB,EAC5BlqB,KAAKqgB,UAAYA,EACjBrgB,KAAKqrB,kBAAmB,EAAI9mB,MAAMG,2BAClC1E,KAAK62B,MAAQ,KACb72B,KAAK82B,WAAa,KAClB92B,KAAK+2B,gBAAkB,KAEnBhO,EAKF,OAJA2M,eAAehT,IAAIqG,EAAM/oB,WAEzBA,KAAKg3B,oBAAoBjO,GAK3B/oB,KAAKi3B,aACP,CAEIvR,cACF,OAAO1lB,KAAKqrB,iBAAiB3F,OAC/B,CAEIqD,WACF,OAAO/oB,KAAK62B,KACd,CAEI7M,qBACF,OAAOhqB,KAAK+2B,eACd,CAEAC,oBAAoBjO,GAClB/oB,KAAK62B,MAAQ9N,EACb/oB,KAAK+2B,gBAAkB,IAAI9P,iBAAiBgD,eAAe,OAAQ,SAAUlB,GAE7E/oB,KAAK+2B,gBAAgBG,GAAG,SAAS,WAAa,IAE9Cl3B,KAAKqrB,iBAAiBniB,SACxB,CAEA+tB,cACE,GAAsB,qBAAXE,SAA2BxB,mBAAqBQ,oCAAqC,CAC9F,IAAID,EAAYD,eAEhB,KACO,EAAI1xB,MAAMuM,cAAciX,OAAOG,SAAStb,KAAMspB,KACjDA,EAAYS,iBAAiB,IAAIroB,IAAI4nB,EAAWnO,OAAOG,UAAUtb,OAGnE,MAAMkb,EAAS,IAAIqP,OAAOjB,GACpBlM,EAAiB,IAAI/C,iBAAiBgD,eAAe,OAAQ,SAAUnC,GAEvEsP,EAAiB,KACrBtP,EAAOyN,oBAAoB,QAAS8B,GACpCrN,EAAepiB,UACfkgB,EAAO0N,YAEHx1B,KAAKopB,UACPppB,KAAKqrB,iBAAiBliB,OAAO,IAAI/B,MAAM,yBAEvCpH,KAAKs3B,kBACP,EAGID,EAAgB,KACfr3B,KAAK82B,YACRM,GACF,EAGFtP,EAAOwN,iBAAiB,QAAS+B,GACjCrN,EAAekN,GAAG,QAAQ1U,IACxBsF,EAAOyN,oBAAoB,QAAS8B,GAEhCr3B,KAAKopB,UACPgO,IAIE5U,GACFxiB,KAAK+2B,gBAAkB/M,EACvBhqB,KAAK62B,MAAQ/O,EACb9nB,KAAK82B,WAAahP,EAEbtF,EAAK+U,mBACRv3B,KAAKkqB,sBAAuB,GAG9BlqB,KAAKqrB,iBAAiBniB,UAEtB8gB,EAAengB,KAAK,YAAa,CAC/BwW,UAAWrgB,KAAKqgB,cAGlBrgB,KAAKs3B,mBAELtN,EAAepiB,UACfkgB,EAAO0N,YACT,IAEFxL,EAAekN,GAAG,SAAS1U,IAGzB,GAFAsF,EAAOyN,oBAAoB,QAAS8B,GAEhCr3B,KAAKopB,UACPgO,SAIF,IACEI,GAGF,CAFE,MAAO3W,GACP7gB,KAAKs3B,kBACP,KAGF,MAAME,EAAW,KACf,MAAMC,EAAU,IAAI9uB,WAAW,CAAC3I,KAAKkqB,qBAAuB,IAAM,IAElE,IACEF,EAAengB,KAAK,OAAQ4tB,EAAS,CAACA,EAAQ1U,QAKhD,CAJE,MAAOxU,IACP,EAAIhK,MAAMmJ,MAAM,qCAChB+pB,EAAQ,GAAK,EACbzN,EAAengB,KAAK,OAAQ4tB,EAC9B,GAIF,YADAD,GAIF,CAFE,MAAO3W,IACP,EAAItc,MAAMiM,MAAM,gCAClB,CACF,CAEAxQ,KAAKs3B,kBACP,CAEAA,mBACO3B,oBACH,EAAIpxB,MAAMmJ,MAAM,2BAChBioB,kBAAmB,GAGrBa,wBAAwBluB,MAAKiuB,IAC3B,GAAIv2B,KAAKopB,UAGP,YAFAppB,KAAKqrB,iBAAiBliB,OAAO,IAAI/B,MAAM,yBAKzC,MAAM2hB,EAAO,IAAI5kB,aACjBnE,KAAK62B,MAAQ9N,EACb,MAAM5oB,EAAK,OAAS01B,mBACd6B,EAAgB,IAAIzQ,iBAAiBgD,eAAe9pB,EAAK,UAAWA,EAAI4oB,GAC9EwN,EAAqBoB,MAAMD,EAAe3O,GAC1C,MAAMiB,EAAiB,IAAI/C,iBAAiBgD,eAAe9pB,EAAIA,EAAK,UAAW4oB,GAC/E/oB,KAAK+2B,gBAAkB/M,EAEvBhqB,KAAKqrB,iBAAiBniB,UAEtB8gB,EAAengB,KAAK,YAAa,CAC/BwW,UAAWrgB,KAAKqgB,WAChB,IACDtX,OAAMC,IACPhJ,KAAKqrB,iBAAiBliB,OAAO,IAAI/B,MAAM,mCAAmC4B,EAAOqY,aAAa,GAElG,CAEAzZ,UACE5H,KAAKopB,WAAY,EAEbppB,KAAK82B,aACP92B,KAAK82B,WAAWtB,YAEhBx1B,KAAK82B,WAAa,MAGpBpB,eAAekC,OAAO53B,KAAK62B,OAC3B72B,KAAK62B,MAAQ,KAET72B,KAAK+2B,kBACP/2B,KAAK+2B,gBAAgBnvB,UAErB5H,KAAK+2B,gBAAkB,KAE3B,CAEA5nB,gBAAgB/I,GACd,IAAKA,IAAWA,EAAO2iB,KACrB,MAAM,IAAI3hB,MAAM,kDAGlB,OAAIsuB,eAAed,IAAIxuB,EAAO2iB,MACrB2M,eAAepzB,IAAI8D,EAAO2iB,MAG5B,IAAI1kB,UAAU+B,EACvB,CAEA+I,sBACE,OAAO8mB,cACT,EAIF,OAAO5xB,SACT,CArSkB,GAuSlB1E,QAAQ0E,UAAYA,UAEpB,MAAM+lB,gBACJviB,YAAYmiB,EAAgBkE,EAAa1E,EAAepjB,GACtDpG,KAAKgqB,eAAiBA,EACtBhqB,KAAKkuB,YAAcA,EACnBluB,KAAK0uB,WAAa,IAAIE,WACtB5uB,KAAK63B,WAAa,IAAI/Q,aAAagR,WAAW,CAC5C3O,MAAO+E,EAAY/E,MACnB4B,qBAAsB/qB,KAAK+3B,sBAAsB90B,KAAKjD,QAExDA,KAAKg4B,QAAU5xB,EACfpG,KAAKooB,kBAAoB,IAAIhiB,EAAOgiB,kBAAkB,CACpDtgB,QAAS1B,EAAO6xB,QAChBlwB,aAAc3B,EAAO8xB,aAEvBl4B,KAAKopB,WAAY,EACjBppB,KAAKm4B,kBAAoB,KACzBn4B,KAAKo4B,oBAAsB,KAC3Bp4B,KAAKq4B,eAAiB7O,EACtBxpB,KAAKs4B,YAAc,KACnBt4B,KAAKu4B,cAAgB,KACrBv4B,KAAKmzB,UAAY,GACjBnzB,KAAKw4B,aAAe,GACpBx4B,KAAK8tB,wBAAyB,EAAIvpB,MAAMG,2BACxC1E,KAAKy4B,qBACP,CAEA7wB,UACE,GAAI5H,KAAKm4B,kBACP,OAAOn4B,KAAKm4B,kBAAkBzS,QAGhC1lB,KAAKopB,WAAY,EACjBppB,KAAKm4B,mBAAoB,EAAI5zB,MAAMG,2BAE/B1E,KAAKo4B,qBACPp4B,KAAKo4B,oBAAoBjvB,OAAO,IAAI/B,MAAM,oDAG5C,MAAMgsB,EAAS,GACfpzB,KAAKmzB,UAAUG,SAAQ,SAAUoF,GAC3BA,GACFtF,EAAOlzB,KAAKw4B,EAAKxF,WAErB,IACAlzB,KAAKmzB,UAAUvyB,OAAS,EACxBZ,KAAKw4B,aAAa53B,OAAS,EAC3B,MAAM+3B,EAAa34B,KAAKgqB,eAAeQ,gBAAgB,YAAa,MAgBpE,OAfA4I,EAAOlzB,KAAKy4B,GACZ1vB,QAAQ6gB,IAAIsJ,GAAQ9qB,MAAK,KACvBtI,KAAK63B,WAAWnE,QAEZ1zB,KAAKq4B,gBACPr4B,KAAKq4B,eAAeO,kBAAkB,IAAIr0B,MAAMqN,eAAe,2BAG7D5R,KAAKgqB,iBACPhqB,KAAKgqB,eAAepiB,UACpB5H,KAAKgqB,eAAiB,MAGxBhqB,KAAKm4B,kBAAkBjvB,SAAS,GAC/BlJ,KAAKm4B,kBAAkBhvB,QACnBnJ,KAAKm4B,kBAAkBzS,OAChC,CAEA+S,sBACE,MAAM,eACJzO,EAAc,YACdkE,GACEluB,KACJgqB,EAAekN,GAAG,aAAa,CAAC1U,EAAMqW,MACpC,EAAIt0B,MAAMuF,QAAQ9J,KAAKq4B,eAAgB,mDACvCr4B,KAAKs4B,YAAct4B,KAAKq4B,eAAeS,gBAEvC94B,KAAKs4B,YAAYxN,WAAaiO,IAC5B/4B,KAAKu4B,cAAgB,CACnBzM,OAAQiN,EAAIjN,OACZC,MAAOgN,EAAIhN,MACZ,EAGH8M,EAAKG,OAAS,KACZh5B,KAAKs4B,YAAYzF,OAAOvqB,MAAK,UAAU,MACrC5F,EAAK,KACLowB,IAEIA,EACF+F,EAAKI,UAIP,EAAI10B,MAAMuF,SAAQ,EAAIvF,MAAMkM,eAAe/N,GAAQ,wCACnDm2B,EAAKK,QAAQ,IAAIvwB,WAAWjG,GAAQ,EAAG,CAACA,IAC1C,IAAGqG,OAAMC,IACP6vB,EAAK9H,MAAM/nB,EAAO,GAClB,EAGJ6vB,EAAKM,SAAWnwB,IACdhJ,KAAKs4B,YAAY7E,OAAOzqB,EAAO,CAChC,IAEHghB,EAAekN,GAAG,sBAAsB1U,IACtC,MAAM4W,GAAoB,EAAI70B,MAAMG,2BAC9B20B,EAAar5B,KAAKs4B,YAuBxB,OAtBAe,EAAWC,aAAahxB,MAAK,KACtB+wB,EAAWE,sBAAyBF,EAAWG,mBAC9Cx5B,KAAKu4B,eAAiBrK,EAAYpD,YACpCoD,EAAYpD,WAAW9qB,KAAKu4B,eAG9Bc,EAAWvO,WAAaiO,IAClB7K,EAAYpD,YACdoD,EAAYpD,WAAW,CACrBgB,OAAQiN,EAAIjN,OACZC,MAAOgN,EAAIhN,OAEf,GAIJqN,EAAkBlwB,QAAQ,CACxBqwB,qBAAsBF,EAAWE,qBACjCC,iBAAkBH,EAAWG,iBAC7BC,cAAeJ,EAAWI,eAC1B,GACDL,EAAkBjwB,QACdiwB,EAAkB1T,OAAO,IAElCsE,EAAekN,GAAG,kBAAkB,CAAC1U,EAAMqW,MACzC,EAAIt0B,MAAMuF,QAAQ9J,KAAKq4B,eAAgB,wDAEvC,MAAMqB,EAAc15B,KAAKq4B,eAAesB,eAAenX,EAAKoJ,MAAOpJ,EAAKrV,KAEnEusB,GAKLb,EAAKG,OAAS,KACZU,EAAY7G,OAAOvqB,MAAK,UAAU,MAChC5F,EAAK,KACLowB,IAEIA,EACF+F,EAAKI,UAIP,EAAI10B,MAAMuF,SAAQ,EAAIvF,MAAMkM,eAAe/N,GAAQ,6CACnDm2B,EAAKK,QAAQ,IAAIvwB,WAAWjG,GAAQ,EAAG,CAACA,IAC1C,IAAGqG,OAAMC,IACP6vB,EAAK9H,MAAM/nB,EAAO,GAClB,EAGJ6vB,EAAKM,SAAWnwB,IACd0wB,EAAYjG,OAAOzqB,EAAO,GAtB1B6vB,EAAKI,OAuBN,IAEHjP,EAAekN,GAAG,UAAU,EAC1B7K,cAEArsB,KAAK45B,UAAYvN,EAAQE,SAEzB2B,EAAY5D,YAAYphB,QAAQ,IAAI2d,iBAAiBwF,EAASrsB,MAAM,IAEtEgqB,EAAekN,GAAG,gBAAgB,SAAU3oB,GAC1C,IAAIvF,EAEJ,OAAQuF,EAAGvM,MACT,IAAK,oBACHgH,EAAS,IAAIzE,MAAMoN,kBAAkBpD,EAAG8S,QAAS9S,EAAG+S,MACpD,MAEF,IAAK,sBACHtY,EAAS,IAAIzE,MAAMK,oBAAoB2J,EAAG8S,SAC1C,MAEF,IAAK,sBACHrY,EAAS,IAAIzE,MAAMM,oBAAoB0J,EAAG8S,SAC1C,MAEF,IAAK,8BACHrY,EAAS,IAAIzE,MAAMY,4BAA4BoJ,EAAG8S,QAAS9S,EAAG5E,QAC9D,MAEF,IAAK,wBACHX,EAAS,IAAIzE,MAAMiN,sBAAsBjD,EAAG8S,QAAS9S,EAAGQ,SACxD,MAGJmf,EAAY5D,YAAYnhB,OAAOH,EACjC,IACAghB,EAAekN,GAAG,mBAAmB2C,IAGnC,GAFA75B,KAAKo4B,qBAAsB,EAAI7zB,MAAMG,2BAEjCwpB,EAAYrD,WAAY,CAC1B,MAAMiP,EAAiBpP,IACrB1qB,KAAKo4B,oBAAoBlvB,QAAQ,CAC/BwhB,YACA,EAGJ,IACEwD,EAAYrD,WAAWiP,EAAgBD,EAAUvY,KAGnD,CAFE,MAAO/S,GACPvO,KAAKo4B,oBAAoBjvB,OAAOoF,EAClC,CACF,MACEvO,KAAKo4B,oBAAoBjvB,OAAO,IAAI5E,MAAMoN,kBAAkBkoB,EAAUxY,QAASwY,EAAUvY,OAG3F,OAAOthB,KAAKo4B,oBAAoB1S,OAAO,IAEzCsE,EAAekN,GAAG,cAAc1U,IAC1B0L,EAAYpD,YACdoD,EAAYpD,WAAW,CACrBgB,OAAQtJ,EAAK5hB,OACbmrB,MAAOvJ,EAAK5hB,SAIhBZ,KAAK8tB,uBAAuB5kB,QAAQsZ,EAAK,IAE3CwH,EAAekN,GAAG,mBAAmB1U,IACnC,GAAIxiB,KAAKopB,UACP,OAGF,MAAMsP,EAAO14B,KAAKmzB,UAAU3Q,EAAK4L,WAEjCsK,EAAK7E,iBAAiBrR,EAAKiP,aAAcjP,EAAK6M,OAAO,IAEvDrF,EAAekN,GAAG,aAAa1U,IAC7B,GAAIxiB,KAAKopB,UACP,OAGF,MAAOjpB,EAAI+J,EAAM6vB,GAAgBvX,EAEjC,IAAIxiB,KAAK0uB,WAAWkG,IAAIz0B,GAIxB,OAAQ+J,GACN,IAAK,OACH,MAAM9D,EAASpG,KAAKg4B,QAEpB,GAAI,UAAW+B,EAAc,CAC3B,MAAMC,EAAgBD,EAAahJ,OACnC,EAAIxsB,MAAMmJ,MAAM,8BAA8BssB,KAC9Ch6B,KAAK0uB,WAAWxlB,QAAQ/I,EAAI65B,GAC5B,KACF,CAEA,IAAIC,EAAe,KAEf7zB,EAAOoiB,QAAU6N,WAAW6D,eAAiB7D,WAAW6D,cAAcxtB,UACxEutB,EAAe,CACbE,aAAa7a,EAAM7Y,GACjB4vB,WAAW6D,cAAcE,UAAU9a,EAAM7Y,EAC3C,IAKJ,MAAM6Y,EAAO,IAAIwH,aAAauT,eAAeN,EAAc,CACzD/W,gBAAiB5c,EAAO4c,gBACxB0F,gBAAiBtiB,EAAOsiB,gBACxBL,aAAcjiB,EAAOiiB,aACrB0C,qBAAsB/qB,KAAK+3B,sBAAsB90B,KAAKjD,MACtDi6B,iBAEFj6B,KAAK63B,WAAW50B,KAAKqc,GAAMvW,OAAMC,GACxBghB,EAAeQ,gBAAgB,eAAgB,CACpDrqB,SAEDm6B,SAAQ,MACJl0B,EAAOmiB,qBAAuBjJ,EAAKkD,OACtClD,EAAKkD,KAAO,MAGdxiB,KAAK0uB,WAAWxlB,QAAQ/I,EAAImf,EAAK,IAEnC,MAEF,IAAK,WACL,IAAK,eACL,IAAK,QACHtf,KAAK0uB,WAAWxlB,QAAQ/I,EAAI45B,GAC5B,MAEF,QACE,MAAM,IAAI3yB,MAAM,kCAAkC8C,KACtD,IAEF8f,EAAekN,GAAG,OAAO1U,IACvB,GAAIxiB,KAAKopB,UACP,OAGF,MAAOjpB,EAAIiuB,EAAWlkB,EAAMqwB,GAAa/X,EACnCgY,EAAYx6B,KAAKmzB,UAAU/E,GAEjC,IAAIoM,EAAU7L,KAAKiG,IAAIz0B,GAIvB,OAAQ+J,GACN,IAAK,QACHswB,EAAU7L,KAAKzlB,QAAQ/I,EAAIo6B,GAC3B,MAAME,EAA0B,IAE5BF,GAAa,SAAUA,GAAaA,EAAU/X,KAAK5hB,OAAS65B,IAC9DD,EAAU3L,oBAAqB,GAGjC,MAEF,QACE,MAAM,IAAIznB,MAAM,2BAA2B8C,KAG/B,IAElB8f,EAAekN,GAAG,eAAe1U,IAC3BxiB,KAAKopB,WAIL8E,EAAYpD,YACdoD,EAAYpD,WAAW,CACrBgB,OAAQtJ,EAAKsJ,OACbC,MAAOvJ,EAAKuJ,OAEhB,IAEF/B,EAAekN,GAAG,qBAAsBl3B,KAAK+3B,sBAAsB90B,KAAKjD,OACxEgqB,EAAekN,GAAG,oBAAoB,CAAC1U,EAAMqW,KAC3C,GAAI74B,KAAKopB,UAEP,YADAyP,EAAK9H,MAAM,IAAI3pB,MAAM,yBAIvB,IAAIszB,GAAU,EAEd7B,EAAKG,OAAS,KACR0B,EACF7B,EAAKI,SAIPyB,GAAU,EACV16B,KAAKooB,kBAAkB/f,MAAMma,GAAMla,MAAK,SAAUqyB,GAChD9B,EAAKK,QAAQyB,EAAa,EAAG,CAACA,EAAYjyB,SAASqa,QACrD,IAAGha,OAAM,SAAUC,GACjB6vB,EAAK9H,MAAM/nB,EACb,IAAE,CACH,GAEL,CAEA+uB,uBAAsB,UACpB6C,IAEI56B,KAAKopB,WAILppB,KAAKkuB,YAAYnD,sBACnB/qB,KAAKkuB,YAAYnD,qBAAqB6P,EAE1C,CAEAhN,UACE,OAAO5tB,KAAKgqB,eAAeQ,gBAAgB,UAAW,KACxD,CAEAiC,QAAQC,GACN,IAAKnM,OAAOC,UAAUkM,IAAeA,GAAc,GAAKA,EAAa1sB,KAAK45B,UACxE,OAAO3wB,QAAQE,OAAO,IAAI/B,MAAM,yBAGlC,MAAMgnB,EAAY1B,EAAa,EAE/B,GAAI0B,KAAapuB,KAAKw4B,aACpB,OAAOx4B,KAAKw4B,aAAapK,GAG3B,MAAM1I,EAAU1lB,KAAKgqB,eAAeQ,gBAAgB,UAAW,CAC7D4D,cACC9lB,MAAK+lB,IACN,GAAIruB,KAAKopB,UACP,MAAM,IAAIhiB,MAAM,uBAGlB,MAAMsxB,EAAO,IAAI9R,aAAawH,EAAWC,EAAUruB,KAAMA,KAAKg4B,QAAQxP,QAEtE,OADAxoB,KAAKmzB,UAAU/E,GAAasK,EACrBA,CAAI,IAGb,OADA14B,KAAKw4B,aAAapK,GAAa1I,EACxBA,CACT,CAEAiH,aAAaC,GACX,OAAO5sB,KAAKgqB,eAAeQ,gBAAgB,eAAgB,CACzDoC,QACC7jB,OAAM,SAAUC,GACjB,OAAOC,QAAQE,OAAO,IAAI/B,MAAM4B,GAClC,GACF,CAEAomB,eAAehB,EAAWiB,GACxB,OAAOrvB,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,CAC3D4D,YACAiB,UAEJ,CAEAxC,kBACE,OAAO7sB,KAAKgqB,eAAeQ,gBAAgB,kBAAmB,KAChE,CAEAsC,eAAe3sB,GACb,MAAkB,kBAAPA,EACF8I,QAAQE,OAAO,IAAI/B,MAAM,iCAG3BpH,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,CAC3DrqB,MAEJ,CAEA4sB,gBACE,OAAO/sB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,KAC9D,CAEAwC,gBACE,OAAOhtB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,KAC9D,CAEAyC,cACE,OAAOjtB,KAAKgqB,eAAeQ,gBAAgB,cAAe,KAC5D,CAEA0C,uBACE,OAAOltB,KAAKgqB,eAAeQ,gBAAgB,uBAAwB,KACrE,CAEA2C,gBACE,OAAOntB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,KAC9D,CAEA+C,iBACE,OAAOvtB,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,KAC/D,CAEAgD,gBACE,OAAOxtB,KAAKgqB,eAAeQ,gBAAgB,gBAAiB,KAC9D,CAEAiD,aACE,OAAOztB,KAAKgqB,eAAeQ,gBAAgB,aAAc,KAC3D,CAEAkD,iBACE,OAAO1tB,KAAKgqB,eAAeQ,gBAAgB,iBAAkB,KAC/D,CAEAmD,cACE,OAAO3tB,KAAKgqB,eAAeQ,gBAAgB,cAAe,MAAMliB,MAAKuyB,IAC5D,CACLrqB,KAAMqqB,EAAQ,GACdC,SAAUD,EAAQ,GAAK,IAAI3T,UAAU6T,SAASF,EAAQ,IAAM,KAC5DG,2BAA4Bh7B,KAAKs4B,YAAct4B,KAAKs4B,YAAY2C,SAAW,QAGjF,CAEAlN,WACE,OAAO/tB,KAAKgqB,eAAeQ,gBAAgB,WAAY,KACzD,CAEAyD,eACE,OAAOjuB,KAAKgqB,eAAeQ,gBAAgB,UAAW,MAAMliB,MAAK,KAC/D,IAAK,IAAIxH,EAAI,EAAGklB,EAAKhmB,KAAKmzB,UAAUvyB,OAAQE,EAAIklB,EAAIllB,IAAK,CACvD,MAAM43B,EAAO14B,KAAKmzB,UAAUryB,GAE5B,GAAI43B,EAAM,CACR,MAAMwC,EAAoBxC,EAAK1K,UAE/B,IAAKkN,EACH,MAAM,IAAI9zB,MAAM,sBAAsBtG,EAAI,4BAE9C,CACF,CAEAd,KAAK0uB,WAAWgF,QAChB1zB,KAAK63B,WAAWnE,OAAO,GAE3B,CAEIvF,oBACF,MAAM/nB,EAASpG,KAAKg4B,QACpB,OAAO,EAAIzzB,MAAMW,QAAQlF,KAAM,gBAAiB,CAC9C6oB,iBAAkBziB,EAAOyiB,iBACzBH,gBAAiBtiB,EAAOsiB,iBAE5B,EAIF,MAAMkG,WACJ/mB,cACE7H,KAAKm7B,MAAQh5B,OAAOY,OAAO,KAC7B,CAEAq4B,WAAWC,GACT,OAAIr7B,KAAKm7B,MAAME,GACNr7B,KAAKm7B,MAAME,GAGbr7B,KAAKm7B,MAAME,GAAS,CACzB7V,YAAY,EAAIjhB,MAAMG,2BACtB8d,KAAM,KACN8Y,UAAU,EAEd,CAEAh5B,IAAI+4B,EAAO/J,EAAW,MACpB,GAAIA,EAGF,OAFAtxB,KAAKo7B,WAAWC,GAAO7V,WAAWE,QAAQpd,KAAKgpB,GAExC,KAGT,MAAMrQ,EAAMjhB,KAAKm7B,MAAME,GAEvB,IAAKpa,IAAQA,EAAIqa,SACf,MAAM,IAAIl0B,MAAM,6CAA6Ci0B,MAG/D,OAAOpa,EAAIuB,IACb,CAEAoS,IAAIyG,GACF,MAAMpa,EAAMjhB,KAAKm7B,MAAME,GACvB,QAAOpa,GAAMA,EAAIqa,QACnB,CAEApyB,QAAQmyB,EAAO7Y,GACb,MAAMvB,EAAMjhB,KAAKo7B,WAAWC,GAE5Bpa,EAAIqa,UAAW,EACfra,EAAIuB,KAAOA,EACXvB,EAAIuE,WAAWtc,QAAQsZ,EACzB,CAEAkR,QACE1zB,KAAKm7B,MAAQh5B,OAAOY,OAAO,KAC7B,EAIF,MAAMw4B,WACJ1zB,YAAYopB,GACVjxB,KAAKw7B,oBAAsBvK,EAC3BjxB,KAAKy7B,WAAa,IACpB,CAEI/V,cACF,OAAO1lB,KAAKw7B,oBAAoBhW,WAAWE,OAC7C,CAEA+N,SACEzzB,KAAKw7B,oBAAoB/H,QAC3B,EAIF,MAAMpC,mBAAqB,WACzB,MAAMqK,EAAoB,IAAIC,QAE9B,MAAMtK,EACJxpB,aAAY,SACVypB,EAAQ,OACRlrB,EAAM,KACNuoB,EAAI,WACJD,EAAU,aACV+B,EAAY,UACZrC,EAAS,cACT0B,EAAa,aACbO,EAAY,yBACZkB,GAA2B,EAAK,OAChC/I,GAAS,IAETxoB,KAAKsxB,SAAWA,EAChBtxB,KAAKoG,OAASA,EACdpG,KAAK2uB,KAAOA,EACZ3uB,KAAK0uB,WAAaA,EAClB1uB,KAAK47B,gBAAkB,KACvB57B,KAAKywB,aAAeA,EACpBzwB,KAAKsuB,WAAaF,EAClBpuB,KAAK8vB,cAAgBA,EACrB9vB,KAAKqwB,aAAeA,EACpBrwB,KAAKyuB,QAAUjG,EACfxoB,KAAK67B,SAAU,EACf77B,KAAK87B,sBAAwB,KAC7B97B,KAAK+7B,eAAgB,EACrB/7B,KAAKg8B,2BAAyD,IAA7BzK,GAAuD,qBAAXxJ,OAC7E/nB,KAAKi8B,WAAY,EACjBj8B,KAAKwlB,YAAa,EAAIjhB,MAAMG,2BAC5B1E,KAAKynB,KAAO,IAAI8T,WAAWv7B,MAC3BA,KAAKk8B,eAAiBl8B,KAAKm8B,UAAUl5B,KAAKjD,MAC1CA,KAAKo8B,mBAAqBp8B,KAAKq8B,cAAcp5B,KAAKjD,MAClDA,KAAKs8B,WAAat8B,KAAKu8B,MAAMt5B,KAAKjD,MAClCA,KAAK+mB,QAAU3gB,EAAOqpB,cAAcpoB,MACtC,CAEAqqB,mBAAmBD,GAAe,GAChC,GAAIzxB,KAAKi8B,UACP,OAGF,GAAIj8B,KAAK+mB,QAAS,CAChB,GAAI2U,EAAkB9G,IAAI50B,KAAK+mB,SAC7B,MAAM,IAAI3f,MAAM,mJAGlBs0B,EAAkBc,IAAIx8B,KAAK+mB,QAC7B,CAEI/mB,KAAKyuB,SAAW4H,WAAWoG,gBAAkBpG,WAAWoG,eAAe/vB,UACzE1M,KAAK08B,QAAUrG,WAAWoG,eAAe15B,OAAO/C,KAAKsuB,YACrDtuB,KAAK08B,QAAQC,KAAK38B,KAAKywB,cACvBzwB,KAAK08B,QAAQE,eAAiB58B,KAAK08B,QAAQG,qBAG7C,MAAM,cACJpN,EAAa,SACbC,EAAQ,UACRvkB,EAAS,WACT0kB,EAAU,WACVE,GACE/vB,KAAKoG,OACTpG,KAAK88B,IAAM,IAAI/V,QAAQgW,eAAetN,EAAezvB,KAAK0uB,WAAY1uB,KAAK2uB,KAAM3uB,KAAK8vB,cAAe9vB,KAAKqwB,aAAcR,GACxH7vB,KAAK88B,IAAIE,aAAa,CACpB7xB,YACAukB,WACA+B,eACA1B,eAEF/vB,KAAK47B,gBAAkB,EACvB57B,KAAK+7B,eAAgB,EAEjB/7B,KAAK87B,uBACP97B,KAAK87B,uBAET,CAEArI,OAAO1C,EAAQ,MACb/wB,KAAK67B,SAAU,EACf77B,KAAKi8B,WAAY,EAEbj8B,KAAK88B,KACP98B,KAAK88B,IAAIG,aAGPj9B,KAAK+mB,SACP2U,EAAkB9D,OAAO53B,KAAK+mB,SAGhC/mB,KAAKsxB,SAASP,GAAS,IAAIttB,eAAeM,4BAA4B,6BAA6B/D,KAAKsuB,WAAa,IAAK,UAC5H,CAEAqD,sBACO3xB,KAAK+7B,eAQN/7B,KAAK08B,SACP18B,KAAK08B,QAAQQ,mBAAmBl9B,KAAKywB,cAGnCzwB,KAAK67B,SAIT77B,KAAKm8B,aAfEn8B,KAAK87B,wBACR97B,KAAK87B,sBAAwB97B,KAAKk8B,eAexC,CAEAC,YACEn8B,KAAK67B,SAAU,EAEX77B,KAAKi8B,YAILj8B,KAAKynB,KAAKgU,WACZz7B,KAAKynB,KAAKgU,WAAWz7B,KAAKo8B,oBAE1Bp8B,KAAKq8B,gBAET,CAEAA,gBACMr8B,KAAKg8B,0BACPjU,OAAOoV,uBAAsB,KAC3Bn9B,KAAKs8B,aAAavzB,MAAM/I,KAAKyzB,OAAOxwB,KAAKjD,MAAM,IAGjDiJ,QAAQC,UAAUZ,KAAKtI,KAAKs8B,YAAYvzB,MAAM/I,KAAKyzB,OAAOxwB,KAAKjD,MAEnE,CAEAgI,cACMhI,KAAKi8B,YAITj8B,KAAK47B,gBAAkB57B,KAAK88B,IAAIM,oBAAoBp9B,KAAKywB,aAAczwB,KAAK47B,gBAAiB57B,KAAKk8B,eAAgBl8B,KAAK08B,SAEnH18B,KAAK47B,kBAAoB57B,KAAKywB,aAAaE,UAAU/vB,SACvDZ,KAAK67B,SAAU,EAEX77B,KAAKywB,aAAaG,YACpB5wB,KAAK88B,IAAIG,aAELj9B,KAAK+mB,SACP2U,EAAkB9D,OAAO53B,KAAK+mB,SAGhC/mB,KAAKsxB,aAGX,EAIF,OAAOD,CACT,CApK2B,GAsKrB/sB,QAAU,UAChB3E,QAAQ2E,QAAUA,QAClB,MAAML,MAAQ,WACdtE,QAAQsE,MAAQA,KAET,EAED,SAAUrE,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQm4B,WAAan4B,EAAQ06B,oBAAiB,EAE9C,IAAI91B,EAAQ9C,EAAoB,GAEhC,MAAM47B,EACJx1B,aAAY,MACVshB,EAAK,qBACL4B,IAEI/qB,KAAK6H,cAAgBw1B,IACvB,EAAI94B,EAAM6M,aAAa,qCAGzBpR,KAAKmpB,MAAQA,EACbnpB,KAAK+3B,sBAAwBhN,EAC7B/qB,KAAKs9B,gBAAkB,GACvBt9B,KAAKu9B,aAAe,IACtB,CAEAC,kBAAkBC,GAChBz9B,KAAKs9B,gBAAgBp9B,KAAKu9B,GAC1Bn2B,SAASo2B,MAAMlB,IAAIiB,EACrB,CAEAE,WAAWC,GACT,IAAIL,EAAev9B,KAAKu9B,aAEnBA,IACHA,EAAev9B,KAAKu9B,aAAej2B,SAASC,cAAc,SAC1Dg2B,EAAap9B,GAAK,wBAAwBH,KAAKmpB,QAC/C7hB,SAASuH,gBAAgBgvB,qBAAqB,QAAQ,GAAG/uB,YAAYyuB,IAGvE,MAAMO,EAAaP,EAAaQ,MAChCD,EAAWH,WAAWC,EAAME,EAAWE,SAASp9B,OAClD,CAEA8yB,QACE1zB,KAAKs9B,gBAAgBhK,SAAQ,SAAUmK,GACrCn2B,SAASo2B,MAAM9F,OAAO6F,EACxB,IACAz9B,KAAKs9B,gBAAgB18B,OAAS,EAE1BZ,KAAKu9B,eACPv9B,KAAKu9B,aAAaU,SAClBj+B,KAAKu9B,aAAe,KAExB,CAEAv1B,WAAWsX,GACT,GAAIA,EAAK4e,UAAY5e,EAAK6e,YACxB,OAKF,GAFA7e,EAAK4e,UAAW,EAEZl+B,KAAKo+B,0BAA2B,CAClC,MAAMX,EAAiBne,EAAK+e,uBAE5B,GAAIZ,EAAgB,CAClBz9B,KAAKw9B,kBAAkBC,GAEvB,UACQA,EAAe3R,MASvB,CARE,MAAOvd,GAOP,MANAvO,KAAK+3B,sBAAsB,CACzB6C,UAAWr2B,EAAMa,qBAAqB6a,uBAGxC,EAAI1b,EAAMmJ,MAAM,wBAAwB+vB,EAAea,aAAa/vB,OACpE+Q,EAAKoJ,iBAAkB,EACjBna,CACR,CACF,CAEA,MACF,CAEA,MAAMqvB,EAAOte,EAAKif,qBAElB,GAAIX,EAAM,CAGR,GAFA59B,KAAK29B,WAAWC,GAEZ59B,KAAKw+B,2BACP,aAGI,IAAIv1B,SAAQC,IAChB,MAAME,EAAUpJ,KAAKy+B,sBAAsBv1B,GAE3ClJ,KAAK0+B,sBAAsB,CAACd,GAAO,CAACte,GAAOlW,EAAQ,GAEvD,CACF,CAEAq1B,sBAAsBnN,IACpB,EAAI/sB,EAAM6M,aAAa,2CACzB,CAEIgtB,gCACF,MAAMO,EAAgC,qBAAbr3B,YAA8BA,SAASo2B,MAChE,OAAO,EAAIn5B,EAAMW,QAAQlF,KAAM,4BAA6B2+B,EAC9D,CAEIH,kCACF,EAAIj6B,EAAM6M,aAAa,gDACzB,CAEIwtB,qBACF,EAAIr6B,EAAM6M,aAAa,mCACzB,CAEAstB,sBAAsBG,EAAOC,EAAa11B,IACxC,EAAI7E,EAAM6M,aAAa,2CACzB,EAIF,IAAI0mB,EACJn4B,EAAQm4B,WAAaA,EAEnBn4B,EAAQm4B,WAAaA,EAAa,cAAgCuF,EAChEx1B,YAAYshB,GACVjd,MAAMid,GACNnpB,KAAK++B,eAAiB,CACpBC,SAAU,GACVC,cAAe,GAEjBj/B,KAAKk/B,eAAiB,CACxB,CAEIV,iCACF,IAAIG,GAAY,EAEhB,GAAyB,qBAAdQ,UACTR,GAAY,MACP,CACL,MAAM98B,EAAI,mCAAmC2N,KAAK2vB,UAAUC,WAExDv9B,GAAKA,EAAE,IAAM,KACf88B,GAAY,EAEhB,CAEA,OAAO,EAAIp6B,EAAMW,QAAQlF,KAAM,6BAA8B2+B,EAC/D,CAEAF,sBAAsBnN,GACpB,SAAS+N,KACP,EAAI96B,EAAMuF,SAASV,EAAQ0pB,KAAM,6CACjC1pB,EAAQ0pB,MAAO,EAEf,MAAOtrB,EAAQw3B,SAASp+B,OAAS,GAAK4G,EAAQw3B,SAAS,GAAGlM,KAAM,CAC9D,MAAMwM,EAAe93B,EAAQw3B,SAASO,QACtCrL,WAAWoL,EAAahO,SAAU,EACpC,CACF,CAEA,MAAM9pB,EAAUxH,KAAK++B,eACf31B,EAAU,CACdjJ,GAAI,sBAAsBqH,EAAQy3B,gBAClCnM,MAAM,EACNhC,SAAUuO,EACV/N,YAGF,OADA9pB,EAAQw3B,SAAS9+B,KAAKkJ,GACfA,CACT,CAEIw1B,oBACF,MAAMY,EAAkB,WACtB,OAAOC,KAAK,29CACd,EAEA,OAAO,EAAIl7B,EAAMW,QAAQlF,KAAM,gBAAiBw/B,IAClD,CAEAd,sBAAsBG,EAAOnB,EAAOt0B,GAClC,SAASs2B,EAAMld,EAAMmd,GACnB,OAAOnd,EAAKL,WAAWwd,IAAW,GAAKnd,EAAKL,WAAWwd,EAAS,IAAM,GAAKnd,EAAKL,WAAWwd,EAAS,IAAM,EAAkC,IAA9Bnd,EAAKL,WAAWwd,EAAS,EACzI,CAEA,SAASC,EAAap8B,EAAGm8B,EAAQ1B,EAAQ4B,GACvC,MAAMC,EAASt8B,EAAE6J,UAAU,EAAGsyB,GACxBI,EAASv8B,EAAE6J,UAAUsyB,EAAS1B,GACpC,OAAO6B,EAASD,EAASE,CAC3B,CAEA,IAAIj/B,EAAGklB,EACP,MAAM3e,EAASC,SAASC,cAAc,UACtCF,EAAOH,MAAQ,EACfG,EAAOF,OAAS,EAChB,MAAM64B,EAAM34B,EAAOI,WAAW,MAC9B,IAAIw4B,EAAS,EAEb,SAASC,EAAYl+B,EAAMsvB,GAGzB,GAFA2O,IAEIA,EAAS,GAGX,OAFA,EAAI17B,EAAMmJ,MAAM,qCAChB4jB,IAIF0O,EAAI1gB,KAAO,QAAUtd,EACrBg+B,EAAIG,SAAS,IAAK,EAAG,IACrB,MAAM5F,EAAYyF,EAAII,aAAa,EAAG,EAAG,EAAG,GAExC7F,EAAU/X,KAAK,GAAK,EACtB8O,IAIF4C,WAAWgM,EAAYj9B,KAAK,KAAMjB,EAAMsvB,GAC1C,CAEA,MAAM4N,EAAiB,KAAKvxB,KAAKC,QAAQ5N,KAAKk/B,mBAC9C,IAAI1c,EAAOxiB,KAAK4+B,cAChB,MAAMyB,EAAiB,IACvB7d,EAAOod,EAAapd,EAAM6d,EAAgBnB,EAAet+B,OAAQs+B,GACjE,MAAMoB,EAAsB,GACtBC,EAAa,WACnB,IAAIC,EAAWd,EAAMld,EAAM8d,GAE3B,IAAKx/B,EAAI,EAAGklB,EAAKkZ,EAAet+B,OAAS,EAAGE,EAAIklB,EAAIllB,GAAK,EACvD0/B,EAAWA,EAAWD,EAAab,EAAMR,EAAgBp+B,GAAK,EAG5DA,EAAIo+B,EAAet+B,SACrB4/B,EAAWA,EAAWD,EAAab,EAAMR,EAAiB,MAAOp+B,GAAK,GAGxE0hB,EAAOod,EAAapd,EAAM8d,EAAqB,GAAG,EAAI/7B,EAAMyM,UAAUwvB,IACtE,MAAM/5B,EAAM,iCAAiCg6B,KAAKje,OAC5Cob,EAAO,4BAA4BsB,UAAuBz4B,KAChEzG,KAAK29B,WAAWC,GAChB,MAAM8C,EAAQ,GAEd,IAAK5/B,EAAI,EAAGklB,EAAK0X,EAAM98B,OAAQE,EAAIklB,EAAIllB,IACrC4/B,EAAMxgC,KAAKw9B,EAAM58B,GAAG6/B,YAGtBD,EAAMxgC,KAAKg/B,GACX,MAAM0B,EAAMt5B,SAASC,cAAc,OAMnC,IALAq5B,EAAIC,MAAMC,WAAa,SACvBF,EAAIC,MAAM35B,MAAQ05B,EAAIC,MAAM15B,OAAS,OACrCy5B,EAAIC,MAAME,SAAW,WACrBH,EAAIC,MAAMG,IAAMJ,EAAIC,MAAMI,KAAO,MAE5BngC,EAAI,EAAGklB,EAAK0a,EAAM9/B,OAAQE,EAAIklB,IAAMllB,EAAG,CAC1C,MAAMogC,EAAO55B,SAASC,cAAc,QACpC25B,EAAK3O,YAAc,KACnB2O,EAAKL,MAAMM,WAAaT,EAAM5/B,GAC9B8/B,EAAI9xB,YAAYoyB,EAClB,CAEA55B,SAAS85B,KAAKtyB,YAAY8xB,GAC1BV,EAAYhB,GAAgB,WAC1B53B,SAAS85B,KAAKC,YAAYT,GAC1Bx3B,EAAQ0nB,UACV,GACF,GAKJ,MAAMuJ,EACJxyB,YAAYy5B,GAAgB,gBAC1Bte,GAAkB,EAAI,gBACtB0F,GAAkB,EAAK,aACvBL,GAAe,EAAK,qBACpB0C,EAAuB,KAAI,aAC3BkP,EAAe,OAEfj6B,KAAKuhC,eAAiBp/B,OAAOY,OAAO,MAEpC,IAAK,MAAMjC,KAAKwgC,EACdthC,KAAKc,GAAKwgC,EAAexgC,GAG3Bd,KAAKgjB,iBAAsC,IAApBA,EACvBhjB,KAAK0oB,iBAAsC,IAApBA,EACvB1oB,KAAKqoB,cAAgC,IAAjBA,EACpBroB,KAAK+3B,sBAAwBhN,EAC7B/qB,KAAKi6B,aAAeA,CACtB,CAEAoE,uBACE,IAAKr+B,KAAKwiB,MAAQxiB,KAAK0oB,gBACrB,OAAO,KAGT,MAAM+U,EAAiB,IAAI+D,SAASxhC,KAAK2gC,WAAY3gC,KAAKwiB,KAAM,CAAC,GAMjE,OAJIxiB,KAAKi6B,cACPj6B,KAAKi6B,aAAaE,aAAan6B,MAG1By9B,CACT,CAEAc,qBACE,IAAKv+B,KAAKwiB,MAAQxiB,KAAK0oB,gBACrB,OAAO,KAGT,MAAMlG,GAAO,EAAIje,EAAM+L,eAAe,IAAI3H,WAAW3I,KAAKwiB,OACpD/b,EAAM,YAAYzG,KAAKyhC,mBAAmBhB,KAAKje,OAC/Cob,EAAO,4BAA4B59B,KAAK2gC,mBAAmBl6B,KAMjE,OAJIzG,KAAKi6B,cACPj6B,KAAKi6B,aAAaE,aAAan6B,KAAMyG,GAGhCm3B,CACT,CAEA8D,iBAAiB/S,EAAMgT,GACrB,QAAuCvgC,IAAnCpB,KAAKuhC,eAAeI,GACtB,OAAO3hC,KAAKuhC,eAAeI,GAG7B,IAAIC,EAAMC,EAEV,IACED,EAAOjT,EAAKrsB,IAAItC,KAAK2gC,WAAa,SAAWgB,EAc/C,CAbE,MAAOpzB,GACP,IAAKvO,KAAKqoB,aACR,MAAM9Z,EAUR,OAPIvO,KAAK+3B,uBACP/3B,KAAK+3B,sBAAsB,CACzB6C,UAAWr2B,EAAMa,qBAAqB8a,oBAI1C,EAAI3b,EAAMmJ,MAAM,2CAA2Ca,OACpDvO,KAAKuhC,eAAeI,GAAa,SAAU7/B,EAAGwwB,GAAO,CAC9D,CAEA,GAAItyB,KAAKgjB,iBAAmBze,EAAM8M,sBAAsB3O,MAAO,CAC7D,IAAIsxB,EACA8N,EAAK,GAET,IAAK,IAAIhhC,EAAI,EAAGklB,EAAK4b,EAAKhhC,OAAQE,EAAIklB,EAAIllB,IACxC+gC,EAAUD,EAAK9gC,GAGbkzB,OADmB5yB,IAAjBygC,EAAQ7N,KACH6N,EAAQ7N,KAAKnzB,KAAK,KAElB,GAGTihC,GAAM,KAAOD,EAAQE,IAAM,IAAM/N,EAAO,OAG1C,OAAOh0B,KAAKuhC,eAAeI,GAAa,IAAI1e,SAAS,IAAK,OAAQ6e,EACpE,CAEA,OAAO9hC,KAAKuhC,eAAeI,GAAa,SAAU7/B,EAAGwwB,GACnD,IAAK,IAAIxxB,EAAI,EAAGklB,EAAK4b,EAAKhhC,OAAQE,EAAIklB,EAAIllB,IACxC+gC,EAAUD,EAAK9gC,GAEK,UAAhB+gC,EAAQE,MACVF,EAAQ7N,KAAO,CAAC1B,GAAOA,IAGzBxwB,EAAE+/B,EAAQE,KAAKjgB,MAAMhgB,EAAG+/B,EAAQ7N,KAEpC,CACF,EAIFr0B,EAAQ06B,eAAiBA,CAElB,EAED,SAAUz6B,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ+F,4BAAyB,EAEjC,IAAIshB,EAAWvlB,EAAoB,GAEnC,MAAMugC,EAAsB7/B,OAAOY,OAAO,OAExC,WACMikB,EAAS/gB,WACX+7B,EAAoBtZ,iBAAkB,EAEzC,EAJD,GAMF,MAAMhjB,EAAyBvD,OAAO8/B,OAAOD,GAC7CriC,EAAQ+F,uBAAyBA,CAE1B,EAED,SAAU9F,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQo9B,oBAAiB,EAEzB,IAAIx4B,EAAQ9C,EAAoB,GAE5BygC,EAAkBzgC,EAAoB,GAEtC0gC,EAAgB,GAChBC,EAAgB,IAChBC,EAAiB,KACjBC,EAAmB,IACnBC,GAAuB,EACvBC,EAAsB,IACtBC,EAAoB,GAExB,SAASC,EAA2B1C,GAC7BA,EAAI2C,sBACP3C,EAAI4C,cAAgB5C,EAAIhmB,KACxBgmB,EAAI6C,iBAAmB7C,EAAI/lB,QAC3B+lB,EAAI8C,gBAAkB9C,EAAIhR,OAC1BgR,EAAI+C,eAAiB/C,EAAI51B,MACzB41B,EAAIgD,mBAAqBhD,EAAIiD,UAC7BjD,EAAIkD,mBAAqBlD,EAAI70B,UAC7B60B,EAAImD,sBAAwBnD,EAAIoD,aAChCpD,EAAIqD,iBAAmBrD,EAAIqD,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/DrD,EAAIsD,gBAAkB,GACtBnhC,OAAOC,eAAe49B,EAAK,sBAAuB,CAChD19B,IAAK,WACH,OAAOtC,KAAKqjC,gBACd,IAEFlhC,OAAOC,eAAe49B,EAAK,6BAA8B,CACvD19B,IAAK,WACH,IAAIT,EAAI7B,KAAKqjC,iBACTrf,EAAIniB,EAAE,GACNuhB,EAAIvhB,EAAE,GACNC,EAAID,EAAE,GACNE,EAAIF,EAAE,GACNgf,EAAIhf,EAAE,GACN0hC,EAAI1hC,EAAE,GACN2hC,EAAQxf,EAAIjiB,EAAIqhB,EAAIthB,EACpB2hC,EAAQrgB,EAAIthB,EAAIkiB,EAAIjiB,EACxB,MAAO,CAACA,EAAIyhC,EAAOpgB,EAAIqgB,EAAO3hC,EAAI2hC,EAAOzf,EAAIwf,GAAQzhC,EAAI8e,EAAI/e,EAAIyhC,GAAKE,GAAQrgB,EAAIvC,EAAImD,EAAIuf,GAAKC,EACjG,IAGFxD,EAAIhmB,KAAO,WACT,IAAI0pB,EAAM1jC,KAAKqjC,iBAEfrjC,KAAKsjC,gBAAgBpjC,KAAKwjC,GAE1B1jC,KAAKqjC,iBAAmBK,EAAIr4B,MAAM,EAAG,GAErCrL,KAAK4iC,eACP,EAEA5C,EAAI/lB,QAAU,WACZ,IAAI0pB,EAAO3jC,KAAKsjC,gBAAgBM,MAE5BD,IACF3jC,KAAKqjC,iBAAmBM,EAExB3jC,KAAK6iC,mBAET,EAEA7C,EAAIiD,UAAY,SAAsB13B,EAAGC,GACvC,IAAI3J,EAAI7B,KAAKqjC,iBACbxhC,EAAE,GAAKA,EAAE,GAAK0J,EAAI1J,EAAE,GAAK2J,EAAI3J,EAAE,GAC/BA,EAAE,GAAKA,EAAE,GAAK0J,EAAI1J,EAAE,GAAK2J,EAAI3J,EAAE,GAE/B7B,KAAKgjC,mBAAmBz3B,EAAGC,EAC7B,EAEAw0B,EAAI51B,MAAQ,SAAkBmB,EAAGC,GAC/B,IAAI3J,EAAI7B,KAAKqjC,iBACbxhC,EAAE,GAAKA,EAAE,GAAK0J,EACd1J,EAAE,GAAKA,EAAE,GAAK0J,EACd1J,EAAE,GAAKA,EAAE,GAAK2J,EACd3J,EAAE,GAAKA,EAAE,GAAK2J,EAEdxL,KAAK+iC,eAAex3B,EAAGC,EACzB,EAEAw0B,EAAI70B,UAAY,SAAsB6Y,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GACnD,IAAI1hC,EAAI7B,KAAKqjC,iBACbrjC,KAAKqjC,iBAAmB,CAACxhC,EAAE,GAAKmiB,EAAIniB,EAAE,GAAKuhB,EAAGvhB,EAAE,GAAKmiB,EAAIniB,EAAE,GAAKuhB,EAAGvhB,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAGF,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAGF,EAAE,GAAKgf,EAAIhf,EAAE,GAAK0hC,EAAI1hC,EAAE,GAAIA,EAAE,GAAKgf,EAAIhf,EAAE,GAAK0hC,EAAI1hC,EAAE,IAEjKm+B,EAAIkD,mBAAmBlf,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,EACxC,EAEAvD,EAAIoD,aAAe,SAAyBpf,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GACzDvjC,KAAKqjC,iBAAmB,CAACrf,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAExCvD,EAAImD,sBAAsBnf,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,EAC3C,EAEAvD,EAAIhR,OAAS,SAAmB6U,GAC9B,IAAIC,EAAW74B,KAAK84B,IAAIF,GACpBG,EAAW/4B,KAAKg5B,IAAIJ,GACpBhiC,EAAI7B,KAAKqjC,iBACbrjC,KAAKqjC,iBAAmB,CAACxhC,EAAE,GAAKiiC,EAAWjiC,EAAE,GAAKmiC,EAAUniC,EAAE,GAAKiiC,EAAWjiC,EAAE,GAAKmiC,EAAUniC,EAAE,IAAMmiC,EAAWniC,EAAE,GAAKiiC,EAAUjiC,EAAE,IAAMmiC,EAAWniC,EAAE,GAAKiiC,EAAUjiC,EAAE,GAAIA,EAAE,IAE/K7B,KAAK8iC,gBAAgBe,EACvB,EAEJ,CAEA,IAAIK,EAAiB,WACnB,SAASA,EAAepU,GACtB9vB,KAAK8vB,cAAgBA,EACrB9vB,KAAKmkC,MAAQhiC,OAAOY,OAAO,KAC7B,CA+BA,OA7BAmhC,EAAe7gC,UAAY,CACzB+gC,UAAW,SAAkCjkC,EAAI+G,EAAOC,EAAQk9B,GAC9D,IAAIC,EAeJ,YAbuBljC,IAAnBpB,KAAKmkC,MAAMhkC,IACbmkC,EAActkC,KAAKmkC,MAAMhkC,GACzBH,KAAK8vB,cAAcpoB,MAAM48B,EAAap9B,EAAOC,GAC7Cm9B,EAAY98B,QAAQ47B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,KAEhDkB,EAActkC,KAAK8vB,cAAc/sB,OAAOmE,EAAOC,GAC/CnH,KAAKmkC,MAAMhkC,GAAMmkC,GAGfD,GACF3B,EAA2B4B,EAAY98B,SAGlC88B,CACT,EAEA5Q,QACE,IAAK,IAAIvzB,KAAMH,KAAKmkC,MAAO,CACzB,IAAIG,EAActkC,KAAKmkC,MAAMhkC,GAC7BH,KAAK8vB,cAAcloB,QAAQ08B,UACpBtkC,KAAKmkC,MAAMhkC,EACpB,CACF,GAGK+jC,CACT,CApCqB,GAsCrB,SAASK,EAAkBC,GACzB,IAGI1jC,EACA2jC,EACAC,EAQA1e,EAbA2e,EAAyB,IACzBz9B,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OAIjBy9B,EAAS19B,EAAQ,EACjB29B,EAAS,IAAIl8B,WAAWi8B,GAAUz9B,EAAS,IAC3C29B,EAAc,IAAIn8B,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAC5Eo8B,EAAW79B,EAAQ,GAAI,EACvB89B,EAAQR,EAAQhiB,KAChBA,EAAO,IAAI7Z,WAAWo8B,EAAW59B,GACjCob,EAAM,EAGV,IAAKzhB,EAAI,EAAGklB,EAAKgf,EAAMpkC,OAAQE,EAAIklB,EAAIllB,IAAK,CAC1C,IAAImkC,EAAO,IACPC,EAAOF,EAAMlkC,GAEjB,MAAOmkC,EAAO,EACZziB,EAAKD,KAAS2iB,EAAOD,EAAO,EAAI,IAChCA,IAAS,CAEb,CAEA,IAAIE,EAAQ,EAQZ,IAPA5iB,EAAM,EAEY,IAAdC,EAAKD,KACPsiB,EAAO,GAAK,IACVM,GAGCV,EAAI,EAAGA,EAAIv9B,EAAOu9B,IACjBjiB,EAAKD,KAASC,EAAKD,EAAM,KAC3BsiB,EAAOJ,GAAKjiB,EAAKD,GAAO,EAAI,IAC1B4iB,GAGJ5iB,IAQF,IALkB,IAAdC,EAAKD,KACPsiB,EAAOJ,GAAK,IACVU,GAGCrkC,EAAI,EAAGA,EAAIqG,EAAQrG,IAAK,CAC3ByhB,EAAMzhB,EAAIikC,EACVL,EAAK5jC,EAAI8jC,EAELpiB,EAAKD,EAAMwiB,KAAcviB,EAAKD,KAChCsiB,EAAOH,GAAMliB,EAAKD,GAAO,EAAI,IAC3B4iB,GAGJ,IAAIC,GAAO5iB,EAAKD,GAAO,EAAI,IAAMC,EAAKD,EAAMwiB,GAAY,EAAI,GAE5D,IAAKN,EAAI,EAAGA,EAAIv9B,EAAOu9B,IACrBW,GAAOA,GAAO,IAAM5iB,EAAKD,EAAM,GAAK,EAAI,IAAMC,EAAKD,EAAMwiB,EAAW,GAAK,EAAI,GAEzED,EAAYM,KACdP,EAAOH,EAAKD,GAAKK,EAAYM,KAC3BD,GAGJ5iB,IAQF,GALIC,EAAKD,EAAMwiB,KAAcviB,EAAKD,KAChCsiB,EAAOH,EAAKD,GAAKjiB,EAAKD,GAAO,EAAI,IAC/B4iB,GAGAA,EAAQR,EACV,OAAO,IAEX,CAUA,IARApiB,EAAMwiB,GAAY59B,EAAS,GAC3Bu9B,EAAK5jC,EAAI8jC,EAES,IAAdpiB,EAAKD,KACPsiB,EAAOH,GAAM,IACXS,GAGCV,EAAI,EAAGA,EAAIv9B,EAAOu9B,IACjBjiB,EAAKD,KAASC,EAAKD,EAAM,KAC3BsiB,EAAOH,EAAKD,GAAKjiB,EAAKD,GAAO,EAAI,IAC/B4iB,GAGJ5iB,IAQF,GALkB,IAAdC,EAAKD,KACPsiB,EAAOH,EAAKD,GAAK,IACfU,GAGAA,EAAQR,EACV,OAAO,KAGT,IAAIU,EAAQ,IAAIC,WAAW,CAAC,EAAGV,GAAS,EAAG,GAAIA,EAAQ,EAAG,EAAG,EAAG,IAC5DW,EAAW,GAEf,IAAKzkC,EAAI,EAAGqkC,GAASrkC,GAAKqG,EAAQrG,IAAK,CACrC,IAAIyC,EAAIzC,EAAI8jC,EACRz3B,EAAM5J,EAAI2D,EAEd,MAAO3D,EAAI4J,IAAQ03B,EAAOthC,GACxBA,IAGF,GAAIA,IAAM4J,EAAV,CAIA,IAGIq4B,EAHAC,EAAS,CAACliC,EAAIqhC,EAAQ9jC,GACtBoJ,EAAO26B,EAAOthC,GACdmiC,EAAKniC,EAGT,EAAG,CACD,IAAIoiC,EAAON,EAAMn7B,GAEjB,GACE3G,GAAKoiC,SACGd,EAAOthC,IAEjBiiC,EAAKX,EAAOthC,GAED,IAAPiiC,GAAmB,KAAPA,GACdt7B,EAAOs7B,EACPX,EAAOthC,GAAK,IAEZ2G,EAAOs7B,EAAK,GAAOt7B,GAAQ,EAC3B26B,EAAOthC,IAAM2G,GAAQ,EAAIA,GAAQ,GAGnCu7B,EAAOvlC,KAAKqD,EAAIqhC,GAChBa,EAAOvlC,KAAKqD,EAAIqhC,EAAS,GAEpBC,EAAOthC,MACR4hC,CAEN,OAASO,IAAOniC,GAEhBgiC,EAASrlC,KAAKulC,KACZ3kC,CAjCF,CAkCF,CAEA,IAAI8kC,EAAc,SAAU9jC,GAC1BA,EAAEkY,OACFlY,EAAEsI,MAAM,EAAIlD,GAAQ,EAAIC,GACxBrF,EAAEmhC,UAAU,GAAI97B,GAChBrF,EAAE+jC,YAEF,IAAK,IAAIvkC,EAAI,EAAGwkC,EAAKP,EAAS3kC,OAAQU,EAAIwkC,EAAIxkC,IAAK,CACjD,IAAIY,EAAIqjC,EAASjkC,GACjBQ,EAAEoY,OAAOhY,EAAE,GAAIA,EAAE,IAEjB,IAAK,IAAIP,EAAI,EAAGokC,EAAK7jC,EAAEtB,OAAQe,EAAIokC,EAAIpkC,GAAK,EAC1CG,EAAEqY,OAAOjY,EAAEP,GAAIO,EAAEP,EAAI,GAEzB,CAEAG,EAAE6Y,OACF7Y,EAAE+jC,YACF/jC,EAAEmY,SACJ,EAEA,OAAO2rB,CACT,CAEA,IAAII,EAAmB,WACrB,SAASA,IACPhmC,KAAKimC,cAAe,EACpBjmC,KAAKkmC,SAAW,EAChBlmC,KAAKmmC,cAAgB,EACrBnmC,KAAKomC,WAAa7hC,EAAMgO,gBACxBvS,KAAKqmC,gBAAkB,EACvBrmC,KAAKsmC,WAAa/hC,EAAMiO,qBACxBxS,KAAKumC,QAAU,EACfvmC,KAAKuL,EAAI,EACTvL,KAAKwL,EAAI,EACTxL,KAAKwmC,MAAQ,EACbxmC,KAAKymC,MAAQ,EACbzmC,KAAK0mC,YAAc,EACnB1mC,KAAK2mC,YAAc,EACnB3mC,KAAK4mC,WAAa,EAClB5mC,KAAK6mC,kBAAoBtiC,EAAMkN,kBAAkBwB,KACjDjT,KAAK8mC,SAAW,EAChB9mC,KAAK+mC,UAAY,UACjB/mC,KAAKgnC,YAAc,UACnBhnC,KAAKinC,aAAc,EACnBjnC,KAAKknC,UAAY,EACjBlnC,KAAKmnC,YAAc,EACnBnnC,KAAKonC,UAAY,EACjBpnC,KAAKqnC,YAAc,KACnBrnC,KAAKsnC,eAAiB,IACxB,CAWA,OATAtB,EAAiB3iC,UAAY,CAC3B+H,MAAO,WACL,OAAOjJ,OAAOY,OAAO/C,KACvB,EACAunC,gBAAiB,SAA0Ch8B,EAAGC,GAC5DxL,KAAKuL,EAAIA,EACTvL,KAAKwL,EAAIA,CACX,GAEKw6B,CACT,CAtCuB,GAwCnBjJ,EAAiB,WACnB,IAAIyK,EAAiB,GACjBC,EAAkB,GAEtB,SAAS1K,EAAe2K,EAAWhZ,EAAYC,EAAMmB,EAAeO,EAAcR,GAChF7vB,KAAKggC,IAAM0H,EACX1nC,KAAK6hC,QAAU,IAAImE,EACnBhmC,KAAK2nC,WAAa,GAClB3nC,KAAK4nC,YAAc,KACnB5nC,KAAK6nC,eAAgB,EACrB7nC,KAAK8nC,IAAM,KACX9nC,KAAK+nC,MAAQ,KACb/nC,KAAK0uB,WAAaA,EAClB1uB,KAAK2uB,KAAOA,EACZ3uB,KAAK8vB,cAAgBA,EACrB9vB,KAAKqwB,aAAeA,EACpBrwB,KAAK6vB,WAAaA,EAClB7vB,KAAKgoC,WAAa,GAClBhoC,KAAKioC,gBAAkB,KACvBjoC,KAAKkoC,cAAgB,KACrBloC,KAAKmoC,mBAAqB,GAC1BnoC,KAAKooC,WAAa,EAClBpoC,KAAKqoC,WAAa,GAClBroC,KAAKsoC,aAAe,EACpBtoC,KAAKuoC,UAAY,KACjBvoC,KAAKwoC,eAAiB,IAAItE,EAAelkC,KAAK8vB,eAE1C4X,GACFhF,EAA2BgF,GAG7B1nC,KAAKyoC,2BAA6B,IACpC,CAEA,SAASC,EAAmB1I,EAAKwE,GAC/B,GAAyB,qBAAdmE,WAA6BnE,aAAmBmE,UACzD3I,EAAI4I,aAAapE,EAAS,EAAG,OAD/B,CAKA,IAOIqE,EAGA/nC,EAAG2jC,EAAGqE,EAAiBC,EAVvB5hC,EAASq9B,EAAQr9B,OACjBD,EAAQs9B,EAAQt9B,MAChB8hC,EAAqB7hC,EAASs7B,EAC9BwG,GAAc9hC,EAAS6hC,GAAsBvG,EAC7CyG,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAenJ,EAAIoJ,gBAAgBliC,EAAOu7B,GAC1C4G,EAAS,EAET76B,EAAMg2B,EAAQhiB,KACd8K,EAAO6b,EAAa3mB,KAGxB,GAAIgiB,EAAQ8E,OAAS/kC,EAAMsN,UAAU8B,eAAgB,CACnD,IAAI41B,EAAY/6B,EAAI6T,WAChBmnB,EAAS,IAAI1mB,YAAYwK,EAAKvK,OAAQ,EAAGuK,EAAKjL,YAAc,GAC5DonB,EAAmBD,EAAO5oC,OAC1B8oC,EAAcxiC,EAAQ,GAAK,EAC3ByiC,EAAQ,WACRC,EAAQrlC,EAAM+M,qBAAqB5O,MAAQ,WAAa,IAE5D,IAAK5B,EAAI,EAAGA,EAAIooC,EAAapoC,IAAK,CAIhC,IAHAgoC,EAAkBhoC,EAAImoC,EAAaxG,EAAoBuG,EACvDH,EAAU,EAELpE,EAAI,EAAGA,EAAIqE,EAAiBrE,IAAK,CAQpC,IAPA,IAAIoF,EAAUN,EAAYF,EACtB/nC,EAAI,EACJwoC,EAAOD,EAAUH,EAAcxiC,EAAkB,EAAV2iC,EAAc,EACrDE,GAAsB,EAAPD,EACf7E,EAAO,EACP+E,EAAU,EAEP1oC,EAAIyoC,EAAczoC,GAAK,EAC5B0oC,EAAUx7B,EAAI66B,KACdG,EAAOX,KAAuB,IAAVmB,EAAgBL,EAAQC,EAC5CJ,EAAOX,KAAuB,GAAVmB,EAAeL,EAAQC,EAC3CJ,EAAOX,KAAuB,GAAVmB,EAAeL,EAAQC,EAC3CJ,EAAOX,KAAuB,GAAVmB,EAAeL,EAAQC,EAC3CJ,EAAOX,KAAuB,EAAVmB,EAAcL,EAAQC,EAC1CJ,EAAOX,KAAuB,EAAVmB,EAAcL,EAAQC,EAC1CJ,EAAOX,KAAuB,EAAVmB,EAAcL,EAAQC,EAC1CJ,EAAOX,KAAuB,EAAVmB,EAAcL,EAAQC,EAG5C,KAAOtoC,EAAIwoC,EAAMxoC,IACF,IAAT2jC,IACF+E,EAAUx7B,EAAI66B,KACdpE,EAAO,KAGTuE,EAAOX,KAAamB,EAAU/E,EAAO0E,EAAQC,EAC7C3E,IAAS,CAEb,CAEA,MAAO4D,EAAUY,EACfD,EAAOX,KAAa,EAGtB7I,EAAI4I,aAAaO,EAAc,EAAGroC,EAAI2hC,EACxC,CACF,MAAO,GAAI+B,EAAQ8E,OAAS/kC,EAAMsN,UAAUgC,WAAY,CAItD,IAHA4wB,EAAI,EACJsE,EAAmB7hC,EAAQu7B,EAAoB,EAE1C3hC,EAAI,EAAGA,EAAImoC,EAAYnoC,IAC1BwsB,EAAK5K,IAAIlU,EAAI0T,SAASmnB,EAAQA,EAASN,IACvCM,GAAUN,EACV/I,EAAI4I,aAAaO,EAAc,EAAG1E,GAClCA,GAAKhC,EAGH3hC,EAAIooC,IACNH,EAAmB7hC,EAAQ8hC,EAAqB,EAChD1b,EAAK5K,IAAIlU,EAAI0T,SAASmnB,EAAQA,EAASN,IACvC/I,EAAI4I,aAAaO,EAAc,EAAG1E,GAEtC,KAAO,IAAID,EAAQ8E,OAAS/kC,EAAMsN,UAAU+B,UAsB1C,MAAM,IAAIxM,MAAM,mBAAmBo9B,EAAQ8E,QAlB3C,IAHAR,EAAkBrG,EAClBsG,EAAmB7hC,EAAQ4hC,EAEtBhoC,EAAI,EAAGA,EAAIooC,EAAapoC,IAAK,CAQhC,IAPIA,GAAKmoC,IACPH,EAAkBE,EAClBD,EAAmB7hC,EAAQ4hC,GAG7BD,EAAU,EAELpE,EAAIsE,EAAkBtE,KACzBnX,EAAKub,KAAar6B,EAAI66B,KACtB/b,EAAKub,KAAar6B,EAAI66B,KACtB/b,EAAKub,KAAar6B,EAAI66B,KACtB/b,EAAKub,KAAa,IAGpB7I,EAAI4I,aAAaO,EAAc,EAAGroC,EAAI2hC,EACxC,CAGF,CAtGA,CAuGF,CAEA,SAASwH,EAAmBjK,EAAKwE,GAW/B,IAVA,IAAIr9B,EAASq9B,EAAQr9B,OACjBD,EAAQs9B,EAAQt9B,MAChB8hC,EAAqB7hC,EAASs7B,EAC9BwG,GAAc9hC,EAAS6hC,GAAsBvG,EAC7CyG,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAenJ,EAAIoJ,gBAAgBliC,EAAOu7B,GAC1C4G,EAAS,EACT76B,EAAMg2B,EAAQhiB,KACd8K,EAAO6b,EAAa3mB,KAEf1hB,EAAI,EAAGA,EAAIooC,EAAapoC,IAAK,CAIpC,IAHA,IAAIgoC,EAAkBhoC,EAAImoC,EAAaxG,EAAoBuG,EACvDH,EAAU,EAELpE,EAAI,EAAGA,EAAIqE,EAAiBrE,IAGnC,IAFA,IAAIQ,EAAO,EAEF3jC,EAAI,EAAGA,EAAI4F,EAAO5F,IAAK,CAC9B,IAAK2jC,EAAM,CACT,IAAIC,EAAO12B,EAAI66B,KACfpE,EAAO,GACT,CAEA3X,EAAKub,GAAW3D,EAAOD,EAAO,EAAI,IAClC4D,GAAW,EACX5D,IAAS,CACX,CAGFjF,EAAI4I,aAAaO,EAAc,EAAGroC,EAAI2hC,EACxC,CACF,CAEA,SAASyH,EAAaC,EAAWC,GAG/B,IAFA,IAAIC,EAAa,CAAC,cAAe,YAAa,WAAY,cAAe,YAAa,UAAW,WAAY,aAAc,2BAA4B,QAE9IvpC,EAAI,EAAGklB,EAAKqkB,EAAWzpC,OAAQE,EAAIklB,EAAIllB,IAAK,CACnD,IAAIsC,EAAWinC,EAAWvpC,QAEEM,IAAxB+oC,EAAU/mC,KACZgnC,EAAQhnC,GAAY+mC,EAAU/mC,GAElC,MAE8BhC,IAA1B+oC,EAAUG,cACZF,EAAQE,YAAYH,EAAUI,eAC9BH,EAAQI,eAAiBL,EAAUK,eAEvC,CAEA,SAASC,EAAkBzK,GACzBA,EAAI0K,YAAc,UAClB1K,EAAI2K,UAAY,UAChB3K,EAAI4K,SAAW,UACf5K,EAAI6K,YAAc,EAClB7K,EAAIoH,UAAY,EAChBpH,EAAI8K,QAAU,OACd9K,EAAI+K,SAAW,QACf/K,EAAIgL,WAAa,GACjBhL,EAAIiL,yBAA2B,cAC/BjL,EAAI1gB,KAAO,uBAEale,IAApB4+B,EAAIsK,cACNtK,EAAIsK,YAAY,IAChBtK,EAAIwK,eAAiB,EAEzB,CAEA,SAASU,EAAqBxpB,EAAOypB,EAAIC,EAAIC,GAG3C,IAFA,IAAIzqC,EAAS8gB,EAAM9gB,OAEVE,EAAI,EAAGA,EAAIF,EAAQE,GAAK,EAAG,CAClC,IAAIwqC,EAAQ5pB,EAAM5gB,GAElB,GAAc,IAAVwqC,EACF5pB,EAAM5gB,EAAI,GAAKqqC,EACfzpB,EAAM5gB,EAAI,GAAKsqC,EACf1pB,EAAM5gB,EAAI,GAAKuqC,OACV,GAAIC,EAAQ,IAAK,CACtB,IAAIC,EAAS,IAAMD,EACnB5pB,EAAM5gB,EAAI,GAAK4gB,EAAM5gB,EAAI,GAAKwqC,EAAQH,EAAKI,GAAU,EACrD7pB,EAAM5gB,EAAI,GAAK4gB,EAAM5gB,EAAI,GAAKwqC,EAAQF,EAAKG,GAAU,EACrD7pB,EAAM5gB,EAAI,GAAK4gB,EAAM5gB,EAAI,GAAKwqC,EAAQD,EAAKE,GAAU,CACvD,CACF,CACF,CAEA,SAASC,EAAkBC,EAAUC,EAAWC,GAI9C,IAHA,IAAI/qC,EAAS6qC,EAAS7qC,OAClBwJ,EAAQ,EAAI,IAEPtJ,EAAI,EAAGA,EAAIF,EAAQE,GAAK,EAAG,CAClC,IAAIwqC,EAAQK,EAAcA,EAAYF,EAAS3qC,IAAM2qC,EAAS3qC,GAC9D4qC,EAAU5qC,GAAK4qC,EAAU5qC,GAAKwqC,EAAQlhC,EAAQ,CAChD,CACF,CAEA,SAASwhC,EAAuBH,EAAUC,EAAWC,GAGnD,IAFA,IAAI/qC,EAAS6qC,EAAS7qC,OAEbE,EAAI,EAAGA,EAAIF,EAAQE,GAAK,EAAG,CAClC,IAAI0K,EAAsB,GAAlBigC,EAAS3qC,EAAI,GAA4B,IAAlB2qC,EAAS3qC,EAAI,GAA6B,GAAlB2qC,EAAS3qC,EAAI,GACpE4qC,EAAU5qC,GAAK6qC,EAAcD,EAAU5qC,GAAK6qC,EAAYngC,GAAK,IAAM,EAAIkgC,EAAU5qC,GAAK0K,GAAK,EAC7F,CACF,CAEA,SAASqgC,EAAoBC,EAASC,EAAU7kC,EAAOC,EAAQ6kC,EAASC,EAAUN,GAChF,IAIIO,EAJAC,IAAgBF,EAChBd,EAAKgB,EAAcF,EAAS,GAAK,EACjCb,EAAKe,EAAcF,EAAS,GAAK,EACjCZ,EAAKc,EAAcF,EAAS,GAAK,EAInCC,EADc,eAAZF,EACUJ,EAEAJ,EAMd,IAHA,IAAIY,EAAoB,QACpBC,EAAYphC,KAAKmC,IAAIjG,EAAQ8D,KAAKqhC,KAAKF,EAAoBllC,IAEtDqlC,EAAM,EAAGA,EAAMplC,EAAQolC,GAAOF,EAAW,CAChD,IAAIG,EAAcvhC,KAAKmC,IAAIi/B,EAAWllC,EAASolC,GAC3Cd,EAAWK,EAAQ1L,aAAa,EAAGmM,EAAKrlC,EAAOslC,GAC/Cd,EAAYK,EAAS3L,aAAa,EAAGmM,EAAKrlC,EAAOslC,GAEjDL,GACFjB,EAAqBO,EAASjpB,KAAM2oB,EAAIC,EAAIC,GAG9Ca,EAAUT,EAASjpB,KAAMkpB,EAAUlpB,KAAMmpB,GACzCG,EAAQlD,aAAa8C,EAAW,EAAGa,EACrC,CACF,CAEA,SAASE,EAAazM,EAAK5gB,EAAO2sB,EAAU1b,GAC1C,IAAI4U,EAAO7lB,EAAM/X,OACbykC,EAAU1sB,EAAM5X,QACpBw4B,EAAIoD,aAAahkB,EAAMstB,OAAQ,EAAG,EAAGttB,EAAMutB,OAAQvtB,EAAM9U,QAAS8U,EAAM7U,SACxE,IAAI0hC,EAAW7sB,EAAM6sB,UAAY,KAEjC,IAAK7sB,EAAMusB,aAAetb,EAAauc,UAAW,CAChD,MAAMC,EAAWxc,EAAaoc,aAAa,CACzCtrC,MAAO4qC,EAAS1kC,OAChB49B,OACAoF,WAAY,CACV2B,QAAS5sB,EAAM4sB,QACfC,cAKJ,OAFAjM,EAAIoD,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,QAChCpD,EAAI8M,UAAUD,EAAUztB,EAAM9U,QAAS8U,EAAM7U,QAE/C,CAEAshC,EAAoBC,EAASC,EAAU9G,EAAK/9B,MAAO+9B,EAAK99B,OAAQiY,EAAM4sB,QAASC,EAAU7sB,EAAMusB,aAC/F3L,EAAI8M,UAAU7H,EAAM,EAAG,EACzB,CAEA,IAAI8H,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SACtCC,EAAc,CAAC,EACfC,EAAU,CAAC,EA60Cf,IAAK,IAAIC,KA50CTpQ,EAAe15B,UAAY,CACzB25B,cAAa,UACX7xB,EAAS,SACTukB,EAAQ,aACR+B,GAAe,EAAK,WACpB1B,EAAa,OAEb,IAAI7oB,EAAQlH,KAAKggC,IAAI34B,OAAOH,MACxBC,EAASnH,KAAKggC,IAAI34B,OAAOF,OAM7B,GALAnH,KAAKggC,IAAIhmB,OACTha,KAAKggC,IAAI2K,UAAY5a,GAAc,qBACnC/vB,KAAKggC,IAAIoN,SAAS,EAAG,EAAGlmC,EAAOC,GAC/BnH,KAAKggC,IAAI/lB,UAELwX,EAAc,CAChB,IAAI4b,EAAoBrtC,KAAKwoC,eAAepE,UAAU,cAAel9B,EAAOC,GAAQ,GACpFnH,KAAKstC,aAAettC,KAAKggC,IACzBhgC,KAAKqtC,kBAAoBA,EAAkBhmC,OAC3CrH,KAAKggC,IAAMqN,EAAkB7lC,QAC7BxH,KAAKggC,IAAIhmB,OACTha,KAAKggC,IAAI70B,UAAU2W,MAAM9hB,KAAKggC,IAAKhgC,KAAKstC,aAAa3K,oBACvD,CAEA3iC,KAAKggC,IAAIhmB,OACTywB,EAAkBzqC,KAAKggC,KAEnB70B,GACFnL,KAAKggC,IAAI70B,UAAU2W,MAAM9hB,KAAKggC,IAAK70B,GAGrCnL,KAAKggC,IAAI70B,UAAU2W,MAAM9hB,KAAKggC,IAAKtQ,EAASvkB,WAC5CnL,KAAKkoC,cAAgBloC,KAAKggC,IAAI2C,oBAAoBt3B,QAE9CrL,KAAK6vB,YACP7vB,KAAK6vB,WAAW0d,aAEpB,EAEAnQ,oBAAqB,SAA4C3M,EAAc+c,EAAmBC,EAAkB/Q,GAClH,IAAI/L,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QACvB5vB,EAAI0sC,GAAqB,EACzBE,EAAe/c,EAAU/vB,OAE7B,GAAI8sC,IAAiB5sC,EACnB,OAAOA,EAGT,IAKI6sC,EALAC,EAAkBF,EAAe5sC,EAAI2mC,GAA+C,oBAArBgG,EAC/DI,EAAUD,EAAkBjgC,KAAKC,MAAQ45B,EAAiB,EAC1DnC,EAAQ,EACR3W,EAAa1uB,KAAK0uB,WAClBC,EAAO3uB,KAAK2uB,KAGhB,MAAO,EAAM,CACX,QAAgBvtB,IAAZs7B,GAAyB57B,IAAM47B,EAAQE,eAEzC,OADAF,EAAQoR,QAAQhtC,EAAG2sC,GACZ3sC,EAKT,GAFA6sC,EAAOjd,EAAQ5vB,GAEX6sC,IAASppC,EAAMO,IAAIyU,WACrBvZ,KAAK2tC,GAAM7rB,MAAM9hB,KAAM2wB,EAAU7vB,SAEjC,IAAK,MAAMitC,KAAYpd,EAAU7vB,GAAI,CACnC,MAAMktC,EAAWD,EAASE,WAAW,MAAQvf,EAAaC,EAE1D,IAAKqf,EAASpZ,IAAImZ,GAEhB,OADAC,EAAS1rC,IAAIyrC,EAAUN,GAChB3sC,CAEX,CAKF,GAFAA,IAEIA,IAAM4sC,EACR,OAAO5sC,EAGT,GAAI8sC,KAAqBvI,EAAQoC,EAAiB,CAChD,GAAI95B,KAAKC,MAAQigC,EAEf,OADAJ,IACO3sC,EAGTukC,EAAQ,CACV,CACF,CACF,EACApI,WAAY,WACuB,OAA7Bj9B,KAAK6hC,QAAQwF,aACfrnC,KAAKkuC,gBAGPluC,KAAKggC,IAAI/lB,UAELja,KAAKqtC,oBACPrtC,KAAKggC,IAAMhgC,KAAKstC,aAChBttC,KAAKggC,IAAIhmB,OACTha,KAAKggC,IAAIoD,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrCpjC,KAAKggC,IAAI8M,UAAU9sC,KAAKqtC,kBAAmB,EAAG,GAC9CrtC,KAAKggC,IAAI/lB,UACTja,KAAKqtC,kBAAoB,MAG3BrtC,KAAKwoC,eAAe9U,QACpB1zB,KAAKqwB,aAAaqD,QAEd1zB,KAAK6vB,YACP7vB,KAAK6vB,WAAWse,WAEpB,EACA30B,aAAc,SAAqCtS,GACjDlH,KAAK6hC,QAAQuF,UAAYlgC,EACzBlH,KAAKggC,IAAIoH,UAAYlgC,CACvB,EACAuS,WAAY,SAAmConB,GAC7C7gC,KAAKggC,IAAI8K,QAAUiC,EAAgBlM,EACrC,EACAnnB,YAAa,SAAoCmnB,GAC/C7gC,KAAKggC,IAAI+K,SAAWiC,EAAiBnM,EACvC,EACAlnB,cAAe,SAAsCy0B,GACnDpuC,KAAKggC,IAAIgL,WAAaoD,CACxB,EACAx0B,QAAS,SAAgCy0B,EAAWC,GAClD,IAAItO,EAAMhgC,KAAKggC,SAES5+B,IAApB4+B,EAAIsK,cACNtK,EAAIsK,YAAY+D,GAChBrO,EAAIwK,eAAiB8D,EAEzB,EAEAz0B,mBAAmBwV,GAAS,EAE5BvV,YAAYy0B,GAAW,EAEvBx0B,UAAW,SAAkCy0B,GAC3C,IAAK,IAAI1tC,EAAI,EAAGklB,EAAKwoB,EAAO5tC,OAAQE,EAAIklB,EAAIllB,IAAK,CAC/C,IAAI2tC,EAAQD,EAAO1tC,GACfkC,EAAMyrC,EAAM,GACZ/rC,EAAQ+rC,EAAM,GAElB,OAAQzrC,GACN,IAAK,KACHhD,KAAKwZ,aAAa9W,GAClB,MAEF,IAAK,KACH1C,KAAKyZ,WAAW/W,GAChB,MAEF,IAAK,KACH1C,KAAK0Z,YAAYhX,GACjB,MAEF,IAAK,KACH1C,KAAK2Z,cAAcjX,GACnB,MAEF,IAAK,IACH1C,KAAK4Z,QAAQlX,EAAM,GAAIA,EAAM,IAC7B,MAEF,IAAK,KACH1C,KAAK6Z,mBAAmBnX,GACxB,MAEF,IAAK,KACH1C,KAAK8Z,YAAYpX,GACjB,MAEF,IAAK,OACH1C,KAAK0b,QAAQhZ,EAAM,GAAIA,EAAM,IAC7B,MAEF,IAAK,KACH1C,KAAK6hC,QAAQsF,YAAcsH,EAAM,GACjC,MAEF,IAAK,KACHzuC,KAAK6hC,QAAQqF,UAAYuH,EAAM,GAC/BzuC,KAAKggC,IAAI6K,YAAc4D,EAAM,GAC7B,MAEF,IAAK,KACHzuC,KAAKggC,IAAIiL,yBAA2BvoC,EACpC,MAEF,IAAK,QACC1C,KAAK6hC,QAAQwF,cACXrnC,KAAK2nC,WAAW/mC,OAAS,GAAKZ,KAAK2nC,WAAW3nC,KAAK2nC,WAAW/mC,OAAS,GAAGymC,cAAgBrnC,KAAK6hC,QAAQwF,YACzGrnC,KAAK0uC,oBAEL1uC,KAAKkuC,iBAITluC,KAAK6hC,QAAQwF,YAAc3kC,EAAQ1C,KAAKuoC,UAAY,KAEhDvoC,KAAK6hC,QAAQwF,aACfrnC,KAAK2uC,kBAGP3uC,KAAKuoC,UAAY,KACjB,MAEN,CACF,EACAoG,gBAAiB,WACf,IAAItH,EAAcrnC,KAAK6hC,QAAQwF,YAC3BuH,EAAavH,EAAYhgC,OAAOH,MAChC2nC,EAAcxH,EAAYhgC,OAAOF,OACjC2nC,EAAU,eAAiB9uC,KAAKooC,WAChC2G,EAAgB/uC,KAAKwoC,eAAepE,UAAU0K,EAASF,EAAYC,GAAa,GAChFG,EAAahvC,KAAKggC,IAClBiP,EAAmBD,EAAWrM,oBAClC3iC,KAAKggC,IAAIhmB,OACT,IAAIk1B,EAAWH,EAAcvnC,QAC7B0nC,EAAS9kC,MAAM,EAAIi9B,EAAYqF,OAAQ,EAAIrF,EAAYsF,QACvDuC,EAASjM,WAAWoE,EAAY/8B,SAAU+8B,EAAY98B,SACtD2kC,EAAS/jC,UAAU2W,MAAMotB,EAAUD,GACnC5H,EAAY8H,sBAAwBD,EAASE,2BAC7ClF,EAAa8E,EAAYE,GACzBlvC,KAAKggC,IAAMkP,EACXlvC,KAAK+Z,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KACzD/Z,KAAKgoC,WAAW9nC,KAAK8uC,GACrBhvC,KAAKooC,YACP,EACAsG,kBAAmB,WACjB,IAAIQ,EAAWlvC,KAAKggC,IACpBhgC,KAAKooC,aACLpoC,KAAKggC,IAAMhgC,KAAKgoC,WAAWpE,MAC3B6I,EAAazsC,KAAKggC,IAAKhgC,KAAK6hC,QAAQwF,YAAa6H,EAAUlvC,KAAKqwB,cAChErwB,KAAKggC,IAAI/lB,UACTja,KAAKggC,IAAIhmB,OACTkwB,EAAagF,EAAUlvC,KAAKggC,KAC5BhgC,KAAK6hC,QAAQyF,eAAiB4H,EAE9B,IAAIG,EAAiB9qC,EAAMc,KAAK8F,UAAUnL,KAAK6hC,QAAQwF,YAAY8H,sBAAuBD,EAASvM,qBAEnG3iC,KAAKggC,IAAI70B,UAAU2W,MAAM9hB,KAAKggC,IAAKqP,GACnCH,EAASl1B,OACTk1B,EAAS9L,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrC8L,EAASI,UAAU,EAAG,EAAGJ,EAAS7nC,OAAOH,MAAOgoC,EAAS7nC,OAAOF,QAChE+nC,EAASj1B,SACX,EACAs1B,iBAAkB,WAChB,IAAIL,EAAWlvC,KAAK6hC,QAAQyF,eACxB0H,EAAahvC,KAAKggC,IACtBhgC,KAAKggC,IAAMkP,EACXlvC,KAAKgoC,WAAW9nC,KAAK8uC,GACrBhvC,KAAKooC,YACP,EACA8F,cAAe,WACb,IAAIgB,EAAWlvC,KAAKggC,IACpBhgC,KAAKooC,aACLpoC,KAAKggC,IAAMhgC,KAAKgoC,WAAWpE,MAC3B6I,EAAazsC,KAAKggC,IAAKhgC,KAAK6hC,QAAQwF,YAAa6H,EAAUlvC,KAAKqwB,cAChErwB,KAAKggC,IAAI/lB,UACTiwB,EAAagF,EAAUlvC,KAAKggC,KAE5B,IAAIqP,EAAiB9qC,EAAMc,KAAK8F,UAAUnL,KAAK6hC,QAAQwF,YAAY8H,sBAAuBD,EAASvM,qBAEnG3iC,KAAKggC,IAAI70B,UAAU2W,MAAM9hB,KAAKggC,IAAKqP,EACrC,EACAr1B,KAAM,WACJha,KAAKggC,IAAIhmB,OACT,IAAI0pB,EAAM1jC,KAAK6hC,QACf7hC,KAAK2nC,WAAWznC,KAAKwjC,GACrB1jC,KAAK6hC,QAAU6B,EAAIt4B,QACnBpL,KAAK6hC,QAAQyF,eAAiB,IAChC,EACArtB,QAAS,WACHja,KAAK6hC,QAAQyF,gBACftnC,KAAKuvC,mBAG0B,OAA7BvvC,KAAK6hC,QAAQwF,aAAoD,IAA3BrnC,KAAK2nC,WAAW/mC,QAAgBZ,KAAK2nC,WAAW3nC,KAAK2nC,WAAW/mC,OAAS,GAAGymC,cAAgBrnC,KAAK6hC,QAAQwF,aACjJrnC,KAAKkuC,gBAGwB,IAA3BluC,KAAK2nC,WAAW/mC,SAClBZ,KAAK6hC,QAAU7hC,KAAK2nC,WAAW/D,MAC/B5jC,KAAKggC,IAAI/lB,UACTja,KAAK4nC,YAAc,KACnB5nC,KAAKyoC,2BAA6B,KAEtC,EACAt9B,UAAW,SAAkC6Y,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAC1DvjC,KAAKggC,IAAI70B,UAAU6Y,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAClCvjC,KAAKyoC,2BAA6B,IACpC,EACAzpB,cAAe,SAAsCwwB,EAAKxb,GAMxD,IALA,IAAIgM,EAAMhgC,KAAKggC,IACX6B,EAAU7hC,KAAK6hC,QACft2B,EAAIs2B,EAAQt2B,EACZC,EAAIq2B,EAAQr2B,EAEP1K,EAAI,EAAG2jC,EAAI,EAAGze,EAAKwpB,EAAI5uC,OAAQE,EAAIklB,EAAIllB,IAC9C,OAAiB,EAAT0uC,EAAI1uC,IACV,KAAKyD,EAAMO,IAAI0V,UACbjP,EAAIyoB,EAAKyQ,KACTj5B,EAAIwoB,EAAKyQ,KACT,IAAIv9B,EAAQ8sB,EAAKyQ,KACbt9B,EAAS6sB,EAAKyQ,KAEJ,IAAVv9B,IACFA,EAAQlH,KAAKyvC,uBAGA,IAAXtoC,IACFA,EAASnH,KAAKyvC,uBAGhB,IAAIC,EAAKnkC,EAAIrE,EACTyoC,EAAKnkC,EAAIrE,EACbnH,KAAKggC,IAAI9lB,OAAO3O,EAAGC,GACnBxL,KAAKggC,IAAI7lB,OAAOu1B,EAAIlkC,GACpBxL,KAAKggC,IAAI7lB,OAAOu1B,EAAIC,GACpB3vC,KAAKggC,IAAI7lB,OAAO5O,EAAGokC,GACnB3vC,KAAKggC,IAAI7lB,OAAO5O,EAAGC,GACnBxL,KAAKggC,IAAIzlB,YACT,MAEF,KAAKhW,EAAMO,IAAIoV,OACb3O,EAAIyoB,EAAKyQ,KACTj5B,EAAIwoB,EAAKyQ,KACTzE,EAAI9lB,OAAO3O,EAAGC,GACd,MAEF,KAAKjH,EAAMO,IAAIqV,OACb5O,EAAIyoB,EAAKyQ,KACTj5B,EAAIwoB,EAAKyQ,KACTzE,EAAI7lB,OAAO5O,EAAGC,GACd,MAEF,KAAKjH,EAAMO,IAAIsV,QACb7O,EAAIyoB,EAAKyQ,EAAI,GACbj5B,EAAIwoB,EAAKyQ,EAAI,GACbzE,EAAI4P,cAAc5b,EAAKyQ,GAAIzQ,EAAKyQ,EAAI,GAAIzQ,EAAKyQ,EAAI,GAAIzQ,EAAKyQ,EAAI,GAAIl5B,EAAGC,GACrEi5B,GAAK,EACL,MAEF,KAAKlgC,EAAMO,IAAIuV,SACb2lB,EAAI4P,cAAcrkC,EAAGC,EAAGwoB,EAAKyQ,GAAIzQ,EAAKyQ,EAAI,GAAIzQ,EAAKyQ,EAAI,GAAIzQ,EAAKyQ,EAAI,IACpEl5B,EAAIyoB,EAAKyQ,EAAI,GACbj5B,EAAIwoB,EAAKyQ,EAAI,GACbA,GAAK,EACL,MAEF,KAAKlgC,EAAMO,IAAIwV,SACb/O,EAAIyoB,EAAKyQ,EAAI,GACbj5B,EAAIwoB,EAAKyQ,EAAI,GACbzE,EAAI4P,cAAc5b,EAAKyQ,GAAIzQ,EAAKyQ,EAAI,GAAIl5B,EAAGC,EAAGD,EAAGC,GACjDi5B,GAAK,EACL,MAEF,KAAKlgC,EAAMO,IAAIyV,UACbylB,EAAIzlB,YACJ,MAINsnB,EAAQ0F,gBAAgBh8B,EAAGC,EAC7B,EACA+O,UAAW,WACTva,KAAKggC,IAAIzlB,WACX,EACAE,OAAQ,SAA+Bo1B,GACrCA,EAAqC,qBAAhBA,GAA8BA,EACnD,IAAI7P,EAAMhgC,KAAKggC,IACXgH,EAAchnC,KAAK6hC,QAAQmF,YAG/B,GAFAhH,EAAI6K,YAAc7qC,KAAK6hC,QAAQsF,YAE3BH,GAAeA,EAAY1jC,eAAe,SAAgC,YAArB0jC,EAAY98B,KAAoB,CACvF81B,EAAIhmB,OACJ,MAAM7O,EAAY60B,EAAI2C,oBAEhBv4B,EAAQ7F,EAAMc,KAAKyqC,8BAA8B3kC,GAAW,GAElE60B,EAAI0K,YAAc1D,EAAY+I,WAAW/P,EAAKhgC,MAC9CggC,EAAIoH,UAAYn8B,KAAK4Y,IAAI7jB,KAAKyvC,sBAAwBnN,EAAkBtiC,KAAK6hC,QAAQuF,UAAYh9B,GACjG41B,EAAIvlB,SACJulB,EAAI/lB,SACN,MACE+lB,EAAIoH,UAAYn8B,KAAK4Y,IAAI7jB,KAAKyvC,sBAAwBnN,EAAkBtiC,KAAK6hC,QAAQuF,WACrFpH,EAAIvlB,SAGFo1B,GACF7vC,KAAK6vC,cAGP7P,EAAI6K,YAAc7qC,KAAK6hC,QAAQqF,SACjC,EACAxsB,YAAa,WACX1a,KAAKua,YACLva,KAAKya,QACP,EACAE,KAAM,SAA6Bk1B,GACjCA,EAAqC,qBAAhBA,GAA8BA,EACnD,IAAI7P,EAAMhgC,KAAKggC,IACX+G,EAAY/mC,KAAK6hC,QAAQkF,UACzBiJ,EAAgBhwC,KAAK6hC,QAAQoF,YAC7BgJ,GAAc,EAEdD,IACFhQ,EAAIhmB,OAEAha,KAAKkoC,eACPlI,EAAIoD,aAAathB,MAAMke,EAAKhgC,KAAKkoC,eAGnClI,EAAI2K,UAAY5D,EAAUgJ,WAAW/P,EAAKhgC,MAC1CiwC,GAAc,GAGZjwC,KAAK6nC,eACP7H,EAAIrlB,KAAK,WACT3a,KAAK6nC,eAAgB,GAErB7H,EAAIrlB,OAGFs1B,GACFjQ,EAAI/lB,UAGF41B,GACF7vC,KAAK6vC,aAET,EACAj1B,OAAQ,WACN5a,KAAK6nC,eAAgB,EACrB7nC,KAAK2a,MACP,EACAE,WAAY,WACV7a,KAAK2a,MAAK,GACV3a,KAAKya,QAAO,GACZza,KAAK6vC,aACP,EACA/0B,aAAc,WACZ9a,KAAK6nC,eAAgB,EACrB7nC,KAAK6a,YACP,EACAE,gBAAiB,WACf/a,KAAKua,YACLva,KAAK6a,YACP,EACAG,kBAAmB,WACjBhb,KAAK6nC,eAAgB,EACrB7nC,KAAKua,YACLva,KAAK6a,YACP,EACAI,QAAS,WACPjb,KAAK6vC,aACP,EACA30B,KAAM,WACJlb,KAAK4nC,YAAcqF,CACrB,EACA9xB,OAAQ,WACNnb,KAAK4nC,YAAcsF,CACrB,EACA9xB,UAAW,WACTpb,KAAK6hC,QAAQuE,WAAa7hC,EAAMgO,gBAChCvS,KAAK6hC,QAAQwE,gBAAkB,EAC/BrmC,KAAK6hC,QAAQt2B,EAAIvL,KAAK6hC,QAAQ2E,MAAQ,EACtCxmC,KAAK6hC,QAAQr2B,EAAIxL,KAAK6hC,QAAQ4E,MAAQ,CACxC,EACAprB,QAAS,WACP,IAAI60B,EAAQlwC,KAAKmwC,iBACbnQ,EAAMhgC,KAAKggC,IAEf,QAAc5+B,IAAV8uC,EAAJ,CAKAlQ,EAAIhmB,OACJgmB,EAAI6F,YAEJ,IAAK,IAAI/kC,EAAI,EAAGA,EAAIovC,EAAMtvC,OAAQE,IAAK,CACrC,IAAIsvC,EAAOF,EAAMpvC,GACjBk/B,EAAIoD,aAAathB,MAAMke,EAAKoQ,EAAKjlC,WACjC60B,EAAIiD,UAAUmN,EAAK7kC,EAAG6kC,EAAK5kC,GAC3B4kC,EAAKC,UAAUrQ,EAAKoQ,EAAKlK,SAC3B,CAEAlG,EAAI/lB,UACJ+lB,EAAI9kB,OACJ8kB,EAAI6F,mBACG7lC,KAAKmwC,gBAfZ,MAFEnQ,EAAI6F,WAkBR,EACAvqB,eAAgB,SAAuCg1B,GACrDtwC,KAAK6hC,QAAQ6E,YAAc4J,CAC7B,EACA/0B,eAAgB,SAAuC+0B,GACrDtwC,KAAK6hC,QAAQ8E,YAAc2J,CAC7B,EACA90B,UAAW,SAAkCpR,GAC3CpK,KAAK6hC,QAAQ+E,WAAax8B,EAAQ,GACpC,EACAqR,WAAY,SAAmC8qB,GAC7CvmC,KAAK6hC,QAAQ0E,SAAWA,CAC1B,EACA7qB,QAAS,SAAgC60B,EAAaje,GACpD,IAAIke,EAAUxwC,KAAK0uB,WAAWpsB,IAAIiuC,GAC9B1O,EAAU7hC,KAAK6hC,QAEnB,IAAK2O,EACH,MAAM,IAAIppC,MAAM,uBAAuBmpC,KAmBzC,GAhBA1O,EAAQyE,WAAakK,EAAQlK,WAAakK,EAAQlK,WAAa/hC,EAAMiO,qBAEvC,IAA1BqvB,EAAQyE,WAAW,IAAsC,IAA1BzE,EAAQyE,WAAW,KACpD,EAAI/hC,EAAMmJ,MAAM,gCAAkC6iC,GAGhDje,EAAO,GACTA,GAAQA,EACRuP,EAAQ4O,eAAiB,GAEzB5O,EAAQ4O,cAAgB,EAG1BzwC,KAAK6hC,QAAQviB,KAAOkxB,EACpBxwC,KAAK6hC,QAAQqE,SAAW5T,EAEpBke,EAAQE,YACV,OAGF,IAAI1uC,EAAOwuC,EAAQ7P,YAAc,aACjC,IAAIgQ,EAAO,SAEPH,EAAQ5G,MACV+G,EAAO,MACEH,EAAQG,OACjBA,EAAO,QAGT,IAAIC,EAASJ,EAAQI,OAAS,SAAW,SACrCC,EAAW,IAAI7uC,OAAUwuC,EAAQM,eACrC,IAAIC,EAAkBze,EAElBA,EAAO6P,EACT4O,EAAkB5O,EACT7P,EAAO8P,IAChB2O,EAAkB3O,GAGpBpiC,KAAK6hC,QAAQsE,cAAgB7T,EAAOye,EACpC/wC,KAAKggC,IAAI1gB,KAAO,GAAGsxB,KAAUD,KAAQI,OAAqBF,GAC5D,EACAl1B,qBAAsB,SAA6C/Y,GACjE5C,KAAK6hC,QAAQgF,kBAAoBjkC,CACnC,EACAgZ,YAAa,SAAoCo1B,GAC/ChxC,KAAK6hC,QAAQiF,SAAWkK,CAC1B,EACAn1B,SAAU,SAAiCtQ,EAAGC,GAC5CxL,KAAK6hC,QAAQt2B,EAAIvL,KAAK6hC,QAAQ2E,OAASj7B,EACvCvL,KAAK6hC,QAAQr2B,EAAIxL,KAAK6hC,QAAQ4E,OAASj7B,CACzC,EACAsQ,mBAAoB,SAA2CvQ,EAAGC,GAChExL,KAAKyb,YAAYjQ,GACjBxL,KAAK6b,SAAStQ,EAAGC,EACnB,EACAuQ,cAAe,SAAsCiI,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAClEvjC,KAAK6hC,QAAQuE,WAAa,CAACpiB,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAC1CvjC,KAAK6hC,QAAQwE,gBAAkBp7B,KAAKiZ,KAAKF,EAAIA,EAAIZ,EAAIA,GACrDpjB,KAAK6hC,QAAQt2B,EAAIvL,KAAK6hC,QAAQ2E,MAAQ,EACtCxmC,KAAK6hC,QAAQr2B,EAAIxL,KAAK6hC,QAAQ4E,MAAQ,CACxC,EACAzqB,SAAU,WACRhc,KAAK6b,SAAS,EAAG7b,KAAK6hC,QAAQ0E,QAChC,EAEA0K,UAAUtP,EAAWp2B,EAAGC,EAAG0lC,GACzB,IAAIlR,EAAMhgC,KAAKggC,IACX6B,EAAU7hC,KAAK6hC,QACfviB,EAAOuiB,EAAQviB,KACfunB,EAAoBhF,EAAQgF,kBAC5BX,EAAWrE,EAAQqE,SAAWrE,EAAQsE,cACtCgL,EAAiBtK,EAAoBtiC,EAAMkN,kBAAkBgC,iBAC7D29B,KAAoBvK,EAAoBtiC,EAAMkN,kBAAkBiC,kBACpE,MAAMuzB,EAAcpF,EAAQoF,cAAgB3nB,EAAK6e,YACjD,IAAIkS,EAmCJ,IAjCI/wB,EAAKoJ,iBAAmB0oB,GAAkBnK,KAC5CoJ,EAAY/wB,EAAKoiB,iBAAiB1hC,KAAK0uB,WAAYiT,IAGjDriB,EAAKoJ,iBAAmBue,GAC1BjH,EAAIhmB,OACJgmB,EAAIiD,UAAU13B,EAAGC,GACjBw0B,EAAI6F,YACJwK,EAAUrQ,EAAKkG,GAEXgL,GACFlR,EAAIoD,aAAathB,MAAMke,EAAKkR,GAG1BC,IAAmB5sC,EAAMkN,kBAAkBwB,MAAQk+B,IAAmB5sC,EAAMkN,kBAAkB0B,aAChG6sB,EAAIrlB,OAGFw2B,IAAmB5sC,EAAMkN,kBAAkByB,QAAUi+B,IAAmB5sC,EAAMkN,kBAAkB0B,aAClG6sB,EAAIvlB,SAGNulB,EAAI/lB,YAEAk3B,IAAmB5sC,EAAMkN,kBAAkBwB,MAAQk+B,IAAmB5sC,EAAMkN,kBAAkB0B,aAChG6sB,EAAIG,SAASwB,EAAWp2B,EAAGC,GAGzB2lC,IAAmB5sC,EAAMkN,kBAAkByB,QAAUi+B,IAAmB5sC,EAAMkN,kBAAkB0B,aAClG6sB,EAAIqR,WAAW1P,EAAWp2B,EAAGC,IAI7B4lC,EAAgB,CAClB,IAAIlB,EAAQlwC,KAAKmwC,mBAAqBnwC,KAAKmwC,iBAAmB,IAC9DD,EAAMhwC,KAAK,CACTiL,UAAW60B,EAAI2C,oBACfp3B,IACAC,IACA06B,WACAmK,aAEJ,CACF,EAEIiB,8BACF,MACE9pC,QAASw4B,GACPhgC,KAAKwoC,eAAepE,UAAU,0BAA2B,GAAI,IACjEpE,EAAI51B,MAAM,IAAK,GACf41B,EAAIG,SAAS,IAAK,EAAG,IAIrB,IAHA,IAAI3d,EAAOwd,EAAII,aAAa,EAAG,EAAG,GAAI,IAAI5d,KACtC9V,GAAU,EAEL5L,EAAI,EAAGA,EAAI0hB,EAAK5hB,OAAQE,GAAK,EACpC,GAAI0hB,EAAK1hB,GAAK,GAAK0hB,EAAK1hB,GAAK,IAAK,CAChC4L,GAAU,EACV,KACF,CAGF,OAAO,EAAInI,EAAMW,QAAQlF,KAAM,0BAA2B0M,EAC5D,EAEAuP,SAAU,SAAiCs1B,GACzC,IAAI1P,EAAU7hC,KAAK6hC,QACfviB,EAAOuiB,EAAQviB,KAEnB,GAAIA,EAAKoxB,YACP,OAAO1wC,KAAKwxC,cAAcD,GAG5B,IAAIrL,EAAWrE,EAAQqE,SAEvB,GAAiB,IAAbA,EACF,OAGF,IAAIlG,EAAMhgC,KAAKggC,IACXmG,EAAgBtE,EAAQsE,cACxBO,EAAc7E,EAAQ6E,YACtBC,EAAc9E,EAAQ8E,YACtB8J,EAAgB5O,EAAQ4O,cACxB7J,EAAa/E,EAAQ+E,WAAa6J,EAClCgB,EAAeF,EAAO3wC,OACtB8wC,EAAWpyB,EAAKoyB,SAChBC,EAAaD,EAAW,GAAK,EAC7BE,EAAkBtyB,EAAKsyB,gBACvBC,EAAoB3L,EAAWrE,EAAQyE,WAAW,GAClDwL,EAAiBjQ,EAAQgF,oBAAsBtiC,EAAMkN,kBAAkBwB,OAASqM,EAAKoJ,kBAAoBmZ,EAAQoF,YAErH,IAAIiK,EAEJ,GAHAlR,EAAIhmB,OAGA6nB,EAAQoF,YAAa,CACvBjH,EAAIhmB,OACJ,MAAM+3B,EAAUlQ,EAAQkF,UAAUgJ,WAAW/P,EAAKhgC,MAClDkxC,EAAmBlR,EAAI2C,oBACvB3C,EAAI/lB,UACJ+lB,EAAI2K,UAAYoH,CAClB,CAEA/R,EAAI70B,UAAU2W,MAAMke,EAAK6B,EAAQuE,YACjCpG,EAAIiD,UAAUpB,EAAQt2B,EAAGs2B,EAAQr2B,EAAIq2B,EAAQiF,UAEzC2J,EAAgB,EAClBzQ,EAAI51B,MAAMw8B,GAAa,GAEvB5G,EAAI51B,MAAMw8B,EAAY,GAGxB,IAAIQ,EAAYvF,EAAQuF,UACpBh9B,EAAQy3B,EAAQwE,gBAEpB,GAAc,IAAVj8B,GAA6B,IAAdg9B,EAAiB,CAClC,IAAI+J,EAAiBtP,EAAQgF,kBAAoBtiC,EAAMkN,kBAAkBgC,iBAErE09B,IAAmB5sC,EAAMkN,kBAAkByB,QAAUi+B,IAAmB5sC,EAAMkN,kBAAkB0B,cAClGnT,KAAKyoC,2BAA6B,KAClCrB,EAAYpnC,KAAKyvC,sBAAwBnN,EAE7C,MACE8E,GAAah9B,EAGO,IAAlB+7B,IACFnG,EAAI51B,MAAM+7B,EAAeA,GACzBiB,GAAajB,GAGfnG,EAAIoH,UAAYA,EAChB,IACItmC,EADAyK,EAAI,EAGR,IAAKzK,EAAI,EAAGA,EAAI2wC,IAAgB3wC,EAAG,CACjC,IAAIkxC,EAAQT,EAAOzwC,GAEnB,IAAI,EAAIyD,EAAMsM,OAAOmhC,GACnBzmC,GAAKomC,EAAaK,EAAQ9L,EAAW,QADvC,CAKA,IAII+L,EAASC,EAASC,EAAeC,EAI/BC,EAASC,EAAIC,EAyCfC,EAjDAC,GAAgB,EAChBnC,GAAW0B,EAAMU,QAAU/L,EAAc,GAAKD,EAC9C/E,EAAYqQ,EAAMW,SAClBC,EAASZ,EAAMY,OAEf1rC,EAAQ8qC,EAAM9qC,MAElB,GAAIwqC,EAEFW,EAAUL,EAAMK,SAAWT,EAC3BU,EAAKN,EAAMK,QAAUA,EAAQ,GAAa,GAARnrC,EAClCorC,GAAMA,EAAKT,EACXU,EAAKF,EAAQ,GAAKR,EAClB3qC,EAAQmrC,GAAWA,EAAQ,GAAKnrC,EAChC+qC,EAAUK,EAAKnM,EACf+L,GAAW3mC,EAAIgnC,GAAMpM,OAErB8L,EAAU1mC,EAAI46B,EACd+L,EAAU,EAGZ,GAAI5yB,EAAKuzB,WAAa3rC,EAAQ,EAAG,CAC/B,IAAI4rC,EAAmD,IAAnC9S,EAAI+S,YAAYpR,GAAWz6B,MAAeg/B,EAAWC,EAEzE,GAAIj/B,EAAQ4rC,GAAiB9yC,KAAKsxC,wBAAyB,CACzD,IAAI0B,EAAkB9rC,EAAQ4rC,EAC9BL,GAAgB,EAChBzS,EAAIhmB,OACJgmB,EAAI51B,MAAM4oC,EAAiB,GAC3Bf,GAAWe,CACb,MAAW9rC,IAAU4rC,IACnBb,IAAY/qC,EAAQ4rC,GAAiB,IAAO5M,EAAWC,EAE3D,EAEI6L,EAAMiB,UAAY3zB,EAAK6e,eACrB2T,IAAmBc,EACrB5S,EAAIG,SAASwB,EAAWsQ,EAASC,IAEjClyC,KAAKixC,UAAUtP,EAAWsQ,EAASC,EAAShB,GAExC0B,IACFT,EAAgBF,EAAUW,EAAOjT,OAAOp0B,EAAI46B,EAC5CiM,EAAgBF,EAAUU,EAAOjT,OAAOn0B,EAAI26B,EAC5CnmC,KAAKixC,UAAU2B,EAAOD,SAAUR,EAAeC,EAAelB,MAQlEsB,EADEd,EACUxqC,EAAQ2qC,EAAoBvB,EAAUG,EAEtCvpC,EAAQ2qC,EAAoBvB,EAAUG,EAGpDllC,GAAKinC,EAEDC,GACFzS,EAAI/lB,SA9DN,CAgEF,CAEIy3B,EACF7P,EAAQr2B,GAAKD,EAEbs2B,EAAQt2B,GAAKA,EAAIq7B,EAGnB5G,EAAI/lB,SACN,EACAu3B,cAAe,SAAsCD,GACnD,IAYIzwC,EAAGkxC,EAAO9qC,EAAOgsC,EAZjBlT,EAAMhgC,KAAKggC,IACX6B,EAAU7hC,KAAK6hC,QACfviB,EAAOuiB,EAAQviB,KACf4mB,EAAWrE,EAAQqE,SACnBuK,EAAgB5O,EAAQ4O,cACxBkB,EAAaryB,EAAKoyB,SAAW,GAAK,EAClChL,EAAc7E,EAAQ6E,YACtBC,EAAc9E,EAAQ8E,YACtBC,EAAa/E,EAAQ+E,WAAa6J,EAClCnK,EAAazE,EAAQyE,YAAc/hC,EAAMiO,qBACzCi/B,EAAeF,EAAO3wC,OACtBuyC,EAAkBtR,EAAQgF,oBAAsBtiC,EAAMkN,kBAAkB2B,UAG5E,IAAI+/B,GAAgC,IAAbjN,EAAvB,CAUA,IANAlmC,KAAKyoC,2BAA6B,KAClCzI,EAAIhmB,OACJgmB,EAAI70B,UAAU2W,MAAMke,EAAK6B,EAAQuE,YACjCpG,EAAIiD,UAAUpB,EAAQt2B,EAAGs2B,EAAQr2B,GACjCw0B,EAAI51B,MAAMw8B,EAAY6J,GAEjB3vC,EAAI,EAAGA,EAAI2wC,IAAgB3wC,EAG9B,GAFAkxC,EAAQT,EAAOzwC,IAEX,EAAIyD,EAAMsM,OAAOmhC,GACnBkB,EAAgBvB,EAAaK,EAAQ9L,EAAW,IAChDlmC,KAAKggC,IAAIiD,UAAUiQ,EAAe,GAClCrR,EAAQt2B,GAAK2nC,EAAgBtM,MAH/B,CAOA,IAAI0J,GAAW0B,EAAMU,QAAU/L,EAAc,GAAKD,EAC9CjW,EAAenR,EAAK8zB,qBAAqBpB,EAAMqB,gBAEnD,GAAK5iB,EAAL,CAKAzwB,KAAKioC,gBAAkB+J,EACvBhyC,KAAKga,OACLgmB,EAAI51B,MAAM87B,EAAUA,GACpBlG,EAAI70B,UAAU2W,MAAMke,EAAKsG,GACzBtmC,KAAKo9B,oBAAoB3M,GACzBzwB,KAAKia,UAEL,IAAIq5B,EAAc/uC,EAAMc,KAAKoG,eAAe,CAACumC,EAAM9qC,MAAO,GAAIo/B,GAE9Dp/B,EAAQosC,EAAY,GAAKpN,EAAWoK,EACpCtQ,EAAIiD,UAAU/7B,EAAO,GACrB26B,EAAQt2B,GAAKrE,EAAQ0/B,CAbrB,MAFE,EAAIriC,EAAMmJ,MAAM,oBAAoBskC,EAAMqB,oCAN5C,CAwBFrT,EAAI/lB,UACJja,KAAKioC,gBAAkB,IAzCvB,CA0CF,EACA5rB,aAAc,SAAqCk3B,EAAQC,GAAS,EACpEl3B,sBAAuB,SAA8Ci3B,EAAQC,EAAQC,EAAKC,EAAKC,EAAKC,GAClG5zC,KAAKggC,IAAIr0B,KAAK8nC,EAAKC,EAAKC,EAAMF,EAAKG,EAAMF,GACzC1zC,KAAKkb,OACLlb,KAAKib,SACP,EACA44B,kBAAmB,SAA0CC,GAC3D,IAAI/B,EAEJ,GAAc,kBAAV+B,EAAG,GAAwB,CAC7B,IAAIC,EAAQD,EAAG,GACX5L,EAAgBloC,KAAKkoC,eAAiBloC,KAAKggC,IAAI2C,oBAAoBt3B,QACnE2oC,EAAwB,CAC1BC,qBAAsBjU,GACb,IAAIjD,EAAeiD,EAAKhgC,KAAK0uB,WAAY1uB,KAAK2uB,KAAM3uB,KAAK8vB,cAAe9vB,KAAKqwB,eAGxF0hB,EAAU,IAAI7P,EAAgBgS,cAAcJ,EAAIC,EAAO/zC,KAAKggC,IAAKgU,EAAuB9L,EAC1F,MACE6J,GAAU,EAAI7P,EAAgBiS,yBAAyBL,GAGzD,OAAO/B,CACT,EACAr1B,gBAAiB,WACf1c,KAAK6hC,QAAQmF,YAAchnC,KAAK6zC,kBAAkBO,UACpD,EACAx3B,cAAe,WACb5c,KAAK6hC,QAAQkF,UAAY/mC,KAAK6zC,kBAAkBO,WAChDp0C,KAAK6hC,QAAQoF,aAAc,CAC7B,EACAlqB,kBAAmB,SAA0Cxa,EAAG4gB,EAAGC,GACjE,IAAI2wB,EAAQxvC,EAAMc,KAAKgvC,WAAW9xC,EAAG4gB,EAAGC,GAExCpjB,KAAKggC,IAAI0K,YAAcqJ,EACvB/zC,KAAK6hC,QAAQmF,YAAc+M,CAC7B,EACA/2B,gBAAiB,SAAwCza,EAAG4gB,EAAGC,GAC7D,IAAI2wB,EAAQxvC,EAAMc,KAAKgvC,WAAW9xC,EAAG4gB,EAAGC,GAExCpjB,KAAKggC,IAAI2K,UAAYoJ,EACrB/zC,KAAK6hC,QAAQkF,UAAYgN,EACzB/zC,KAAK6hC,QAAQoF,aAAc,CAC7B,EACA9pB,YAAa,SAAoCm3B,GAC/C,IAAItU,EAAMhgC,KAAKggC,IACfhgC,KAAKga,OACL,IAAI+3B,GAAU,EAAI7P,EAAgBiS,yBAAyBG,GAC3DtU,EAAI2K,UAAYoH,EAAQhC,WAAW/P,EAAKhgC,MAAM,GAC9C,IAAIu0C,EAAMvU,EAAIoP,2BAEd,GAAImF,EAAK,CACP,IAAIltC,EAAS24B,EAAI34B,OACbH,EAAQG,EAAOH,MACfC,EAASE,EAAOF,OAEhBqtC,EAAKjwC,EAAMc,KAAKoG,eAAe,CAAC,EAAG,GAAI8oC,GAEvCE,EAAKlwC,EAAMc,KAAKoG,eAAe,CAAC,EAAGtE,GAASotC,GAE5CG,EAAKnwC,EAAMc,KAAKoG,eAAe,CAACvE,EAAO,GAAIqtC,GAE3CI,EAAKpwC,EAAMc,KAAKoG,eAAe,CAACvE,EAAOC,GAASotC,GAEhDK,EAAK3pC,KAAKmC,IAAIonC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCE,EAAK5pC,KAAKmC,IAAIonC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCG,EAAK7pC,KAAK4Y,IAAI2wB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCI,EAAK9pC,KAAK4Y,IAAI2wB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAC1C30C,KAAKggC,IAAIoN,SAASwH,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,EAC1C,MACE70C,KAAKggC,IAAIoN,UAAU,MAAO,KAAM,KAAM,MAGxCptC,KAAKia,SACP,EACAmD,iBAAkB,YAChB,EAAI7Y,EAAM6M,aAAa,mCACzB,EACAiM,eAAgB,YACd,EAAI9Y,EAAM6M,aAAa,iCACzB,EACA2M,sBAAuB,SAA8Ci3B,EAAQC,GAU3E,GATAj1C,KAAKga,OACLha,KAAKmoC,mBAAmBjoC,KAAKF,KAAKkoC,eAE9BlT,MAAMC,QAAQ+f,IAA6B,IAAlBA,EAAOp0C,QAClCZ,KAAKmL,UAAU2W,MAAM9hB,KAAMg1C,GAG7Bh1C,KAAKkoC,cAAgBloC,KAAKggC,IAAI2C,oBAE1BsS,EAAM,CACR,IAAI/tC,EAAQ+tC,EAAK,GAAKA,EAAK,GACvB9tC,EAAS8tC,EAAK,GAAKA,EAAK,GAC5Bj1C,KAAKggC,IAAIr0B,KAAKspC,EAAK,GAAIA,EAAK,GAAI/tC,EAAOC,GACvCnH,KAAKkb,OACLlb,KAAKib,SACP,CACF,EACA+C,oBAAqB,WACnBhe,KAAKia,UACLja,KAAKkoC,cAAgBloC,KAAKmoC,mBAAmBvE,KAC/C,EACA3lB,WAAY,SAAmCi3B,GAC7Cl1C,KAAKga,OACL,IAAIg1B,EAAahvC,KAAKggC,IAEjBkV,EAAMC,WACT,EAAI5wC,EAAMiM,MAAM,sCAGd0kC,EAAME,WACR,EAAI7wC,EAAMmJ,MAAM,kCAGlB,IAAIuhC,EAAmBD,EAAWrM,oBAMlC,GAJIuS,EAAMF,QACRhG,EAAW7jC,UAAU2W,MAAMktB,EAAYkG,EAAMF,SAG1CE,EAAMD,KACT,MAAM,IAAI7tC,MAAM,6BAGlB,IAAIiuC,EAAS9wC,EAAMc,KAAKiwC,2BAA2BJ,EAAMD,KAAMjG,EAAWrM,qBAEtE4S,EAAe,CAAC,EAAG,EAAGvG,EAAW3nC,OAAOH,MAAO8nC,EAAW3nC,OAAOF,QACrEkuC,EAAS9wC,EAAMc,KAAKmwC,UAAUH,EAAQE,IAAiB,CAAC,EAAG,EAAG,EAAG,GACjE,IAAIjrC,EAAUW,KAAKwqC,MAAMJ,EAAO,IAC5B9qC,EAAUU,KAAKwqC,MAAMJ,EAAO,IAC5BzG,EAAa3jC,KAAK4Y,IAAI5Y,KAAKqhC,KAAK+I,EAAO,IAAM/qC,EAAS,GACtDukC,EAAc5jC,KAAK4Y,IAAI5Y,KAAKqhC,KAAK+I,EAAO,IAAM9qC,EAAS,GACvDmiC,EAAS,EACTC,EAAS,EAETiC,EAAavM,IACfqK,EAASkC,EAAavM,EACtBuM,EAAavM,GAGXwM,EAAcxM,IAChBsK,EAASkC,EAAcxM,EACvBwM,EAAcxM,GAGhB,IAAIyM,EAAU,UAAY9uC,KAAKooC,WAE3B8M,EAAM91B,QACR0vB,GAAW,UAAY9uC,KAAKsoC,eAAiB,GAG/C,IAAIyG,EAAgB/uC,KAAKwoC,eAAepE,UAAU0K,EAASF,EAAYC,GAAa,GAChFK,EAAWH,EAAcvnC,QAC7B0nC,EAAS9kC,MAAM,EAAIsiC,EAAQ,EAAIC,GAC/BuC,EAASjM,WAAW34B,GAAUC,GAC9B2kC,EAAS/jC,UAAU2W,MAAMotB,EAAUD,GAE/BiG,EAAM91B,MACRpf,KAAKqoC,WAAWnoC,KAAK,CACnBmH,OAAQ0nC,EAAc1nC,OACtBG,QAAS0nC,EACT5kC,UACAC,UACAmiC,SACAC,SACAX,QAASkJ,EAAM91B,MAAM4sB,QACrBC,SAAUiJ,EAAM91B,MAAM6sB,SACtBN,YAAauJ,EAAM91B,MAAMusB,aAAe,KACxCwD,sBAAuB,QAGzBH,EAAW5L,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACvC4L,EAAW/L,UAAU34B,EAASC,GAC9BykC,EAAW5kC,MAAMsiC,EAAQC,IAG3BzC,EAAa8E,EAAYE,GACzBlvC,KAAKggC,IAAMkP,EACXlvC,KAAK+Z,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KACzD/Z,KAAKgoC,WAAW9nC,KAAK8uC,GACrBhvC,KAAKooC,aACLpoC,KAAK6hC,QAAQwF,YAAc,IAC7B,EACAnpB,SAAU,SAAiCg3B,GACzCl1C,KAAKooC,aACL,IAAI8G,EAAWlvC,KAAKggC,IACpBhgC,KAAKggC,IAAMhgC,KAAKgoC,WAAWpE,WAEYxiC,IAAnCpB,KAAKggC,IAAI0V,sBACX11C,KAAKggC,IAAI0V,uBAAwB,EAEjC11C,KAAKggC,IAAI2V,0BAA2B,EAGlCT,EAAM91B,MACRpf,KAAKuoC,UAAYvoC,KAAKqoC,WAAWzE,MAEjC5jC,KAAKggC,IAAI8M,UAAUoC,EAAS7nC,OAAQ,EAAG,GAGzCrH,KAAKia,SACP,EACAkE,iBAAkB,WAChBne,KAAKga,OAEDha,KAAKkoC,eACPloC,KAAKggC,IAAIoD,aAAathB,MAAM9hB,KAAKggC,IAAKhgC,KAAKkoC,cAE/C,EACA9pB,eAAgB,WACdpe,KAAKia,SACP,EACAoE,gBAAiB,SAAwC1S,EAAMR,EAAW6pC,GAKxE,GAJAh1C,KAAKga,OACLywB,EAAkBzqC,KAAKggC,KACvBhgC,KAAK6hC,QAAU,IAAImE,EAEfhR,MAAMC,QAAQtpB,IAAyB,IAAhBA,EAAK/K,OAAc,CAC5C,IAAIsG,EAAQyE,EAAK,GAAKA,EAAK,GACvBxE,EAASwE,EAAK,GAAKA,EAAK,GAC5B3L,KAAKggC,IAAIr0B,KAAKA,EAAK,GAAIA,EAAK,GAAIzE,EAAOC,GACvCnH,KAAKkb,OACLlb,KAAKib,SACP,CAEAjb,KAAKmL,UAAU2W,MAAM9hB,KAAMmL,GAC3BnL,KAAKmL,UAAU2W,MAAM9hB,KAAMg1C,EAC7B,EACA12B,cAAe,WACbte,KAAKia,SACP,EACAuE,sBAAuB,SAA8Co3B,GACnE,IAAI5V,EAAMhgC,KAAKggC,IACX94B,EAAQ0uC,EAAI1uC,MACZC,EAASyuC,EAAIzuC,OACb4/B,EAAY/mC,KAAK6hC,QAAQkF,UACzBiJ,EAAgBhwC,KAAK6hC,QAAQoF,YAC7B+K,EAAQhyC,KAAKioC,gBAcjB,GAZI1F,GAAwByP,QAA4B5wC,IAAnB4wC,EAAM6D,WAEvC7D,EAAM6D,SADJ3uC,GAASs7B,GAAuBr7B,GAAUq7B,EAC3B+B,EAAkB,CACjC/hB,KAAMozB,EAAIpzB,KACVtb,QACAC,WAGe,MAIjB6qC,GAASA,EAAM6D,SACjB7D,EAAM6D,SAAS7V,OADjB,CAKA,IAAI8V,EAAa91C,KAAKwoC,eAAepE,UAAU,aAAcl9B,EAAOC,GAChE2kC,EAAUgK,EAAWtuC,QACzBskC,EAAQ9xB,OACRiwB,EAAmB6B,EAAS8J,GAC5B9J,EAAQb,yBAA2B,YACnCa,EAAQnB,UAAYqF,EAAgBjJ,EAAUgJ,WAAWjE,EAAS9rC,MAAQ+mC,EAC1E+E,EAAQsB,SAAS,EAAG,EAAGlmC,EAAOC,GAC9B2kC,EAAQ7xB,UACRja,KAAK2e,wBAAwBm3B,EAAWzuC,OAVxC,CAWF,EACAyX,4BAA6B,SAAoD0lB,EAASkI,EAAQC,EAAQoJ,GACxG,IAAI7uC,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OACjB4/B,EAAY/mC,KAAK6hC,QAAQkF,UACzBiJ,EAAgBhwC,KAAK6hC,QAAQoF,YAC7B6O,EAAa91C,KAAKwoC,eAAepE,UAAU,aAAcl9B,EAAOC,GAChE2kC,EAAUgK,EAAWtuC,QACzBskC,EAAQ9xB,OACRiwB,EAAmB6B,EAAStH,GAC5BsH,EAAQb,yBAA2B,YACnCa,EAAQnB,UAAYqF,EAAgBjJ,EAAUgJ,WAAWjE,EAAS9rC,MAAQ+mC,EAC1E+E,EAAQsB,SAAS,EAAG,EAAGlmC,EAAOC,GAC9B2kC,EAAQ7xB,UAGR,IAFA,IAAI+lB,EAAMhgC,KAAKggC,IAENl/B,EAAI,EAAGklB,EAAK+vB,EAAUn1C,OAAQE,EAAIklB,EAAIllB,GAAK,EAClDk/B,EAAIhmB,OACJgmB,EAAI70B,UAAUuhC,EAAQ,EAAG,EAAGC,EAAQoJ,EAAUj1C,GAAIi1C,EAAUj1C,EAAI,IAChEk/B,EAAI51B,MAAM,GAAI,GACd41B,EAAI8M,UAAUgJ,EAAWzuC,OAAQ,EAAG,EAAGH,EAAOC,EAAQ,GAAI,EAAG,EAAG,GAChE64B,EAAI/lB,SAER,EACAwE,2BAA4B,SAAmDu3B,GAK7E,IAJA,IAAIhW,EAAMhgC,KAAKggC,IACX+G,EAAY/mC,KAAK6hC,QAAQkF,UACzBiJ,EAAgBhwC,KAAK6hC,QAAQoF,YAExBnmC,EAAI,EAAGklB,EAAKgwB,EAAOp1C,OAAQE,EAAIklB,EAAIllB,IAAK,CAC/C,IAAIm1C,EAAQD,EAAOl1C,GACfoG,EAAQ+uC,EAAM/uC,MACdC,EAAS8uC,EAAM9uC,OACf2uC,EAAa91C,KAAKwoC,eAAepE,UAAU,aAAcl9B,EAAOC,GAChE2kC,EAAUgK,EAAWtuC,QACzBskC,EAAQ9xB,OACRiwB,EAAmB6B,EAASmK,GAC5BnK,EAAQb,yBAA2B,YACnCa,EAAQnB,UAAYqF,EAAgBjJ,EAAUgJ,WAAWjE,EAAS9rC,MAAQ+mC,EAC1E+E,EAAQsB,SAAS,EAAG,EAAGlmC,EAAOC,GAC9B2kC,EAAQ7xB,UACR+lB,EAAIhmB,OACJgmB,EAAI70B,UAAU2W,MAAMke,EAAKiW,EAAM9qC,WAC/B60B,EAAI51B,MAAM,GAAI,GACd41B,EAAI8M,UAAUgJ,EAAWzuC,OAAQ,EAAG,EAAGH,EAAOC,EAAQ,GAAI,EAAG,EAAG,GAChE64B,EAAI/lB,SACN,CACF,EACAyE,kBAAmB,SAA0C2c,GAC3D,MAAMmJ,EAAUnJ,EAAM4S,WAAW,MAAQjuC,KAAK0uB,WAAWpsB,IAAI+4B,GAASr7B,KAAK2uB,KAAKrsB,IAAI+4B,GAE/EmJ,EAKLxkC,KAAK2e,wBAAwB6lB,IAJ3B,EAAIjgC,EAAMmJ,MAAM,kCAKpB,EACAmR,wBAAyB,SAAgDwc,EAAOqR,EAAQC,EAAQoJ,GAC9F,MAAMvR,EAAUnJ,EAAM4S,WAAW,MAAQjuC,KAAK0uB,WAAWpsB,IAAI+4B,GAASr7B,KAAK2uB,KAAKrsB,IAAI+4B,GAEpF,GAAKmJ,EAAL,CASA,IAJA,IAAIt9B,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OACjB5G,EAAM,GAEDO,EAAI,EAAGklB,EAAK+vB,EAAUn1C,OAAQE,EAAIklB,EAAIllB,GAAK,EAClDP,EAAIL,KAAK,CACPiL,UAAW,CAACuhC,EAAQ,EAAG,EAAGC,EAAQoJ,EAAUj1C,GAAIi1C,EAAUj1C,EAAI,IAC9DyK,EAAG,EACHC,EAAG,EACH0qC,EAAGhvC,EACHivC,EAAGhvC,IAIPnH,KAAK4e,6BAA6B4lB,EAASjkC,EAhB3C,MAFE,EAAIgE,EAAMmJ,MAAM,kCAmBpB,EACAiR,wBAAyB,SAAgD6lB,GACvE,IAAIt9B,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OACjB64B,EAAMhgC,KAAKggC,IACfhgC,KAAKga,OACLgmB,EAAI51B,MAAM,EAAIlD,GAAQ,EAAIC,GAC1B,IAOIivC,EAAYC,EAPZpH,EAAmBjP,EAAIoP,2BACvBprB,EAAIirB,EAAiB,GACrB7rB,EAAI6rB,EAAiB,GACrBqH,EAAarrC,KAAK4Y,IAAI5Y,KAAKiZ,KAAKF,EAAIA,EAAIZ,EAAIA,GAAI,GAChDthB,EAAImtC,EAAiB,GACrBltC,EAAIktC,EAAiB,GACrBsH,EAActrC,KAAK4Y,IAAI5Y,KAAKiZ,KAAKpiB,EAAIA,EAAIC,EAAIA,GAAI,GAGrD,GAA2B,oBAAhBy0C,aAA8BhS,aAAmBgS,cAAgBhS,EAAQhiB,KAClF4zB,EAAa5R,MACR,CACL6R,EAAYr2C,KAAKwoC,eAAepE,UAAU,cAAel9B,EAAOC,GAChE,IAAIsvC,EAASJ,EAAU7uC,QACvBkhC,EAAmB+N,EAAQjS,GAC3B4R,EAAaC,EAAUhvC,MACzB,CAEA,IAAIqvC,EAAaxvC,EACbyvC,EAAcxvC,EACdyvC,EAAc,YAElB,MAAON,EAAa,GAAKI,EAAa,GAAKH,EAAc,GAAKI,EAAc,EAAG,CAC7E,IAAIE,EAAWH,EACXI,EAAYH,EAEZL,EAAa,GAAKI,EAAa,IACjCG,EAAW5rC,KAAKqhC,KAAKoK,EAAa,GAClCJ,GAAcI,EAAaG,GAGzBN,EAAc,GAAKI,EAAc,IACnCG,EAAY7rC,KAAKqhC,KAAKqK,EAAc,GACpCJ,GAAeI,EAAcG,GAG/BT,EAAYr2C,KAAKwoC,eAAepE,UAAUwS,EAAaC,EAAUC,GACjEL,EAASJ,EAAU7uC,QACnBivC,EAAOnH,UAAU,EAAG,EAAGuH,EAAUC,GACjCL,EAAO3J,UAAUsJ,EAAY,EAAG,EAAGM,EAAYC,EAAa,EAAG,EAAGE,EAAUC,GAC5EV,EAAaC,EAAUhvC,OACvBqvC,EAAaG,EACbF,EAAcG,EACdF,EAA8B,cAAhBA,EAA8B,YAAc,WAC5D,CAIA,GAFA5W,EAAI8M,UAAUsJ,EAAY,EAAG,EAAGM,EAAYC,EAAa,GAAIxvC,EAAQD,EAAOC,GAExEnH,KAAK6vB,WAAY,CACnB,IAAIkR,EAAW/gC,KAAK+2C,kBAAkB,GAAI5vC,GAC1CnH,KAAK6vB,WAAWmnB,YAAY,CAC1BxS,UACAvD,KAAMF,EAAS,GACfC,IAAKD,EAAS,GACd75B,MAAOA,EAAQ+nC,EAAiB,GAChC9nC,OAAQA,EAAS8nC,EAAiB,IAEtC,CAEAjvC,KAAKia,SACP,EACA2E,6BAA8B,SAAqD4lB,EAASjkC,GAC1F,IAAIy/B,EAAMhgC,KAAKggC,IACXkW,EAAI1R,EAAQt9B,MACZivC,EAAI3R,EAAQr9B,OACZkvC,EAAYr2C,KAAKwoC,eAAepE,UAAU,cAAe8R,EAAGC,GAC5DM,EAASJ,EAAU7uC,QACvBkhC,EAAmB+N,EAAQjS,GAE3B,IAAK,IAAI1jC,EAAI,EAAGklB,EAAKzlB,EAAIK,OAAQE,EAAIklB,EAAIllB,IAAK,CAC5C,IAAIm2C,EAAQ12C,EAAIO,GAMhB,GALAk/B,EAAIhmB,OACJgmB,EAAI70B,UAAU2W,MAAMke,EAAKiX,EAAM9rC,WAC/B60B,EAAI51B,MAAM,GAAI,GACd41B,EAAI8M,UAAUuJ,EAAUhvC,OAAQ4vC,EAAM1rC,EAAG0rC,EAAMzrC,EAAGyrC,EAAMf,EAAGe,EAAMd,EAAG,GAAI,EAAG,EAAG,GAE1En2C,KAAK6vB,WAAY,CACnB,IAAIkR,EAAW/gC,KAAK+2C,kBAAkBE,EAAM1rC,EAAG0rC,EAAMzrC,GACrDxL,KAAK6vB,WAAWmnB,YAAY,CAC1BxS,UACAvD,KAAMF,EAAS,GACfC,IAAKD,EAAS,GACd75B,MAAOgvC,EACP/uC,OAAQgvC,GAEZ,CAEAnW,EAAI/lB,SACN,CACF,EACA8E,yBAA0B,WACxB/e,KAAKggC,IAAIoN,SAAS,EAAG,EAAG,EAAG,EAC7B,EACA7vB,aAAc,YACZ,EAAIhZ,EAAMmJ,MAAM,sCAClB,EACA8P,UAAW,SAAkC05B,GAAM,EACnDz5B,eAAgB,SAAuCy5B,EAAK7M,GAAa,EACzE3sB,mBAAoB,SAA2Cw5B,GAAM,EACrEv5B,wBAAyB,SAAgDu5B,EAAK7M,GAAa,EAC3FzsB,iBAAkB,WAA4C,EAC9DC,YAAa,WAAuC,EACpDC,UAAW,WAAqC,EAChD+xB,YAAa,WACX,IAAI7P,EAAMhgC,KAAKggC,IAEXhgC,KAAK4nC,cACH5nC,KAAK4nC,cAAgBsF,EACvBlN,EAAI9kB,KAAK,WAET8kB,EAAI9kB,OAGNlb,KAAK4nC,YAAc,MAGrB5H,EAAI6F,WACN,EAEA4J,oBAAoBrlC,GAClB,GAAwC,OAApCpK,KAAKyoC,2BAAqC,CAC5C,MAAM0O,EAAUn3C,KAAKggC,IAAIoP,2BACzBpvC,KAAKyoC,2BAA6Bx9B,KAAKiZ,KAAKjZ,KAAK4Y,IAAIszB,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAIA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,IACzJ,CAEA,OAAOn3C,KAAKyoC,0BACd,EAEAsO,kBAAmB,SAA0CxrC,EAAGC,GAC9D,IAAIL,EAAYnL,KAAKggC,IAAI2C,oBACzB,MAAO,CAACx3B,EAAU,GAAKI,EAAIJ,EAAU,GAAKK,EAAIL,EAAU,GAAIA,EAAU,GAAKI,EAAIJ,EAAU,GAAKK,EAAIL,EAAU,GAC9G,GAGa5G,EAAMO,IACnBi4B,EAAe15B,UAAUkB,EAAMO,IAAIqoC,IAAOpQ,EAAe15B,UAAU8pC,GAGrE,OAAOpQ,CACT,CAroDqB,GAuoDrBp9B,EAAQo9B,eAAiBA,CAElB,EAED,SAAUn9B,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQw0C,wBAA0BA,EAClCx0C,EAAQu0C,mBAAgB,EAExB,IAAI3vC,EAAQ9C,EAAoB,GAE5B21C,EAAa,CAAC,EAElB,SAASC,EAAiBrX,EAAKiV,GAC7B,IAAKA,GAA0B,qBAAXqC,OAClB,OAGF,MAAMpwC,EAAQ+tC,EAAK,GAAKA,EAAK,GACvB9tC,EAAS8tC,EAAK,GAAKA,EAAK,GACxBsC,EAAS,IAAID,OACnBC,EAAO5rC,KAAKspC,EAAK,GAAIA,EAAK,GAAI/tC,EAAOC,GACrC64B,EAAI9kB,KAAKq8B,EACX,CAEAH,EAAWI,YAAc,CACvBC,OAAQ,SAA4BC,GAClC,IAAIxtC,EAAOwtC,EAAI,GACXzC,EAAOyC,EAAI,GACXC,EAAaD,EAAI,GACjBhS,EAAKgS,EAAI,GACTj0B,EAAKi0B,EAAI,GACTvM,EAAKuM,EAAI,GACTE,EAAKF,EAAI,GACb,MAAO,CACLxtC,KAAM,UACN6lC,WAAY,SAAgC/P,GAE1C,IAAI6X,EADJR,EAAiBrX,EAAKiV,GAGT,UAAT/qC,EACF2tC,EAAO7X,EAAI8X,qBAAqBpS,EAAG,GAAIA,EAAG,GAAIjiB,EAAG,GAAIA,EAAG,IACtC,WAATvZ,IACT2tC,EAAO7X,EAAI+X,qBAAqBrS,EAAG,GAAIA,EAAG,GAAIyF,EAAI1nB,EAAG,GAAIA,EAAG,GAAIm0B,IAGlE,IAAK,IAAI92C,EAAI,EAAGklB,EAAK2xB,EAAW/2C,OAAQE,EAAIklB,IAAMllB,EAAG,CACnD,IAAIgB,EAAI61C,EAAW72C,GACnB+2C,EAAKG,aAAal2C,EAAE,GAAIA,EAAE,GAC5B,CAEA,OAAO+1C,CACT,EAEJ,GAGF,IAAII,EAAmB,WACrB,SAASC,EAAa11B,EAAMhb,EAASic,EAAIC,EAAIC,EAAIw0B,EAAIC,EAAIC,GACvD,IAIIC,EAJA7S,EAASj+B,EAAQi+B,OACjB8S,EAAS/wC,EAAQ+wC,OACjB72B,EAAQc,EAAKA,KACbg2B,EAAuB,EAAbh2B,EAAKtb,MAGfu+B,EAAOhiB,EAAK,GAAKgiB,EAAO/hB,EAAK,KAC/B40B,EAAM70B,EACNA,EAAKC,EACLA,EAAK40B,EACLA,EAAMH,EACNA,EAAKC,EACLA,EAAKE,GAGH7S,EAAO/hB,EAAK,GAAK+hB,EAAO9hB,EAAK,KAC/B20B,EAAM50B,EACNA,EAAKC,EACLA,EAAK20B,EACLA,EAAMF,EACNA,EAAKC,EACLA,EAAKC,GAGH7S,EAAOhiB,EAAK,GAAKgiB,EAAO/hB,EAAK,KAC/B40B,EAAM70B,EACNA,EAAKC,EACLA,EAAK40B,EACLA,EAAMH,EACNA,EAAKC,EACLA,EAAKE,GAGP,IAAIxD,GAAMrP,EAAOhiB,GAAMjc,EAAQ8C,SAAW9C,EAAQklC,OAC9CqI,GAAMtP,EAAOhiB,EAAK,GAAKjc,EAAQ+C,SAAW/C,EAAQmlC,OAClD8L,GAAMhT,EAAO/hB,GAAMlc,EAAQ8C,SAAW9C,EAAQklC,OAC9CgM,GAAMjT,EAAO/hB,EAAK,GAAKlc,EAAQ+C,SAAW/C,EAAQmlC,OAClDgM,GAAMlT,EAAO9hB,GAAMnc,EAAQ8C,SAAW9C,EAAQklC,OAC9CkM,GAAMnT,EAAO9hB,EAAK,GAAKnc,EAAQ+C,SAAW/C,EAAQmlC,OAEtD,KAAIoI,GAAM6D,GAkBV,IAdA,IAWIC,EAAIC,EAAKC,EAAKC,EACdC,EAAIC,EAAKC,EAAKC,EAZdC,EAAMd,EAAOJ,GACbmB,EAAMf,EAAOJ,EAAK,GAClBoB,EAAMhB,EAAOJ,EAAK,GAClBqB,EAAMjB,EAAOH,GACbqB,EAAMlB,EAAOH,EAAK,GAClBsB,EAAMnB,EAAOH,EAAK,GAClBuB,EAAMpB,EAAOF,GACbuB,EAAMrB,EAAOF,EAAK,GAClBwB,EAAMtB,EAAOF,EAAK,GAClByB,EAAO7uC,KAAK8uC,MAAMhF,GAClBiF,EAAO/uC,KAAK8uC,MAAMnB,GAIbptC,EAAIsuC,EAAMtuC,GAAKwuC,EAAMxuC,IAAK,CACjC,GAAIA,EAAIktC,EAAI,CACV,IAAIp3C,EAGFA,EADEkK,EAAIupC,EACF,EACKA,IAAO2D,EACZ,GAEC3D,EAAKvpC,IAAMupC,EAAK2D,GAGvBG,EAAK/D,GAAMA,EAAK2D,GAAMn3C,EACtBw3C,EAAMO,GAAOA,EAAMG,GAAOl4C,EAC1By3C,EAAMO,GAAOA,EAAMG,GAAOn4C,EAC1B03C,EAAMO,GAAOA,EAAMG,GAAOp4C,CAC5B,KAAO,CACL,IAAIA,EAGFA,EADEkK,EAAIotC,EACF,EACKF,IAAOE,EACZ,GAECF,EAAKltC,IAAMktC,EAAKE,GAGvBC,EAAKJ,GAAMA,EAAKE,GAAMr3C,EACtBw3C,EAAMU,GAAOA,EAAMG,GAAOr4C,EAC1By3C,EAAMU,GAAOA,EAAMG,GAAOt4C,EAC1B03C,EAAMU,GAAOA,EAAMG,GAAOv4C,CAC5B,CAEA,IAAIA,EAGFA,EADEkK,EAAIupC,EACF,EACKvpC,EAAIotC,EACT,GAEC7D,EAAKvpC,IAAMupC,EAAK6D,GAGvBK,EAAKnE,GAAMA,EAAK6D,GAAMr3C,EACtB43C,EAAMG,GAAOA,EAAMM,GAAOr4C,EAC1B63C,EAAMG,GAAOA,EAAMM,GAAOt4C,EAC1B83C,EAAMG,GAAOA,EAAMM,GAAOv4C,EAK1B,IAJA,IAAI24C,EAAMhvC,KAAK8uC,MAAM9uC,KAAKmC,IAAIyrC,EAAII,IAC9BiB,EAAMjvC,KAAK8uC,MAAM9uC,KAAK4Y,IAAIg1B,EAAII,IAC9BxU,EAAI+T,EAAUhtC,EAAU,EAANyuC,EAEb1uC,EAAI0uC,EAAK1uC,GAAK2uC,EAAK3uC,IAC1BjK,GAAKu3C,EAAKttC,IAAMstC,EAAKI,GAEjB33C,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAGNogB,EAAM+iB,KAAOqU,GAAOA,EAAMI,GAAO53C,EAAI,EACrCogB,EAAM+iB,KAAOsU,GAAOA,EAAMI,GAAO73C,EAAI,EACrCogB,EAAM+iB,KAAOuU,GAAOA,EAAMI,GAAO93C,EAAI,EACrCogB,EAAM+iB,KAAO,GAEjB,CACF,CAEA,SAAS0V,EAAW33B,EAAM43B,EAAQ5yC,GAChC,IAEI1G,EAAGklB,EAFHq0B,EAAKD,EAAO3U,OACZ6U,EAAKF,EAAO7B,OAGhB,OAAQ6B,EAAOlwC,MACb,IAAK,UACH,IAAIqwC,EAAiBH,EAAOG,eACxBC,EAAOvvC,KAAKwqC,MAAM4E,EAAGz5C,OAAS25C,GAAkB,EAChDE,EAAOF,EAAiB,EAE5B,IAAKz5C,EAAI,EAAGA,EAAI05C,EAAM15C,IAGpB,IAFA,IAAI45C,EAAI55C,EAAIy5C,EAEH9V,EAAI,EAAGA,EAAIgW,EAAMhW,IAAKiW,IAC7BxC,EAAa11B,EAAMhb,EAAS6yC,EAAGK,GAAIL,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,GAAIJ,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAC/FrC,EAAa11B,EAAMhb,EAAS6yC,EAAGK,EAAIH,EAAiB,GAAIF,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,EAAIH,EAAiB,GAAID,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAI7I,MAEF,IAAK,YACH,IAAKz5C,EAAI,EAAGklB,EAAKq0B,EAAGz5C,OAAQE,EAAIklB,EAAIllB,GAAK,EACvCo3C,EAAa11B,EAAMhb,EAAS6yC,EAAGv5C,GAAIu5C,EAAGv5C,EAAI,GAAIu5C,EAAGv5C,EAAI,GAAIw5C,EAAGx5C,GAAIw5C,EAAGx5C,EAAI,GAAIw5C,EAAGx5C,EAAI,IAGpF,MAEF,QACE,MAAM,IAAIsG,MAAM,kBAEtB,CAEA,SAAS6wC,EAAiB5C,EAAQsF,EAAelV,EAAQ8S,EAAQqC,EAASC,EAAiBrS,EAAgBnY,GACzG,IAqBIhpB,EAAQgvC,EAAWv1C,EAAGklB,EArBtB80B,EAAiB,IACjBC,EAAmB,IACnBC,EAAc,EACd1wC,EAAUW,KAAKwqC,MAAMJ,EAAO,IAC5B9qC,EAAUU,KAAKwqC,MAAMJ,EAAO,IAC5B4F,EAAchwC,KAAKqhC,KAAK+I,EAAO,IAAM/qC,EACrC4wC,EAAejwC,KAAKqhC,KAAK+I,EAAO,IAAM9qC,EACtCrD,EAAQ+D,KAAKmC,IAAInC,KAAKqhC,KAAKrhC,KAAKC,IAAI+vC,EAAcN,EAAc,GAAKG,IAAkBC,GACvF5zC,EAAS8D,KAAKmC,IAAInC,KAAKqhC,KAAKrhC,KAAKC,IAAIgwC,EAAeP,EAAc,GAAKG,IAAkBC,GACzFrO,EAASuO,EAAc/zC,EACvBylC,EAASuO,EAAe/zC,EACxBK,EAAU,CACZi+B,SACA8S,SACAjuC,SAAUA,EACVC,SAAUA,EACVmiC,OAAQ,EAAIA,EACZC,OAAQ,EAAIA,GAEVwO,EAAcj0C,EAAsB,EAAd8zC,EACtBI,EAAej0C,EAAuB,EAAd6zC,EAG5B,GAAI3qB,EAAauc,UACfvlC,EAASgpB,EAAagrB,YAAY,CAChCn0C,QACAC,SACA0zC,kBACAD,UACApzC,YAEF6uC,EAAY7N,EAAepE,UAAU,OAAQ+W,EAAaC,GAAc,GACxE/E,EAAU7uC,QAAQslC,UAAUzlC,EAAQ2zC,EAAaA,GACjD3zC,EAASgvC,EAAUhvC,WACd,CACLgvC,EAAY7N,EAAepE,UAAU,OAAQ+W,EAAaC,GAAc,GACxE,IAAI3E,EAASJ,EAAU7uC,QACnBgb,EAAOi0B,EAAOrN,gBAAgBliC,EAAOC,GAEzC,GAAI0zC,EAAiB,CACnB,IAAIn5B,EAAQc,EAAKA,KAEjB,IAAK1hB,EAAI,EAAGklB,EAAKtE,EAAM9gB,OAAQE,EAAIklB,EAAIllB,GAAK,EAC1C4gB,EAAM5gB,GAAK+5C,EAAgB,GAC3Bn5B,EAAM5gB,EAAI,GAAK+5C,EAAgB,GAC/Bn5B,EAAM5gB,EAAI,GAAK+5C,EAAgB,GAC/Bn5B,EAAM5gB,EAAI,GAAK,GAEnB,CAEA,IAAKA,EAAI,EAAGA,EAAI85C,EAAQh6C,OAAQE,IAC9Bq5C,EAAW33B,EAAMo4B,EAAQ95C,GAAI0G,GAG/BivC,EAAO7N,aAAapmB,EAAMw4B,EAAaA,GACvC3zC,EAASgvC,EAAUhvC,MACrB,CAEA,MAAO,CACLA,SACAiD,QAASA,EAAU0wC,EAActO,EACjCniC,QAASA,EAAUywC,EAAcrO,EACjCD,SACAC,SAEJ,CAEA,OAAOsL,CACT,CAvOuB,GAgSvB,SAAS9D,EAAwBuD,GAC/B,IAAI4D,EAAYlE,EAAWM,EAAI,IAE/B,IAAK4D,EACH,MAAM,IAAIl0C,MAAM,oBAAoBswC,EAAI,MAG1C,OAAO4D,EAAU7D,OAAOC,EAC1B,CA/DAN,EAAWmE,KAAO,CAChB9D,OAAQ,SAAqBC,GAC3B,IAAIjS,EAASiS,EAAI,GACba,EAASb,EAAI,GACbkD,EAAUlD,EAAI,GACdrC,EAASqC,EAAI,GACb1C,EAAS0C,EAAI,GACbzC,EAAOyC,EAAI,GACX3nB,EAAa2nB,EAAI,GACrB,MAAO,CACLxtC,KAAM,UACN6lC,WAAY,SAAyB/P,EAAKwb,EAAOr+B,GAE/C,IAAI/S,EAEJ,GAHAitC,EAAiBrX,EAAKiV,GAGlB93B,EACF/S,EAAQ7F,EAAMc,KAAKyqC,8BAA8B9P,EAAI2C,0BAIrD,GAFAv4B,EAAQ7F,EAAMc,KAAKyqC,8BAA8B0L,EAAMtT,eAEnD8M,EAAQ,CACV,IAAIyG,EAAcl3C,EAAMc,KAAKyqC,8BAA8BkF,GAE3D5qC,EAAQ,CAACA,EAAM,GAAKqxC,EAAY,GAAIrxC,EAAM,GAAKqxC,EAAY,GAC7D,CAGF,IAAIC,EAAyBzD,EAAiB5C,EAAQjrC,EAAOq7B,EAAQ8S,EAAQqC,EAASz9B,EAAc,KAAO4S,EAAYyrB,EAAMhT,eAAgBgT,EAAMnrB,cAYnJ,OAVKlT,IACH6iB,EAAIoD,aAAathB,MAAMke,EAAKwb,EAAMtT,eAE9B8M,GACFhV,EAAI70B,UAAU2W,MAAMke,EAAKgV,IAI7BhV,EAAIiD,UAAUyY,EAAuBpxC,QAASoxC,EAAuBnxC,SACrEy1B,EAAI51B,MAAMsxC,EAAuBhP,OAAQgP,EAAuB/O,QACzD3M,EAAI2b,cAAcD,EAAuBr0C,OAAQ,YAC1D,EAEJ,GAEF+vC,EAAWwE,MAAQ,CACjBnE,OAAQ,WACN,MAAO,CACLvtC,KAAM,UACN6lC,WAAY,WACV,MAAO,SACT,EAEJ,GAaF,IAAImE,EAAgB,WAClB,IAAI2H,EAAY,CACdC,QAAS,EACTC,UAAW,GAEThB,EAAmB,IAEvB,SAAS7G,EAAcJ,EAAIC,EAAO/T,EAAKgU,EAAuB9L,GAC5DloC,KAAKywB,aAAeqjB,EAAG,GACvB9zC,KAAKg1C,OAASlB,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvC9zC,KAAKi1C,KAAOnB,EAAG,GACf9zC,KAAKg8C,MAAQlI,EAAG,GAChB9zC,KAAKi8C,MAAQnI,EAAG,GAChB9zC,KAAKk8C,UAAYpI,EAAG,GACpB9zC,KAAKm8C,WAAarI,EAAG,GACrB9zC,KAAK+zC,MAAQA,EACb/zC,KAAKg0C,sBAAwBA,EAC7Bh0C,KAAKkoC,cAAgBA,EACrBloC,KAAKkK,KAAO,UACZlK,KAAKggC,IAAMA,CACb,CAiGA,OA/FAkU,EAAc7wC,UAAY,CACxB+4C,oBAAqB,SAA0CZ,GAC7D,IAAI/qB,EAAezwB,KAAKywB,aACpBwkB,EAAOj1C,KAAKi1C,KACZ+G,EAAQh8C,KAAKg8C,MACbC,EAAQj8C,KAAKi8C,MACbC,EAAYl8C,KAAKk8C,UACjBC,EAAan8C,KAAKm8C,WAClBpI,EAAQ/zC,KAAK+zC,MACbC,EAAwBh0C,KAAKg0C,uBACjC,EAAIzvC,EAAMiM,MAAM,eAAiB2rC,GACjC,IAAIvH,EAAKK,EAAK,GACVJ,EAAKI,EAAK,GACVH,EAAKG,EAAK,GACVF,EAAKE,EAAK,GAEVwG,EAAcl3C,EAAMc,KAAKyqC,8BAA8B9vC,KAAKg1C,QAE5DqH,EAAiB93C,EAAMc,KAAKyqC,8BAA8B9vC,KAAKkoC,eAE/DoU,EAAgB,CAACb,EAAY,GAAKY,EAAe,GAAIZ,EAAY,GAAKY,EAAe,IACrFE,EAAOv8C,KAAKw8C,gBAAgBR,EAAOh8C,KAAKggC,IAAI34B,OAAOH,MAAOo1C,EAAc,IACxEG,EAAOz8C,KAAKw8C,gBAAgBP,EAAOj8C,KAAKggC,IAAI34B,OAAOF,OAAQm1C,EAAc,IACzEjG,EAAYmF,EAAMhT,eAAepE,UAAU,UAAWmY,EAAKjqB,KAAMmqB,EAAKnqB,MAAM,GAC5EmkB,EAASJ,EAAU7uC,QACnBk1C,EAAW1I,EAAsBC,qBAAqBwC,GAS1D,OARAiG,EAAStU,WAAaoT,EAAMpT,WAC5BpoC,KAAK28C,+BAA+BD,EAAUR,EAAWnI,GACzD2I,EAASvxC,UAAUoxC,EAAKnyC,MAAO,EAAG,EAAGqyC,EAAKryC,MAAO,EAAG,GACpDsyC,EAASvxC,UAAU,EAAG,EAAG,EAAG,GAAIypC,GAAKC,GACrC70C,KAAK48C,SAASF,EAAUzH,EAAML,EAAIC,EAAIC,EAAIC,GAC1C2H,EAAStf,oBAAoB3M,GAC7BzwB,KAAKggC,IAAI70B,UAAU,EAAG,EAAG,EAAG,EAAGypC,EAAIC,GACnC70C,KAAKggC,IAAI51B,MAAM,EAAImyC,EAAKnyC,MAAO,EAAIqyC,EAAKryC,OACjCisC,EAAUhvC,MACnB,EACAm1C,gBAAiB,SAAuC7W,EAAMkX,EAAgBzyC,GAC5Eu7B,EAAO16B,KAAKC,IAAIy6B,GAChB,IAAImX,EAAU7xC,KAAK4Y,IAAIk3B,EAAkB8B,GACrCvqB,EAAOrnB,KAAKqhC,KAAK3G,EAAOv7B,GAQ5B,OANIkoB,GAAQwqB,EACVxqB,EAAOwqB,EAEP1yC,EAAQkoB,EAAOqT,EAGV,CACLv7B,QACAkoB,OAEJ,EACAsqB,SAAU,SAAkBF,EAAUzH,EAAML,EAAIC,EAAIC,EAAIC,GACtD,GAAI/f,MAAMC,QAAQggB,IAAyB,IAAhBA,EAAKr0C,OAAc,CAC5C,IAAIm8C,EAAYjI,EAAKF,EACjBoI,EAAajI,EAAKF,EACtB6H,EAAS1c,IAAIr0B,KAAKipC,EAAIC,EAAIkI,EAAWC,GACrCN,EAASxhC,OACTwhC,EAASzhC,SACX,CACF,EACA0hC,+BAAgC,SAAwCD,EAAUR,EAAWnI,GAC3F,MAAMvsC,EAAUk1C,EAAS1c,IACnB6B,EAAU6a,EAAS7a,QAEzB,OAAQqa,GACN,KAAKL,EAAUC,QACb,IAAI9b,EAAMhgC,KAAKggC,IACfx4B,EAAQmjC,UAAY3K,EAAI2K,UACxBnjC,EAAQkjC,YAAc1K,EAAI0K,YAC1B7I,EAAQkF,UAAY/G,EAAI2K,UACxB9I,EAAQmF,YAAchH,EAAI0K,YAC1B,MAEF,KAAKmR,EAAUE,UACb,IAAIkB,EAAW14C,EAAMc,KAAKgvC,WAAWN,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAE/DvsC,EAAQmjC,UAAYsS,EACpBz1C,EAAQkjC,YAAcuS,EACtBpb,EAAQkF,UAAYkW,EACpBpb,EAAQmF,YAAciW,EACtB,MAEF,QACE,MAAM,IAAI14C,EAAMgN,YAAY,2BAA2B2qC,KAE7D,EACAnM,WAAY,SAAkC/P,EAAKwb,GACjDxb,EAAMhgC,KAAKggC,IACXA,EAAIoD,aAAathB,MAAMke,EAAKhgC,KAAKkoC,eACjClI,EAAI70B,UAAU2W,MAAMke,EAAKhgC,KAAKg1C,QAC9B,IAAI0G,EAAyB17C,KAAKo8C,oBAAoBZ,GACtD,OAAOxb,EAAI2b,cAAcD,EAAwB,SACnD,GAEKxH,CACT,CAtHoB,GAwHpBv0C,EAAQu0C,cAAgBA,CAEjB,EAED,SAAUt0C,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQiG,yBAAsB,EAC9B,MAAMA,EAAsBzD,OAAOY,OAAO,MAC1CpD,EAAQiG,oBAAsBA,EAC9BA,EAAoBojB,gBAAgD5nB,IAAnCwE,EAAoBojB,WAA2B,KAAOpjB,EAAoBojB,WAC3GpjB,EAAoBswB,eAA8C90B,IAAlCwE,EAAoBswB,UAA0B,GAAKtwB,EAAoBswB,SAEhG,EAED,SAAUt2B,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQsqB,oBAAiB,EAEzB,IAAI1lB,EAAQ9C,EAAoB,GAEhC,MAAMy7C,EAAe,CACnBnlC,QAAS,EACTolC,KAAM,EACNC,MAAO,GAEHC,EAAa,CACjBtlC,QAAS,EACTulC,OAAQ,EACRC,gBAAiB,EACjBC,MAAO,EACPC,QAAS,EACTL,MAAO,EACPM,KAAM,EACNC,cAAe,EACfC,eAAgB,GAGlB,SAASC,EAAW70C,GAClB,GAAsB,kBAAXA,GAAkC,OAAXA,EAChC,OAAOA,EAGT,OAAQA,EAAOhH,MACb,IAAK,iBACH,OAAO,IAAIuC,EAAMqN,eAAe5I,EAAOqY,SAEzC,IAAK,sBACH,OAAO,IAAI9c,EAAMM,oBAAoBmE,EAAOqY,SAE9C,IAAK,8BACH,OAAO,IAAI9c,EAAMY,4BAA4B6D,EAAOqY,QAASrY,EAAOW,QAEtE,IAAK,wBACH,OAAO,IAAIpF,EAAMiN,sBAAsBxI,EAAOqY,QAASrY,EAAO+F,SAEhE,QACE,OAAO,IAAIxK,EAAMiN,sBAAsBxI,EAAOqY,QAASrY,EAAO1I,YAEpE,CAEA,MAAM2pB,EACJpiB,YAAYi2C,EAAYC,EAAYC,GAClCh+C,KAAK89C,WAAaA,EAClB99C,KAAK+9C,WAAaA,EAClB/9C,KAAKg+C,OAASA,EACdh+C,KAAKi+C,WAAa,EAClBj+C,KAAKk+C,SAAW,EAChBl+C,KAAKkqB,sBAAuB,EAC5BlqB,KAAKm+C,YAAch8C,OAAOY,OAAO,MACjC/C,KAAKo+C,kBAAoBj8C,OAAOY,OAAO,MACvC/C,KAAKq+C,qBAAuBl8C,OAAOY,OAAO,MAC1C/C,KAAKs+C,cAAgBn8C,OAAOY,OAAO,MAEnC/C,KAAKu+C,mBAAqBC,IACxB,MAAMh8B,EAAOg8B,EAAMh8B,KAEnB,GAAIA,EAAKu7B,aAAe/9C,KAAK89C,WAC3B,OAGF,GAAIt7B,EAAKi8B,OAGP,YAFAz+C,KAAK0+C,sBAAsBl8B,GAK7B,GAAIA,EAAK8O,SAAU,CACjB,MAAM2sB,EAAaz7B,EAAKy7B,WAClBz4B,EAAaxlB,KAAKq+C,qBAAqBJ,GAE7C,IAAKz4B,EACH,MAAM,IAAIpe,MAAM,2BAA2B62C,KAK7C,UAFOj+C,KAAKq+C,qBAAqBJ,GAE7Bz7B,EAAK8O,WAAa4rB,EAAaC,KACjC33B,EAAWtc,QAAQsZ,EAAKA,UACnB,IAAIA,EAAK8O,WAAa4rB,EAAaE,MAGxC,MAAM,IAAIh2C,MAAM,4BAFhBoe,EAAWrc,OAAO00C,EAAWr7B,EAAKxZ,QAGpC,CAEA,MACF,CAEA,MAAM21C,EAAS3+C,KAAKs+C,cAAc97B,EAAKm8B,QAEvC,IAAKA,EACH,MAAM,IAAIv3C,MAAM,+BAA+Bob,EAAKm8B,UAGtD,GAAIn8B,EAAKy7B,WAAT,CACE,MAAMW,EAAe5+C,KAAK89C,WACpBe,EAAer8B,EAAKs7B,WAC1B,IAAI70C,SAAQ,SAAUC,GACpBA,EAAQy1C,EAAOn8B,EAAKA,MACtB,IAAGla,MAAK,SAAUqc,GAChBq5B,EAAOxpB,YAAY,CACjBspB,WAAYc,EACZb,WAAYc,EACZvtB,SAAU4rB,EAAaC,KACvBc,WAAYz7B,EAAKy7B,WACjBz7B,KAAMmC,GAEV,IAAG,SAAU3b,GACXg1C,EAAOxpB,YAAY,CACjBspB,WAAYc,EACZb,WAAYc,EACZvtB,SAAU4rB,EAAaE,MACvBa,WAAYz7B,EAAKy7B,WACjBj1C,OAAQ60C,EAAW70C,IAEvB,GAEF,MAEIwZ,EAAK07B,SACPl+C,KAAK8+C,kBAAkBt8B,GAKzBm8B,EAAOn8B,EAAKA,KAAK,EAGnBw7B,EAAO1oB,iBAAiB,UAAWt1B,KAAKu+C,mBAC1C,CAEArnB,GAAG6nB,EAAYC,GACb,MAAMC,EAAKj/C,KAAKs+C,cAEhB,GAAIW,EAAGF,GACL,MAAM,IAAI33C,MAAM,0CAA0C23C,MAG5DE,EAAGF,GAAcC,CACnB,CAEAn1C,KAAKk1C,EAAYv8B,EAAMiS,GACrBz0B,KAAKk/C,aAAa,CAChBpB,WAAY99C,KAAK89C,WACjBC,WAAY/9C,KAAK+9C,WACjBY,OAAQI,EACRv8B,QACCiS,EACL,CAEAjK,gBAAgBu0B,EAAYv8B,EAAMiS,GAChC,MAAMwpB,EAAaj+C,KAAKi+C,aAClBz4B,GAAa,EAAIjhB,EAAMG,2BAC7B1E,KAAKq+C,qBAAqBJ,GAAcz4B,EAExC,IACExlB,KAAKk/C,aAAa,CAChBpB,WAAY99C,KAAK89C,WACjBC,WAAY/9C,KAAK+9C,WACjBY,OAAQI,EACRd,aACAz7B,QACCiS,EAGL,CAFE,MAAOlmB,GACPiX,EAAWrc,OAAOoF,EACpB,CAEA,OAAOiX,EAAWE,OACpB,CAEAyM,eAAe4sB,EAAYv8B,EAAM28B,EAAkB1qB,GACjD,MAAMypB,EAAWl+C,KAAKk+C,WAChBJ,EAAa99C,KAAK89C,WAClBC,EAAa/9C,KAAK+9C,WAClBC,EAASh+C,KAAKg+C,OACpB,OAAO,IAAI5vC,eAAe,CACxBN,MAAOsxC,IACL,MAAMC,GAAkB,EAAI96C,EAAMG,2BAkBlC,OAjBA1E,KAAKo+C,kBAAkBF,GAAY,CACjCkB,aACAE,UAAWD,EACXE,SAAU,KACVC,WAAY,KACZC,UAAU,GAGZz/C,KAAKk/C,aAAa,CAChBpB,aACAC,aACAY,OAAQI,EACRb,WACA17B,OACAk9B,YAAaN,EAAWM,aACvBjrB,GAEI4qB,EAAgB35B,OAAO,EAEhCi6B,KAAMP,IACJ,MAAMQ,GAAiB,EAAIr7C,EAAMG,2BASjC,OARA1E,KAAKo+C,kBAAkBF,GAAUqB,SAAWK,EAC5C5B,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWK,KACnBQ,WACAwB,YAAaN,EAAWM,cAEnBE,EAAel6B,OAAO,EAE/B+N,OAAQzqB,KACN,EAAIzE,EAAMuF,QAAQd,aAAkB5B,MAAO,mCAC3C,MAAMy4C,GAAmB,EAAIt7C,EAAMG,2BAUnC,OATA1E,KAAKo+C,kBAAkBF,GAAUsB,WAAaK,EAC9C7/C,KAAKo+C,kBAAkBF,GAAUuB,UAAW,EAC5CzB,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWC,OACnBY,WACAl1C,OAAQ60C,EAAW70C,KAEd62C,EAAiBn6B,OAAO,GAEhCy5B,EACL,CAEAL,kBAAkBt8B,GAChB,MAAMziB,EAAOC,KACP2+C,EAAS3+C,KAAKs+C,cAAc97B,EAAKm8B,QACjCT,EAAW17B,EAAK07B,SAChBJ,EAAa99C,KAAK89C,WAClBC,EAAav7B,EAAKs7B,WAClBE,EAASh+C,KAAKg+C,OACd8B,EAAa,CACjB5mB,QAAQjX,EAAOqQ,EAAO,EAAGmC,GACvB,GAAIz0B,KAAK+/C,YACP,OAGF,MAAMC,EAAkBhgD,KAAK0/C,YAC7B1/C,KAAK0/C,aAAeptB,EAEhB0tB,EAAkB,GAAKhgD,KAAK0/C,aAAe,IAC7C1/C,KAAKigD,gBAAiB,EAAI17C,EAAMG,2BAChC1E,KAAKkgD,MAAQlgD,KAAKigD,eAAev6B,SAGnC3lB,EAAKm/C,aAAa,CAChBpB,aACAC,aACAU,OAAQpB,EAAWI,QACnBS,WACAj8B,SACCwS,EACL,EAEAwE,QACMj5B,KAAK+/C,cAIT//C,KAAK+/C,aAAc,EACnB/B,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWG,MACnBU,oBAEKn+C,EAAKo+C,YAAYD,GAC1B,EAEAntB,MAAM/nB,IACJ,EAAIzE,EAAMuF,QAAQd,aAAkB5B,MAAO,kCAEvCpH,KAAK+/C,cAIT//C,KAAK+/C,aAAc,EACnB/B,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWD,MACnBc,WACAl1C,OAAQ60C,EAAW70C,KAEvB,EAEAi3C,gBAAgB,EAAI17C,EAAMG,2BAC1Bs0B,OAAQ,KACRG,SAAU,KACV4mB,aAAa,EACbL,YAAal9B,EAAKk9B,YAClBQ,MAAO,MAETJ,EAAWG,eAAe/2C,UAC1B42C,EAAWI,MAAQJ,EAAWG,eAAev6B,QAC7C1lB,KAAKm+C,YAAYD,GAAY4B,EAC7B,IAAI72C,SAAQ,SAAUC,GACpBA,EAAQy1C,EAAOn8B,EAAKA,KAAMs9B,GAC5B,IAAGx3C,MAAK,WACN01C,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWO,eACnBM,WACAiC,SAAS,GAEb,IAAG,SAAUn3C,GACXg1C,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWO,eACnBM,WACAl1C,OAAQ60C,EAAW70C,IAEvB,GACF,CAEA01C,sBAAsBl8B,GACpB,MAAM07B,EAAW17B,EAAK07B,SAChBJ,EAAa99C,KAAK89C,WAClBC,EAAav7B,EAAKs7B,WAClBE,EAASh+C,KAAKg+C,OAEpB,OAAQx7B,EAAKi8B,QACX,KAAKpB,EAAWO,eACVp7B,EAAK29B,QACPngD,KAAKo+C,kBAAkBF,GAAUoB,UAAUp2C,UAE3ClJ,KAAKo+C,kBAAkBF,GAAUoB,UAAUn2C,OAAO00C,EAAWr7B,EAAKxZ,SAGpE,MAEF,KAAKq0C,EAAWM,cACVn7B,EAAK29B,QACPngD,KAAKo+C,kBAAkBF,GAAUqB,SAASr2C,UAE1ClJ,KAAKo+C,kBAAkBF,GAAUqB,SAASp2C,OAAO00C,EAAWr7B,EAAKxZ,SAGnE,MAEF,KAAKq0C,EAAWK,KACd,IAAK19C,KAAKm+C,YAAYD,GAAW,CAC/BF,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWM,cACnBO,WACAiC,SAAS,IAEX,KACF,CAEIngD,KAAKm+C,YAAYD,GAAUwB,aAAe,GAAKl9B,EAAKk9B,YAAc,GACpE1/C,KAAKm+C,YAAYD,GAAU+B,eAAe/2C,UAG5ClJ,KAAKm+C,YAAYD,GAAUwB,YAAcl9B,EAAKk9B,YAC9C,MAAM,OACJ1mB,GACEh5B,KAAKm+C,YAAY37B,EAAK07B,UAC1B,IAAIj1C,SAAQ,SAAUC,GACpBA,EAAQ8vB,GAAUA,IACpB,IAAG1wB,MAAK,WACN01C,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWM,cACnBO,WACAiC,SAAS,GAEb,IAAG,SAAUn3C,GACXg1C,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWM,cACnBO,WACAl1C,OAAQ60C,EAAW70C,IAEvB,IACA,MAEF,KAAKq0C,EAAWI,QAGd,IAFA,EAAIl5C,EAAMuF,QAAQ9J,KAAKo+C,kBAAkBF,GAAW,yCAEhDl+C,KAAKo+C,kBAAkBF,GAAUuB,SACnC,MAGFz/C,KAAKo+C,kBAAkBF,GAAUkB,WAAWlmB,QAAQ1W,EAAKP,OACzD,MAEF,KAAKo7B,EAAWG,MAGd,IAFA,EAAIj5C,EAAMuF,QAAQ9J,KAAKo+C,kBAAkBF,GAAW,uCAEhDl+C,KAAKo+C,kBAAkBF,GAAUuB,SACnC,MAGFz/C,KAAKo+C,kBAAkBF,GAAUuB,UAAW,EAC5Cz/C,KAAKo+C,kBAAkBF,GAAUkB,WAAWnmB,QAE5Cj5B,KAAKogD,wBAAwBlC,GAE7B,MAEF,KAAKb,EAAWD,OACd,EAAI74C,EAAMuF,QAAQ9J,KAAKo+C,kBAAkBF,GAAW,uCACpDl+C,KAAKo+C,kBAAkBF,GAAUkB,WAAWruB,MAAM8sB,EAAWr7B,EAAKxZ,SAElEhJ,KAAKogD,wBAAwBlC,GAE7B,MAEF,KAAKb,EAAWE,gBACV/6B,EAAK29B,QACPngD,KAAKo+C,kBAAkBF,GAAUsB,WAAWt2C,UAE5ClJ,KAAKo+C,kBAAkBF,GAAUsB,WAAWr2C,OAAO00C,EAAWr7B,EAAKxZ,SAGrEhJ,KAAKogD,wBAAwBlC,GAE7B,MAEF,KAAKb,EAAWC,OACd,IAAKt9C,KAAKm+C,YAAYD,GACpB,MAGF,MAAM,SACJ/kB,GACEn5B,KAAKm+C,YAAY37B,EAAK07B,UAC1B,IAAIj1C,SAAQ,SAAUC,GACpBA,EAAQiwB,GAAYA,EAAS0kB,EAAWr7B,EAAKxZ,SAC/C,IAAGV,MAAK,WACN01C,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWE,gBACnBW,WACAiC,SAAS,GAEb,IAAG,SAAUn3C,GACXg1C,EAAOxpB,YAAY,CACjBspB,aACAC,aACAU,OAAQpB,EAAWE,gBACnBW,WACAl1C,OAAQ60C,EAAW70C,IAEvB,IACAhJ,KAAKm+C,YAAYD,GAAU+B,eAAe92C,OAAO00C,EAAWr7B,EAAKxZ,SACjEhJ,KAAKm+C,YAAYD,GAAU6B,aAAc,SAClC//C,KAAKm+C,YAAYD,GACxB,MAEF,QACE,MAAM,IAAI92C,MAAM,0BAEtB,CAEAY,8BAA8Bk2C,SACtBj1C,QAAQo3C,WAAW,CAACrgD,KAAKo+C,kBAAkBF,GAAUoB,UAAWt/C,KAAKo+C,kBAAkBF,GAAUqB,SAAUv/C,KAAKo+C,kBAAkBF,GAAUsB,YAAYj/C,KAAI,SAAUilB,GAC1K,OAAOA,GAAcA,EAAWE,OAClC,YACO1lB,KAAKo+C,kBAAkBF,EAChC,CAEAgB,aAAa79B,EAASoT,GAChBA,GAAaz0B,KAAKkqB,qBACpBlqB,KAAKg+C,OAAOxpB,YAAYnT,EAASoT,GAEjCz0B,KAAKg+C,OAAOxpB,YAAYnT,EAE5B,CAEAzZ,UACE5H,KAAKg+C,OAAOzoB,oBAAoB,UAAWv1B,KAAKu+C,mBAClD,EAIF5+C,EAAQsqB,eAAiBA,CAElB,EAED,SAAUrqB,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQo7B,cAAW,EAEnB,IAAIx2B,EAAQ9C,EAAoB,GAE5B6+C,EAAc7+C,EAAoB,IAEtC,MAAMs5B,EACJlzB,YAAY2a,IACV,EAAIje,EAAMuF,QAAwB,kBAAT0Y,EAAmB,mCAC5CA,EAAOxiB,KAAKugD,QAAQ/9B,GACpB,MAAMg+B,EAAS,IAAIF,EAAYG,gBACzBC,EAAcF,EAAOG,gBAAgBn+B,GAC3CxiB,KAAK4gD,aAAe,IAAIC,IAEpBH,GACF1gD,KAAK8gD,OAAOJ,EAEhB,CAEAH,QAAQ/9B,GACN,OAAOA,EAAKf,QAAQ,SAAU,IAAIA,QAAQ,uBAAuB,SAAUqI,EAAKi3B,GAC9E,MAAMr/B,EAAQq/B,EAAMt/B,QAAQ,4BAA4B,SAAUH,EAAM8E,EAAIC,EAAIC,GAC9E,OAAO1E,OAAOC,aAAkB,GAALuE,EAAe,EAALC,EAAc,EAALC,EAChD,IAAG7E,QAAQ,4BAA4B,SAAUD,EAAKxf,GACpD,OAAQA,GACN,IAAK,MACH,MAAO,IAET,IAAK,OACH,MAAO,IAET,IAAK,KACH,MAAO,IAET,IAAK,KACH,MAAO,IAET,IAAK,OACH,MAAO,IAGX,MAAM,IAAIoF,MAAM,YAAYpF,mBAC9B,IACA,IAAIg/C,EAAQ,GAEZ,IAAK,IAAIlgD,EAAI,EAAGklB,EAAKtE,EAAM9gB,OAAQE,EAAIklB,EAAIllB,GAAK,EAAG,CACjD,MAAMwgB,EAA6B,IAAtBI,EAAMS,WAAWrhB,GAAW4gB,EAAMS,WAAWrhB,EAAI,GAG5DkgD,GADE1/B,GAAQ,IAAMA,EAAO,KAAgB,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACnDM,OAAOC,aAAaP,GAEpB,OAAS,MAAUA,GAAMhhB,SAAS,IAAI+M,UAAU,GAAK,GAElE,CAEA,MAAO,IAAM2zC,CACf,GACF,CAEAF,OAAOJ,GACL,IAAIO,EAAMP,EAAY7xC,gBAEtB,GAAmC,YAA/BoyC,EAAIC,SAASC,cAA6B,CAC5CF,EAAMA,EAAIG,WAEV,MAAOH,GAAsC,YAA/BA,EAAIC,SAASC,cACzBF,EAAMA,EAAII,WAEd,CAEA,MAAMH,EAAWD,EAAMA,EAAIC,SAASC,cAAgB,KAEpD,IAAKF,GAAoB,YAAbC,IAA2BD,EAAIK,gBACzC,OAGF,MAAMC,EAAWN,EAAIO,WAErB,IAAK,IAAI1gD,EAAI,EAAGklB,EAAKu7B,EAAS3gD,OAAQE,EAAIklB,EAAIllB,IAAK,CACjD,MAAMo0B,EAAOqsB,EAASzgD,GAEtB,GAAoC,oBAAhCo0B,EAAKgsB,SAASC,cAIlB,IAAK,IAAI1c,EAAI,EAAGgd,EAAKvsB,EAAKssB,WAAW5gD,OAAQ6jC,EAAIgd,EAAIhd,IACnD,GAAkD,UAA9CvP,EAAKssB,WAAW/c,GAAGyc,SAASC,cAA2B,CACzD,MAAMlK,EAAQ/hB,EAAKssB,WAAW/c,GACxBziC,EAAOi1C,EAAMiK,SAASC,cAE5BnhD,KAAK4gD,aAAal+B,IAAI1gB,EAAMi1C,EAAM1kB,YAAYmvB,OAChD,CAEJ,CACF,CAEAp/C,IAAIN,GACF,OAAOhC,KAAK4gD,aAAahsB,IAAI5yB,GAAQhC,KAAK4gD,aAAat+C,IAAIN,GAAQ,IACrE,CAEA2/C,SACE,MAAM1gC,EAAM9e,OAAOY,OAAO,MAE1B,IAAK,MAAOC,EAAKN,KAAU1C,KAAK4gD,aAC9B3/B,EAAIje,GAAON,EAGb,OAAOue,CACT,CAEA2T,IAAI5yB,GACF,OAAOhC,KAAK4gD,aAAahsB,IAAI5yB,EAC/B,EAIFrC,EAAQo7B,SAAWA,CAEZ,EAED,SAAUn7B,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ8gD,qBAAkB,EAC1B,MAAMmB,EAAqB,CACzBC,QAAS,EACTC,eAAgB,EAChBC,kBAAmB,EACnBC,4BAA6B,EAC7BC,gCAAiC,EACjCC,qBAAsB,EACtBC,kBAAmB,EACnBC,aAAc,EACdC,4BAA6B,EAC7BC,qBAAsB,EACtBC,mBAAoB,IAGtB,SAASC,EAAah/C,EAAG+hB,GACvB,MAAMk9B,EAAKj/C,EAAE+hB,GACb,MAAc,MAAPk9B,GAAqB,OAAPA,GAAsB,OAAPA,GAAsB,OAAPA,CACrD,CAEA,SAASC,EAAmBl/C,GAC1B,IAAK,IAAI1C,EAAI,EAAGklB,EAAKxiB,EAAE5C,OAAQE,EAAIklB,EAAIllB,IACrC,IAAK0hD,EAAah/C,EAAG1C,GACnB,OAAO,EAIX,OAAO,CACT,CAEA,MAAM6hD,EACJC,iBAAiBp/C,GACf,OAAOA,EAAEie,QAAQ,cAAc,CAACqI,EAAK+4B,KACnC,GAA+B,OAA3BA,EAAOx1C,UAAU,EAAG,GACtB,OAAOuU,OAAOC,aAAanS,SAASmzC,EAAOx1C,UAAU,GAAI,KACpD,GAA+B,MAA3Bw1C,EAAOx1C,UAAU,EAAG,GAC7B,OAAOuU,OAAOC,aAAanS,SAASmzC,EAAOx1C,UAAU,GAAI,KAG3D,OAAQw1C,GACN,IAAK,KACH,MAAO,IAET,IAAK,KACH,MAAO,IAET,IAAK,MACH,MAAO,IAET,IAAK,OACH,MAAO,IAGX,OAAO7iD,KAAK8iD,gBAAgBD,EAAO,GAEvC,CAEAE,cAAcv/C,EAAGsK,GACf,MAAMk1C,EAAa,GACnB,IAAIzgC,EAAMzU,EAEV,SAASm1C,IACP,MAAO1gC,EAAM/e,EAAE5C,QAAU4hD,EAAah/C,EAAG+e,KACrCA,CAEN,CAEA,MAAOA,EAAM/e,EAAE5C,SAAW4hD,EAAah/C,EAAG+e,IAAmB,MAAX/e,EAAE+e,IAA2B,MAAX/e,EAAE+e,KAClEA,EAGJ,MAAMvgB,EAAOwB,EAAE6J,UAAUS,EAAOyU,GAChC0gC,IAEA,MAAO1gC,EAAM/e,EAAE5C,QAAqB,MAAX4C,EAAE+e,IAA2B,MAAX/e,EAAE+e,IAA2B,MAAX/e,EAAE+e,GAAc,CAC3E0gC,IACA,IAAIC,EAAW,GACXC,EAAY,GAEhB,MAAO5gC,EAAM/e,EAAE5C,SAAW4hD,EAAah/C,EAAG+e,IAAmB,MAAX/e,EAAE+e,GAClD2gC,GAAY1/C,EAAE+e,KACZA,EAKJ,GAFA0gC,IAEe,MAAXz/C,EAAE+e,GACJ,OAAO,OAGPA,EACF0gC,IACA,MAAMG,EAAc5/C,EAAE+e,GAEtB,GAAoB,MAAhB6gC,GAAuC,MAAhBA,EACzB,OAAO,KAGT,MAAMC,EAAe7/C,EAAEyJ,QAAQm2C,IAAe7gC,GAE9C,GAAI8gC,EAAe,EACjB,OAAO,KAGTF,EAAY3/C,EAAE6J,UAAUkV,EAAK8gC,GAC7BL,EAAW9iD,KAAK,CACd8B,KAAMkhD,EACNxgD,MAAO1C,KAAK4iD,iBAAiBO,KAE/B5gC,EAAM8gC,EAAe,EACrBJ,GACF,CAEA,MAAO,CACLjhD,OACAghD,aACAM,OAAQ/gC,EAAMzU,EAElB,CAEAy1C,4BAA4B//C,EAAGsK,GAC7B,IAAIyU,EAAMzU,EAEV,SAASm1C,IACP,MAAO1gC,EAAM/e,EAAE5C,QAAU4hD,EAAah/C,EAAG+e,KACrCA,CAEN,CAEA,MAAOA,EAAM/e,EAAE5C,SAAW4hD,EAAah/C,EAAG+e,IAAmB,MAAX/e,EAAE+e,IAA2B,MAAX/e,EAAE+e,KAClEA,EAGJ,MAAMvgB,EAAOwB,EAAE6J,UAAUS,EAAOyU,GAChC0gC,IACA,MAAMO,EAAYjhC,EAElB,MAAOA,EAAM/e,EAAE5C,SAAsB,MAAX4C,EAAE+e,IAA+B,MAAf/e,EAAE+e,EAAM,MAChDA,EAGJ,MAAM7f,EAAQc,EAAE6J,UAAUm2C,EAAWjhC,GACrC,MAAO,CACLvgB,OACAU,QACA4gD,OAAQ/gC,EAAMzU,EAElB,CAEA21C,SAASjgD,GACP,IAAI1C,EAAI,EAER,MAAOA,EAAI0C,EAAE5C,OAAQ,CACnB,MAAM6hD,EAAKj/C,EAAE1C,GACb,IAAI2jC,EAAI3jC,EAER,GAAW,MAAP2hD,EAAY,GACZhe,EACF,MAAMif,EAAMlgD,EAAEihC,GACd,IAAIiW,EAEJ,OAAQgJ,GACN,IAAK,IAIH,KAHEjf,EACFiW,EAAIl3C,EAAEyJ,QAAQ,IAAKw3B,GAEfiW,EAAI,EAEN,YADA16C,KAAK2jD,QAAQ/B,EAAmBU,qBAIlCtiD,KAAK4jD,aAAapgD,EAAE6J,UAAUo3B,EAAGiW,IACjCjW,EAAIiW,EAAI,EACR,MAEF,IAAK,MACDjW,EAEF,MAAMof,EAAK7jD,KAAKujD,4BAA4B//C,EAAGihC,GAE/C,GAAsD,OAAlDjhC,EAAE6J,UAAUo3B,EAAIof,EAAGP,OAAQ7e,EAAIof,EAAGP,OAAS,GAE7C,YADAtjD,KAAK2jD,QAAQ/B,EAAmBI,4BAIlChiD,KAAK8jD,KAAKD,EAAG7hD,KAAM6hD,EAAGnhD,OACtB+hC,GAAKof,EAAGP,OAAS,EACjB,MAEF,IAAK,IACH,GAAkC,OAA9B9/C,EAAE6J,UAAUo3B,EAAI,EAAGA,EAAI,GAAa,CAGtC,GAFAiW,EAAIl3C,EAAEyJ,QAAQ,SAAOw3B,EAAI,GAErBiW,EAAI,EAEN,YADA16C,KAAK2jD,QAAQ/B,EAAmBM,qBAIlCliD,KAAK+jD,UAAUvgD,EAAE6J,UAAUo3B,EAAI,EAAGiW,IAClCjW,EAAIiW,EAAI,CACV,MAAO,GAAkC,YAA9Bl3C,EAAE6J,UAAUo3B,EAAI,EAAGA,EAAI,GAAkB,CAGlD,GAFAiW,EAAIl3C,EAAEyJ,QAAQ,MAAOw3B,EAAI,GAErBiW,EAAI,EAEN,YADA16C,KAAK2jD,QAAQ/B,EAAmBG,kBAIlC/hD,KAAKgkD,QAAQxgD,EAAE6J,UAAUo3B,EAAI,EAAGiW,IAChCjW,EAAIiW,EAAI,CACV,KAAO,IAAkC,YAA9Bl3C,EAAE6J,UAAUo3B,EAAI,EAAGA,EAAI,GA0BhC,YADAzkC,KAAK2jD,QAAQ/B,EAAmBO,kBAzBkB,CAClD,MAAM8B,EAAKzgD,EAAEyJ,QAAQ,IAAKw3B,EAAI,GAC9B,IAAIyf,GAAiB,EAGrB,GAFAxJ,EAAIl3C,EAAEyJ,QAAQ,IAAKw3B,EAAI,GAEnBiW,EAAI,EAEN,YADA16C,KAAK2jD,QAAQ/B,EAAmBK,gCAIlC,GAAIgC,EAAK,GAAKvJ,EAAIuJ,EAAI,CAGpB,GAFAvJ,EAAIl3C,EAAEyJ,QAAQ,KAAMw3B,EAAI,GAEpBiW,EAAI,EAEN,YADA16C,KAAK2jD,QAAQ/B,EAAmBK,gCAIlCiC,GAAiB,CACnB,CAEA,MAAMC,EAAiB3gD,EAAE6J,UAAUo3B,EAAI,EAAGiW,GAAKwJ,EAAiB,EAAI,IACpElkD,KAAKokD,UAAUD,GACf1f,EAAIiW,GAAKwJ,EAAiB,EAAI,EAChC,CAGA,CAEA,MAEF,QACE,MAAMzjD,EAAUT,KAAK+iD,cAAcv/C,EAAGihC,GAEtC,GAAgB,OAAZhkC,EAEF,YADAT,KAAK2jD,QAAQ/B,EAAmBO,kBAIlC,IAAI1C,GAAW,EAEf,GAAgE,OAA5Dj8C,EAAE6J,UAAUo3B,EAAIhkC,EAAQ6iD,OAAQ7e,EAAIhkC,EAAQ6iD,OAAS,GACvD7D,GAAW,OACN,GAAgE,MAA5Dj8C,EAAE6J,UAAUo3B,EAAIhkC,EAAQ6iD,OAAQ7e,EAAIhkC,EAAQ6iD,OAAS,GAE9D,YADAtjD,KAAK2jD,QAAQ/B,EAAmBU,qBAIlCtiD,KAAKqkD,eAAe5jD,EAAQuB,KAAMvB,EAAQuiD,WAAYvD,GACtDhb,GAAKhkC,EAAQ6iD,QAAU7D,EAAW,EAAI,GACtC,MAEN,KAAO,CACL,MAAOhb,EAAIjhC,EAAE5C,QAAmB,MAAT4C,EAAEihC,GACvBA,IAGF,MAAM37B,EAAOtF,EAAE6J,UAAUvM,EAAG2jC,GAC5BzkC,KAAKskD,OAAOtkD,KAAK4iD,iBAAiB95C,GACpC,CAEAhI,EAAI2jC,CACN,CACF,CAEAqe,gBAAgB9gD,GACd,MAAO,IAAIA,IACb,CAEA8hD,KAAK9hD,EAAMU,GAAQ,CAEnBqhD,UAAUj7C,GAAO,CAEjBk7C,QAAQl7C,GAAO,CAEfs7C,UAAUD,GAAiB,CAE3BG,OAAOx7C,GAAO,CAEdu7C,eAAeriD,EAAMghD,EAAYuB,GAAU,CAE3CX,aAAa5hD,GAAO,CAEpB2hD,QAAQriC,GAAO,EAIjB,MAAMkjC,EACJ38C,YAAYq5C,EAAUuD,GACpBzkD,KAAKkhD,SAAWA,EAChBlhD,KAAKykD,UAAYA,EACjBtiD,OAAOC,eAAepC,KAAM,aAAc,CACxC0C,MAAO,KACP0e,UAAU,GAEd,CAEIggC,iBACF,OAAOphD,KAAKwhD,YAAcxhD,KAAKwhD,WAAW,EAC5C,CAEIH,kBACF,MAAMG,EAAaxhD,KAAK0kD,WAAWlD,WAEnC,IAAKA,EACH,OAGF,MAAMj8B,EAAQi8B,EAAWv0C,QAAQjN,MAEjC,OAAe,IAAXulB,EAIGi8B,EAAWj8B,EAAQ,QAJ1B,CAKF,CAEIgN,kBACF,OAAKvyB,KAAKwhD,WAIHxhD,KAAKwhD,WAAWjhD,KAAI,SAAUokD,GACnC,OAAOA,EAAMpyB,WACf,IAAG1xB,KAAK,IALCb,KAAKykD,WAAa,EAM7B,CAEAnD,gBACE,OAAOthD,KAAKwhD,YAAcxhD,KAAKwhD,WAAW5gD,OAAS,CACrD,EAIF,MAAM6/C,UAAwBkC,EAC5B96C,cACEqE,QACAlM,KAAK4kD,iBAAmB,KACxB5kD,KAAK6kD,OAAS,KACd7kD,KAAK8kD,WAAalD,EAAmBC,OACvC,CAEAlB,gBAAgBn+B,GAMd,GALAxiB,KAAK4kD,iBAAmB,GACxB5kD,KAAK6kD,OAAS,GACd7kD,KAAK8kD,WAAalD,EAAmBC,QACrC7hD,KAAKyjD,SAASjhC,GAEVxiB,KAAK8kD,aAAelD,EAAmBC,QACzC,OAGF,MAAOhzC,GAAmB7O,KAAK4kD,iBAE/B,OAAK/1C,EAIE,CACLA,wBALF,CAOF,CAEAi0C,gBAAgB9gD,GACd,OAAQA,GACN,IAAK,OACH,MAAO,IAGX,OAAOkK,MAAM42C,gBAAgB9gD,EAC/B,CAEAsiD,OAAOx7C,GACL,GAAI45C,EAAmB55C,GACrB,OAGF,MAAMi8C,EAAO,IAAIP,EAAc,QAAS17C,GAExC9I,KAAK4kD,iBAAiB1kD,KAAK6kD,EAC7B,CAEAf,QAAQl7C,GACN,MAAMi8C,EAAO,IAAIP,EAAc,QAAS17C,GAExC9I,KAAK4kD,iBAAiB1kD,KAAK6kD,EAC7B,CAEAV,eAAeriD,EAAMghD,EAAYuB,GAC/B,MAAMQ,EAAO,IAAIP,EAAcxiD,GAC/B+iD,EAAKvD,WAAa,GAElBxhD,KAAK4kD,iBAAiB1kD,KAAK6kD,GAEvBR,IAIJvkD,KAAK6kD,OAAO3kD,KAAKF,KAAK4kD,kBAEtB5kD,KAAK4kD,iBAAmBG,EAAKvD,WAC/B,CAEAoC,aAAa5hD,GACXhC,KAAK4kD,iBAAmB5kD,KAAK6kD,OAAOjhB,OAAS,GAC7C,MAAMohB,EAAchlD,KAAK4kD,iBAAiB5kD,KAAK4kD,iBAAiBhkD,OAAS,GAEzE,GAAKokD,EAIL,IAAK,IAAIlkD,EAAI,EAAGklB,EAAKg/B,EAAYxD,WAAW5gD,OAAQE,EAAIklB,EAAIllB,IAC1DkkD,EAAYxD,WAAW1gD,GAAG4jD,WAAaM,CAE3C,CAEArB,QAAQriC,GACNthB,KAAK8kD,WAAaxjC,CACpB,EAIF3hB,EAAQ8gD,gBAAkBA,CAEnB,EAED,SAAU7gD,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ8pB,4BAAyB,EAEjC,IAAIllB,EAAQ9C,EAAoB,GAEhC,MAAMgoB,EACJ5hB,YAAYzB,EAAQmkB,IAClB,EAAIhmB,EAAMuF,QAAQygB,EAAuB,+EACzCvqB,KAAKilD,cAAgB,GACrBjlD,KAAKklD,iBAAmB9+C,EAAOujB,kBAAmB,EAClD,MAAMD,EAActjB,EAAOsjB,YAE3B,GAAIA,GAAeA,EAAY9oB,OAAS,EAAG,CACzC,MAAMmiB,EAAS,IAAIpa,WAAW+gB,GAAa3G,OAE3C/iB,KAAKilD,cAAc/kD,KAAK6iB,EAC1B,CAEA/iB,KAAKmlD,uBAAyB56B,EAC9BvqB,KAAKolD,uBAAyBh/C,EAAOwiB,cACrC5oB,KAAKqlD,mBAAqBj/C,EAAOuiB,aACjC3oB,KAAKslD,eAAiBl/C,EAAOxF,OAC7BZ,KAAKulD,mBAAqB,KAC1BvlD,KAAKwlD,cAAgB,GAErBxlD,KAAKmlD,uBAAuB75B,kBAAiB,CAACM,EAAO3J,KACnDjiB,KAAKylD,eAAe,CAClB75B,QACA3J,SACA,IAGJjiB,KAAKmlD,uBAAuB35B,qBAAoB,CAACM,EAAQC,KACvD/rB,KAAK0lD,YAAY,CACf55B,SACAC,SACA,IAGJ/rB,KAAKmlD,uBAAuB15B,4BAA2BxJ,IACrDjiB,KAAKylD,eAAe,CAClBxjC,SACA,IAGJjiB,KAAKmlD,uBAAuBz5B,4BAA2B,KACrD1rB,KAAK2lD,oBAAoB,IAG3B3lD,KAAKmlD,uBAAuBj5B,gBAC9B,CAEAu5B,eAAezxB,GACb,MAAMjR,EAAS,IAAIpa,WAAWqrB,EAAK/R,OAAOc,OAE1C,QAAmB3hB,IAAf4yB,EAAKpI,MACH5rB,KAAKulD,mBACPvlD,KAAKulD,mBAAmBK,SAAS7iC,GAEjC/iB,KAAKilD,cAAc/kD,KAAK6iB,OAErB,CACL,MAAM8iC,EAAQ7lD,KAAKwlD,cAAc5xB,MAAK,SAAU8F,GAC9C,OAAIA,EAAYosB,SAAW9xB,EAAKpI,QAIhC8N,EAAYksB,SAAS7iC,IAEd,EACT,KAEA,EAAIxe,EAAMuF,QAAQ+7C,EAAO,0EAC3B,CACF,CAEIE,6BACF,OAAO/lD,KAAKulD,mBAAqBvlD,KAAKulD,mBAAmBS,QAAU,CACrE,CAEAN,YAAY3sB,GACV,QAAkB33B,IAAd23B,EAAIhN,MAAqB,CAC3B,MAAMk6B,EAAcjmD,KAAKwlD,cAAc,GAEnCS,GAAeA,EAAYn7B,YAC7Bm7B,EAAYn7B,WAAW,CACrBgB,OAAQiN,EAAIjN,QAGlB,KAAO,CACL,MAAMuN,EAAar5B,KAAKulD,mBAEpBlsB,GAAcA,EAAWvO,YAC3BuO,EAAWvO,WAAW,CACpBgB,OAAQiN,EAAIjN,OACZC,MAAOgN,EAAIhN,OAGjB,CACF,CAEA45B,qBACM3lD,KAAKulD,oBACPvlD,KAAKulD,mBAAmB57B,kBAG1B3pB,KAAKklD,kBAAmB,CAC1B,CAEAgB,mBAAmBtzB,GACjB,MAAM9xB,EAAId,KAAKwlD,cAAcv4C,QAAQ2lB,GAEjC9xB,GAAK,GACPd,KAAKwlD,cAAct0B,OAAOpwB,EAAG,EAEjC,CAEAg4B,iBACE,EAAIv0B,EAAMuF,SAAS9J,KAAKulD,mBAAoB,iEAC5C,MAAMY,EAAenmD,KAAKilD,cAE1B,OADAjlD,KAAKilD,cAAgB,KACd,IAAImB,EAA6BpmD,KAAMmmD,EAAcnmD,KAAKklD,iBACnE,CAEAvrB,eAAe/N,EAAOze,GACpB,GAAIA,GAAOnN,KAAK+lD,uBACd,OAAO,KAGT,MAAMnzB,EAAS,IAAIyzB,EAAkCrmD,KAAM4rB,EAAOze,GAMlE,OAJAnN,KAAKmlD,uBAAuBh5B,iBAAiBP,EAAOze,GAEpDnN,KAAKwlD,cAActlD,KAAK0yB,GAEjBA,CACT,CAEAgG,kBAAkB5vB,GACZhJ,KAAKulD,oBACPvlD,KAAKulD,mBAAmB9xB,OAAOzqB,GAGjC,MAAMs9C,EAAUtmD,KAAKwlD,cAAcn6C,MAAM,GAEzCi7C,EAAQhzB,SAAQ,SAAUoG,GACxBA,EAAYjG,OAAOzqB,EACrB,IAEAhJ,KAAKmlD,uBAAuB/4B,OAC9B,EAIFzsB,EAAQ8pB,uBAAyBA,EAEjC,MAAM28B,EACJv+C,YAAY42C,EAAQ0H,EAAcx8B,GAAkB,GAClD3pB,KAAKumD,QAAU9H,EACfz+C,KAAKwmD,MAAQ78B,IAAmB,EAChC3pB,KAAKymD,UAAY,KACjBzmD,KAAKilD,cAAgBkB,GAAgB,GACrCnmD,KAAKgmD,QAAU,EAEf,IAAK,MAAM/jC,KAASjiB,KAAKilD,cACvBjlD,KAAKgmD,SAAW/jC,EAAMI,WAGxBriB,KAAK0mD,UAAY,GACjB1mD,KAAK2mD,cAAgB19C,QAAQC,UAC7Bu1C,EAAO8G,mBAAqBvlD,KAC5BA,KAAK8qB,WAAa,IACpB,CAEA86B,SAAS3jC,GACP,IAAIjiB,KAAKwmD,MAAT,CAIA,GAAIxmD,KAAK0mD,UAAU9lD,OAAS,EAAG,CAC7B,MAAMgmD,EAAoB5mD,KAAK0mD,UAAUnnB,QAEzCqnB,EAAkB19C,QAAQ,CACxBxG,MAAOuf,EACP6Q,MAAM,GAEV,MACE9yB,KAAKilD,cAAc/kD,KAAK+hB,GAG1BjiB,KAAKgmD,SAAW/jC,EAAMI,UAbtB,CAcF,CAEIiX,mBACF,OAAOt5B,KAAK2mD,aACd,CAEI1rB,eACF,OAAOj7B,KAAKymD,SACd,CAEIjtB,uBACF,OAAOx5B,KAAKumD,QAAQlB,iBACtB,CAEI9rB,2BACF,OAAOv5B,KAAKumD,QAAQnB,qBACtB,CAEI3rB,oBACF,OAAOz5B,KAAKumD,QAAQjB,cACtB,CAEAt9C,aACE,GAAIhI,KAAKilD,cAAcrkD,OAAS,EAAG,CACjC,MAAMqhB,EAAQjiB,KAAKilD,cAAc1lB,QAEjC,MAAO,CACL78B,MAAOuf,EACP6Q,MAAM,EAEV,CAEA,GAAI9yB,KAAKwmD,MACP,MAAO,CACL9jD,WAAOtB,EACP0xB,MAAM,GAIV,MAAM8zB,GAAoB,EAAIriD,EAAMG,2BAIpC,OAFA1E,KAAK0mD,UAAUxmD,KAAK0mD,GAEbA,EAAkBlhC,OAC3B,CAEA+N,OAAOzqB,GACLhJ,KAAKwmD,OAAQ,EAEbxmD,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,EACnB,CAEA/8B,kBACM3pB,KAAKwmD,QAITxmD,KAAKwmD,OAAQ,EACf,EAIF,MAAMH,EACJx+C,YAAY42C,EAAQ7yB,EAAOze,GACzBnN,KAAKumD,QAAU9H,EACfz+C,KAAK8lD,OAASl6B,EACd5rB,KAAK6mD,KAAO15C,EACZnN,KAAK8mD,aAAe,KACpB9mD,KAAK0mD,UAAY,GACjB1mD,KAAKwmD,OAAQ,EACbxmD,KAAK8qB,WAAa,IACpB,CAEA86B,SAAS3jC,GACP,IAAIjiB,KAAKwmD,MAAT,CAIA,GAA8B,IAA1BxmD,KAAK0mD,UAAU9lD,OACjBZ,KAAK8mD,aAAe7kC,MACf,CACL,MAAM8kC,EAAqB/mD,KAAK0mD,UAAUnnB,QAE1CwnB,EAAmB79C,QAAQ,CACzBxG,MAAOuf,EACP6Q,MAAM,IAGR9yB,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,EACnB,CAEA1mD,KAAKwmD,OAAQ,EAEbxmD,KAAKumD,QAAQL,mBAAmBlmD,KAxBhC,CAyBF,CAEIu5B,2BACF,OAAO,CACT,CAEAvxB,aACE,GAAIhI,KAAK8mD,aAAc,CACrB,MAAM7kC,EAAQjiB,KAAK8mD,aAEnB,OADA9mD,KAAK8mD,aAAe,KACb,CACLpkD,MAAOuf,EACP6Q,MAAM,EAEV,CAEA,GAAI9yB,KAAKwmD,MACP,MAAO,CACL9jD,WAAOtB,EACP0xB,MAAM,GAIV,MAAM8zB,GAAoB,EAAIriD,EAAMG,2BAIpC,OAFA1E,KAAK0mD,UAAUxmD,KAAK0mD,GAEbA,EAAkBlhC,OAC3B,CAEA+N,OAAOzqB,GACLhJ,KAAKwmD,OAAQ,EAEbxmD,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,GAEjB1mD,KAAKumD,QAAQL,mBAAmBlmD,KAClC,EAIK,EAED,SAAUJ,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ2wB,kBAAe,EAEvB,IAAI/rB,EAAQ9C,EAAoB,GAEhC,MAAM6uB,EACJzoB,aAAY,OACV0oB,GAAS,IAETvwB,KAAKgnD,UAAsB,IAAXz2B,CAClB,CAEIqc,gBACF,IAAIlgC,EAAU1M,KAAKgnD,SAMnB,OAJIt6C,IACFA,EAAUu6C,EAAWC,cAGhB,EAAI3iD,EAAMW,QAAQlF,KAAM,YAAa0M,EAC9C,CAEA+/B,cAAa,MACXtrC,EAAK,KACL8jC,EAAI,WACJoF,IAEA,OAAO4c,EAAWxa,aAAatrC,EAAO8jC,EAAMoF,EAC9C,CAEAgR,aAAY,MACVn0C,EAAK,OACLC,EAAM,gBACN0zC,EAAe,QACfD,EAAO,QACPpzC,IAEA,OAAOy/C,EAAW5L,YAAYn0C,EAAOC,EAAQ0zC,EAAiBD,EAASpzC,EACzE,CAEAksB,QACEuzB,EAAWj5B,SACb,EAIFruB,EAAQ2wB,aAAeA,EAEvB,IAAI22B,EAAa,WACf,SAASE,EAAWC,EAAI9lC,EAAM+lC,GAC5B,IAAIC,EAASF,EAAGG,aAAaF,GAC7BD,EAAGI,aAAaF,EAAQhmC,GACxB8lC,EAAGK,cAAcH,GACjB,IAAIzR,EAAWuR,EAAGM,mBAAmBJ,EAAQF,EAAGO,gBAEhD,IAAK9R,EAAU,CACb,IAAI+R,EAAWR,EAAGS,iBAAiBP,GACnC,MAAM,IAAIlgD,MAAM,oCAAsCwgD,EACxD,CAEA,OAAON,CACT,CAEA,SAASQ,EAAmBV,EAAI9lC,GAC9B,OAAO6lC,EAAWC,EAAI9lC,EAAM8lC,EAAGW,cACjC,CAEA,SAASC,EAAqBZ,EAAI9lC,GAChC,OAAO6lC,EAAWC,EAAI9lC,EAAM8lC,EAAGa,gBACjC,CAEA,SAASC,EAAcd,EAAIe,GAGzB,IAFA,IAAIC,EAAUhB,EAAGc,gBAERpnD,EAAI,EAAGklB,EAAKmiC,EAAQvnD,OAAQE,EAAIklB,IAAMllB,EAC7CsmD,EAAGiB,aAAaD,EAASD,EAAQrnD,IAGnCsmD,EAAGkB,YAAYF,GACf,IAAIG,EAASnB,EAAGoB,oBAAoBJ,EAAShB,EAAGqB,aAEhD,IAAKF,EAAQ,CACX,IAAIX,EAAWR,EAAGsB,kBAAkBN,GACpC,MAAM,IAAIhhD,MAAM,iCAAmCwgD,EACrD,CAEA,OAAOQ,CACT,CAEA,SAASO,EAAcvB,EAAInR,EAAO2S,GAChCxB,EAAGyB,cAAcD,GACjB,IAAIE,EAAU1B,EAAGuB,gBAOjB,OANAvB,EAAG2B,YAAY3B,EAAG4B,WAAYF,GAC9B1B,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAG8B,eAAgB9B,EAAG+B,eACtD/B,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAGgC,eAAgBhC,EAAG+B,eACtD/B,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAGiC,mBAAoBjC,EAAGkC,SAC1DlC,EAAG6B,cAAc7B,EAAG4B,WAAY5B,EAAGmC,mBAAoBnC,EAAGkC,SAC1DlC,EAAGoC,WAAWpC,EAAG4B,WAAY,EAAG5B,EAAGqC,KAAMrC,EAAGqC,KAAMrC,EAAGsC,cAAezT,GAC7D6S,CACT,CAEA,IAAIa,EAAWC,EAEf,SAASC,IACHF,IAIJC,EAAgBtiD,SAASC,cAAc,UACvCoiD,EAAYC,EAAcniD,WAAW,QAAS,CAC5CqiD,oBAAoB,IAExB,CAEA,IAAIC,EAAwB,m0BAcxBC,EAA0B,msDA4B1BC,EAAa,KAEjB,SAASC,IACP,IAAI7iD,EAAQ+/C,EACZyC,IACAxiD,EAASuiD,EACTA,EAAgB,KAChBxC,EAAKuC,EACLA,EAAY,KACZ,IAAIQ,EAAerC,EAAmBV,EAAI2C,GACtCK,EAAiBpC,EAAqBZ,EAAI4C,GAC1C5B,EAAUF,EAAcd,EAAI,CAAC+C,EAAcC,IAC/ChD,EAAGiD,WAAWjC,GACd,IAAIjkB,EAAQ,CAAC,EACbA,EAAMijB,GAAKA,EACXjjB,EAAM98B,OAASA,EACf88B,EAAMmmB,mBAAqBlD,EAAGmD,mBAAmBnC,EAAS,gBAC1DjkB,EAAMqmB,iBAAmBpD,EAAGqD,kBAAkBrC,EAAS,cACvDjkB,EAAMumB,iBAAmBtD,EAAGmD,mBAAmBnC,EAAS,cACxDjkB,EAAMwmB,gBAAkBvD,EAAGmD,mBAAmBnC,EAAS,aACvD,IAAIwC,EAAmBxD,EAAGqD,kBAAkBrC,EAAS,cACjDyC,EAAmBzD,EAAGmD,mBAAmBnC,EAAS,WAClD0C,EAAkB1D,EAAGmD,mBAAmBnC,EAAS,UACjD2C,EAAiB3D,EAAG4D,eACxB5D,EAAG6D,WAAW7D,EAAG8D,aAAcH,GAC/B3D,EAAG+D,WAAW/D,EAAG8D,aAAc,IAAIE,aAAa,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,IAAOhE,EAAGiE,aAClHjE,EAAGkE,wBAAwBV,GAC3BxD,EAAGmE,oBAAoBX,EAAkB,EAAGxD,EAAGoE,OAAO,EAAO,EAAG,GAChEpE,EAAGqE,UAAUZ,EAAkB,GAC/BzD,EAAGqE,UAAUX,EAAiB,GAC9Bb,EAAa9lB,CACf,CAEA,SAASsI,EAAatrC,EAAO8jC,EAAMoF,GACjC,IAAInjC,EAAQ/F,EAAM+F,MACdC,EAAShG,EAAMgG,OAEd8iD,GACHC,IAGF,IAAI/lB,EAAQ8lB,EACR5iD,EAAS88B,EAAM98B,OACf+/C,EAAKjjB,EAAMijB,GACf//C,EAAOH,MAAQA,EACfG,EAAOF,OAASA,EAChBigD,EAAG13B,SAAS,EAAG,EAAG03B,EAAGsE,mBAAoBtE,EAAGuE,qBAC5CvE,EAAGwE,UAAUznB,EAAMmmB,mBAAoBpjD,EAAOC,GAE1CkjC,EAAW4B,SACbmb,EAAGyE,UAAU1nB,EAAMmmB,mBAAoBjgB,EAAW4B,SAAS,GAAI5B,EAAW4B,SAAS,GAAI5B,EAAW4B,SAAS,GAAI,GAE/Gmb,EAAGyE,UAAU1nB,EAAMmmB,mBAAoB,EAAG,EAAG,EAAG,GAGlDlD,EAAGqE,UAAUtnB,EAAMwmB,gBAAwC,eAAvBtgB,EAAW2B,QAA2B,EAAI,GAC9E,IAAI8c,EAAUH,EAAcvB,EAAIjmD,EAAOimD,EAAG0E,UACtCC,EAAcpD,EAAcvB,EAAIniB,EAAMmiB,EAAG4E,UACzCjpC,EAASqkC,EAAG4D,eAchB,OAbA5D,EAAG6D,WAAW7D,EAAG8D,aAAcnoC,GAC/BqkC,EAAG+D,WAAW/D,EAAG8D,aAAc,IAAIE,aAAa,CAAC,EAAG,EAAGlkD,EAAO,EAAG,EAAGC,EAAQ,EAAGA,EAAQD,EAAO,EAAGA,EAAOC,IAAUigD,EAAGiE,aACrHjE,EAAGkE,wBAAwBnnB,EAAMqmB,kBACjCpD,EAAGmE,oBAAoBpnB,EAAMqmB,iBAAkB,EAAGpD,EAAGoE,OAAO,EAAO,EAAG,GACtEpE,EAAG6E,WAAW,EAAG,EAAG,EAAG,GACvB7E,EAAG72B,OAAO62B,EAAG8E,OACb9E,EAAG+E,UAAU/E,EAAGgF,IAAKhF,EAAGiF,qBACxBjF,EAAG1zB,MAAM0zB,EAAGkF,kBACZlF,EAAGmF,WAAWnF,EAAGoF,UAAW,EAAG,GAC/BpF,EAAGqF,QACHrF,EAAGsF,cAAc5D,GACjB1B,EAAGsF,cAAcX,GACjB3E,EAAGuF,aAAa5pC,GACT1b,CACT,CAEA,IAAIulD,EAA0B,mgCAiB1BC,EAA4B,mcAQ5BC,EAAe,KAEnB,SAASC,IACP,IAAI1lD,EAAQ+/C,EACZyC,IACAxiD,EAASuiD,EACTA,EAAgB,KAChBxC,EAAKuC,EACLA,EAAY,KACZ,IAAIQ,EAAerC,EAAmBV,EAAIwF,GACtCxC,EAAiBpC,EAAqBZ,EAAIyF,GAC1CzE,EAAUF,EAAcd,EAAI,CAAC+C,EAAcC,IAC/ChD,EAAGiD,WAAWjC,GACd,IAAIjkB,EAAQ,CAAC,EACbA,EAAMijB,GAAKA,EACXjjB,EAAM98B,OAASA,EACf88B,EAAMmmB,mBAAqBlD,EAAGmD,mBAAmBnC,EAAS,gBAC1DjkB,EAAM6oB,cAAgB5F,EAAGmD,mBAAmBnC,EAAS,WACrDjkB,EAAM8oB,eAAiB7F,EAAGmD,mBAAmBnC,EAAS,YACtDjkB,EAAMqmB,iBAAmBpD,EAAGqD,kBAAkBrC,EAAS,cACvDjkB,EAAM+oB,cAAgB9F,EAAGqD,kBAAkBrC,EAAS,WACpD0E,EAAe3oB,CACjB,CAEA,SAASkX,EAAYn0C,EAAOC,EAAQ0zC,EAAiBD,EAASpzC,GACvDslD,GACHC,IAGF,IAAI5oB,EAAQ2oB,EACRzlD,EAAS88B,EAAM98B,OACf+/C,EAAKjjB,EAAMijB,GACf//C,EAAOH,MAAQA,EACfG,EAAOF,OAASA,EAChBigD,EAAG13B,SAAS,EAAG,EAAG03B,EAAGsE,mBAAoBtE,EAAGuE,qBAC5CvE,EAAGwE,UAAUznB,EAAMmmB,mBAAoBpjD,EAAOC,GAC9C,IACIrG,EAAGklB,EAAIw0B,EADPrV,EAAQ,EAGZ,IAAKrkC,EAAI,EAAGklB,EAAK40B,EAAQh6C,OAAQE,EAAIklB,EAAIllB,IACvC,OAAQ85C,EAAQ95C,GAAGoJ,MACjB,IAAK,UACHswC,EAAOI,EAAQ95C,GAAG2kC,OAAO7kC,OAASg6C,EAAQ95C,GAAGy5C,eAAiB,EAC9DpV,IAAUqV,EAAO,IAAMI,EAAQ95C,GAAGy5C,eAAiB,GAAK,EACxD,MAEF,IAAK,YACHpV,GAASyV,EAAQ95C,GAAG2kC,OAAO7kC,OAC3B,MAIN,IAAI6kC,EAAS,IAAI2lB,aAAqB,EAARjmB,GAC1BoT,EAAS,IAAI5vC,WAAmB,EAARw8B,GACxBgoB,EAAY3lD,EAAQi+B,OACpB2nB,EAAY5lD,EAAQ+wC,OACpB8U,EAAS,EACTC,EAAS,EAEb,IAAKxsD,EAAI,EAAGklB,EAAK40B,EAAQh6C,OAAQE,EAAIklB,EAAIllB,IAAK,CAC5C,IAAIs5C,EAASQ,EAAQ95C,GACjBu5C,EAAKD,EAAO3U,OACZ6U,EAAKF,EAAO7B,OAEhB,OAAQ6B,EAAOlwC,MACb,IAAK,UACH,IAAIuwC,EAAOL,EAAOG,eAClBC,EAAOH,EAAGz5C,OAAS65C,EAAO,EAE1B,IAAK,IAAIlO,EAAM,EAAGA,EAAMiO,EAAMjO,IAG5B,IAFA,IAAI5M,EAAS4M,EAAMkO,EAAO,EAEjB8S,EAAM,EAAGA,EAAM9S,EAAM8S,IAAO5tB,IACnC8F,EAAO4nB,GAAUF,EAAU9S,EAAG1a,EAAS8a,EAAO,IAC9ChV,EAAO4nB,EAAS,GAAKF,EAAU9S,EAAG1a,EAAS8a,EAAO,GAAK,GACvDhV,EAAO4nB,EAAS,GAAKF,EAAU9S,EAAG1a,EAAS8a,IAC3ChV,EAAO4nB,EAAS,GAAKF,EAAU9S,EAAG1a,EAAS8a,GAAQ,GACnDhV,EAAO4nB,EAAS,GAAKF,EAAU9S,EAAG1a,EAAS,IAC3C8F,EAAO4nB,EAAS,GAAKF,EAAU9S,EAAG1a,EAAS,GAAK,GAChD4Y,EAAO+U,GAAUF,EAAU9S,EAAG3a,EAAS8a,EAAO,IAC9ClC,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS8a,EAAO,GAAK,GACvDlC,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS8a,EAAO,GAAK,GACvDlC,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS8a,IAC3ClC,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS8a,GAAQ,GACnDlC,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS8a,GAAQ,GACnDlC,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS,IAC3C4Y,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS,GAAK,GAChD4Y,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG3a,EAAS,GAAK,GAChD8F,EAAO4nB,EAAS,GAAK5nB,EAAO4nB,EAAS,GACrC5nB,EAAO4nB,EAAS,GAAK5nB,EAAO4nB,EAAS,GACrC5nB,EAAO4nB,EAAS,GAAK5nB,EAAO4nB,EAAS,GACrC5nB,EAAO4nB,EAAS,GAAK5nB,EAAO4nB,EAAS,GACrC5nB,EAAO4nB,EAAS,IAAMF,EAAU9S,EAAG1a,IACnC8F,EAAO4nB,EAAS,IAAMF,EAAU9S,EAAG1a,GAAU,GAC7C4Y,EAAO+U,EAAS,GAAK/U,EAAO+U,EAAS,GACrC/U,EAAO+U,EAAS,IAAM/U,EAAO+U,EAAS,GACtC/U,EAAO+U,EAAS,IAAM/U,EAAO+U,EAAS,GACtC/U,EAAO+U,EAAS,IAAM/U,EAAO+U,EAAS,GACtC/U,EAAO+U,EAAS,IAAM/U,EAAO+U,EAAS,GACtC/U,EAAO+U,EAAS,IAAM/U,EAAO+U,EAAS,GACtC/U,EAAO+U,EAAS,IAAMF,EAAU9S,EAAG3a,IACnC4Y,EAAO+U,EAAS,IAAMF,EAAU9S,EAAG3a,GAAU,GAC7C4Y,EAAO+U,EAAS,IAAMF,EAAU9S,EAAG3a,GAAU,GAC7C0tB,GAAU,GACVC,GAAU,GAId,MAEF,IAAK,YACH,IAAK,IAAI7oB,EAAI,EAAGgd,EAAKpH,EAAGz5C,OAAQ6jC,EAAIgd,EAAIhd,IACtCgB,EAAO4nB,GAAUF,EAAU9S,EAAG5V,IAC9BgB,EAAO4nB,EAAS,GAAKF,EAAU9S,EAAG5V,GAAK,GACvC8T,EAAO+U,GAAUF,EAAU9S,EAAG7V,IAC9B8T,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG7V,GAAK,GACvC8T,EAAO+U,EAAS,GAAKF,EAAU9S,EAAG7V,GAAK,GACvC4oB,GAAU,EACVC,GAAU,EAGZ,MAEN,CAEIzS,EACFuM,EAAG6E,WAAWpR,EAAgB,GAAK,IAAKA,EAAgB,GAAK,IAAKA,EAAgB,GAAK,IAAK,GAE5FuM,EAAG6E,WAAW,EAAG,EAAG,EAAG,GAGzB7E,EAAG1zB,MAAM0zB,EAAGkF,kBACZ,IAAIkB,EAAepG,EAAG4D,eACtB5D,EAAG6D,WAAW7D,EAAG8D,aAAcsC,GAC/BpG,EAAG+D,WAAW/D,EAAG8D,aAAczlB,EAAQ2hB,EAAGiE,aAC1CjE,EAAGkE,wBAAwBnnB,EAAMqmB,kBACjCpD,EAAGmE,oBAAoBpnB,EAAMqmB,iBAAkB,EAAGpD,EAAGoE,OAAO,EAAO,EAAG,GACtE,IAAIiC,EAAerG,EAAG4D,eAWtB,OAVA5D,EAAG6D,WAAW7D,EAAG8D,aAAcuC,GAC/BrG,EAAG+D,WAAW/D,EAAG8D,aAAc3S,EAAQ6O,EAAGiE,aAC1CjE,EAAGkE,wBAAwBnnB,EAAM+oB,eACjC9F,EAAGmE,oBAAoBpnB,EAAM+oB,cAAe,EAAG9F,EAAGsC,eAAe,EAAO,EAAG,GAC3EtC,EAAGwE,UAAUznB,EAAM6oB,cAAexlD,EAAQklC,OAAQllC,EAAQmlC,QAC1Dya,EAAGwE,UAAUznB,EAAM8oB,eAAgBzlD,EAAQ8C,QAAS9C,EAAQ+C,SAC5D68C,EAAGmF,WAAWnF,EAAGoF,UAAW,EAAGrnB,GAC/BiiB,EAAGqF,QACHrF,EAAGuF,aAAaa,GAChBpG,EAAGuF,aAAac,GACTpmD,CACT,CAEA,MAAO,CACL6/C,YACE,IAEE,OADA2C,MACSF,CACG,CAAZ,MAAOp7C,GAAK,CAEd,OAAO,CACT,EAEAk+B,eACA4O,cAEArtB,UACMi8B,GAAcA,EAAW5iD,SAC3B4iD,EAAW5iD,OAAOH,MAAQ,EAC1B+iD,EAAW5iD,OAAOF,OAAS,GAGzB2lD,GAAgBA,EAAazlD,SAC/BylD,EAAazlD,OAAOH,MAAQ,EAC5B4lD,EAAazlD,OAAOF,OAAS,GAG/B8iD,EAAa,KACb6C,EAAe,IACjB,EAGJ,CApYiB,EAsYV,EAED,SAAUltD,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ6F,qBAAkB,EAE1B,IAAI/B,EAAiBhC,EAAoB,GAErC8C,EAAQ9C,EAAoB,GAEhC,MAAMisD,EACJv+C,cAAcw+C,GACZ,MAAM3hB,EAAU2hB,EAAWnrC,KAAKorC,eAEhC,OAAQ5hB,GACN,KAAKznC,EAAMwN,eAAegC,KACxB,OAAO,IAAI85C,EAAsBF,GAEnC,KAAKppD,EAAMwN,eAAe+B,KACxB,OAAO,IAAIg6C,EAAsBH,GAEnC,KAAKppD,EAAMwN,eAAekD,OACxB,MAAM84C,EAAYJ,EAAWnrC,KAAKurC,UAElC,OAAQA,GACN,IAAK,KACH,OAAO,IAAIC,EAA4BL,GAEzC,IAAK,MACH,OAAIA,EAAWnrC,KAAKyrC,YACX,IAAIC,EAAmCP,GACrCA,EAAWnrC,KAAK2rC,SAClB,IAAIC,EAAgCT,GAGtC,IAAIU,EAAkCV,GAE/C,IAAK,KACH,OAAO,IAAIW,EAA8BX,GAG7C,OAAO,IAAIY,EAAwBZ,GAErC,KAAKppD,EAAMwN,eAAe8C,MACxB,OAAO,IAAI25C,EAAuBb,GAEpC,KAAKppD,EAAMwN,eAAeiC,SACxB,OAAO,IAAIy6C,EAA0Bd,GAEvC,KAAKppD,EAAMwN,eAAekC,KACxB,OAAO,IAAIy6C,EAAsBf,GAEnC,KAAKppD,EAAMwN,eAAemC,OACxB,OAAO,IAAIy6C,EAAwBhB,GAErC,KAAKppD,EAAMwN,eAAeoC,OACxB,OAAO,IAAIy6C,EAAwBjB,GAErC,KAAKppD,EAAMwN,eAAesC,SACxB,OAAO,IAAIw6C,EAA0BlB,GAEvC,KAAKppD,EAAMwN,eAAe4C,MACxB,OAAO,IAAIm6C,EAAuBnB,GAEpC,KAAKppD,EAAMwN,eAAe6C,IACxB,OAAO,IAAIm6C,EAAqBpB,GAElC,KAAKppD,EAAMwN,eAAeqC,QACxB,OAAO,IAAI46C,EAAyBrB,GAEtC,KAAKppD,EAAMwN,eAAeuC,UACxB,OAAO,IAAI26C,EAA2BtB,GAExC,KAAKppD,EAAMwN,eAAewC,UACxB,OAAO,IAAI26C,EAA2BvB,GAExC,KAAKppD,EAAMwN,eAAeyC,SACxB,OAAO,IAAI26C,EAA0BxB,GAEvC,KAAKppD,EAAMwN,eAAe0C,UACxB,OAAO,IAAI26C,EAA2BzB,GAExC,KAAKppD,EAAMwN,eAAe2C,MACxB,OAAO,IAAI26C,EAAuB1B,GAEpC,KAAKppD,EAAMwN,eAAe+C,eACxB,OAAO,IAAIw6C,EAAgC3B,GAE7C,QACE,OAAO,IAAI4B,EAAkB5B,GAEnC,EAIF,MAAM4B,EACJ1nD,YAAY8lD,EAAY6B,GAAe,EAAOC,GAAe,GAC3DzvD,KAAKwvD,aAAeA,EACpBxvD,KAAKwiB,KAAOmrC,EAAWnrC,KACvBxiB,KAAKmB,MAAQwsD,EAAWxsD,MACxBnB,KAAK04B,KAAOi1B,EAAWj1B,KACvB14B,KAAK0vB,SAAWi+B,EAAWj+B,SAC3B1vB,KAAK0vD,YAAc/B,EAAW+B,YAC9B1vD,KAAK2vD,gBAAkBhC,EAAWgC,gBAClC3vD,KAAK4vD,mBAAqBjC,EAAWiC,mBACrC5vD,KAAK4vB,uBAAyB+9B,EAAW/9B,uBACzC5vB,KAAK6vD,WAAalC,EAAWkC,WAEzBL,IACFxvD,KAAK8vD,UAAY9vD,KAAK+vD,iBAAiBN,GAE3C,CAEAM,iBAAiBN,GAAe,GAC9B,MAAMjtC,EAAOxiB,KAAKwiB,KACZkW,EAAO14B,KAAK04B,KACZhJ,EAAW1vB,KAAK0vB,SAChBogC,EAAYxoD,SAASC,cAAc,WACzC,IAAIL,EAAQsb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACjCxE,EAASqb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACtCmkD,EAAU7lD,aAAa,qBAAsBuY,EAAKriB,IAElD,MAAMwL,EAAOpH,EAAMc,KAAKuf,cAAc,CAACpC,EAAK7W,KAAK,GAAI+sB,EAAKxJ,KAAK,GAAK1M,EAAK7W,KAAK,GAAK+sB,EAAKxJ,KAAK,GAAI1M,EAAK7W,KAAK,GAAI+sB,EAAKxJ,KAAK,GAAK1M,EAAK7W,KAAK,GAAK+sB,EAAKxJ,KAAK,KAKvJ,GAHA4gC,EAAUjvB,MAAM11B,UAAY,UAAUukB,EAASvkB,UAAUtK,KAAK,QAC9DivD,EAAUjvB,MAAMmvB,gBAAkB,IAAIrkD,EAAK,SAASA,EAAK,QAEpD8jD,GAAgBjtC,EAAKytC,YAAY/oD,MAAQ,EAAG,CAC/C4oD,EAAUjvB,MAAMqvB,YAAc,GAAG1tC,EAAKytC,YAAY/oD,UAE9Csb,EAAKytC,YAAYpvB,QAAUt8B,EAAM+N,0BAA0BiC,YAC7DrN,GAAgB,EAAIsb,EAAKytC,YAAY/oD,MACrCC,GAAkB,EAAIqb,EAAKytC,YAAY/oD,OAGzC,MAAMipD,EAAmB3tC,EAAKytC,YAAYG,uBACpCC,EAAiB7tC,EAAKytC,YAAYK,qBAExC,GAAIH,EAAmB,GAAKE,EAAiB,EAAG,CAC9C,MAAME,EAAS,GAAGJ,SAAwBE,MAC1CP,EAAUjvB,MAAM2vB,aAAeD,CACjC,CAEA,OAAQ/tC,EAAKytC,YAAYpvB,OACvB,KAAKt8B,EAAM+N,0BAA0BqF,MACnCm4C,EAAUjvB,MAAMovB,YAAc,QAC9B,MAEF,KAAK1rD,EAAM+N,0BAA0BsF,OACnCk4C,EAAUjvB,MAAMovB,YAAc,SAC9B,MAEF,KAAK1rD,EAAM+N,0BAA0BuF,SACnC,EAAItT,EAAMmJ,MAAM,uCAChB,MAEF,KAAKnJ,EAAM+N,0BAA0BwF,OACnC,EAAIvT,EAAMmJ,MAAM,qCAChB,MAEF,KAAKnJ,EAAM+N,0BAA0BiC,UACnCu7C,EAAUjvB,MAAM4vB,kBAAoB,QACpC,MAEF,QACE,MAGAjuC,EAAKuxB,MACP+b,EAAUjvB,MAAM6vB,YAAcnsD,EAAMc,KAAKgvC,WAA2B,EAAhB7xB,EAAKuxB,MAAM,GAAwB,EAAhBvxB,EAAKuxB,MAAM,GAAwB,EAAhBvxB,EAAKuxB,MAAM,IAErG+b,EAAUjvB,MAAMqvB,YAAc,CAElC,CAMA,OAJAJ,EAAUjvB,MAAMI,KAAO,GAAGt1B,EAAK,OAC/BmkD,EAAUjvB,MAAMG,IAAM,GAAGr1B,EAAK,OAC9BmkD,EAAUjvB,MAAM35B,MAAQ,GAAGA,MAC3B4oD,EAAUjvB,MAAM15B,OAAS,GAAGA,MACrB2oD,CACT,CAEAa,aAAab,EAAWc,EAASpuC,GAC1BouC,IACHA,EAAUtpD,SAASC,cAAc,OACjCqpD,EAAQ/vB,MAAM15B,OAAS2oD,EAAUjvB,MAAM15B,OACvCypD,EAAQ/vB,MAAM35B,MAAQ4oD,EAAUjvB,MAAM35B,MACtC4oD,EAAUhhD,YAAY8hD,IAGxB,MAAMC,EAAe,IAAIC,EAAa,CACpChB,YACAc,UACA7c,MAAOvxB,EAAKuxB,MACZlnC,MAAO2V,EAAK3V,MACZkkD,iBAAkBvuC,EAAKuuC,iBACvBC,SAAUxuC,EAAKwuC,SACfC,aAAa,IAETC,EAAQL,EAAarhC,SAC3B0hC,EAAMrwB,MAAMI,KAAO6uB,EAAUjvB,MAAM35B,MACnC4oD,EAAUhhD,YAAYoiD,EACxB,CAEA1hC,UACE,EAAIjrB,EAAM6M,aAAa,oDACzB,EAIF,MAAMy8C,UAA8B0B,EAClC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAK/b,KAAOknD,EAAWnrC,KAAK8K,MAAQqgC,EAAWnrC,KAAKm8B,QACvFzyC,MAAMyhD,EAAY6B,EACpB,CAEAhgC,SACExvB,KAAK8vD,UAAUqB,UAAY,iBAC3B,MAAM,KACJ3uC,EAAI,YACJktC,GACE1vD,KACEuM,EAAOjF,SAASC,cAAc,KAgBpC,OAdIib,EAAK/b,KACP,EAAIhD,EAAeC,mBAAmB6I,EAAM,CAC1C9F,IAAK+b,EAAK/b,IACV+F,OAAQgW,EAAK4uC,UAAY3tD,EAAeG,WAAWwI,MAAQsjD,EAAY2B,mBACvE5kD,IAAKijD,EAAY4B,gBACjB5kD,QAASgjD,EAAY6B,sBAEd/uC,EAAKm8B,OACd3+C,KAAKwxD,iBAAiBjlD,EAAMiW,EAAKm8B,QAEjC3+C,KAAKyxD,UAAUllD,EAAMiW,EAAK8K,MAG5BttB,KAAK8vD,UAAUhhD,YAAYvC,GACpBvM,KAAK8vD,SACd,CAEA2B,UAAUllD,EAAMmlD,GACdnlD,EAAKK,KAAO5M,KAAK0vD,YAAYiC,mBAAmBD,GAEhDnlD,EAAKO,QAAU,KACT4kD,GACF1xD,KAAK0vD,YAAYkC,WAAWF,IAGvB,GAGLA,IACFnlD,EAAK4kD,UAAY,eAErB,CAEAK,iBAAiBjlD,EAAMoyC,GACrBpyC,EAAKK,KAAO5M,KAAK0vD,YAAYmC,aAAa,IAE1CtlD,EAAKO,QAAU,KACb9M,KAAK0vD,YAAYoC,mBAAmBnT,IAC7B,GAGTpyC,EAAK4kD,UAAY,cACnB,EAIF,MAAMrD,UAA8ByB,EAClC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,EACpB,CAEAhgC,SACExvB,KAAK8vD,UAAUqB,UAAY,iBAC3B,MAAMlb,EAAQ3uC,SAASC,cAAc,OAerC,OAdA0uC,EAAMpV,MAAM15B,OAASnH,KAAK8vD,UAAUjvB,MAAM15B,OAC1C8uC,EAAMpV,MAAM35B,MAAQlH,KAAK8vD,UAAUjvB,MAAM35B,MACzC+uC,EAAMznC,IAAMxO,KAAK4vD,mBAAqB,cAAgB5vD,KAAKwiB,KAAKxgB,KAAKm/C,cAAgB,OACrFlL,EAAM+b,IAAM,wBACZ/b,EAAMgc,QAAQC,OAAS,uBACvBjc,EAAMgc,QAAQE,SAAWC,KAAKC,UAAU,CACtCnoD,KAAMlK,KAAKwiB,KAAKxgB,OAGbhC,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW7Z,EAAOj2C,KAAKwiB,MAGhDxiB,KAAK8vD,UAAUhhD,YAAYmnC,GACpBj2C,KAAK8vD,SACd,EAIF,MAAMvB,UAAgCgB,EACpC//B,SACE,OAAOxvB,KAAK8vD,SACd,EAIF,MAAM9B,UAAoCO,EACxC1mD,YAAY8lD,GACV,MAAM6B,EAAe7B,EAAW/9B,yBAA2B+9B,EAAWnrC,KAAK8vC,iBAAmB3E,EAAWnrC,KAAK+vC,WAC9GrmD,MAAMyhD,EAAY6B,EACpB,CAEAhgC,SACE,MAAMgjC,EAAiB,CAAC,OAAQ,SAAU,SAC1CxyD,KAAK8vD,UAAUqB,UAAY,uBAC3B,IAAI7rC,EAAU,KAEd,GAAItlB,KAAK4vB,wBAiBP,GAhBI5vB,KAAKwiB,KAAKiwC,WACZntC,EAAUhe,SAASC,cAAc,YACjC+d,EAAQiN,YAAcvyB,KAAKwiB,KAAK+vC,aAEhCjtC,EAAUhe,SAASC,cAAc,SACjC+d,EAAQpb,KAAO,OACfob,EAAQrb,aAAa,QAASjK,KAAKwiB,KAAK+vC,aAG1CjtC,EAAQotC,SAAW1yD,KAAKwiB,KAAKmwC,SAC7BrtC,EAAQtjB,KAAOhC,KAAKwiB,KAAKowC,UAEA,OAArB5yD,KAAKwiB,KAAKqwC,SACZvtC,EAAQwtC,UAAY9yD,KAAKwiB,KAAKqwC,QAG5B7yD,KAAKwiB,KAAKuwC,KAAM,CAClB,MAAMC,EAAahzD,KAAKwiB,KAAK7W,KAAK,GAAK3L,KAAKwiB,KAAK7W,KAAK,GAChDsnD,EAAYD,EAAahzD,KAAKwiB,KAAKqwC,OACzCvtC,EAAQ4tC,UAAU12B,IAAI,QACtBlX,EAAQub,MAAMsyB,cAAgB,QAAQF,YACxC,MACK,CACL3tC,EAAUhe,SAASC,cAAc,OACjC+d,EAAQiN,YAAcvyB,KAAKwiB,KAAK+vC,WAChCjtC,EAAQub,MAAMuyB,cAAgB,SAC9B9tC,EAAQub,MAAMwyB,QAAU,aACxB,IAAI/zC,EAAO,KAEPtf,KAAKwiB,KAAK+tB,aAAevwC,KAAK04B,KAAKhK,WAAWkG,IAAI50B,KAAKwiB,KAAK+tB,eAC9DjxB,EAAOtf,KAAK04B,KAAKhK,WAAWpsB,IAAItC,KAAKwiB,KAAK+tB,cAG5CvwC,KAAKszD,cAAchuC,EAAShG,EAC9B,CAOA,OALgC,OAA5Btf,KAAKwiB,KAAK+wC,gBACZjuC,EAAQub,MAAM2yB,UAAYhB,EAAexyD,KAAKwiB,KAAK+wC,gBAGrDvzD,KAAK8vD,UAAUhhD,YAAYwW,GACpBtlB,KAAK8vD,SACd,CAEAwD,cAAchuC,EAAShG,GACrB,MAAMuhB,EAAQvb,EAAQub,MAItB,GAHAA,EAAMqF,SAAW,GAAGlmC,KAAKwiB,KAAK0jB,aAC9BrF,EAAM4yB,UAAYzzD,KAAKwiB,KAAKiuB,cAAgB,EAAI,MAAQ,OAEnDnxB,EACH,OAGF,IAAIqxB,EAAO,SAEPrxB,EAAKsqB,MACP+G,EAAO,MACErxB,EAAKqxB,OACdA,EAAO,QAGT9P,EAAM6yB,WAAa/iB,EACnB9P,EAAM8yB,UAAYr0C,EAAKsxB,OAAS,SAAW,SAC3C,MAAMzP,EAAa7hB,EAAKqhB,WAAa,IAAIrhB,EAAKqhB,gBAAkB,GAC1DmQ,EAAexxB,EAAKwxB,cAAgB,wBAC1CjQ,EAAMM,WAAaA,EAAa2P,CAClC,EAIF,MAAMsd,UAAwCG,EAC5C1mD,YAAY8lD,GACVzhD,MAAMyhD,EAAYA,EAAW/9B,uBAC/B,CAEAJ,SACExvB,KAAK8vD,UAAUqB,UAAY,kCAC3B,MAAM7rC,EAAUhe,SAASC,cAAc,SAUvC,OATA+d,EAAQotC,SAAW1yD,KAAKwiB,KAAKmwC,SAC7BrtC,EAAQpb,KAAO,WACfob,EAAQtjB,KAAOhC,KAAKwiB,KAAKowC,UAErB5yD,KAAKwiB,KAAK+vC,YAAuC,QAAzBvyD,KAAKwiB,KAAK+vC,YACpCjtC,EAAQrb,aAAa,WAAW,GAGlCjK,KAAK8vD,UAAUhhD,YAAYwW,GACpBtlB,KAAK8vD,SACd,EAIF,MAAM5B,UAA2CK,EAC/C1mD,YAAY8lD,GACVzhD,MAAMyhD,EAAYA,EAAW/9B,uBAC/B,CAEAJ,SACExvB,KAAK8vD,UAAUqB,UAAY,qCAC3B,MAAM7rC,EAAUhe,SAASC,cAAc,SAUvC,OATA+d,EAAQotC,SAAW1yD,KAAKwiB,KAAKmwC,SAC7BrtC,EAAQpb,KAAO,QACfob,EAAQtjB,KAAOhC,KAAKwiB,KAAKowC,UAErB5yD,KAAKwiB,KAAK+vC,aAAevyD,KAAKwiB,KAAKoxC,aACrCtuC,EAAQrb,aAAa,WAAW,GAGlCjK,KAAK8vD,UAAUhhD,YAAYwW,GACpBtlB,KAAK8vD,SACd,EAIF,MAAMzB,UAA0CR,EAC9Cr+B,SACE,MAAMsgC,EAAY5jD,MAAMsjB,SAExB,OADAsgC,EAAUqB,UAAY,oCACfrB,CACT,EAIF,MAAMxB,UAAsCC,EAC1C1mD,YAAY8lD,GACVzhD,MAAMyhD,EAAYA,EAAW/9B,uBAC/B,CAEAJ,SACExvB,KAAK8vD,UAAUqB,UAAY,yBAC3B,MAAM0C,EAAgBvsD,SAASC,cAAc,UAC7CssD,EAAcnB,SAAW1yD,KAAKwiB,KAAKmwC,SACnCkB,EAAc7xD,KAAOhC,KAAKwiB,KAAKowC,UAE1B5yD,KAAKwiB,KAAKsxC,QACbD,EAAcvhC,KAAOtyB,KAAKwiB,KAAKuxC,QAAQnzD,OAEnCZ,KAAKwiB,KAAKwxC,cACZH,EAAcI,UAAW,IAI7B,IAAK,MAAMC,KAAUl0D,KAAKwiB,KAAKuxC,QAAS,CACtC,MAAMI,EAAgB7sD,SAASC,cAAc,UAC7C4sD,EAAc5hC,YAAc2hC,EAAOE,aACnCD,EAAczxD,MAAQwxD,EAAOG,YAEzBr0D,KAAKwiB,KAAK+vC,WAAWz9B,SAASo/B,EAAOE,eACvCD,EAAclqD,aAAa,YAAY,GAGzC4pD,EAAc/kD,YAAYqlD,EAC5B,CAGA,OADAn0D,KAAK8vD,UAAUhhD,YAAY+kD,GACpB7zD,KAAK8vD,SACd,EAIF,MAAMtB,UAA+Be,EACnC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAK3V,QAAS8gD,EAAWnrC,KAAKwuC,UACjE9kD,MAAMyhD,EAAY6B,EACpB,CAEAhgC,SACE,MAAM8kC,EAAe,CAAC,OAAQ,SAAU,SAAU,WAAY,UAAW,OAGzE,GAFAt0D,KAAK8vD,UAAUqB,UAAY,kBAEvBmD,EAAax/B,SAAS90B,KAAKwiB,KAAK+xC,YAClC,OAAOv0D,KAAK8vD,UAGd,MAAM0E,EAAW,wBAAwBx0D,KAAKwiB,KAAKiyC,aAC7CC,EAAgB10D,KAAKmB,MAAMwzD,cAAcH,GAE/C,IAAKE,EACH,OAAO10D,KAAK8vD,UAGd,MAAMoB,EAAQ,IAAIJ,EAAa,CAC7BhB,UAAW9vD,KAAK8vD,UAChBc,QAAS8D,EACT3gB,MAAO/zC,KAAKwiB,KAAKuxB,MACjBlnC,MAAO7M,KAAKwiB,KAAK3V,MACjBkkD,iBAAkB/wD,KAAKwiB,KAAKuuC,iBAC5BC,SAAUhxD,KAAKwiB,KAAKwuC,WAEhB4D,EAAaC,WAAWH,EAAc7zB,MAAMI,MAC5C6zB,EAAcD,WAAWH,EAAc7zB,MAAM35B,OAInD,OAHAlH,KAAK8vD,UAAUjvB,MAAMmvB,gBAAkB,IAAI4E,EAAaE,QAAkBJ,EAAc7zB,MAAMG,MAC9FhhC,KAAK8vD,UAAUjvB,MAAMI,KAAO,GAAG2zB,EAAaE,MAC5C90D,KAAK8vD,UAAUhhD,YAAYoiD,EAAM1hC,UAC1BxvB,KAAK8vD,SACd,EAIF,MAAMgB,EACJjpD,YAAY8lD,GACV3tD,KAAK8vD,UAAYnC,EAAWmC,UAC5B9vD,KAAK4wD,QAAUjD,EAAWiD,QAC1B5wD,KAAK+zC,MAAQ4Z,EAAW5Z,MACxB/zC,KAAK6M,MAAQ8gD,EAAW9gD,MACxB7M,KAAK+wD,iBAAmBpD,EAAWoD,iBACnC/wD,KAAKgxD,SAAWrD,EAAWqD,SAC3BhxD,KAAKixD,YAActD,EAAWsD,cAAe,EAC7CjxD,KAAK+0D,QAAS,CAChB,CAEAvlC,SACE,MAAMwlC,EAAqB,GACrBp+B,EAAUtvB,SAASC,cAAc,OACvCqvB,EAAQu6B,UAAY,eACpBnxD,KAAKi1D,YAAcj1D,KAAKixD,YAAcr6B,EAAU52B,KAAK8vD,UACrD9vD,KAAKi1D,YAAYhrD,aAAa,UAAU,GACxC,MAAMinD,EAAQ5pD,SAASC,cAAc,OACrC2pD,EAAMC,UAAY,QAClB,MAAMpd,EAAQ/zC,KAAK+zC,MAEnB,GAAIA,EAAO,CACT,MAAMxxC,EAAIyyD,GAAsB,IAAMjhB,EAAM,IAAMA,EAAM,GAClD5wB,EAAI6xC,GAAsB,IAAMjhB,EAAM,IAAMA,EAAM,GAClD3wB,EAAI4xC,GAAsB,IAAMjhB,EAAM,IAAMA,EAAM,GACxDmd,EAAMrwB,MAAMga,gBAAkBt2C,EAAMc,KAAKgvC,WAAe,EAAJ9xC,EAAW,EAAJ4gB,EAAW,EAAJC,EACpE,CAEA,MAAMvW,EAAQvF,SAASC,cAAc,MACrCsF,EAAM0lB,YAAcvyB,KAAK6M,MACzBqkD,EAAMpiD,YAAYjC,GAElB,MAAMqoD,EAAazxD,EAAeK,cAAcqxD,aAAan1D,KAAK+wD,kBAElE,GAAImE,EAAY,CACd,MAAMnE,EAAmBzpD,SAASC,cAAc,QAChDwpD,EAAiBx+B,YAAc,qBAC/Bw+B,EAAiBkB,QAAQC,OAAS,yBAClCnB,EAAiBkB,QAAQE,SAAWC,KAAKC,UAAU,CACjD+C,KAAMF,EAAWG,qBACjB5nD,KAAMynD,EAAWI,uBAEnBpE,EAAMpiD,YAAYiiD,EACpB,CAEA,MAAMC,EAAWhxD,KAAKu1D,gBAAgBv1D,KAAKgxD,UAQ3C,OANAE,EAAMpiD,YAAYkiD,GAClBhxD,KAAK4wD,QAAQt7B,iBAAiB,QAASt1B,KAAKw1D,QAAQvyD,KAAKjD,OACzDA,KAAK4wD,QAAQt7B,iBAAiB,YAAat1B,KAAKy1D,MAAMxyD,KAAKjD,MAAM,IACjEA,KAAK4wD,QAAQt7B,iBAAiB,WAAYt1B,KAAK01D,MAAMzyD,KAAKjD,MAAM,IAChEkxD,EAAM57B,iBAAiB,QAASt1B,KAAK01D,MAAMzyD,KAAKjD,MAAM,IACtD42B,EAAQ9nB,YAAYoiD,GACbt6B,CACT,CAEA2+B,gBAAgBvE,GACd,MAAMztD,EAAI+D,SAASC,cAAc,KAC3BouD,EAAQ3E,EAAS4E,MAAM,gBAE7B,IAAK,IAAI90D,EAAI,EAAGklB,EAAK2vC,EAAM/0D,OAAQE,EAAIklB,IAAMllB,EAAG,CAC9C,MAAM+0D,EAAOF,EAAM70D,GACnByC,EAAEuL,YAAYxH,SAASwuD,eAAeD,IAElC/0D,EAAIklB,EAAK,GACXziB,EAAEuL,YAAYxH,SAASC,cAAc,MAEzC,CAEA,OAAOhE,CACT,CAEAiyD,UACMx1D,KAAK+0D,OACP/0D,KAAK01D,OAAM,GAEX11D,KAAKy1D,OAAM,EAEf,CAEAA,MAAMM,GAAM,GACNA,IACF/1D,KAAK+0D,QAAS,GAGZ/0D,KAAKi1D,YAAYe,aAAa,YAChCh2D,KAAKi1D,YAAYgB,gBAAgB,UACjCj2D,KAAK8vD,UAAUjvB,MAAMq1B,QAAU,EAEnC,CAEAR,MAAMS,GAAQ,GACRA,IACFn2D,KAAK+0D,QAAS,GAGX/0D,KAAKi1D,YAAYe,aAAa,WAAch2D,KAAK+0D,SACpD/0D,KAAKi1D,YAAYhrD,aAAa,UAAU,GACxCjK,KAAK8vD,UAAUjvB,MAAMq1B,QAAU,EAEnC,EAIF,MAAMzH,UAAkCc,EACtC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,qBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMpB,UAA8Ba,EAClC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SACExvB,KAAK8vD,UAAUqB,UAAY,iBAC3B,MAAM3uC,EAAOxiB,KAAKwiB,KACZtb,EAAQsb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACjCxE,EAASqb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GAClC5B,EAAM/J,KAAK6vD,WAAW9sD,OAAOmE,EAAOC,GACpC0uD,EAAO71D,KAAK6vD,WAAWtoD,cAAc,YAY3C,OAXAsuD,EAAK5rD,aAAa,KAAMuY,EAAK7W,KAAK,GAAK6W,EAAK4zC,gBAAgB,IAC5DP,EAAK5rD,aAAa,KAAMuY,EAAK7W,KAAK,GAAK6W,EAAK4zC,gBAAgB,IAC5DP,EAAK5rD,aAAa,KAAMuY,EAAK7W,KAAK,GAAK6W,EAAK4zC,gBAAgB,IAC5DP,EAAK5rD,aAAa,KAAMuY,EAAK7W,KAAK,GAAK6W,EAAK4zC,gBAAgB,IAC5DP,EAAK5rD,aAAa,eAAgBuY,EAAKytC,YAAY/oD,OAAS,GAC5D2uD,EAAK5rD,aAAa,SAAU,eAC5BF,EAAI+E,YAAY+mD,GAChB71D,KAAK8vD,UAAUuG,OAAOtsD,GAEtB/J,KAAK2wD,aAAa3wD,KAAK8vD,UAAW+F,EAAMrzC,GAEjCxiB,KAAK8vD,SACd,EAIF,MAAMnB,UAAgCY,EACpC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SACExvB,KAAK8vD,UAAUqB,UAAY,mBAC3B,MAAM3uC,EAAOxiB,KAAKwiB,KACZtb,EAAQsb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACjCxE,EAASqb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GAClC5B,EAAM/J,KAAK6vD,WAAW9sD,OAAOmE,EAAOC,GACpC+oD,EAAc1tC,EAAKytC,YAAY/oD,MAC/BovD,EAASt2D,KAAK6vD,WAAWtoD,cAAc,YAa7C,OAZA+uD,EAAOrsD,aAAa,IAAKimD,EAAc,GACvCoG,EAAOrsD,aAAa,IAAKimD,EAAc,GACvCoG,EAAOrsD,aAAa,QAAS/C,EAAQgpD,GACrCoG,EAAOrsD,aAAa,SAAU9C,EAAS+oD,GACvCoG,EAAOrsD,aAAa,eAAgBimD,GAAe,GACnDoG,EAAOrsD,aAAa,SAAU,eAC9BqsD,EAAOrsD,aAAa,OAAQ,QAC5BF,EAAI+E,YAAYwnD,GAChBt2D,KAAK8vD,UAAUuG,OAAOtsD,GAEtB/J,KAAK2wD,aAAa3wD,KAAK8vD,UAAWwG,EAAQ9zC,GAEnCxiB,KAAK8vD,SACd,EAIF,MAAMlB,UAAgCW,EACpC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SACExvB,KAAK8vD,UAAUqB,UAAY,mBAC3B,MAAM3uC,EAAOxiB,KAAKwiB,KACZtb,EAAQsb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACjCxE,EAASqb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GAClC5B,EAAM/J,KAAK6vD,WAAW9sD,OAAOmE,EAAOC,GACpC+oD,EAAc1tC,EAAKytC,YAAY/oD,MAC/BqvD,EAASv2D,KAAK6vD,WAAWtoD,cAAc,eAa7C,OAZAgvD,EAAOtsD,aAAa,KAAM/C,EAAQ,GAClCqvD,EAAOtsD,aAAa,KAAM9C,EAAS,GACnCovD,EAAOtsD,aAAa,KAAM/C,EAAQ,EAAIgpD,EAAc,GACpDqG,EAAOtsD,aAAa,KAAM9C,EAAS,EAAI+oD,EAAc,GACrDqG,EAAOtsD,aAAa,eAAgBimD,GAAe,GACnDqG,EAAOtsD,aAAa,SAAU,eAC9BssD,EAAOtsD,aAAa,OAAQ,QAC5BF,EAAI+E,YAAYynD,GAChBv2D,KAAK8vD,UAAUuG,OAAOtsD,GAEtB/J,KAAK2wD,aAAa3wD,KAAK8vD,UAAWyG,EAAQ/zC,GAEnCxiB,KAAK8vD,SACd,EAIF,MAAMjB,UAAkCU,EACtC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,GAChCxvD,KAAKw2D,mBAAqB,qBAC1Bx2D,KAAKy2D,eAAiB,cACxB,CAEAjnC,SACExvB,KAAK8vD,UAAUqB,UAAYnxD,KAAKw2D,mBAChC,MAAMh0C,EAAOxiB,KAAKwiB,KACZtb,EAAQsb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACjCxE,EAASqb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GAClC5B,EAAM/J,KAAK6vD,WAAW9sD,OAAOmE,EAAOC,GAC1C,IAAI09B,EAAS,GAEb,IAAK,MAAM6xB,KAAcl0C,EAAKm0C,SAAU,CACtC,MAAMprD,EAAImrD,EAAWnrD,EAAIiX,EAAK7W,KAAK,GAC7BH,EAAIgX,EAAK7W,KAAK,GAAK+qD,EAAWlrD,EACpCq5B,EAAO3kC,KAAKqL,EAAI,IAAMC,EACxB,CAEAq5B,EAASA,EAAOhkC,KAAK,KACrB,MAAM+1D,EAAW52D,KAAK6vD,WAAWtoD,cAAcvH,KAAKy2D,gBAUpD,OATAG,EAAS3sD,aAAa,SAAU46B,GAChC+xB,EAAS3sD,aAAa,eAAgBuY,EAAKytC,YAAY/oD,OAAS,GAChE0vD,EAAS3sD,aAAa,SAAU,eAChC2sD,EAAS3sD,aAAa,OAAQ,QAC9BF,EAAI+E,YAAY8nD,GAChB52D,KAAK8vD,UAAUuG,OAAOtsD,GAEtB/J,KAAK2wD,aAAa3wD,KAAK8vD,UAAW8G,EAAUp0C,GAErCxiB,KAAK8vD,SACd,EAIF,MAAMd,UAAiCH,EACrChnD,YAAY8lD,GACVzhD,MAAMyhD,GACN3tD,KAAKw2D,mBAAqB,oBAC1Bx2D,KAAKy2D,eAAiB,aACxB,EAIF,MAAM3H,UAA+BS,EACnC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,kBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMf,UAA6BQ,EACjC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,GAChCxvD,KAAKw2D,mBAAqB,gBAC1Bx2D,KAAKy2D,eAAiB,cACxB,CAEAjnC,SACExvB,KAAK8vD,UAAUqB,UAAYnxD,KAAKw2D,mBAChC,MAAMh0C,EAAOxiB,KAAKwiB,KACZtb,EAAQsb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GACjCxE,EAASqb,EAAK7W,KAAK,GAAK6W,EAAK7W,KAAK,GAClC5B,EAAM/J,KAAK6vD,WAAW9sD,OAAOmE,EAAOC,GAE1C,IAAK,MAAM0vD,KAAWr0C,EAAKs0C,SAAU,CACnC,IAAIjyB,EAAS,GAEb,IAAK,MAAM6xB,KAAcG,EAAS,CAChC,MAAMtrD,EAAImrD,EAAWnrD,EAAIiX,EAAK7W,KAAK,GAC7BH,EAAIgX,EAAK7W,KAAK,GAAK+qD,EAAWlrD,EACpCq5B,EAAO3kC,KAAK,GAAGqL,KAAKC,IACtB,CAEAq5B,EAASA,EAAOhkC,KAAK,KACrB,MAAM+1D,EAAW52D,KAAK6vD,WAAWtoD,cAAcvH,KAAKy2D,gBACpDG,EAAS3sD,aAAa,SAAU46B,GAChC+xB,EAAS3sD,aAAa,eAAgBuY,EAAKytC,YAAY/oD,OAAS,GAChE0vD,EAAS3sD,aAAa,SAAU,eAChC2sD,EAAS3sD,aAAa,OAAQ,QAE9BjK,KAAK2wD,aAAa3wD,KAAK8vD,UAAW8G,EAAUp0C,GAE5CzY,EAAI+E,YAAY8nD,EAClB,CAGA,OADA52D,KAAK8vD,UAAUuG,OAAOtsD,GACf/J,KAAK8vD,SACd,EAIF,MAAMb,UAAmCM,EACvC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,sBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMZ,UAAmCK,EACvC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,sBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMX,UAAkCI,EACtC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,qBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMV,UAAmCG,EACvC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,sBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMT,UAA+BE,EACnC1nD,YAAY8lD,GACV,MAAM6B,KAAkB7B,EAAWnrC,KAAKuvC,UAAYpE,EAAWnrC,KAAK3V,OAAS8gD,EAAWnrC,KAAKwuC,UAC7F9kD,MAAMyhD,EAAY6B,GAAc,EAClC,CAEAhgC,SAOE,OANAxvB,KAAK8vD,UAAUqB,UAAY,kBAEtBnxD,KAAKwiB,KAAKuvC,UACb/xD,KAAK2wD,aAAa3wD,KAAK8vD,UAAW,KAAM9vD,KAAKwiB,MAGxCxiB,KAAK8vD,SACd,EAIF,MAAMR,UAAwCC,EAC5C1nD,YAAY8lD,GACVzhD,MAAMyhD,GAAY,GAClB,MAAM,SACJ1yB,EAAQ,QACRx6B,GACET,KAAKwiB,KAAKu0C,KACd/2D,KAAKi7B,UAAW,EAAIx3B,EAAeE,oBAAoBs3B,GACvDj7B,KAAKS,QAAUA,EAEXT,KAAK0vD,YAAYsH,UACnBh3D,KAAK0vD,YAAYsH,SAASC,SAAS,2BAA4B,CAC7DtvC,OAAQ3nB,KACRG,IAAI,EAAIoE,EAAM0M,mBAAmBgqB,GACjCA,WACAx6B,WAGN,CAEA+uB,SACExvB,KAAK8vD,UAAUqB,UAAY,2BAC3B,MAAMP,EAAUtpD,SAASC,cAAc,OAUvC,OATAqpD,EAAQ/vB,MAAM15B,OAASnH,KAAK8vD,UAAUjvB,MAAM15B,OAC5CypD,EAAQ/vB,MAAM35B,MAAQlH,KAAK8vD,UAAUjvB,MAAM35B,MAC3C0pD,EAAQt7B,iBAAiB,WAAYt1B,KAAKk3D,UAAUj0D,KAAKjD,OAEpDA,KAAKwiB,KAAKuvC,WAAa/xD,KAAKwiB,KAAK3V,QAAS7M,KAAKwiB,KAAKwuC,UACvDhxD,KAAK2wD,aAAa3wD,KAAK8vD,UAAWc,EAAS5wD,KAAKwiB,MAGlDxiB,KAAK8vD,UAAUhhD,YAAY8hD,GACpB5wD,KAAK8vD,SACd,CAEAoH,YACOl3D,KAAK2vD,gBAKV3vD,KAAK2vD,gBAAgBwH,aAAan3D,KAAKS,QAAST,KAAKi7B,SAAU,KAJ7D,EAAI12B,EAAMmJ,MAAM,iEAKpB,EAIF,MAAMlI,EACJ2J,cAAcw+C,GACZ,MAAMyJ,EAAoB,GACpBC,EAAmB,GAEzB,IAAK,MAAM70C,KAAQmrC,EAAW2J,YACvB90C,IAIDA,EAAKorC,iBAAmBrpD,EAAMwN,eAAe8C,MAKjDuiD,EAAkBl3D,KAAKsiB,GAJrB60C,EAAiBn3D,KAAKsiB,IAOtB60C,EAAiBz2D,QACnBw2D,EAAkBl3D,QAAQm3D,GAG5B,IAAK,MAAM70C,KAAQ40C,EAAmB,CACpC,MAAM9xC,EAAUooC,EAAyB3qD,OAAO,CAC9Cyf,OACArhB,MAAOwsD,EAAW/sB,IAClBlI,KAAMi1B,EAAWj1B,KACjBhJ,SAAUi+B,EAAWj+B,SACrBggC,YAAa/B,EAAW+B,YACxBC,gBAAiBhC,EAAWgC,gBAC5BC,mBAAoBjC,EAAWiC,oBAAsB,GACrDhgC,uBAAwB+9B,EAAW/9B,yBAA0B,EAC7DigC,WAAY,IAAIpsD,EAAemD,gBAG7B0e,EAAQkqC,cACV7B,EAAW/sB,IAAI9xB,YAAYwW,EAAQkK,SAEvC,CACF,CAEArgB,cAAcw+C,GACZ,IAAK,MAAMnrC,KAAQmrC,EAAW2J,YAAa,CACzC,MAAMhyC,EAAUqoC,EAAW/sB,IAAI+zB,cAAc,wBAAwBnyC,EAAKriB,QAEtEmlB,IACFA,EAAQub,MAAM11B,UAAY,UAAUwiD,EAAWj+B,SAASvkB,UAAUtK,KAAK,QAE3E,CAEA8sD,EAAW/sB,IAAIq1B,gBAAgB,SACjC,EAIFt2D,EAAQ6F,gBAAkBA,CAEnB,EAED,SAAU5F,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQmG,qBAAkB,EAE1B,IAAIvB,EAAQ9C,EAAoB,GAE5BqE,EAAkB,WACpB,IAAIyxD,EAA0B,IAC1BC,EAAsB,KAE1B,SAASC,EAAgBj2C,GACvB,OAAQg2C,EAAoBE,KAAKl2C,EACnC,CAEA,SAASm2C,EAAWlwC,EAAMmwC,EAAM5kC,GAC9B,IAAI6kC,EAAUvwD,SAASC,cAAc,QACjCuwD,EAAoB,CACtBj0B,MAAO,EACPk0B,YAAa,EACbvV,cAAc,EACdwV,kBAAmB,KACnBC,cAAe,EACfC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZhuD,MAAO,GAKT,GAFAqd,EAAK4wC,UAAUn4D,KAAK23D,GAEhBJ,EAAgBG,EAAKp2C,KAKvB,OAJAs2C,EAAkBtV,cAAe,OAEjC/6B,EAAK6wC,mBAAmB51C,IAAIm1C,EAASC,GAKvC,IAAIS,EAAKh0D,EAAMc,KAAK8F,UAAUsc,EAAK+wC,UAAUrtD,UAAWysD,EAAKzsD,WAEzD04B,EAAQ54B,KAAKwtD,MAAMF,EAAG,GAAIA,EAAG,IAC7B13B,EAAQ7N,EAAO4kC,EAAKc,UAEpB73B,EAAM6Q,WACR7N,GAAS54B,KAAK0tD,GAAK,GAGrB,IAAIC,EAAa3tD,KAAKiZ,KAAKq0C,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAClDM,EAAaD,EAQjB,IAAI33B,EAAMD,EANNH,EAAMi4B,OACRD,EAAah4B,EAAMi4B,OAASD,EACnBh4B,EAAMk4B,UACfF,GAAc,EAAIh4B,EAAMk4B,SAAWF,GAKvB,IAAVh1B,GACF5C,EAAOs3B,EAAG,GACVv3B,EAAMu3B,EAAG,GAAKM,IAEd53B,EAAOs3B,EAAG,GAAKM,EAAa5tD,KAAKg5B,IAAIJ,GACrC7C,EAAMu3B,EAAG,GAAKM,EAAa5tD,KAAK84B,IAAIF,IAGtCg0B,EAAQh3B,MAAMI,KAAO,GAAGA,MACxB42B,EAAQh3B,MAAMG,IAAM,GAAGA,MACvB62B,EAAQh3B,MAAMqF,SAAW,GAAG0yB,MAC5Bf,EAAQh3B,MAAMM,WAAaN,EAAMM,WACjC02B,EAAQtlC,YAAcqlC,EAAKp2C,IAEvBiG,EAAKuxC,wBACPnB,EAAQ5F,QAAQyG,SAAWd,EAAKc,UAGpB,IAAV70B,IACFi0B,EAAkBj0B,MAAQA,GAAS,IAAM54B,KAAK0tD,KAGhD,IAAIM,GAAkB,EAEtB,GAAIrB,EAAKp2C,IAAI5gB,OAAS,EACpBq4D,GAAkB,OACb,GAAIrB,EAAKzsD,UAAU,KAAOysD,EAAKzsD,UAAU,GAAI,CAClD,MAAM+tD,EAAYjuD,KAAKC,IAAI0sD,EAAKzsD,UAAU,IACpCguD,EAAYluD,KAAKC,IAAI0sD,EAAKzsD,UAAU,IAEtC+tD,IAAcC,GAAaluD,KAAK4Y,IAAIq1C,EAAWC,GAAaluD,KAAKmC,IAAI8rD,EAAWC,GAAa,MAC/FF,GAAkB,EAEtB,CAgBA,GAdIA,IACEp4B,EAAM6Q,SACRomB,EAAkBC,YAAcH,EAAKzwD,OAASsgB,EAAK+wC,UAAUpuD,MAE7D0tD,EAAkBC,YAAcH,EAAK1wD,MAAQugB,EAAK+wC,UAAUpuD,OAIhEqd,EAAK6wC,mBAAmB51C,IAAIm1C,EAASC,GAEjCrwC,EAAK2xC,oBACP3xC,EAAK4xC,YAAYxB,GAGfpwC,EAAK6xC,sBAAuB,CAC9B,IAAIC,EAAW,EACXC,EAAW,EAED,IAAV31B,IACF01B,EAAWtuD,KAAK84B,IAAIF,GACpB21B,EAAWvuD,KAAKg5B,IAAIJ,IAGtB,IAEIhiC,EAAGuhB,EAFHq2C,GAAY54B,EAAM6Q,SAAWkmB,EAAKzwD,OAASywD,EAAK1wD,OAASugB,EAAK+wC,UAAUpuD,MACxEsvD,EAAYd,EAGF,IAAV/0B,GACFhiC,EAAI,CAAC03D,EAAUC,GAAWA,EAAUD,EAAUt4B,EAAMD,GACpD5d,EAAI7e,EAAMc,KAAKiwC,2BAA2B,CAAC,EAAG,EAAGmkB,EAAUC,GAAY73D,IAEvEuhB,EAAI,CAAC6d,EAAMD,EAAKC,EAAOw4B,EAAUz4B,EAAM04B,GAGzCjyC,EAAKkyC,QAAQz5D,KAAK,CAChB+gC,KAAM7d,EAAE,GACR4d,IAAK5d,EAAE,GACPw2C,MAAOx2C,EAAE,GACTy2C,OAAQz2C,EAAE,GACVwd,IAAKi3B,EACLvlC,KAAM,CAACmnC,EAAUC,GACjB73D,KAEJ,CACF,CAEA,SAAS2tB,EAAO/H,GACd,IAAIA,EAAKqyC,UAAT,CAIA,IAAIC,EAAWtyC,EAAK4wC,UAChB7yC,EAAaiC,EAAK6C,YAClB0vC,EAAiBD,EAASn5D,OAE9B,GAAIo5D,EAAiBzC,EAGnB,OAFA9vC,EAAKwyC,gBAAiB,OACtBz0C,EAAWtc,UAIb,IAAKue,EAAK2xC,mBACR,IAAK,IAAIt4D,EAAI,EAAGA,EAAIk5D,EAAgBl5D,IAClC2mB,EAAK4xC,YAAYU,EAASj5D,IAI9B2mB,EAAKwyC,gBAAiB,EACtBz0C,EAAWtc,SAnBX,CAoBF,CAEA,SAASgxD,EAAgBC,EAAIx6B,EAAQwF,GACnC,IAAIxgB,EAAS,EAEb,IAAK,IAAI7jB,EAAI,EAAGA,EAAIqkC,EAAOrkC,IAAK,CAC9B,MAAM6B,EAAIw3D,EAAGx6B,KAETh9B,EAAI,IACNgiB,EAASA,EAAS1Z,KAAKmC,IAAIzK,EAAGgiB,GAAUhiB,EAE5C,CAEA,OAAOgiB,CACT,CAEA,SAASy1C,EAAO3yC,GAKd,IAJA,IAAI4tB,EAAS5tB,EAAKkyC,QACdjqC,EAAWjI,EAAK+wC,UAChB6B,EAAWC,EAAa5qC,EAASxoB,MAAOwoB,EAASvoB,OAAQkuC,GAEpDv0C,EAAI,EAAGA,EAAIu5D,EAASz5D,OAAQE,IAAK,CACxC,IAAI8/B,EAAMyU,EAAOv0C,GAAG8/B,IAEhB25B,EAAgB9yC,EAAK6wC,mBAAmBh2D,IAAIs+B,GAEhD,GAA4B,IAAxB25B,EAAc12B,MAAlB,CAWA,IAAIhjB,EAAIw5C,EAASv5D,GACbsiB,EAAIiyB,EAAOv0C,GACXe,EAAIuhB,EAAEvhB,EACNC,EAAID,EAAE,GACN2B,EAAI3B,EAAE,GACNgjC,EAAS,CAAC,CAAC,EAAG,GAAI,CAAC,EAAGzhB,EAAEkP,KAAK,IAAK,CAAClP,EAAEkP,KAAK,GAAI,GAAIlP,EAAEkP,MACpD6nC,EAAK,IAAIK,aAAa,IAC1B31B,EAAOvR,SAAQ,SAAU/vB,EAAGkhC,GAC1B,IAAI9hC,EAAI4B,EAAMc,KAAKoG,eAAelI,EAAG1B,GAErCs4D,EAAG11B,EAAI,GAAK3iC,IAAM+e,EAAEogB,KAAOt+B,EAAE,IAAMb,EACnCq4D,EAAG11B,EAAI,GAAKjhC,IAAMqd,EAAEmgB,IAAMr+B,EAAE,IAAMa,EAClC22D,EAAG11B,EAAI,GAAK3iC,IAAM+e,EAAE+4C,MAAQj3D,EAAE,IAAMb,EACpCq4D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAEg5C,OAASl3D,EAAE,IAAMa,EACtC22D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAEogB,KAAOt+B,EAAE,KAAOa,EACrC22D,EAAG11B,EAAI,IAAM3iC,IAAM+e,EAAEmgB,IAAMr+B,EAAE,IAAMb,EACnCq4D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAE+4C,MAAQj3D,EAAE,KAAOa,EACtC22D,EAAG11B,EAAI,IAAM3iC,IAAM+e,EAAEg5C,OAASl3D,EAAE,IAAMb,EACtCq4D,EAAG11B,EAAI,IAAM3iC,IAAM+e,EAAEogB,KAAOt+B,EAAE,KAAOb,EACrCq4D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAEmgB,IAAMr+B,EAAE,KAAOa,EACpC22D,EAAG11B,EAAI,IAAM3iC,IAAM+e,EAAE+4C,MAAQj3D,EAAE,KAAOb,EACtCq4D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAEg5C,OAASl3D,EAAE,KAAOa,EACvC22D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAEogB,KAAOt+B,EAAE,IAAMa,EACpC22D,EAAG11B,EAAI,IAAM3iC,IAAM+e,EAAEmgB,IAAMr+B,EAAE,KAAOb,EACpCq4D,EAAG11B,EAAI,IAAMjhC,IAAMqd,EAAE+4C,MAAQj3D,EAAE,IAAMa,EACrC22D,EAAG11B,EAAI,IAAM3iC,IAAM+e,EAAEg5C,OAASl3D,EAAE,KAAOb,CACzC,IACA,IAAI24D,EAAW,EAAIxvD,KAAKmC,IAAInC,KAAKC,IAAIpJ,GAAImJ,KAAKC,IAAI1H,IAClD+2D,EAAcrC,YAAcgC,EAAgBC,EAAI,GAAI,IAAMM,EAC1DF,EAAcnC,WAAa8B,EAAgBC,EAAI,GAAI,IAAMM,EACzDF,EAAcpC,aAAe+B,EAAgBC,EAAI,EAAG,IAAMM,EAC1DF,EAActC,cAAgBiC,EAAgBC,EAAI,GAAI,IAAMM,EAE5DhzC,EAAK6wC,mBAAmB51C,IAAIke,EAAK25B,EAnCjC,MAREA,EAAcrC,YAAc7iB,EAAOv0C,GAAGmgC,KAAOo5B,EAASv5D,GAAGmgC,KACzDs5B,EAAcnC,WAAa/iB,EAAOv0C,GAAGkgC,IAAMq5B,EAASv5D,GAAGkgC,IACvDu5B,EAAcpC,aAAekC,EAASv5D,GAAG84D,MAAQvkB,EAAOv0C,GAAG84D,MAC3DW,EAActC,cAAgBoC,EAASv5D,GAAG+4D,OAASxkB,EAAOv0C,GAAG+4D,OAE7DpyC,EAAK6wC,mBAAmB51C,IAAIke,EAAK25B,EAuCrC,CACF,CAEA,SAASD,EAAapzD,EAAOC,EAAQuzD,GACnC,IAAIrlB,EAASqlB,EAAMn6D,KAAI,SAAUo6D,EAAK75D,GACpC,MAAO,CACLg0C,GAAI6lB,EAAI15B,KACR8T,GAAI4lB,EAAI35B,IACRyX,GAAIkiB,EAAIf,MACRlhB,GAAIiiB,EAAId,OACRt0C,MAAOzkB,EACP85D,WAAOx5D,EACPy5D,WAAOz5D,EAEX,IACA05D,EAAgB5zD,EAAOmuC,GACvB,IAAIglB,EAAW,IAAIrlC,MAAM0lC,EAAM95D,QA2B/B,OA1BAy0C,EAAO/hB,SAAQ,SAAUlQ,GACvB,IAAItiB,EAAIsiB,EAAEmC,MACV80C,EAASv5D,GAAK,CACZmgC,KAAM7d,EAAEw3C,MACR55B,IAAK,EACL44B,MAAOx2C,EAAEy3C,MACThB,OAAQ,EAEZ,IACAa,EAAMn6D,KAAI,SAAUo6D,EAAK75D,GACvB,IAAI+f,EAAIw5C,EAASv5D,GACbsiB,EAAIiyB,EAAOv0C,GACfsiB,EAAE0xB,GAAK6lB,EAAI35B,IACX5d,EAAE2xB,GAAK7tC,EAAQ2Z,EAAE+4C,MACjBx2C,EAAEq1B,GAAKkiB,EAAId,OACXz2C,EAAEs1B,GAAKxxC,EAAQ2Z,EAAEogB,KACjB7d,EAAEmC,MAAQzkB,EACVsiB,EAAEw3C,WAAQx5D,EACVgiB,EAAEy3C,WAAQz5D,CACZ,IACA05D,EAAgB3zD,EAAQkuC,GACxBA,EAAO/hB,SAAQ,SAAUlQ,GACvB,IAAItiB,EAAIsiB,EAAEmC,MACV80C,EAASv5D,GAAGkgC,IAAM5d,EAAEw3C,MACpBP,EAASv5D,GAAG+4D,OAASz2C,EAAEy3C,KACzB,IACOR,CACT,CAEA,SAASS,EAAgB5zD,EAAOmuC,GAC9BA,EAAO5wB,MAAK,SAAUT,EAAGZ,GACvB,OAAOY,EAAE8wB,GAAK1xB,EAAE0xB,IAAM9wB,EAAEuB,MAAQnC,EAAEmC,KACpC,IACA,IAAIw1C,EAAe,CACjBjmB,IAAKkmB,IACLjmB,IAAKimB,IACLviB,GAAI,EACJC,GAAIsiB,IACJz1C,OAAQ,EACRq1C,MAAO,EACPC,MAAO,GAELI,EAAU,CAAC,CACbntD,OAAQktD,IACR7tD,IAAK6tD,IACLE,SAAUH,IAEZ1lB,EAAO/hB,SAAQ,SAAU4nC,GACvB,IAAIp6D,EAAI,EAER,MAAOA,EAAIm6D,EAAQr6D,QAAUq6D,EAAQn6D,GAAGqM,KAAO+tD,EAASnmB,GACtDj0C,IAGF,IAMIq6D,EAAaC,EANb32B,EAAIw2B,EAAQr6D,OAAS,EAEzB,MAAO6jC,GAAK,GAAKw2B,EAAQx2B,GAAG32B,OAASotD,EAASxiB,GAC5CjU,IAIF,IAAIiW,EACAp5C,EACA+5D,GAAWL,IAEf,IAAKtgB,EAAI55C,EAAG45C,GAAKjW,EAAGiW,IAAK,CAGvB,IAAI4gB,EAFJH,EAAcF,EAAQvgB,GACtB0gB,EAAmBD,EAAYD,SAI7BI,EADEF,EAAiB3iB,GAAKyiB,EAASpmB,GAC1BsmB,EAAiB71C,MAAQ21C,EAAS31C,MAAQ61C,EAAiBR,MAAQM,EAASpmB,QAC/C1zC,IAA3Bg6D,EAAiBP,OAClBO,EAAiB3iB,GAAKyiB,EAASpmB,IAAM,EAEtCsmB,EAAiBP,MAGtBS,EAAOD,IACTA,EAAUC,EAEd,CAIA,IAFAJ,EAASN,MAAQS,EAEZ3gB,EAAI55C,EAAG45C,GAAKjW,EAAGiW,IAClBygB,EAAcF,EAAQvgB,GACtB0gB,EAAmBD,EAAYD,cAEA95D,IAA3Bg6D,EAAiBP,MACfO,EAAiB3iB,GAAKyiB,EAASpmB,GAC7BsmB,EAAiB71C,MAAQ21C,EAAS31C,QACpC61C,EAAiBP,MAAQO,EAAiB3iB,IAG5C2iB,EAAiBP,MAAQQ,EAElBD,EAAiBP,MAAQQ,IAClCD,EAAiBP,MAAQ5vD,KAAK4Y,IAAIw3C,EAASD,EAAiB3iB,KAIhE,IAAI8iB,EAAiB,GACjBC,EAAe,KAEnB,IAAK9gB,EAAI55C,EAAG45C,GAAKjW,EAAGiW,IAAK,CACvBygB,EAAcF,EAAQvgB,GACtB0gB,EAAmBD,EAAYD,SAC/B,IAAIO,EAAcL,EAAiB3iB,GAAKyiB,EAASziB,GAAK2iB,EAAmBF,EAErEM,IAAiBC,EACnBF,EAAeA,EAAe36D,OAAS,GAAGuM,IAAMguD,EAAYhuD,KAE5DouD,EAAer7D,KAAK,CAClB4N,MAAOqtD,EAAYrtD,MACnBX,IAAKguD,EAAYhuD,IACjB+tD,SAAUO,IAEZD,EAAeC,EAEnB,CAoBA,IAlBIR,EAAQn6D,GAAGgN,MAAQotD,EAASnmB,KAC9BwmB,EAAe,GAAGztD,MAAQotD,EAASnmB,GACnCwmB,EAAeG,QAAQ,CACrB5tD,MAAOmtD,EAAQn6D,GAAGgN,MAClBX,IAAK+tD,EAASnmB,GACdmmB,SAAUD,EAAQn6D,GAAGo6D,YAIrBA,EAASxiB,GAAKuiB,EAAQx2B,GAAGt3B,MAC3BouD,EAAeA,EAAe36D,OAAS,GAAGuM,IAAM+tD,EAASxiB,GACzD6iB,EAAer7D,KAAK,CAClB4N,MAAOotD,EAASxiB,GAChBvrC,IAAK8tD,EAAQx2B,GAAGt3B,IAChB+tD,SAAUD,EAAQx2B,GAAGy2B,YAIpBxgB,EAAI55C,EAAG45C,GAAKjW,EAAGiW,IAIlB,GAHAygB,EAAcF,EAAQvgB,GACtB0gB,EAAmBD,EAAYD,cAEA95D,IAA3Bg6D,EAAiBP,MAArB,CAIA,IAAIc,GAAO,EAEX,IAAKr6D,EAAIR,EAAI,GAAI66D,GAAQr6D,GAAK,GAAK25D,EAAQ35D,GAAGwM,OAASstD,EAAiBrmB,GAAIzzC,IAC1Eq6D,EAAOV,EAAQ35D,GAAG45D,WAAaE,EAGjC,IAAK95D,EAAImjC,EAAI,GAAIk3B,GAAQr6D,EAAI25D,EAAQr6D,QAAUq6D,EAAQ35D,GAAG6L,KAAOiuD,EAAiB1iB,GAAIp3C,IACpFq6D,EAAOV,EAAQ35D,GAAG45D,WAAaE,EAGjC,IAAK95D,EAAI,GAAIq6D,GAAQr6D,EAAIi6D,EAAe36D,OAAQU,IAC9Cq6D,EAAOJ,EAAej6D,GAAG45D,WAAaE,EAGnCO,IACHP,EAAiBP,MAAQQ,EAjB3B,CAqBFrmC,MAAM3xB,UAAU6tB,OAAOpP,MAAMm5C,EAAS,CAACn6D,EAAG2jC,EAAI3jC,EAAI,GAAGH,OAAO46D,GAC9D,IACAN,EAAQ3nC,SAAQ,SAAU6nC,GACxB,IAAIC,EAAmBD,EAAYD,cAEJ95D,IAA3Bg6D,EAAiBP,QACnBO,EAAiBP,MAAQ5vD,KAAK4Y,IAAI3c,EAAOk0D,EAAiB3iB,IAE9D,GACF,CAEA,SAASmjB,GAAoB,YAC3BrpC,EAAW,kBACXspC,EAAiB,UACjB/L,EAAS,SACTpgC,EAAQ,SACRqqC,EAAQ,oBACR+B,EAAmB,qBACnBC,IAEA/7D,KAAKg8D,aAAezpC,EACpBvyB,KAAKo5D,mBAAqByC,EAC1B77D,KAAKi8D,WAAanM,EAClB9vD,KAAKw4D,UAAY9oC,EACjB1vB,KAAKq4D,UAAY0B,GAAY,GAC7B/5D,KAAKk8D,qBAAuBJ,GAAuB,GACnD97D,KAAKs5D,wBAA0ByC,EAC/B/7D,KAAKg5D,yBAA2B3iC,WAAW6D,gBAAiB7D,WAAW6D,cAAcxtB,SACrF1M,KAAKm8D,QAAU,KACfn8D,KAAKo8D,wBAA0B,KAC/Bp8D,KAAKq8D,0BAA4B,KACjCr8D,KAAKs8D,eAAiB,KACtBt8D,KAAKs4D,mBAAqB,IAAIjjC,QAC9Br1B,KAAKi6D,gBAAiB,EACtBj6D,KAAK85D,WAAY,EACjB95D,KAAKsqB,aAAc,EAAI/lB,EAAMG,2BAC7B1E,KAAKu8D,aAAe,KACpBv8D,KAAK25D,QAAU,GAEf35D,KAAKsqB,YAAY5E,QAAQ4U,SAAQ,KAC3Bt6B,KAAKs8D,iBACPt8D,KAAKs8D,eAAej1D,OAAOH,MAAQ,EACnClH,KAAKs8D,eAAej1D,OAAOF,OAAS,EACpCnH,KAAKs8D,eAAiB,KACxB,IACCvzD,OAAM,QACX,CA2MA,SAASjD,EAAgB02D,GACvB,IAAI/0C,EAAO,IAAIm0C,EAAoB,CACjCrpC,YAAaiqC,EAAiBjqC,YAC9BspC,kBAAmBW,EAAiBX,kBACpC/L,UAAW0M,EAAiB1M,UAC5BpgC,SAAU8sC,EAAiB9sC,SAC3BqqC,SAAUyC,EAAiBzC,SAC3B+B,oBAAqBU,EAAiBV,oBACtCC,qBAAsBS,EAAiBT,uBAKzC,OAFAt0C,EAAKg1C,QAAQD,EAAiBE,SAEvBj1C,CACT,CAEA,OAzNAm0C,EAAoBv4D,UAAY,CAC1BqiB,cACF,OAAO1lB,KAAKsqB,YAAY5E,OAC1B,EAEA+N,OAAQ,WACNzzB,KAAK85D,WAAY,EAEb95D,KAAKm8D,UACPn8D,KAAKm8D,QAAQ1oC,OAAO,IAAIlvB,EAAMqN,eAAe,8BAE7C5R,KAAKm8D,QAAU,MAGS,OAAtBn8D,KAAKu8D,eACPpsC,aAAanwB,KAAKu8D,cAClBv8D,KAAKu8D,aAAe,MAGtBv8D,KAAKsqB,YAAYnhB,OAAO,IAAI/B,MAAM,6BACpC,EAEAu1D,cAAcnqC,EAAOoqC,GACnB,IAAK,IAAI97D,EAAI,EAAG+7D,EAAMrqC,EAAM5xB,OAAQE,EAAI+7D,EAAK/7D,IAC3Cd,KAAKk8D,qBAAqBh8D,KAAKsyB,EAAM1xB,GAAG0gB,KAExCm2C,EAAW33D,KAAMwyB,EAAM1xB,GAAI87D,EAE/B,EAEAvD,YAAYxB,GACV,MAAMC,EAAoB93D,KAAKs4D,mBAAmBh2D,IAAIu1D,GAEtD,GAAIC,EAAkBtV,aACpB,OAGF,IAAIr3C,EAAY,GAEhB,GAAsC,IAAlC2sD,EAAkBC,YAAmB,CACvC,MAAM,SACJ7xB,EAAQ,WACR/E,GACE02B,EAAQh3B,MAERqF,IAAalmC,KAAKo8D,yBAA2Bj7B,IAAenhC,KAAKq8D,4BACnEr8D,KAAKs8D,eAAeh9C,KAAO,GAAG4mB,KAAY/E,IAC1CnhC,KAAKo8D,wBAA0Bl2B,EAC/BlmC,KAAKq8D,0BAA4Bl7B,GAGnC,MAAM,MACJj6B,GACElH,KAAKs8D,eAAevpB,YAAY8kB,EAAQtlC,aAExCrrB,EAAQ,IACV4wD,EAAkB1tD,MAAQ0tD,EAAkBC,YAAc7wD,EAC1DiE,EAAY,UAAU2sD,EAAkB1tD,SAE5C,CAEgC,IAA5B0tD,EAAkBj0B,QACpB14B,EAAY,UAAU2sD,EAAkBj0B,aAAa14B,KAGnDA,EAAUvK,OAAS,IACjBZ,KAAKs5D,wBACPxB,EAAkBE,kBAAoB7sD,GAGxC0sD,EAAQh3B,MAAM11B,UAAYA,GAG5BnL,KAAKs4D,mBAAmB51C,IAAIm1C,EAASC,GAErC93D,KAAKi8D,WAAWntD,YAAY+oD,EAC9B,EAEA4E,QAAS,SAA0BC,GACjC,MAAMl3C,GAAa,EAAIjhB,EAAMG,2BAC7B,IAAIk4D,EAAaz6D,OAAOY,OAAO,MAC/B,MAAMsE,EAASC,SAASC,cAAc,UAMtC,GALAF,EAAOy1D,WAAY,EACnB98D,KAAKs8D,eAAiBj1D,EAAOI,WAAW,KAAM,CAC5C6jC,OAAO,IAGLtrC,KAAKg8D,aAAc,CACrB,MAAMe,EAAY/8D,KAAKg8D,aAAaxpC,MAC9BwqC,EAAah9D,KAAKg8D,aAAahpC,OAErChzB,KAAK28D,cAAcI,EAAWC,GAE9Bx3C,EAAWtc,SACb,KAAO,KAAIlJ,KAAKo5D,mBAsBd,MAAM,IAAIhyD,MAAM,uEAtBkB,CAClC,MAAMurB,EAAO,KACX3yB,KAAKm8D,QAAQtpC,OAAOvqB,MAAK,EACvB5F,QACAowB,WAEIA,EACFtN,EAAWtc,WAIb/G,OAAO4wB,OAAO6pC,EAAYl6D,EAAMswB,QAEhChzB,KAAK28D,cAAcj6D,EAAM8vB,MAAOoqC,GAEhCjqC,IAAM,GACLnN,EAAWrc,OAAO,EAGvBnJ,KAAKm8D,QAAUn8D,KAAKo5D,mBAAmBnmC,YACvCN,GACF,CAEA,CAEAnN,EAAWE,QAAQpd,MAAK,KACtBs0D,EAAa,KAERF,EAGH18D,KAAKu8D,aAAeroC,YAAW,KAC7B1E,EAAOxvB,MACPA,KAAKu8D,aAAe,IAAI,GACvBG,GALHltC,EAAOxvB,KAMT,GACCA,KAAKsqB,YAAYnhB,OACtB,EACA8zD,eAAgB,SAAkCC,GAChD,IAAKl9D,KAAKs5D,wBAA0Bt5D,KAAKi6D,eACvC,OAGmB,OAAjBj6D,KAAK25D,UACPS,EAAOp6D,MACPA,KAAK25D,QAAU,MAGjB,MAAMwD,EAAe,GACfC,EAAa,GAEnB,IAAK,IAAIt8D,EAAI,EAAGklB,EAAKhmB,KAAKq4D,UAAUz3D,OAAQE,EAAIklB,EAAIllB,IAAK,CACvD,MAAM8/B,EAAM5gC,KAAKq4D,UAAUv3D,GAErBu8D,EAAWr9D,KAAKs4D,mBAAmBh2D,IAAIs+B,GAEzCy8B,EAAS7a,eAIT0a,GACFC,EAAav8D,OAAS,EACtBw8D,EAAWx8D,OAAS,EAEhBy8D,EAASrF,mBACXmF,EAAaj9D,KAAKm9D,EAASrF,mBAGzBqF,EAASjF,WAAa,GACxBgF,EAAWl9D,KAAK,GAAGm9D,EAASjF,gBAC5B+E,EAAaj9D,KAAK,eAAem9D,EAASjF,kBAE1CgF,EAAWl9D,KAAK,GAGdm9D,EAASlF,aAAe,EAC1BiF,EAAWl9D,KAAQm9D,EAASlF,aAAekF,EAASjzD,MAApC,MAEhBgzD,EAAWl9D,KAAK,GAGdm9D,EAASpF,cAAgB,EAC3BmF,EAAWl9D,KAAK,GAAGm9D,EAASpF,mBAE5BmF,EAAWl9D,KAAK,GAGdm9D,EAASnF,YAAc,GACzBkF,EAAWl9D,KAAQm9D,EAASnF,YAAcmF,EAASjzD,MAAnC,MAChB+yD,EAAaj9D,KAAK,eAAem9D,EAASnF,YAAcmF,EAASjzD,aAEjEgzD,EAAWl9D,KAAK,GAGlB0gC,EAAIC,MAAMy8B,QAAUF,EAAWv8D,KAAK,KAEhCs8D,EAAav8D,SACfggC,EAAIC,MAAM11B,UAAYgyD,EAAat8D,KAAK,QAG1C+/B,EAAIC,MAAMy8B,QAAU,KACpB18B,EAAIC,MAAM11B,UAAYkyD,EAASrF,mBAEnC,CACF,GAmBKlyD,CACT,CArqBsB,GAuqBtBnG,EAAQmG,gBAAkBA,CAEnB,EAED,SAAUlG,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQqG,iBAAc,EAEtB,IAAIzB,EAAQ9C,EAAoB,GAE5BgC,EAAiBhC,EAAoB,GAErCulB,EAAWvlB,EAAoB,GAEnC,IAAIuE,EAAc,WAChB,MAAM,IAAIoB,MAAM,+BAClB,EAEAzH,EAAQqG,YAAcA,EACtB,CACE,MAAMu3D,EAAe,CACnB5J,UAAW,SACXD,WAAY,SACZ3sB,UAAW,WAEPy2B,EAAS,uCACTC,EAAW,+BACX1wB,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SAEtC0wB,EAAsB,WAC1B,MAAMC,EAAa,IAAIh1D,WAAW,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KACvEi1D,EAAqB,GACrBC,EAAW,IAAIv4B,WAAW,KAEhC,IAAK,IAAIxkC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,IAAIgB,EAAIhB,EAER,IAAK,IAAIq1C,EAAI,EAAGA,EAAI,EAAGA,IAEnBr0C,EADM,EAAJA,EACE,WAAaA,GAAK,EAAI,WAEtBA,GAAK,EAAI,WAIjB+7D,EAAS/8D,GAAKgB,CAChB,CAEA,SAASg8D,EAAMt7C,EAAM1U,EAAOX,GAC1B,IAAI4wD,GAAO,EAEX,IAAK,IAAIj9D,EAAIgN,EAAOhN,EAAIqM,EAAKrM,IAAK,CAChC,MAAMkjB,EAAsB,KAAjB+5C,EAAMv7C,EAAK1hB,IAChBsiB,EAAIy6C,EAAS75C,GACnB+5C,EAAMA,IAAQ,EAAI36C,CACpB,CAEA,OAAc,EAAP26C,CACT,CAEA,SAASC,EAAc9zD,EAAMk3B,EAAM5e,EAAMmd,GACvC,IAAIp8B,EAAIo8B,EACR,MAAMk9B,EAAMz7B,EAAKxgC,OACjB4hB,EAAKjf,GAAKs5D,GAAO,GAAK,IACtBr6C,EAAKjf,EAAI,GAAKs5D,GAAO,GAAK,IAC1Br6C,EAAKjf,EAAI,GAAKs5D,GAAO,EAAI,IACzBr6C,EAAKjf,EAAI,GAAW,IAANs5D,EACdt5D,GAAK,EACLif,EAAKjf,GAA0B,IAArB2G,EAAKiY,WAAW,GAC1BK,EAAKjf,EAAI,GAA0B,IAArB2G,EAAKiY,WAAW,GAC9BK,EAAKjf,EAAI,GAA0B,IAArB2G,EAAKiY,WAAW,GAC9BK,EAAKjf,EAAI,GAA0B,IAArB2G,EAAKiY,WAAW,GAC9B5e,GAAK,EACLif,EAAKE,IAAI0e,EAAM79B,GACfA,GAAK69B,EAAKxgC,OACV,MAAMm9D,EAAMD,EAAMt7C,EAAMmd,EAAS,EAAGp8B,GACpCif,EAAKjf,GAAKw6D,GAAO,GAAK,IACtBv7C,EAAKjf,EAAI,GAAKw6D,GAAO,GAAK,IAC1Bv7C,EAAKjf,EAAI,GAAKw6D,GAAO,EAAI,IACzBv7C,EAAKjf,EAAI,GAAW,IAANw6D,CAChB,CAEA,SAASE,EAAQz7C,EAAM1U,EAAOX,GAC5B,IAAI6W,EAAI,EACJZ,EAAI,EAER,IAAK,IAAItiB,EAAIgN,EAAOhN,EAAIqM,IAAOrM,EAC7BkjB,GAAKA,GAAe,IAAVxB,EAAK1hB,KAAc,MAC7BsiB,GAAKA,EAAIY,GAAK,MAGhB,OAAOZ,GAAK,GAAKY,CACnB,CAEA,SAASk6C,EAAYC,GACnB,IAAKn3C,EAAS/gB,SACZ,OAAOm4D,EAAwBD,GAGjC,IACE,IAAI/uD,EAGFA,EADEM,SAAS8W,QAAQC,SAASs+B,OAAS,EAC7BoZ,EAEAE,OAAOC,KAAKH,GAGtB,MAAMI,EAAS,qCAA4BnvD,EAAO,CAChDkR,MAAO,IAGT,OAAOi+C,aAAkB51D,WAAa41D,EAAS,IAAI51D,WAAW41D,EAGhE,CAFE,MAAO19C,IACP,EAAItc,EAAMmJ,MAAM,gEAAkEmT,EACpF,CAEA,OAAOu9C,EAAwBD,EACjC,CAEA,SAASC,EAAwBD,GAC/B,IAAItB,EAAMsB,EAASv9D,OACnB,MAAM49D,EAAiB,MACjBC,EAAgBxzD,KAAKqhC,KAAKuwB,EAAM2B,GAChCE,EAAO,IAAI/1D,WAAW,EAAIk0D,EAAsB,EAAhB4B,EAAoB,GAC1D,IAAI5a,EAAK,EACT6a,EAAK7a,KAAQ,IACb6a,EAAK7a,KAAQ,IACb,IAAIthC,EAAM,EAEV,MAAOs6C,EAAM2B,EACXE,EAAK7a,KAAQ,EACb6a,EAAK7a,KAAQ,IACb6a,EAAK7a,KAAQ,IACb6a,EAAK7a,KAAQ,EACb6a,EAAK7a,KAAQ,EACb6a,EAAKh8C,IAAIy7C,EAASj8C,SAASK,EAAKA,EAAMi8C,GAAiB3a,GACvDA,GAAM2a,EACNj8C,GAAOi8C,EACP3B,GAAO2B,EAGTE,EAAK7a,KAAQ,EACb6a,EAAK7a,KAAc,IAANgZ,EACb6B,EAAK7a,KAAQgZ,GAAO,EAAI,IACxB6B,EAAK7a,KAAe,KAANgZ,EACd6B,EAAK7a,MAAgB,OAANgZ,IAAiB,EAAI,IACpC6B,EAAKh8C,IAAIy7C,EAASj8C,SAASK,GAAMshC,GACjCA,GAAMsa,EAASv9D,OAAS2hB,EACxB,MAAMo8C,EAAQV,EAAQE,EAAU,EAAGA,EAASv9D,QAK5C,OAJA89D,EAAK7a,KAAQ8a,GAAS,GAAK,IAC3BD,EAAK7a,KAAQ8a,GAAS,GAAK,IAC3BD,EAAK7a,KAAQ8a,GAAS,EAAI,IAC1BD,EAAK7a,KAAgB,IAAR8a,EACND,CACT,CAEA,SAASE,EAAOp6B,EAAS8E,EAAMzjB,EAAiBg5C,GAC9C,MAAM33D,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OACvB,IAAI23D,EAAUC,EAAWh6B,EACzB,MAAMrjB,EAAQ8iB,EAAQhiB,KAEtB,OAAQ8mB,GACN,KAAK/kC,EAAMsN,UAAU8B,eACnBorD,EAAY,EACZD,EAAW,EACX/5B,EAAW79B,EAAQ,GAAK,EACxB,MAEF,KAAK3C,EAAMsN,UAAU+B,UACnBmrD,EAAY,EACZD,EAAW,EACX/5B,EAAmB,EAAR79B,EACX,MAEF,KAAK3C,EAAMsN,UAAUgC,WACnBkrD,EAAY,EACZD,EAAW,EACX/5B,EAAmB,EAAR79B,EACX,MAEF,QACE,MAAM,IAAIE,MAAM,kBAGpB,MAAM+2D,EAAW,IAAIx1D,YAAY,EAAIo8B,GAAY59B,GACjD,IAAI63D,EAAiB,EACjBC,EAAc,EAElB,IAAK,IAAIzzD,EAAI,EAAGA,EAAIrE,IAAUqE,EAC5B2yD,EAASa,KAAoB,EAC7Bb,EAASz7C,IAAIhB,EAAMQ,SAAS+8C,EAAaA,EAAcl6B,GAAWi6B,GAClEC,GAAel6B,EACfi6B,GAAkBj6B,EAGpB,GAAIuE,IAAS/kC,EAAMsN,UAAU8B,gBAAkBkrD,EAAQ,CACrDG,EAAiB,EAEjB,IAAK,IAAIxzD,EAAI,EAAGA,EAAIrE,EAAQqE,IAAK,CAC/BwzD,IAEA,IAAK,IAAIl+D,EAAI,EAAGA,EAAIikC,EAAUjkC,IAC5Bq9D,EAASa,MAAqB,GAElC,CACF,CAEA,MAAME,EAAO,IAAIv2D,WAAW,CAACzB,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,EAAcC,GAAU,GAAK,IAAMA,GAAU,GAAK,IAAMA,GAAU,EAAI,IAAe,IAATA,EAAe23D,EAAUC,EAAW,EAAM,EAAM,IAC9ML,EAAOR,EAAYC,GACnBgB,EAAYxB,EAAW/8D,OAA8B,EAArBg9D,EAAyBsB,EAAKt+D,OAAS89D,EAAK99D,OAC5E4hB,EAAO,IAAI7Z,WAAWw2D,GAC5B,IAAIx/B,EAAS,EAQb,OAPAnd,EAAKE,IAAIi7C,EAAYh+B,GACrBA,GAAUg+B,EAAW/8D,OACrBo9D,EAAc,OAAQkB,EAAM18C,EAAMmd,GAClCA,GAAUi+B,EAAqBsB,EAAKt+D,OACpCo9D,EAAc,QAASU,EAAMl8C,EAAMmd,GACnCA,GAAUi+B,EAAqBc,EAAK99D,OACpCo9D,EAAc,OAAQ,IAAIr1D,WAAW,GAAI6Z,EAAMmd,IACxC,EAAIp7B,EAAME,iBAAiB+d,EAAM,YAAaqD,EACvD,CAEA,OAAO,SAA6B2e,EAAS3e,EAAiBg5C,GAC5D,MAAMv1B,OAAwBloC,IAAjBojC,EAAQ8E,KAAqB/kC,EAAMsN,UAAU8B,eAAiB6wB,EAAQ8E,KACnF,OAAOs1B,EAAOp6B,EAAS8E,EAAMzjB,EAAiBg5C,EAChD,CACF,CAvM4B,GAyM5B,MAAMO,EACJv3D,cACE7H,KAAKmmC,cAAgB,EACrBnmC,KAAK0zD,WAAa6J,EAAa7J,WAC/B1zD,KAAKkmC,SAAW,EAChBlmC,KAAKomC,WAAa7hC,EAAMgO,gBACxBvS,KAAKsmC,WAAa/hC,EAAMiO,qBACxBxS,KAAKumC,QAAU,EACfvmC,KAAK6mC,kBAAoBtiC,EAAMkN,kBAAkBwB,KACjDjT,KAAKqmC,gBAAkB,EACvBrmC,KAAKuL,EAAI,EACTvL,KAAKwL,EAAI,EACTxL,KAAKwmC,MAAQ,EACbxmC,KAAKymC,MAAQ,EACbzmC,KAAK0mC,YAAc,EACnB1mC,KAAK2mC,YAAc,EACnB3mC,KAAK4mC,WAAa,EAClB5mC,KAAK8mC,SAAW,EAChB9mC,KAAK+mC,UAAYw2B,EAAax2B,UAC9B/mC,KAAKgnC,YAAc,UACnBhnC,KAAKknC,UAAY,EACjBlnC,KAAKmnC,YAAc,EACnBnnC,KAAKonC,UAAY,EACjBpnC,KAAK+qC,SAAW,GAChB/qC,KAAK8qC,QAAU,GACf9qC,KAAKgrC,WAAa,EAClBhrC,KAAKquC,UAAY,GACjBruC,KAAKsuC,UAAY,EACjBtuC,KAAKq/D,aAAe,GACpBr/D,KAAKs/D,cAAgB,KACrBt/D,KAAKu/D,UAAY,KACjBv/D,KAAKw/D,OAAS,EAChB,CAEAp0D,QACE,OAAOjJ,OAAOY,OAAO/C,KACvB,CAEAunC,gBAAgBh8B,EAAGC,GACjBxL,KAAKuL,EAAIA,EACTvL,KAAKwL,EAAIA,CACX,EAIF,SAASi0D,EAAaC,GACpB,IAAIC,EAAS,GACb,MAAMrnB,EAAM,GAEZ,IAAK,MAAMsnB,KAAiBF,EACD,SAArBE,EAAcC,GAWO,YAArBD,EAAcC,GAChBF,EAASrnB,EAAI1U,MAEb+7B,EAAOz/D,KAAK0/D,IAbZD,EAAOz/D,KAAK,CACVytC,KAAM,GACNkyB,GAAI,QACJrtC,MAAO,KAET8lB,EAAIp4C,KAAKy/D,GACTA,EAASA,EAAOA,EAAO/+D,OAAS,GAAG4xB,OAWvC,OAAOmtC,CACT,CAEA,SAASG,EAAGp9D,GACV,GAAI6d,OAAOC,UAAU9d,GACnB,OAAOA,EAAMpC,WAGf,MAAMkD,EAAId,EAAMq9D,QAAQ,IACxB,IAAIj/D,EAAI0C,EAAE5C,OAAS,EAEnB,GAAa,MAAT4C,EAAE1C,GACJ,OAAO0C,EAGT,GACE1C,UACgB,MAAT0C,EAAE1C,IAEX,OAAO0C,EAAE6J,UAAU,EAAY,MAAT7J,EAAE1C,GAAaA,EAAIA,EAAI,EAC/C,CAEA,SAASk/D,EAAGn+D,GACV,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAAU,CAC5B,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAClB,OAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GACX,GAGF,SAASi+D,EAAGj+D,EAAE,OAAOi+D,EAAGj+D,EAAE,OAGnC,GAAIA,EAAE,KAAOA,EAAE,IAAMA,EAAE,MAAQA,EAAE,GAAI,CACnC,MAAMmiB,EAAsB,IAAlB/Y,KAAKg1D,KAAKp+D,EAAE,IAAYoJ,KAAK0tD,GACvC,MAAO,UAAUmH,EAAG97C,KACtB,CACF,MACE,GAAa,IAATniB,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,GAC9C,MAAO,aAAai+D,EAAGj+D,EAAE,OAAOi+D,EAAGj+D,EAAE,OAIzC,MAAO,UAAUi+D,EAAGj+D,EAAE,OAAOi+D,EAAGj+D,EAAE,OAAOi+D,EAAGj+D,EAAE,OAAOi+D,EAAGj+D,EAAE,OAAOi+D,EAAGj+D,EAAE,OAAYi+D,EAAGj+D,EAAE,MACzF,CAEA,IAAIq+D,EAAY,EACZC,EAAY,EACZC,EAAe,EACnBzgE,EAAQqG,YAAcA,EAAc,MAClC6B,YAAY6mB,EAAYC,EAAM9I,GAAkB,GAC9C7lB,KAAK6vD,WAAa,IAAIpsD,EAAemD,cACrC5G,KAAK6hC,QAAU,IAAIu9B,EACnBp/D,KAAKqgE,gBAAkB97D,EAAMgO,gBAC7BvS,KAAKsgE,eAAiB,GACtBtgE,KAAKugE,WAAa,GAClBvgE,KAAK0uB,WAAaA,EAClB1uB,KAAK2uB,KAAOA,EACZ3uB,KAAK4nC,YAAc,KACnB5nC,KAAK6nC,eAAgB,EACrB7nC,KAAKwgE,YAAa,EAClBxgE,KAAKygE,cAAgBt+D,OAAOY,OAAO,MACnC/C,KAAK0gE,SAAW,KAChB1gE,KAAK6lB,kBAAoBA,EACzB7lB,KAAK2gE,mBAAqB,GAE1B,IAAK,MAAMxzB,KAAM5oC,EAAMO,IACrB9E,KAAK2gE,mBAAmBp8D,EAAMO,IAAIqoC,IAAOA,CAE7C,CAEAnzB,OACEha,KAAKsgE,eAAepgE,KAAKF,KAAKqgE,iBAC9B,MAAM38B,EAAM1jC,KAAK6hC,QACjB7hC,KAAKugE,WAAWrgE,KAAKwjC,GACrB1jC,KAAK6hC,QAAU6B,EAAIt4B,OACrB,CAEA6O,UACEja,KAAKqgE,gBAAkBrgE,KAAKsgE,eAAe18B,MAC3C5jC,KAAK6hC,QAAU7hC,KAAKugE,WAAW38B,MAC/B5jC,KAAK4nC,YAAc,KACnB5nC,KAAK4gE,KAAO,IACd,CAEA1rB,MAAM1iB,GACJxyB,KAAKga,OACLha,KAAK6gE,cAAcruC,GACnBxyB,KAAKia,SACP,CAEA6mD,iBAAiBrwC,GACf,MAAMC,EAAUD,EAAaC,QACvBC,EAAYF,EAAaE,UAE/B,IAAK,IAAI7vB,EAAI,EAAGklB,EAAK0K,EAAQ9vB,OAAQE,EAAIklB,EAAIllB,IAC3C,GAAI4vB,EAAQ5vB,KAAOyD,EAAMO,IAAIyU,WAI7B,IAAK,MAAM0H,KAAO0P,EAAU7vB,GAAI,CAC9B,MAAMktC,EAAW/sB,EAAIgtB,WAAW,MAAQjuC,KAAK0uB,WAAa1uB,KAAK2uB,KACzDjJ,EAAU,IAAIzc,SAAQC,IAC1B8kC,EAAS1rC,IAAI2e,EAAK/X,EAAQ,IAE5BlJ,KAAK6hC,QAAQw9B,aAAan/D,KAAKwlB,EACjC,CAGF,OAAOzc,QAAQ6gB,IAAI9pB,KAAK6hC,QAAQw9B,aAClC,CAEAl0D,UAAU6Y,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GACvB,MAAM88B,EAAkB,CAACr8C,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GACxCvjC,KAAKqgE,gBAAkB97D,EAAMc,KAAK8F,UAAUnL,KAAKqgE,gBAAiBA,GAClErgE,KAAK4gE,KAAO,IACd,CAEAG,OAAOtwC,EAAcf,GACnB1vB,KAAK0vB,SAAWA,EAEhB,MAAMsxC,EAAahhE,KAAKi3B,YAAYvH,GAEpC,OAAO1vB,KAAK8gE,iBAAiBrwC,GAAcnoB,MAAK,KAC9CtI,KAAKqgE,gBAAkB97D,EAAMgO,gBAC7BvS,KAAK6gE,cAAc7gE,KAAKihE,cAAcxwC,IAC/BuwC,IAEX,CAEAC,cAAcxwC,GACZ,MAAMywC,EAAoBlhE,KAAK2gE,mBACzBhwC,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QACvBgvC,EAAS,GAEf,IAAK,IAAI5+D,EAAI,EAAGklB,EAAK0K,EAAQ9vB,OAAQE,EAAIklB,EAAIllB,IAAK,CAChD,MAAM6sC,EAAOjd,EAAQ5vB,GACrB4+D,EAAOx/D,KAAK,CACVytC,OACAkyB,GAAIqB,EAAkBvzB,GACtB3Z,KAAMrD,EAAU7vB,IAEpB,CAEA,OAAO2+D,EAAaC,EACtB,CAEAmB,cAAclB,GACZ,IAAK,MAAMwB,KAAiBxB,EAAQ,CAClC,MAAME,EAAKsB,EAActB,GACnBlyB,EAAOwzB,EAAcxzB,KACrB3Z,EAAOmtC,EAAcntC,KAE3B,OAAe,EAAP2Z,GACN,KAAKppC,EAAMO,IAAIsW,UACbpb,KAAKob,YACL,MAEF,KAAK7W,EAAMO,IAAIyU,WACb,MAEF,KAAKhV,EAAMO,IAAI2W,WACbzb,KAAKyb,WAAWuY,GAChB,MAEF,KAAKzvB,EAAMO,IAAIgX,mBACb9b,KAAK8b,mBAAmBkY,EAAK,GAAIA,EAAK,IACtC,MAEF,KAAKzvB,EAAMO,IAAI4W,QACb1b,KAAK0b,QAAQsY,GACb,MAEF,KAAKzvB,EAAMO,IAAImX,SACbjc,KAAKic,SAAS+X,EAAK,IACnB,MAEF,KAAKzvB,EAAMO,IAAIoX,eACblc,KAAKic,SAAS+X,EAAK,IACnB,MAEF,KAAKzvB,EAAMO,IAAIuW,QACbrb,KAAKqb,UACL,MAEF,KAAK9W,EAAMO,IAAI+W,SACb7b,KAAK6b,SAASmY,EAAK,GAAIA,EAAK,IAC5B,MAEF,KAAKzvB,EAAMO,IAAIwW,eACbtb,KAAKsb,eAAe0Y,EAAK,IACzB,MAEF,KAAKzvB,EAAMO,IAAIyW,eACbvb,KAAKub,eAAeyY,EAAK,IACzB,MAEF,KAAKzvB,EAAMO,IAAI0W,UACbxb,KAAKwb,UAAUwY,EAAK,IACpB,MAEF,KAAKzvB,EAAMO,IAAIiX,cACb/b,KAAK+b,cAAciY,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACrE,MAEF,KAAKzvB,EAAMO,IAAI8W,YACb5b,KAAK4b,YAAYoY,EAAK,IACtB,MAEF,KAAKzvB,EAAMO,IAAI6W,qBACb3b,KAAK2b,qBAAqBqY,EAAK,IAC/B,MAEF,KAAKzvB,EAAMO,IAAI0U,aACbxZ,KAAKwZ,aAAawa,EAAK,IACvB,MAEF,KAAKzvB,EAAMO,IAAI4U,YACb1Z,KAAK0Z,YAAYsa,EAAK,IACtB,MAEF,KAAKzvB,EAAMO,IAAI2U,WACbzZ,KAAKyZ,WAAWua,EAAK,IACrB,MAEF,KAAKzvB,EAAMO,IAAI6U,cACb3Z,KAAK2Z,cAAcqa,EAAK,IACxB,MAEF,KAAKzvB,EAAMO,IAAIkY,gBACbhd,KAAKgd,gBAAgBgX,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC5C,MAEF,KAAKzvB,EAAMO,IAAIiY,kBACb/c,KAAK+c,kBAAkBiX,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC9C,MAEF,KAAKzvB,EAAMO,IAAI4X,gBACb1c,KAAK0c,gBAAgBsX,GACrB,MAEF,KAAKzvB,EAAMO,IAAI8X,cACb5c,KAAK4c,cAAcoX,GACnB,MAEF,KAAKzvB,EAAMO,IAAIqY,YACbnd,KAAKmd,YAAY6W,EAAK,IACtB,MAEF,KAAKzvB,EAAMO,IAAI8U,QACb5Z,KAAK4Z,QAAQoa,EAAK,GAAIA,EAAK,IAC3B,MAEF,KAAKzvB,EAAMO,IAAI+U,mBACb7Z,KAAK6Z,mBAAmBma,EAAK,IAC7B,MAEF,KAAKzvB,EAAMO,IAAIgV,YACb9Z,KAAK8Z,YAAYka,EAAK,IACtB,MAEF,KAAKzvB,EAAMO,IAAIiV,UACb/Z,KAAK+Z,UAAUia,EAAK,IACpB,MAEF,KAAKzvB,EAAMO,IAAI6V,KACb3a,KAAK2a,OACL,MAEF,KAAKpW,EAAMO,IAAI8V,OACb5a,KAAK4a,SACL,MAEF,KAAKrW,EAAMO,IAAI2V,OACbza,KAAKya,SACL,MAEF,KAAKlW,EAAMO,IAAI+V,WACb7a,KAAK6a,aACL,MAEF,KAAKtW,EAAMO,IAAIgW,aACb9a,KAAK8a,eACL,MAEF,KAAKvW,EAAMO,IAAIoW,KACblb,KAAKkb,KAAK,WACV,MAEF,KAAK3W,EAAMO,IAAIqW,OACbnb,KAAKkb,KAAK,WACV,MAEF,KAAK3W,EAAMO,IAAIia,yBACb/e,KAAK+e,2BACL,MAEF,KAAKxa,EAAMO,IAAI4Z,kBACb1e,KAAK0e,kBAAkBsV,EAAK,IAC5B,MAEF,KAAKzvB,EAAMO,IAAI6Z,wBACb3e,KAAK2e,wBAAwBqV,EAAK,IAClC,MAEF,KAAKzvB,EAAMO,IAAI0Z,sBACbxe,KAAKwe,sBAAsBwV,EAAK,IAChC,MAEF,KAAKzvB,EAAMO,IAAIiZ,sBACb/d,KAAK+d,sBAAsBiW,EAAK,GAAIA,EAAK,IACzC,MAEF,KAAKzvB,EAAMO,IAAIkZ,oBACbhe,KAAKge,sBACL,MAEF,KAAKzZ,EAAMO,IAAIyV,UACbva,KAAKua,YACL,MAEF,KAAKhW,EAAMO,IAAI4V,YACb1a,KAAK0a,cACL,MAEF,KAAKnW,EAAMO,IAAIiW,gBACb/a,KAAK+a,kBACL,MAEF,KAAKxW,EAAMO,IAAIkW,kBACbhb,KAAKgb,oBACL,MAEF,KAAKzW,EAAMO,IAAIkX,SACbhc,KAAKgc,WACL,MAEF,KAAKzX,EAAMO,IAAIqG,UACbnL,KAAKmL,UAAU6oB,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjE,MAEF,KAAKzvB,EAAMO,IAAIka,cACbhf,KAAKgf,cAAcgV,EAAK,GAAIA,EAAK,IACjC,MAEF,KAAKzvB,EAAMO,IAAImW,QACbjb,KAAKib,UACL,MAEF,KAAK,GACHjb,KAAKk1C,MAAMisB,EAAc3uC,OACzB,MAEF,SACE,EAAIjuB,EAAMmJ,MAAM,0BAA0BmyD,KAC1C,MAEN,CACF,CAEAtkD,eAAeorB,GACb3mC,KAAK6hC,QAAQ8E,YAAcA,CAC7B,CAEArrB,eAAeorB,GACb1mC,KAAK6hC,QAAQ6E,YAAcA,CAC7B,CAEA1qB,WACEhc,KAAK6b,SAAS,EAAG7b,KAAK6hC,QAAQ0E,QAChC,CAEAxqB,cAAciI,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAC3B,MAAM1B,EAAU7hC,KAAK6hC,QACrBA,EAAQuE,WAAavE,EAAQu/B,WAAa,CAACp9C,EAAGZ,EAAGthB,EAAGC,EAAG8e,EAAG0iB,GAC1D1B,EAAQwE,gBAAkBp7B,KAAKiZ,KAAKF,EAAIA,EAAIZ,EAAIA,GAChDye,EAAQt2B,EAAIs2B,EAAQ2E,MAAQ,EAC5B3E,EAAQr2B,EAAIq2B,EAAQ4E,MAAQ,EAC5B5E,EAAQw/B,QAAU,GAClBx/B,EAAQy/B,QAAU,GAClBz/B,EAAQ0/B,MAAQvhE,KAAK6vD,WAAWtoD,cAAc,aAC9Cs6B,EAAQ0/B,MAAMC,eAAe,KAAM,cAAe3/B,EAAQV,YAC1DU,EAAQ0/B,MAAMC,eAAe,KAAM,YAAa,GAAG1B,EAAGj+B,EAAQqE,eAC9DrE,EAAQ0/B,MAAMC,eAAe,KAAM,IAAK1B,GAAIj+B,EAAQr2B,IACpDq2B,EAAQ4/B,WAAazhE,KAAK6vD,WAAWtoD,cAAc,YACnDs6B,EAAQ4/B,WAAW3yD,YAAY+yB,EAAQ0/B,MACzC,CAEAnmD,YACE,MAAMymB,EAAU7hC,KAAK6hC,QACrBA,EAAQt2B,EAAIs2B,EAAQ2E,MAAQ,EAC5B3E,EAAQr2B,EAAIq2B,EAAQ4E,MAAQ,EAC5B5E,EAAQuE,WAAa7hC,EAAMgO,gBAC3BsvB,EAAQu/B,WAAa78D,EAAMgO,gBAC3BsvB,EAAQwE,gBAAkB,EAC1BxE,EAAQ0/B,MAAQvhE,KAAK6vD,WAAWtoD,cAAc,aAC9Cs6B,EAAQ4/B,WAAazhE,KAAK6vD,WAAWtoD,cAAc,YACnDs6B,EAAQ6/B,OAAS1hE,KAAK6vD,WAAWtoD,cAAc,SAC/Cs6B,EAAQw/B,QAAU,GAClBx/B,EAAQy/B,QAAU,EACpB,CAEAzlD,SAAStQ,EAAGC,GACV,MAAMq2B,EAAU7hC,KAAK6hC,QACrBA,EAAQt2B,EAAIs2B,EAAQ2E,OAASj7B,EAC7Bs2B,EAAQr2B,EAAIq2B,EAAQ4E,OAASj7B,EAC7Bq2B,EAAQw/B,QAAU,GAClBx/B,EAAQy/B,QAAU,GAClBz/B,EAAQ0/B,MAAQvhE,KAAK6vD,WAAWtoD,cAAc,aAC9Cs6B,EAAQ0/B,MAAMC,eAAe,KAAM,cAAe3/B,EAAQV,YAC1DU,EAAQ0/B,MAAMC,eAAe,KAAM,YAAa,GAAG1B,EAAGj+B,EAAQqE,eAC9DrE,EAAQ0/B,MAAMC,eAAe,KAAM,IAAK1B,GAAIj+B,EAAQr2B,GACtD,CAEAyQ,SAASs1B,GACP,MAAM1P,EAAU7hC,KAAK6hC,QACfviB,EAAOuiB,EAAQviB,KACf4mB,EAAWrE,EAAQqE,SAEzB,GAAiB,IAAbA,EACF,OAGF,MAAMC,EAAgBtE,EAAQsE,cACxBO,EAAc7E,EAAQ6E,YACtBC,EAAc9E,EAAQ8E,YACtB8J,EAAgB5O,EAAQ4O,cACxB7J,EAAa/E,EAAQ+E,WAAa6J,EAClCiB,EAAWpyB,EAAKoyB,SAChBC,EAAaD,EAAW,GAAK,EAC7BE,EAAkBtyB,EAAKsyB,gBACvBC,EAAoB3L,EAAWrE,EAAQyE,WAAW,GACxD,IAAI/6B,EAAI,EAER,IAAK,MAAMymC,KAAST,EAAQ,CAC1B,GAAc,OAAVS,EAAgB,CAClBzmC,GAAKklC,EAAgB9J,EACrB,QACF,CAAO,IAAI,EAAIpiC,EAAMsM,OAAOmhC,GAAQ,CAClCzmC,GAAKomC,EAAaK,EAAQ9L,EAAW,IACrC,QACF,CAEA,MAAMoK,GAAW0B,EAAMU,QAAU/L,EAAc,GAAKD,EAC9C/E,EAAYqQ,EAAMW,SACxB,IAAIV,EAASC,EA2BTM,EA1BAtrC,EAAQ8qC,EAAM9qC,MAElB,GAAIwqC,EAAU,CACZ,IAAIY,EACJ,MAAMD,EAAUL,EAAMK,SAAWT,EACjCU,EAAKN,EAAMK,QAAUA,EAAQ,GAAa,GAARnrC,EAClCorC,GAAMA,EAAKT,EACX,MAAMU,EAAKF,EAAQ,GAAKR,EACxB3qC,EAAQmrC,GAAWA,EAAQ,GAAKnrC,EAChC+qC,EAAUK,EAAKnM,EACf+L,GAAW3mC,EAAIgnC,GAAMpM,CACvB,MACE8L,EAAU1mC,EAAI46B,EACd+L,EAAU,GAGRF,EAAMiB,UAAY3zB,EAAK6e,eACzB0D,EAAQw/B,QAAQnhE,KAAK2hC,EAAQt2B,EAAI0mC,GAE7BP,GACF7P,EAAQy/B,QAAQphE,MAAM2hC,EAAQr2B,EAAI0mC,GAGpCrQ,EAAQ0/B,MAAMhvC,aAAeoP,GAM7B6Q,EADEd,EACUxqC,EAAQ2qC,EAAoBvB,EAAUG,EAEtCvpC,EAAQ2qC,EAAoBvB,EAAUG,EAGpDllC,GAAKinC,CACP,CAEA3Q,EAAQ0/B,MAAMC,eAAe,KAAM,IAAK3/B,EAAQw/B,QAAQ9gE,IAAIu/D,GAAIj/D,KAAK,MAEjE6wC,EACF7P,EAAQ0/B,MAAMC,eAAe,KAAM,IAAK3/B,EAAQy/B,QAAQ/gE,IAAIu/D,GAAIj/D,KAAK,MAErEghC,EAAQ0/B,MAAMC,eAAe,KAAM,IAAK1B,GAAIj+B,EAAQr2B,IAGlDkmC,EACF7P,EAAQr2B,GAAKD,EAEbs2B,EAAQt2B,GAAKA,EAAIq7B,EAGnB/E,EAAQ0/B,MAAMC,eAAe,KAAM,cAAe3/B,EAAQV,YAC1DU,EAAQ0/B,MAAMC,eAAe,KAAM,YAAa,GAAG1B,EAAGj+B,EAAQqE,eAE1DrE,EAAQ8xB,YAAc4J,EAAa5J,WACrC9xB,EAAQ0/B,MAAMC,eAAe,KAAM,aAAc3/B,EAAQ8xB,WAGvD9xB,EAAQ6xB,aAAe6J,EAAa7J,YACtC7xB,EAAQ0/B,MAAMC,eAAe,KAAM,cAAe3/B,EAAQ6xB,YAG5D,MAAMviB,EAAiBtP,EAAQgF,kBAAoBtiC,EAAMkN,kBAAkBgC,iBAgB3E,GAdI09B,IAAmB5sC,EAAMkN,kBAAkBwB,MAAQk+B,IAAmB5sC,EAAMkN,kBAAkB0B,aAC5F0uB,EAAQkF,YAAcw2B,EAAax2B,WACrClF,EAAQ0/B,MAAMC,eAAe,KAAM,OAAQ3/B,EAAQkF,WAGjDlF,EAAQqF,UAAY,GACtBrF,EAAQ0/B,MAAMC,eAAe,KAAM,eAAgB3/B,EAAQqF,YAEpDrF,EAAQgF,oBAAsBtiC,EAAMkN,kBAAkB+B,YAC/DquB,EAAQ0/B,MAAMC,eAAe,KAAM,OAAQ,eAE3C3/B,EAAQ0/B,MAAMC,eAAe,KAAM,OAAQ,QAGzCrwB,IAAmB5sC,EAAMkN,kBAAkByB,QAAUi+B,IAAmB5sC,EAAMkN,kBAAkB0B,YAAa,CAC/G,MAAMwuD,EAAiB,GAAK9/B,EAAQwE,iBAAmB,GAEvDrmC,KAAK4hE,qBAAqB//B,EAAQ0/B,MAAOI,EAC3C,CAEA,IAAIv7B,EAAavE,EAAQuE,WAEA,IAArBvE,EAAQiF,WACVV,EAAaA,EAAW/6B,QACxB+6B,EAAW,IAAMvE,EAAQiF,UAG3BjF,EAAQ4/B,WAAWD,eAAe,KAAM,YAAa,GAAGxB,EAAG55B,YAAqB05B,EAAGl5B,WACnF/E,EAAQ4/B,WAAWD,eAAehE,EAAQ,YAAa,YACvD37B,EAAQ4/B,WAAW3yD,YAAY+yB,EAAQ0/B,OACvC1/B,EAAQ6/B,OAAO5yD,YAAY+yB,EAAQ4/B,YAEnCzhE,KAAK6hE,wBAAwB/yD,YAAY+yB,EAAQ4/B,WACnD,CAEA3lD,mBAAmBvQ,EAAGC,GACpBxL,KAAKyb,YAAYjQ,GACjBxL,KAAK6b,SAAStQ,EAAGC,EACnB,CAEAs2D,aAAatxB,GACX,IAAKA,EAAQhuB,KACX,MAAM,IAAIpb,MAAM,qGAGbpH,KAAK0gE,WACR1gE,KAAK0gE,SAAW1gE,KAAK6vD,WAAWtoD,cAAc,aAC9CvH,KAAK0gE,SAASc,eAAe,KAAM,OAAQ,YAC3CxhE,KAAK+hE,KAAKjzD,YAAY9O,KAAK0gE,WAG7B,MAAMj6D,GAAM,EAAIlC,EAAME,iBAAiB+rC,EAAQhuB,KAAMguB,EAAQ/O,SAAUzhC,KAAK6lB,iBAC5E7lB,KAAK0gE,SAASnuC,aAAe,8BAA8Bie,EAAQ7P,yBAA8Bl6B,SACnG,CAEAiV,QAAQ3M,GACN,MAAM8yB,EAAU7hC,KAAK6hC,QACf2O,EAAUxwC,KAAK0uB,WAAWpsB,IAAIyM,EAAQ,IAC5C,IAAIujB,EAAOvjB,EAAQ,GACnB8yB,EAAQviB,KAAOkxB,GAEXxwC,KAAKwgE,YAAehwB,EAAQrS,aAAgBn+B,KAAKygE,cAAcjwB,EAAQ7P,cACzE3gC,KAAK8hE,aAAatxB,GAClBxwC,KAAKygE,cAAcjwB,EAAQ7P,YAAc6P,GAG3C3O,EAAQyE,WAAakK,EAAQlK,WAAakK,EAAQlK,WAAa/hC,EAAMiO,qBACrE,IAAIm+B,EAAO,SAEPH,EAAQ5G,MACV+G,EAAO,MACEH,EAAQG,OACjBA,EAAO,QAGT,MAAMC,EAASJ,EAAQI,OAAS,SAAW,SAEvCte,EAAO,GACTA,GAAQA,EACRuP,EAAQ4O,eAAiB,GAEzB5O,EAAQ4O,cAAgB,EAG1B5O,EAAQqE,SAAW5T,EACnBuP,EAAQV,WAAaqP,EAAQ7P,WAC7BkB,EAAQ6xB,WAAa/iB,EACrB9O,EAAQ8xB,UAAY/iB,EACpB/O,EAAQ0/B,MAAQvhE,KAAK6vD,WAAWtoD,cAAc,aAC9Cs6B,EAAQ0/B,MAAMC,eAAe,KAAM,IAAK1B,GAAIj+B,EAAQr2B,IACpDq2B,EAAQw/B,QAAU,GAClBx/B,EAAQy/B,QAAU,EACpB,CAEAjmD,UACE,MAAMwmB,EAAU7hC,KAAK6hC,QAEjBA,EAAQgF,kBAAoBtiC,EAAMkN,kBAAkBiC,kBAAoBmuB,EAAQ4/B,YAAc5/B,EAAQ4/B,WAAWngB,kBACnHzf,EAAQvc,QAAUuc,EAAQ4/B,WAC1BzhE,KAAKkb,KAAK,WACVlb,KAAKib,UAET,CAEAzB,aAAatS,GACPA,EAAQ,IACVlH,KAAK6hC,QAAQuF,UAAYlgC,EAE7B,CAEAuS,WAAWonB,GACT7gC,KAAK6hC,QAAQiJ,QAAUiC,EAAgBlM,EACzC,CAEAnnB,YAAYmnB,GACV7gC,KAAK6hC,QAAQkJ,SAAWiC,EAAiBnM,EAC3C,CAEAlnB,cAAcy0B,GACZpuC,KAAK6hC,QAAQmJ,WAAaoD,CAC5B,CAEA4zB,eAAe76B,GACbnnC,KAAK6hC,QAAQsF,YAAcA,CAC7B,CAEApqB,kBAAkBxa,EAAG4gB,EAAGC,GACtBpjB,KAAK6hC,QAAQmF,YAAcziC,EAAMc,KAAKgvC,WAAW9xC,EAAG4gB,EAAGC,EACzD,CAEA6+C,aAAa/6B,GACXlnC,KAAK6hC,QAAQqF,UAAYA,CAC3B,CAEAlqB,gBAAgBza,EAAG4gB,EAAGC,GACpBpjB,KAAK6hC,QAAQkF,UAAYxiC,EAAMc,KAAKgvC,WAAW9xC,EAAG4gB,EAAGC,GACrDpjB,KAAK6hC,QAAQ0/B,MAAQvhE,KAAK6vD,WAAWtoD,cAAc,aACnDvH,KAAK6hC,QAAQw/B,QAAU,GACvBrhE,KAAK6hC,QAAQy/B,QAAU,EACzB,CAEA5kD,gBAAgBsX,GACdh0B,KAAK6hC,QAAQmF,YAAchnC,KAAKkiE,oBAAoBluC,EACtD,CAEApX,cAAcoX,GACZh0B,KAAK6hC,QAAQkF,UAAY/mC,KAAKkiE,oBAAoBluC,EACpD,CAEA7W,YAAY6W,GACV,MAAM9sB,EAAQlH,KAAK0vB,SAASxoB,MACtBC,EAASnH,KAAK0vB,SAASvoB,OAEvBotC,EAAMhwC,EAAMc,KAAK88D,iBAAiBniE,KAAKqgE,iBAEvC7rB,EAAKjwC,EAAMc,KAAKoG,eAAe,CAAC,EAAG,GAAI8oC,GAEvCE,EAAKlwC,EAAMc,KAAKoG,eAAe,CAAC,EAAGtE,GAASotC,GAE5CG,EAAKnwC,EAAMc,KAAKoG,eAAe,CAACvE,EAAO,GAAIqtC,GAE3CI,EAAKpwC,EAAMc,KAAKoG,eAAe,CAACvE,EAAOC,GAASotC,GAEhDK,EAAK3pC,KAAKmC,IAAIonC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCE,EAAK5pC,KAAKmC,IAAIonC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCG,EAAK7pC,KAAK4Y,IAAI2wB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCI,EAAK9pC,KAAK4Y,IAAI2wB,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtChpC,EAAO3L,KAAK6vD,WAAWtoD,cAAc,YAC3CoE,EAAK61D,eAAe,KAAM,IAAK5sB,GAC/BjpC,EAAK61D,eAAe,KAAM,IAAK3sB,GAC/BlpC,EAAK61D,eAAe,KAAM,QAAS1sB,EAAKF,GACxCjpC,EAAK61D,eAAe,KAAM,SAAUzsB,EAAKF,GACzClpC,EAAK61D,eAAe,KAAM,OAAQxhE,KAAKoiE,oBAAoBpuC,IAEvDh0B,KAAK6hC,QAAQqF,UAAY,GAC3Bv7B,EAAK61D,eAAe,KAAM,eAAgBxhE,KAAK6hC,QAAQqF,WAGzDlnC,KAAK6hE,wBAAwB/yD,YAAYnD,EAC3C,CAEAu2D,oBAAoBluC,GAClB,MAAgB,kBAAZA,EAAK,GACAh0B,KAAKqiE,mBAAmBruC,GAG1Bh0B,KAAKoiE,oBAAoBpuC,EAClC,CAEAquC,mBAAmBruC,GACjB,MAAM+f,EAAQ/f,EAAK,GACbvD,EAAeuD,EAAK,GACpBghB,EAAShhB,EAAK,IAAMzvB,EAAMgO,iBACzBqiC,EAAIC,EAAIC,EAAIC,GAAM/gB,EAAK,GACxBgoB,EAAQhoB,EAAK,GACbioB,EAAQjoB,EAAK,GACbkoB,EAAYloB,EAAK,GACjBsuC,EAAW,UAAUlC,KAEpBmC,EAAKC,GAAOj+D,EAAMc,KAAKoG,eAAe,CAACmpC,EAAIC,GAAKG,IAEhDytB,EAAKC,GAAOn+D,EAAMc,KAAKoG,eAAe,CAACqpC,EAAIC,GAAKC,IAEhD2tB,EAAQC,GAAUr+D,EAAMc,KAAKyqC,8BAA8BkF,GAE5D6tB,EAAS7mB,EAAQ2mB,EACjBG,EAAS7mB,EAAQ2mB,EACjBG,EAAS/iE,KAAK6vD,WAAWtoD,cAAc,eAC7Cw7D,EAAOvB,eAAe,KAAM,KAAMc,GAClCS,EAAOvB,eAAe,KAAM,eAAgB,kBAC5CuB,EAAOvB,eAAe,KAAM,QAASqB,GACrCE,EAAOvB,eAAe,KAAM,SAAUsB,GACtCC,EAAOvB,eAAe,KAAM,IAAK,GAAGe,KACpCQ,EAAOvB,eAAe,KAAM,IAAK,GAAGgB,KACpC,MAAMz4D,EAAM/J,KAAK+J,IACXs2D,EAAkBrgE,KAAKqgE,gBACvBt5B,EAAY/mC,KAAK6hC,QAAQkF,UACzBC,EAAchnC,KAAK6hC,QAAQmF,YAC3BiO,EAAOj1C,KAAK6vD,WAAW9sD,OAAO0/D,EAAMF,EAAKG,EAAMF,GAIrD,GAHAxiE,KAAK+J,IAAMkrC,EACXj1C,KAAKqgE,gBAAkBrrB,EAEL,IAAdkH,EAAiB,CACnB,MAAMe,EAAW14C,EAAMc,KAAKgvC,cAAcN,GAE1C/zC,KAAK6hC,QAAQkF,UAAYkW,EACzBj9C,KAAK6hC,QAAQmF,YAAciW,CAC7B,CASA,OAPAj9C,KAAK6gE,cAAc7gE,KAAKihE,cAAcxwC,IACtCzwB,KAAK+J,IAAMA,EACX/J,KAAKqgE,gBAAkBA,EACvBrgE,KAAK6hC,QAAQkF,UAAYA,EACzB/mC,KAAK6hC,QAAQmF,YAAcA,EAC3B+7B,EAAOj0D,YAAYmmC,EAAKuM,WAAW,IACnCxhD,KAAK+hE,KAAKjzD,YAAYi0D,GACf,QAAQT,IACjB,CAEAF,oBAAoBpuC,GAClB,OAAQA,EAAK,IACX,IAAK,cACH,MAAMgvC,EAAY,UAAU5C,IACtBzoB,EAAa3jB,EAAK,GACxB,IAAIivC,EAEJ,OAAQjvC,EAAK,IACX,IAAK,QACH,MAAMkvC,EAASlvC,EAAK,GACdmvC,EAASnvC,EAAK,GACpBivC,EAAWjjE,KAAK6vD,WAAWtoD,cAAc,sBACzC07D,EAASzB,eAAe,KAAM,KAAMwB,GACpCC,EAASzB,eAAe,KAAM,gBAAiB,kBAC/CyB,EAASzB,eAAe,KAAM,KAAM0B,EAAO,IAC3CD,EAASzB,eAAe,KAAM,KAAM0B,EAAO,IAC3CD,EAASzB,eAAe,KAAM,KAAM2B,EAAO,IAC3CF,EAASzB,eAAe,KAAM,KAAM2B,EAAO,IAC3C,MAEF,IAAK,SACH,MAAMC,EAAapvC,EAAK,GAClBqvC,EAAcrvC,EAAK,GACnBsvC,EAActvC,EAAK,GACnBuvC,EAAevvC,EAAK,GAC1BivC,EAAWjjE,KAAK6vD,WAAWtoD,cAAc,sBACzC07D,EAASzB,eAAe,KAAM,KAAMwB,GACpCC,EAASzB,eAAe,KAAM,gBAAiB,kBAC/CyB,EAASzB,eAAe,KAAM,KAAM6B,EAAY,IAChDJ,EAASzB,eAAe,KAAM,KAAM6B,EAAY,IAChDJ,EAASzB,eAAe,KAAM,IAAK+B,GACnCN,EAASzB,eAAe,KAAM,KAAM4B,EAAW,IAC/CH,EAASzB,eAAe,KAAM,KAAM4B,EAAW,IAC/CH,EAASzB,eAAe,KAAM,KAAM8B,GACpC,MAEF,QACE,MAAM,IAAIl8D,MAAM,6BAA6B4sB,EAAK,MAGtD,IAAK,MAAMwvC,KAAa7rB,EAAY,CAClC,MAAM8rB,EAAOzjE,KAAK6vD,WAAWtoD,cAAc,YAC3Ck8D,EAAKjC,eAAe,KAAM,SAAUgC,EAAU,IAC9CC,EAAKjC,eAAe,KAAM,aAAcgC,EAAU,IAClDP,EAASn0D,YAAY20D,EACvB,CAGA,OADAzjE,KAAK+hE,KAAKjzD,YAAYm0D,GACf,QAAQD,KAEjB,IAAK,OAEH,OADA,EAAIz+D,EAAMmJ,MAAM,8BACT,KAET,IAAK,QACH,MAAO,UAET,QACE,MAAM,IAAItG,MAAM,oBAAoB4sB,EAAK,MAE/C,CAEApa,QAAQy0B,EAAWC,GACjBtuC,KAAK6hC,QAAQwM,UAAYA,EACzBruC,KAAK6hC,QAAQyM,UAAYA,CAC3B,CAEAtvB,cAAcwwB,EAAKxb,GACjB,MAAM6N,EAAU7hC,KAAK6hC,QACrB,IAAIt2B,EAAIs2B,EAAQt2B,EACZC,EAAIq2B,EAAQr2B,EACZzJ,EAAI,GACJ0iC,EAAI,EAER,IAAK,MAAM0I,KAAMqC,EACf,OAAa,EAALrC,GACN,KAAK5oC,EAAMO,IAAI0V,UACbjP,EAAIyoB,EAAKyQ,KACTj5B,EAAIwoB,EAAKyQ,KACT,MAAMv9B,EAAQ8sB,EAAKyQ,KACbt9B,EAAS6sB,EAAKyQ,KACdiL,EAAKnkC,EAAIrE,EACTyoC,EAAKnkC,EAAIrE,EACfpF,EAAE7B,KAAK,IAAK4/D,EAAGv0D,GAAIu0D,EAAGt0D,GAAI,IAAKs0D,EAAGpwB,GAAKowB,EAAGt0D,GAAI,IAAKs0D,EAAGpwB,GAAKowB,EAAGnwB,GAAK,IAAKmwB,EAAGv0D,GAAIu0D,EAAGnwB,GAAK,KACvF,MAEF,KAAKprC,EAAMO,IAAIoV,OACb3O,EAAIyoB,EAAKyQ,KACTj5B,EAAIwoB,EAAKyQ,KACT1iC,EAAE7B,KAAK,IAAK4/D,EAAGv0D,GAAIu0D,EAAGt0D,IACtB,MAEF,KAAKjH,EAAMO,IAAIqV,OACb5O,EAAIyoB,EAAKyQ,KACTj5B,EAAIwoB,EAAKyQ,KACT1iC,EAAE7B,KAAK,IAAK4/D,EAAGv0D,GAAIu0D,EAAGt0D,IACtB,MAEF,KAAKjH,EAAMO,IAAIsV,QACb7O,EAAIyoB,EAAKyQ,EAAI,GACbj5B,EAAIwoB,EAAKyQ,EAAI,GACb1iC,EAAE7B,KAAK,IAAK4/D,EAAG9rC,EAAKyQ,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,IAAKq7B,EAAGv0D,GAAIu0D,EAAGt0D,IACtFi5B,GAAK,EACL,MAEF,KAAKlgC,EAAMO,IAAIuV,SACbtY,EAAE7B,KAAK,IAAK4/D,EAAGv0D,GAAIu0D,EAAGt0D,GAAIs0D,EAAG9rC,EAAKyQ,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,KACrFl5B,EAAIyoB,EAAKyQ,EAAI,GACbj5B,EAAIwoB,EAAKyQ,EAAI,GACbA,GAAK,EACL,MAEF,KAAKlgC,EAAMO,IAAIwV,SACb/O,EAAIyoB,EAAKyQ,EAAI,GACbj5B,EAAIwoB,EAAKyQ,EAAI,GACb1iC,EAAE7B,KAAK,IAAK4/D,EAAG9rC,EAAKyQ,IAAKq7B,EAAG9rC,EAAKyQ,EAAI,IAAKq7B,EAAGv0D,GAAIu0D,EAAGt0D,GAAIs0D,EAAGv0D,GAAIu0D,EAAGt0D,IAClEi5B,GAAK,EACL,MAEF,KAAKlgC,EAAMO,IAAIyV,UACbxY,EAAE7B,KAAK,KACP,MAIN6B,EAAIA,EAAElB,KAAK,KAEPghC,EAAQuO,MAAQZ,EAAI5uC,OAAS,GAAK4uC,EAAI,KAAOjrC,EAAMO,IAAI0V,WAAag1B,EAAI,KAAOjrC,EAAMO,IAAIoV,OAC3FnY,EAAI8/B,EAAQuO,KAAKszB,eAAe,KAAM,KAAO3hE,GAE7C8/B,EAAQuO,KAAOpwC,KAAK6vD,WAAWtoD,cAAc,YAE7CvH,KAAK6hE,wBAAwB/yD,YAAY+yB,EAAQuO,OAGnDvO,EAAQuO,KAAKoxB,eAAe,KAAM,IAAKz/D,GACvC8/B,EAAQuO,KAAKoxB,eAAe,KAAM,OAAQ,QAC1C3/B,EAAQvc,QAAUuc,EAAQuO,KAC1BvO,EAAQ0F,gBAAgBh8B,EAAGC,EAC7B,CAEAyP,UACE,MAAM4mB,EAAU7hC,KAAK6hC,QAGrB,GAFAA,EAAQuO,KAAO,MAEVpwC,KAAK4nC,YACR,OAGF,IAAK/F,EAAQvc,QAEX,YADAtlB,KAAK4nC,YAAc,MAIrB,MAAM+7B,EAAS,WAAWzD,IACpB0D,EAAW5jE,KAAK6vD,WAAWtoD,cAAc,gBAC/Cq8D,EAASpC,eAAe,KAAM,KAAMmC,GACpCC,EAASpC,eAAe,KAAM,YAAaxB,EAAGhgE,KAAKqgE,kBACnD,MAAMwD,EAAchiC,EAAQvc,QAAQw+C,WAAU,GAErB,YAArB9jE,KAAK4nC,YACPi8B,EAAYrC,eAAe,KAAM,YAAa,WAE9CqC,EAAYrC,eAAe,KAAM,YAAa,WAGhDxhE,KAAK4nC,YAAc,KACnBg8B,EAAS90D,YAAY+0D,GACrB7jE,KAAK+hE,KAAKjzD,YAAY80D,GAElB/hC,EAAQy9B,gBACVz9B,EAAQ09B,UAAY,KACpBv/D,KAAKugE,WAAWjtC,SAAQ,SAAUqQ,GAChCA,EAAK47B,UAAY,IACnB,IACAqE,EAASpC,eAAe,KAAM,YAAa3/B,EAAQy9B,gBAGrDz9B,EAAQy9B,cAAgB,QAAQqE,KAChC3jE,KAAK4gE,KAAO,IACd,CAEA1lD,KAAKhR,GACHlK,KAAK4nC,YAAc19B,CACrB,CAEAqQ,YACE,MAAMsnB,EAAU7hC,KAAK6hC,QAErB,GAAIA,EAAQuO,KAAM,CAChB,MAAMruC,EAAI,GAAG8/B,EAAQuO,KAAKszB,eAAe,KAAM,QAC/C7hC,EAAQuO,KAAKoxB,eAAe,KAAM,IAAKz/D,EACzC,CACF,CAEA0Z,WAAW8qB,GACTvmC,KAAK6hC,QAAQ0E,SAAWA,CAC1B,CAEA3qB,YAAYkrB,GACV9mC,KAAK6hC,QAAQiF,SAAWA,CAC1B,CAEAnrB,qBAAqBkrB,GACnB7mC,KAAK6hC,QAAQgF,kBAAoBA,CACnC,CAEArrB,UAAUpR,GACRpK,KAAK6hC,QAAQ+E,WAAax8B,EAAQ,GACpC,CAEAyP,mBAAmBwV,GAAS,CAE5BvV,YAAYy0B,GAAW,CAEvBx0B,UAAUy0B,GACR,IAAK,MAAOxrC,EAAKN,KAAU8rC,EACzB,OAAQxrC,GACN,IAAK,KACHhD,KAAKwZ,aAAa9W,GAClB,MAEF,IAAK,KACH1C,KAAKyZ,WAAW/W,GAChB,MAEF,IAAK,KACH1C,KAAK0Z,YAAYhX,GACjB,MAEF,IAAK,KACH1C,KAAK2Z,cAAcjX,GACnB,MAEF,IAAK,IACH1C,KAAK4Z,QAAQlX,EAAM,GAAIA,EAAM,IAC7B,MAEF,IAAK,KACH1C,KAAK6Z,mBAAmBnX,GACxB,MAEF,IAAK,KACH1C,KAAK8Z,YAAYpX,GACjB,MAEF,IAAK,OACH1C,KAAK0b,QAAQhZ,GACb,MAEF,IAAK,KACH1C,KAAKgiE,eAAet/D,GACpB,MAEF,IAAK,KACH1C,KAAKiiE,aAAav/D,GAClB,MAEF,SACE,EAAI6B,EAAMmJ,MAAM,wCAAwC1K,KACxD,MAGR,CAEA2X,OACE,MAAMknB,EAAU7hC,KAAK6hC,QAEjBA,EAAQvc,UACVuc,EAAQvc,QAAQk8C,eAAe,KAAM,OAAQ3/B,EAAQkF,WACrDlF,EAAQvc,QAAQk8C,eAAe,KAAM,eAAgB3/B,EAAQqF,WAC7DlnC,KAAKib,UAET,CAEAR,SACE,MAAMonB,EAAU7hC,KAAK6hC,QAEjBA,EAAQvc,UACVtlB,KAAK4hE,qBAAqB//B,EAAQvc,SAElCuc,EAAQvc,QAAQk8C,eAAe,KAAM,OAAQ,QAC7CxhE,KAAKib,UAET,CAEA2mD,qBAAqBt8C,EAASq8C,EAAiB,GAC7C,MAAM9/B,EAAU7hC,KAAK6hC,QACrB,IAAIwM,EAAYxM,EAAQwM,UAED,IAAnBszB,GAAwBtzB,EAAUztC,OAAS,IAC7CytC,EAAYA,EAAU9tC,KAAI,SAAUmC,GAClC,OAAOi/D,EAAiBj/D,CAC1B,KAGF4iB,EAAQk8C,eAAe,KAAM,SAAU3/B,EAAQmF,aAC/C1hB,EAAQk8C,eAAe,KAAM,iBAAkB3/B,EAAQsF,aACvD7hB,EAAQk8C,eAAe,KAAM,oBAAqB1B,EAAGj+B,EAAQmJ,aAC7D1lB,EAAQk8C,eAAe,KAAM,iBAAkB3/B,EAAQiJ,SACvDxlB,EAAQk8C,eAAe,KAAM,kBAAmB3/B,EAAQkJ,UACxDzlB,EAAQk8C,eAAe,KAAM,eAAgB1B,EAAG6B,EAAiB9/B,EAAQuF,WAAa,MACtF9hB,EAAQk8C,eAAe,KAAM,mBAAoBnzB,EAAU9tC,IAAIu/D,GAAIj/D,KAAK,MACxEykB,EAAQk8C,eAAe,KAAM,oBAAqB1B,EAAG6B,EAAiB9/B,EAAQyM,WAAa,KAC7F,CAEA1zB,SACM5a,KAAK6hC,QAAQvc,SACftlB,KAAK6hC,QAAQvc,QAAQk8C,eAAe,KAAM,YAAa,WAGzDxhE,KAAK2a,MACP,CAEAE,aACE7a,KAAKya,SACLza,KAAK2a,MACP,CAEAG,eACM9a,KAAK6hC,QAAQvc,SACftlB,KAAK6hC,QAAQvc,QAAQk8C,eAAe,KAAM,YAAa,WAGzDxhE,KAAK6a,YACP,CAEAH,cACE1a,KAAKua,YACLva,KAAKya,QACP,CAEAM,kBACE/a,KAAKua,YACLva,KAAK6a,YACP,CAEAG,oBACEhb,KAAKua,YACLva,KAAK8a,cACP,CAEAiE,2BACE,MAAMpT,EAAO3L,KAAK6vD,WAAWtoD,cAAc,YAC3CoE,EAAK61D,eAAe,KAAM,IAAK,KAC/B71D,EAAK61D,eAAe,KAAM,IAAK,KAC/B71D,EAAK61D,eAAe,KAAM,QAAS,OACnC71D,EAAK61D,eAAe,KAAM,SAAU,OACpC71D,EAAK61D,eAAe,KAAM,OAAQxhE,KAAK6hC,QAAQkF,WAE/C/mC,KAAK6hE,wBAAwB/yD,YAAYnD,EAC3C,CAEA+S,kBAAkB2c,GAChB,MAAMmJ,EAAUxkC,KAAK2uB,KAAKrsB,IAAI+4B,GAEzBmJ,EAKLxkC,KAAK2e,wBAAwB6lB,IAJ3B,EAAIjgC,EAAMmJ,MAAM,kCAAkC2tB,qBAKtD,CAEA1c,wBAAwB6lB,EAASS,GAC/B,MAAM/9B,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OACjB48D,EAASrG,EAAoBl5B,EAASxkC,KAAK6lB,kBAAmBof,GAC9D++B,EAAWhkE,KAAK6vD,WAAWtoD,cAAc,YAC/Cy8D,EAASxC,eAAe,KAAM,IAAK,KACnCwC,EAASxC,eAAe,KAAM,IAAK,KACnCwC,EAASxC,eAAe,KAAM,QAAS1B,EAAG54D,IAC1C88D,EAASxC,eAAe,KAAM,SAAU1B,EAAG34D,IAC3CnH,KAAK6hC,QAAQvc,QAAU0+C,EACvBhkE,KAAKkb,KAAK,WACV,MAAM+oD,EAAQjkE,KAAK6vD,WAAWtoD,cAAc,aAC5C08D,EAAMzC,eAAe/D,EAAU,aAAcsG,GAC7CE,EAAMzC,eAAe,KAAM,IAAK,KAChCyC,EAAMzC,eAAe,KAAM,IAAK1B,GAAI34D,IACpC88D,EAAMzC,eAAe,KAAM,QAAS1B,EAAG54D,GAAS,MAChD+8D,EAAMzC,eAAe,KAAM,SAAU1B,EAAG34D,GAAU,MAClD88D,EAAMzC,eAAe,KAAM,YAAa,SAAS1B,EAAG,EAAI54D,MAAU44D,GAAI,EAAI34D,OAEtE89B,EACFA,EAAKn2B,YAAYm1D,GAEjBjkE,KAAK6hE,wBAAwB/yD,YAAYm1D,EAE7C,CAEAzlD,sBAAsBgmB,GACpB,MAAM3C,EAAU7hC,KAAK6hC,QACf36B,EAAQs9B,EAAQt9B,MAChBC,EAASq9B,EAAQr9B,OACjB4/B,EAAYlF,EAAQkF,UAC1BlF,EAAQ29B,OAAS,OAAOW,IACxB,MAAMl7B,EAAOjlC,KAAK6vD,WAAWtoD,cAAc,YAC3C09B,EAAKu8B,eAAe,KAAM,KAAM3/B,EAAQ29B,QACxC,MAAM7zD,EAAO3L,KAAK6vD,WAAWtoD,cAAc,YAC3CoE,EAAK61D,eAAe,KAAM,IAAK,KAC/B71D,EAAK61D,eAAe,KAAM,IAAK,KAC/B71D,EAAK61D,eAAe,KAAM,QAAS1B,EAAG54D,IACtCyE,EAAK61D,eAAe,KAAM,SAAU1B,EAAG34D,IACvCwE,EAAK61D,eAAe,KAAM,OAAQz6B,GAClCp7B,EAAK61D,eAAe,KAAM,OAAQ,QAAQ3/B,EAAQ29B,WAClDx/D,KAAK+hE,KAAKjzD,YAAYm2B,GAEtBjlC,KAAK6hE,wBAAwB/yD,YAAYnD,GAEzC3L,KAAK2e,wBAAwB6lB,EAASS,EACxC,CAEAlnB,sBAAsBi3B,EAAQC,GAK5B,GAJIjgB,MAAMC,QAAQ+f,IAA6B,IAAlBA,EAAOp0C,QAClCZ,KAAKmL,UAAU6pC,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAG3EC,EAAM,CACR,MAAM/tC,EAAQ+tC,EAAK,GAAKA,EAAK,GACvB9tC,EAAS8tC,EAAK,GAAKA,EAAK,GACxB+uB,EAAWhkE,KAAK6vD,WAAWtoD,cAAc,YAC/Cy8D,EAASxC,eAAe,KAAM,IAAKvsB,EAAK,IACxC+uB,EAASxC,eAAe,KAAM,IAAKvsB,EAAK,IACxC+uB,EAASxC,eAAe,KAAM,QAAS1B,EAAG54D,IAC1C88D,EAASxC,eAAe,KAAM,SAAU1B,EAAG34D,IAC3CnH,KAAK6hC,QAAQvc,QAAU0+C,EACvBhkE,KAAKkb,KAAK,WACVlb,KAAKib,SACP,CACF,CAEA+C,sBAAuB,CAEvBiZ,YAAYvH,GACV,MAAM3lB,EAAM/J,KAAK6vD,WAAW9sD,OAAO2sB,EAASxoB,MAAOwoB,EAASvoB,QACtD+8D,EAAclkE,KAAK6vD,WAAWtoD,cAAc,YAClDwC,EAAI+E,YAAYo1D,GAChBlkE,KAAK+hE,KAAOmC,EACZ,MAAMC,EAAYnkE,KAAK6vD,WAAWtoD,cAAc,SAIhD,OAHA48D,EAAU3C,eAAe,KAAM,YAAaxB,EAAGtwC,EAASvkB,YACxDpB,EAAI+E,YAAYq1D,GAChBnkE,KAAK+J,IAAMo6D,EACJp6D,CACT,CAEAq6D,mBACE,IAAKpkE,KAAK6hC,QAAQ09B,UAAW,CAC3B,MAAMA,EAAYv/D,KAAK6vD,WAAWtoD,cAAc,SAChDg4D,EAAUiC,eAAe,KAAM,YAAaxhE,KAAK6hC,QAAQy9B,eACzDt/D,KAAK+J,IAAI+E,YAAYywD,GACrBv/D,KAAK6hC,QAAQ09B,UAAYA,CAC3B,CAEA,OAAOv/D,KAAK6hC,QAAQ09B,SACtB,CAEAsC,wBAYE,OAXK7hE,KAAK4gE,OACR5gE,KAAK4gE,KAAO5gE,KAAK6vD,WAAWtoD,cAAc,SAC1CvH,KAAK4gE,KAAKY,eAAe,KAAM,YAAaxB,EAAGhgE,KAAKqgE,kBAEhDrgE,KAAK6hC,QAAQy9B,cACft/D,KAAKokE,mBAAmBt1D,YAAY9O,KAAK4gE,MAEzC5gE,KAAK+J,IAAI+E,YAAY9O,KAAK4gE,OAIvB5gE,KAAK4gE,IACd,EAGJ,CAEO,EAED,SAAUhhE,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQuG,mBAAgB,EAExB,IAAI3B,EAAQ9C,EAAoB,GAE5B4iE,EAAiB5iE,EAAoB,IAIzC,MAAM6iE,EAAK,oBAAQ,KAEbC,EAAO,oBAAQ,GAEfC,EAAQ,oBAAQ,KAEhB/9D,EAAM,oBAAQ,KAEdg+D,EAAe,0BAErB,SAASC,EAASC,GAChB,MAAMC,EAAYn+D,EAAIo+D,MAAMF,GAE5B,MAA2B,UAAvBC,EAAUv2D,UAAwBu2D,EAAUE,KACvCF,EAGL,gBAAgBlN,KAAKiN,GAChBl+D,EAAIo+D,MAAM,WAAWF,MAGzBC,EAAUE,OACbF,EAAUv2D,SAAW,SAGhBu2D,EACT,CAEA,MAAM1+D,EACJ2B,YAAY8f,GACV3nB,KAAK2nB,OAASA,EACd3nB,KAAKyG,IAAMi+D,EAAS/8C,EAAOlhB,KAC3BzG,KAAK+kE,OAA+B,UAAtB/kE,KAAKyG,IAAI4H,UAA8C,WAAtBrO,KAAKyG,IAAI4H,SACxDrO,KAAKglE,QAAgC,UAAtBhlE,KAAKyG,IAAI4H,SACxBrO,KAAK4pB,YAAc5pB,KAAK+kE,QAAUp9C,EAAOiC,aAAe,CAAC,EACzD5pB,KAAKulD,mBAAqB,KAC1BvlD,KAAKilE,qBAAuB,EAC9B,CAEIlf,6BACF,OAAO/lD,KAAKulD,mBAAqBvlD,KAAKulD,mBAAmBS,QAAU,CACrE,CAEAltB,gBAGE,OAFA,EAAIv0B,EAAMuF,SAAS9J,KAAKulD,mBAAoB,wDAC5CvlD,KAAKulD,mBAAqBvlD,KAAKglE,QAAU,IAAIE,EAA0BllE,MAAQ,IAAImlE,EAAwBnlE,MACpGA,KAAKulD,kBACd,CAEA5rB,eAAe7rB,EAAOX,GACpB,GAAIA,GAAOnN,KAAK+lD,uBACd,OAAO,KAGT,MAAMrsB,EAAc15B,KAAKglE,QAAU,IAAII,EAA2BplE,KAAM8N,EAAOX,GAAO,IAAIk4D,EAAyBrlE,KAAM8N,EAAOX,GAIhI,OAFAnN,KAAKilE,qBAAqB/kE,KAAKw5B,GAExBA,CACT,CAEAd,kBAAkB5vB,GACZhJ,KAAKulD,oBACPvlD,KAAKulD,mBAAmB9xB,OAAOzqB,GAGjC,MAAMs9C,EAAUtmD,KAAKilE,qBAAqB55D,MAAM,GAEhDi7C,EAAQhzB,SAAQ,SAAUV,GACxBA,EAAOa,OAAOzqB,EAChB,GACF,EAIFrJ,EAAQuG,cAAgBA,EAExB,MAAMo/D,EACJz9D,YAAY42C,GACVz+C,KAAKulE,KAAO9mB,EAAOh4C,IACnBzG,KAAKwmD,OAAQ,EACbxmD,KAAKwlE,aAAe,KACpBxlE,KAAK8qB,WAAa,KAClB,MAAMnD,EAAS82B,EAAO92B,OACtB3nB,KAAKslD,eAAiB39B,EAAO/mB,OAC7BZ,KAAKgmD,QAAU,EACfhmD,KAAKymD,UAAY,KACjBzmD,KAAKylE,cAAgB99C,EAAOgB,eAAgB,EAC5C3oB,KAAK0lE,gBAAkB/9C,EAAOQ,eAEzBnoB,KAAK0lE,iBAAoB1lE,KAAKylE,gBACjCzlE,KAAKylE,eAAgB,GAGvBzlE,KAAKolD,uBAAyBz9B,EAAOiB,cACrC5oB,KAAKqlD,mBAAqB19B,EAAOgB,aACjC3oB,KAAK2lE,gBAAkB,KACvB3lE,KAAK4lE,iBAAkB,EAAIrhE,EAAMG,2BACjC1E,KAAK6lE,oBAAqB,EAAIthE,EAAMG,0BACtC,CAEI40B,mBACF,OAAOt5B,KAAK6lE,mBAAmBngD,OACjC,CAEIuV,eACF,OAAOj7B,KAAKymD,SACd,CAEIhtB,oBACF,OAAOz5B,KAAKslD,cACd,CAEI9rB,uBACF,OAAOx5B,KAAKqlD,iBACd,CAEI9rB,2BACF,OAAOv5B,KAAKolD,qBACd,CAEAp9C,aAGE,SAFMhI,KAAK4lE,gBAAgBlgD,QAEvB1lB,KAAKwmD,MACP,MAAO,CACL9jD,WAAOtB,EACP0xB,MAAM,GAIV,GAAI9yB,KAAKwlE,aACP,MAAMxlE,KAAKwlE,aAGb,MAAMvjD,EAAQjiB,KAAK2lE,gBAAgB9yC,OAEnC,GAAc,OAAV5Q,EAEF,OADAjiB,KAAK4lE,iBAAkB,EAAIrhE,EAAMG,2BAC1B1E,KAAK6yB,OAGd7yB,KAAKgmD,SAAW/jC,EAAMrhB,OAElBZ,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdgB,OAAQ9rB,KAAKgmD,QACbj6B,MAAO/rB,KAAKslD,iBAIhB,MAAMviC,EAAS,IAAIpa,WAAWsZ,GAAOc,OACrC,MAAO,CACLrgB,MAAOqgB,EACP+P,MAAM,EAEV,CAEAW,OAAOzqB,GACAhJ,KAAK2lE,gBAMV3lE,KAAK2lE,gBAAgB/9D,QAAQoB,GAL3BhJ,KAAK8lE,OAAO98D,EAMhB,CAEA88D,OAAO98D,GACLhJ,KAAKwlE,aAAex8D,EAEpBhJ,KAAK4lE,gBAAgB18D,SACvB,CAEA68D,mBAAmBrzC,GACjB1yB,KAAK2lE,gBAAkBjzC,EACvBA,EAAewE,GAAG,YAAY,KAC5Bl3B,KAAK4lE,gBAAgB18D,SAAS,IAEhCwpB,EAAewE,GAAG,OAAO,KACvBxE,EAAe9qB,UACf5H,KAAKwmD,OAAQ,EAEbxmD,KAAK4lE,gBAAgB18D,SAAS,IAEhCwpB,EAAewE,GAAG,SAASluB,IACzBhJ,KAAK8lE,OAAO98D,EAAO,KAGhBhJ,KAAKolD,uBAAyBplD,KAAKqlD,mBACtCrlD,KAAK8lE,OAAO,IAAIvhE,EAAMqN,eAAe,0BAGnC5R,KAAKwlE,cACPxlE,KAAK2lE,gBAAgB/9D,QAAQ5H,KAAKwlE,aAEtC,EAIF,MAAMQ,EACJn+D,YAAY42C,GACVz+C,KAAKulE,KAAO9mB,EAAOh4C,IACnBzG,KAAKwmD,OAAQ,EACbxmD,KAAKwlE,aAAe,KACpBxlE,KAAK8qB,WAAa,KAClB9qB,KAAKgmD,QAAU,EACfhmD,KAAK2lE,gBAAkB,KACvB3lE,KAAK4lE,iBAAkB,EAAIrhE,EAAMG,2BACjC,MAAMijB,EAAS82B,EAAO92B,OACtB3nB,KAAKolD,uBAAyBz9B,EAAOiB,aACvC,CAEI2Q,2BACF,OAAOv5B,KAAKolD,qBACd,CAEAp9C,aAGE,SAFMhI,KAAK4lE,gBAAgBlgD,QAEvB1lB,KAAKwmD,MACP,MAAO,CACL9jD,WAAOtB,EACP0xB,MAAM,GAIV,GAAI9yB,KAAKwlE,aACP,MAAMxlE,KAAKwlE,aAGb,MAAMvjD,EAAQjiB,KAAK2lE,gBAAgB9yC,OAEnC,GAAc,OAAV5Q,EAEF,OADAjiB,KAAK4lE,iBAAkB,EAAIrhE,EAAMG,2BAC1B1E,KAAK6yB,OAGd7yB,KAAKgmD,SAAW/jC,EAAMrhB,OAElBZ,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdgB,OAAQ9rB,KAAKgmD,UAIjB,MAAMjjC,EAAS,IAAIpa,WAAWsZ,GAAOc,OACrC,MAAO,CACLrgB,MAAOqgB,EACP+P,MAAM,EAEV,CAEAW,OAAOzqB,GACAhJ,KAAK2lE,gBAMV3lE,KAAK2lE,gBAAgB/9D,QAAQoB,GAL3BhJ,KAAK8lE,OAAO98D,EAMhB,CAEA88D,OAAO98D,GACLhJ,KAAKwlE,aAAex8D,EAEpBhJ,KAAK4lE,gBAAgB18D,SACvB,CAEA68D,mBAAmBrzC,GACjB1yB,KAAK2lE,gBAAkBjzC,EACvBA,EAAewE,GAAG,YAAY,KAC5Bl3B,KAAK4lE,gBAAgB18D,SAAS,IAEhCwpB,EAAewE,GAAG,OAAO,KACvBxE,EAAe9qB,UACf5H,KAAKwmD,OAAQ,EAEbxmD,KAAK4lE,gBAAgB18D,SAAS,IAEhCwpB,EAAewE,GAAG,SAASluB,IACzBhJ,KAAK8lE,OAAO98D,EAAO,IAGjBhJ,KAAKwlE,cACPxlE,KAAK2lE,gBAAgB/9D,QAAQ5H,KAAKwlE,aAEtC,EAIF,SAASS,EAAqBrB,EAAWsB,GACvC,MAAO,CACL73D,SAAUu2D,EAAUv2D,SACpB83D,KAAMvB,EAAUuB,KAChBrB,KAAMF,EAAUwB,SAChBr9C,KAAM67C,EAAU77C,KAChBqnB,KAAMw0B,EAAUx0B,KAChBi2B,OAAQ,MACRH,UAEJ,CAEA,MAAMf,UAAgCG,EACpCz9D,YAAY42C,GACVvyC,MAAMuyC,GAEN,MAAM6nB,EAAiB/9D,IACrB,GAA4B,MAAxBA,EAASg+D,WAAoB,CAC/B,MAAMx1C,EAAQ,IAAIxsB,EAAMM,oBAAoB,gBAAgB7E,KAAKulE,UAKjE,OAJAvlE,KAAKwlE,aAAez0C,OAEpB/wB,KAAK6lE,mBAAmB18D,OAAO4nB,EAGjC,CAEA/wB,KAAK6lE,mBAAmB38D,UAExBlJ,KAAK+lE,mBAAmBx9D,GAExB,MAAMi+D,EAAoBxkE,GACjBhC,KAAK2lE,gBAAgBO,QAAQlkE,EAAKm/C,gBAGrC,mBACJslB,EAAkB,gBAClBC,IACE,EAAIrC,EAAesC,kCAAkC,CACvDH,oBACAzB,OAAQtmB,EAAOsmB,OACf58C,eAAgBnoB,KAAK0lE,gBACrB/8C,aAAc3oB,KAAKylE,gBAErBzlE,KAAKqlD,kBAAoBohB,EACzBzmE,KAAKslD,eAAiBohB,GAAmB1mE,KAAKslD,eAC9CtlD,KAAKymD,WAAY,EAAI4d,EAAeuC,2BAA2BJ,EAAkB,EAGnFxmE,KAAK6mE,SAAW,KAEW,UAAvB7mE,KAAKulE,KAAKl3D,SACZrO,KAAK6mE,SAAWtC,EAAKn7D,QAAQ68D,EAAqBjmE,KAAKulE,KAAM9mB,EAAO70B,aAAc08C,GAElFtmE,KAAK6mE,SAAWrC,EAAMp7D,QAAQ68D,EAAqBjmE,KAAKulE,KAAM9mB,EAAO70B,aAAc08C,GAGrFtmE,KAAK6mE,SAAS3vC,GAAG,SAASluB,IACxBhJ,KAAKwlE,aAAex8D,EAEpBhJ,KAAK6lE,mBAAmB18D,OAAOH,EAAO,IAGxChJ,KAAK6mE,SAAS15D,KAChB,EAIF,MAAMk4D,UAAiCW,EACrCn+D,YAAY42C,EAAQ3wC,EAAOX,GACzBjB,MAAMuyC,GACNz+C,KAAK8mE,aAAe,CAAC,EAErB,IAAK,MAAM1jE,KAAYq7C,EAAO70B,YAAa,CACzC,MAAMlnB,EAAQ+7C,EAAO70B,YAAYxmB,GAEZ,qBAAVV,IAIX1C,KAAK8mE,aAAa1jE,GAAYV,EAChC,CAEA1C,KAAK8mE,aAAaC,MAAQ,SAASj5D,KAASX,EAAM,IAElD,MAAMm5D,EAAiB/9D,IACrB,GAA4B,MAAxBA,EAASg+D,WAMbvmE,KAAK+lE,mBAAmBx9D,OANxB,CACE,MAAMwoB,EAAQ,IAAIxsB,EAAMM,oBAAoB,gBAAgB7E,KAAKulE,UACjEvlE,KAAKwlE,aAAez0C,CAEtB,CAEiC,EAGnC/wB,KAAK6mE,SAAW,KAEW,UAAvB7mE,KAAKulE,KAAKl3D,SACZrO,KAAK6mE,SAAWtC,EAAKn7D,QAAQ68D,EAAqBjmE,KAAKulE,KAAMvlE,KAAK8mE,cAAeR,GAEjFtmE,KAAK6mE,SAAWrC,EAAMp7D,QAAQ68D,EAAqBjmE,KAAKulE,KAAMvlE,KAAK8mE,cAAeR,GAGpFtmE,KAAK6mE,SAAS3vC,GAAG,SAASluB,IACxBhJ,KAAKwlE,aAAex8D,CAAM,IAG5BhJ,KAAK6mE,SAAS15D,KAChB,EAIF,MAAM+3D,UAAkCI,EACtCz9D,YAAY42C,GACVvyC,MAAMuyC,GACN,IAAIrO,EAAOrrB,mBAAmB/kB,KAAKulE,KAAKn1B,MAEpCq0B,EAAa/M,KAAK13D,KAAKulE,KAAK34D,QAC9BwjC,EAAOA,EAAK3uB,QAAQ,MAAO,KAG7B6iD,EAAG0C,MAAM52B,GAAM,CAACrf,EAAOk2C,KACrB,GAAIl2C,EASF,MARmB,WAAfA,EAAMzP,OACRyP,EAAQ,IAAIxsB,EAAMM,oBAAoB,gBAAgBurC,QAGxDpwC,KAAKwlE,aAAez0C,OAEpB/wB,KAAK6lE,mBAAmB18D,OAAO4nB,GAKjC/wB,KAAKslD,eAAiB2hB,EAAK30C,KAE3BtyB,KAAK+lE,mBAAmBzB,EAAG4C,iBAAiB92B,IAE5CpwC,KAAK6lE,mBAAmB38D,SAAS,GAErC,EAIF,MAAMk8D,UAAmCY,EACvCn+D,YAAY42C,EAAQ3wC,EAAOX,GACzBjB,MAAMuyC,GACN,IAAIrO,EAAOrrB,mBAAmB/kB,KAAKulE,KAAKn1B,MAEpCq0B,EAAa/M,KAAK13D,KAAKulE,KAAK34D,QAC9BwjC,EAAOA,EAAK3uB,QAAQ,MAAO,KAG7BzhB,KAAK+lE,mBAAmBzB,EAAG4C,iBAAiB92B,EAAM,CAChDtiC,QACAX,IAAKA,EAAM,IAEf,EAIK,EAED,SAAUvN,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQwnE,0BAA4BA,EACpCxnE,EAAQinE,0BAA4BA,EACpCjnE,EAAQgnE,iCAAmCA,EAC3ChnE,EAAQynE,uBAAyBA,EAEjC,IAAI7iE,EAAQ9C,EAAoB,GAE5B4lE,EAAuB5lE,EAAoB,IAE/C,SAASklE,GAAiC,kBACxCH,EAAiB,OACjBzB,EAAM,eACN58C,EAAc,aACdQ,KAEA,EAAIpkB,EAAMuF,QAAQqe,EAAiB,EAAG,6CACtC,MAAMm/C,EAAe,CACnBb,oBAAoB,EACpBC,qBAAiBtlE,GAEbR,EAAS8O,SAAS82D,EAAkB,kBAAmB,IAE7D,IAAKjmD,OAAOC,UAAU5f,GACpB,OAAO0mE,EAKT,GAFAA,EAAaZ,gBAAkB9lE,EAE3BA,GAAU,EAAIunB,EAChB,OAAOm/C,EAGT,GAAI3+C,IAAiBo8C,EACnB,OAAOuC,EAGT,GAA2C,UAAvCd,EAAkB,iBACpB,OAAOc,EAGT,MAAMC,EAAkBf,EAAkB,qBAAuB,WAEjE,MAAwB,aAApBe,IAIJD,EAAab,oBAAqB,GAHzBa,CAKX,CAEA,SAASV,EAA0BJ,GACjC,MAAMgB,EAAqBhB,EAAkB,uBAE7C,GAAIgB,EAAoB,CACtB,IAAIvsC,GAAW,EAAIosC,EAAqBI,yCAAyCD,GAEjF,GAAIvsC,EAASnG,SAAS,KACpB,IACEmG,EAAWlW,mBAAmBkW,EAClB,CAAZ,MAAO1sB,GAAK,CAGhB,GAAI,UAAUmpD,KAAKz8B,GACjB,OAAOA,CAEX,CAEA,OAAO,IACT,CAEA,SAASksC,EAA0Bx9D,EAAQlD,GACzC,OAAe,MAAXkD,GAA6B,IAAXA,GAAgBlD,EAAIwnC,WAAW,SAC5C,IAAI1pC,EAAMM,oBAAoB,gBAAkB4B,EAAM,MAGxD,IAAIlC,EAAMY,4BAA4B,+BAAiCwE,EAAS,2BAA6BlD,EAAM,KAAMkD,EAClI,CAEA,SAASy9D,EAAuBz9D,GAC9B,OAAkB,MAAXA,GAA6B,MAAXA,CAC3B,CAEO,EAED,SAAU/J,EAAQD,EAAS8B,GAEjC,aAQA,SAASgmE,EAAwCD,GAC/C,IAAIE,GAAqB,EACrBpvB,EAAMqvB,EAAc,cAAe,KAAKn4D,KAAKg4D,GAEjD,GAAIlvB,EAAK,CACPA,EAAMA,EAAI,GACV,IAAIrd,EAAW2sC,EAAetvB,GAI9B,OAHArd,EAAWhW,SAASgW,GACpBA,EAAW4sC,EAAc5sC,GACzBA,EAAW6sC,EAAc7sC,GAClB8sC,EAAc9sC,EACvB,CAIA,GAFAqd,EAAM0vB,EAAgBR,GAElBlvB,EAAK,CACP,MAAMrd,EAAW6sC,EAAcxvB,GAC/B,OAAOyvB,EAAc9sC,EACvB,CAIA,GAFAqd,EAAMqvB,EAAc,WAAY,KAAKn4D,KAAKg4D,GAEtClvB,EAAK,CACPA,EAAMA,EAAI,GACV,IAAIrd,EAAW2sC,EAAetvB,GAE9B,OADArd,EAAW6sC,EAAc7sC,GAClB8sC,EAAc9sC,EACvB,CAEA,SAAS0sC,EAAcM,EAAkBC,GACvC,OAAO,IAAI54D,OAAO,cAAgB24D,EAAhB,sDAAmHC,EACvI,CAEA,SAASC,EAAWC,EAAU1lE,GAC5B,GAAI0lE,EAAU,CACZ,IAAK,iBAAiB1Q,KAAKh1D,GACzB,OAAOA,EAGT,IACE,MAAM2lE,EAAU,IAAIC,YAAYF,EAAU,CACxCG,OAAO,IAEH7mD,EAAQsT,MAAMspC,KAAK57D,GAAO,SAAU+/C,GACxC,OAA0B,IAAnBA,EAAGtgC,WAAW,EACvB,IACAzf,EAAQ2lE,EAAQG,OAAO,IAAI7/D,WAAW+Y,IACtCgmD,GAAqB,CAQvB,CAPE,MAAO7mD,GACP,GAAI,YAAY62C,KAAK0Q,GACnB,IACE1lE,EAAQqiB,mBAAmBC,OAAOtiB,IAClCglE,GAAqB,CACR,CAAb,MAAOe,GAAM,CAEnB,CACF,CAEA,OAAO/lE,CACT,CAEA,SAASqlE,EAAcrlE,GASrB,OARIglE,GAAsB,cAAchQ,KAAKh1D,KAC3CA,EAAQylE,EAAW,QAASzlE,GAExBglE,IACFhlE,EAAQylE,EAAW,aAAczlE,KAI9BA,CACT,CAEA,SAASslE,EAAgBU,GACvB,MAAMn5D,EAAU,GAChB,IAAIo5D,EACJ,MAAMC,EAAOjB,EAAc,kCAAmC,MAE9D,MAAsD,QAA9CgB,EAAQC,EAAKp5D,KAAKk5D,IAAkC,CAC1D,IAAK,CAAExlE,EAAG2lE,EAAMC,GAAQH,EAGxB,GAFAzlE,EAAIwM,SAASxM,EAAG,IAEZA,KAAKqM,GACP,GAAU,IAANrM,EACF,WAMJqM,EAAQrM,GAAK,CAAC2lE,EAAMC,EACtB,CAEA,MAAMC,EAAQ,GAEd,IAAK,IAAI7lE,EAAI,EAAGA,EAAIqM,EAAQ3O,SAAUsC,EAAG,CACvC,KAAMA,KAAKqM,GACT,MAGF,IAAKs5D,EAAMC,GAAQv5D,EAAQrM,GAC3B4lE,EAAOlB,EAAekB,GAElBD,IACFC,EAAO7jD,SAAS6jD,GAEN,IAAN5lE,IACF4lE,EAAOjB,EAAciB,KAIzBC,EAAM7oE,KAAK4oE,EACb,CAEA,OAAOC,EAAMloE,KAAK,GACpB,CAEA,SAAS+mE,EAAellE,GACtB,GAAIA,EAAMurC,WAAW,KAAM,CACzB,MAAM86B,EAAQrmE,EAAM2I,MAAM,GAAGuqD,MAAM,OAEnC,IAAK,IAAI90D,EAAI,EAAGA,EAAIioE,EAAMnoE,SAAUE,EAAG,CACrC,MAAMkoE,EAAYD,EAAMjoE,GAAGmM,QAAQ,MAEhB,IAAf+7D,IACFD,EAAMjoE,GAAKioE,EAAMjoE,GAAGuK,MAAM,EAAG29D,GAC7BD,EAAMnoE,OAASE,EAAI,GAGrBioE,EAAMjoE,GAAKioE,EAAMjoE,GAAG2gB,QAAQ,SAAU,KACxC,CAEA/e,EAAQqmE,EAAMloE,KAAK,IACrB,CAEA,OAAO6B,CACT,CAEA,SAASmlE,EAAcoB,GACrB,MAAMC,EAAcD,EAASh8D,QAAQ,KAErC,IAAqB,IAAjBi8D,EACF,OAAOD,EAGT,MAAMb,EAAWa,EAAS59D,MAAM,EAAG69D,GAC7BC,EAAYF,EAAS59D,MAAM69D,EAAc,GACzCxmE,EAAQymE,EAAU1nD,QAAQ,UAAW,IAC3C,OAAO0mD,EAAWC,EAAU1lE,EAC9B,CAEA,SAASolE,EAAcplE,GACrB,OAAKA,EAAMurC,WAAW,OAAS,uBAAuBypB,KAAKh1D,GAClDA,EAGFA,EAAM+e,QAAQ,kDAAkD,SAAUlS,EAAS65D,EAAShB,EAAUt/D,GAC3G,GAAiB,MAAbs/D,GAAiC,MAAbA,EAKtB,OAJAt/D,EAAOA,EAAK2Y,QAAQ,KAAM,KAC1B3Y,EAAOA,EAAK2Y,QAAQ,sBAAsB,SAAUknD,EAAOU,GACzD,OAAOznD,OAAOC,aAAanS,SAAS25D,EAAK,IAC3C,IACOlB,EAAWiB,EAAStgE,GAG7B,IACEA,EAAO22B,KAAK32B,EACD,CAAX,MAAO+X,GAAI,CAEb,OAAOsnD,EAAWiB,EAAStgE,EAC7B,GACF,CAEA,MAAO,EACT,CAnLA3G,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ8nE,wCAA0CA,CAkL3C,EAED,SAAU7nE,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ0G,sBAAmB,EAE3B,IAAI9B,EAAQ9C,EAAoB,GAE5B4iE,EAAiB5iE,EAAoB,IAGzC,MAAM6nE,EAAc,IACdC,EAA2B,IAEjC,SAASC,EAAeC,GACtB,MAAMjnD,EAAOinD,EAAIlhE,SAEjB,GAAoB,kBAATia,EACT,OAAOA,EAGT,MAAMknD,GAAQ,EAAInlE,EAAMsE,eAAe2Z,GACvC,OAAOknD,EAAM3mD,MACf,CAEA,MAAM4mD,EACJ9hE,YAAYpB,EAAKutB,GACfh0B,KAAKyG,IAAMA,EACXutB,EAAOA,GAAQ,CAAC,EAChBh0B,KAAK+kE,OAAS,YAAYrN,KAAKjxD,GAC/BzG,KAAK4pB,YAAc5pB,KAAK+kE,QAAU/wC,EAAKpK,aAAe,CAAC,EACvD5pB,KAAK6pB,gBAAkBmK,EAAKnK,kBAAmB,EAE/C7pB,KAAK4pE,OAAS51C,EAAK41C,QAAU,WAC3B,OAAO,IAAIvgE,cACb,EAEArJ,KAAK6pE,UAAY,EACjB7pE,KAAK8pE,gBAAkB3nE,OAAOY,OAAO,KACvC,CAEAgnE,aAAan+C,EAAOze,EAAK68D,GACvB,MAAMh2C,EAAO,CACXpI,QACAze,OAGF,IAAK,MAAM+T,KAAQ8oD,EACjBh2C,EAAK9S,GAAQ8oD,EAAU9oD,GAGzB,OAAOlhB,KAAKoJ,QAAQ4qB,EACtB,CAEAi2C,YAAYD,GACV,OAAOhqE,KAAKoJ,QAAQ4gE,EACtB,CAEA5gE,QAAQ4qB,GACN,MAAMy1C,EAAMzpE,KAAK4pE,SACXM,EAAQlqE,KAAK6pE,YACbM,EAAiBnqE,KAAK8pE,gBAAgBI,GAAS,CACnDT,OAEFA,EAAIngE,KAAK,MAAOtJ,KAAKyG,KACrBgjE,EAAI5/C,gBAAkB7pB,KAAK6pB,gBAE3B,IAAK,MAAMzmB,KAAYpD,KAAK4pB,YAAa,CACvC,MAAMlnB,EAAQ1C,KAAK4pB,YAAYxmB,GAEV,qBAAVV,GAIX+mE,EAAIW,iBAAiBhnE,EAAUV,EACjC,CAwBA,OAtBI1C,KAAK+kE,QAAU,UAAW/wC,GAAQ,QAASA,GAC7Cy1C,EAAIW,iBAAiB,QAAS,SAASp2C,EAAKpI,SAASoI,EAAK7mB,IAAM,KAChEg9D,EAAeE,eAAiBd,GAEhCY,EAAeE,eAAiBf,EAGlCG,EAAIlgE,aAAe,cAEfyqB,EAAK2vB,UACP8lB,EAAI96D,QAAU,SAAUoqB,GACtB/E,EAAK2vB,QAAQ8lB,EAAI9/D,OACnB,GAGF8/D,EAAIjgE,mBAAqBxJ,KAAKsqE,cAAcrnE,KAAKjD,KAAMkqE,GACvDT,EAAIc,WAAavqE,KAAK8qB,WAAW7nB,KAAKjD,KAAMkqE,GAC5CC,EAAeK,kBAAoBx2C,EAAKw2C,kBACxCL,EAAeM,OAASz2C,EAAKy2C,OAC7BN,EAAexmB,QAAU3vB,EAAK2vB,QAC9BwmB,EAAer/C,WAAakJ,EAAKlJ,WACjC2+C,EAAI5/D,KAAK,MACFqgE,CACT,CAEAp/C,WAAWo/C,EAAOnxC,GAChB,MAAMoxC,EAAiBnqE,KAAK8pE,gBAAgBI,GAEvCC,GAIDA,EAAer/C,YACjBq/C,EAAer/C,WAAWiO,EAE9B,CAEAuxC,cAAcJ,EAAOnxC,GACnB,MAAMoxC,EAAiBnqE,KAAK8pE,gBAAgBI,GAE5C,IAAKC,EACH,OAGF,MAAMV,EAAMU,EAAeV,IAO3B,GALIA,EAAIhgE,YAAc,GAAK0gE,EAAeK,oBACxCL,EAAeK,2BACRL,EAAeK,mBAGD,IAAnBf,EAAIhgE,WACN,OAGF,KAAMygE,KAASlqE,KAAK8pE,iBAClB,OAKF,UAFO9pE,KAAK8pE,gBAAgBI,GAET,IAAfT,EAAI9/D,QAAgB3J,KAAK+kE,OAK3B,YAJIoF,EAAexmB,SACjBwmB,EAAexmB,QAAQ8lB,EAAI9/D,SAM/B,MAAM+gE,EAAYjB,EAAI9/D,QAAU2/D,EAC1BqB,EAA+BD,IAAcpB,GAAea,EAAeE,iBAAmBd,EAEpG,IAAKoB,GAAgCD,IAAcP,EAAeE,eAKhE,YAJIF,EAAexmB,SACjBwmB,EAAexmB,QAAQ8lB,EAAI9/D,SAM/B,MAAMsY,EAAQunD,EAAeC,GAE7B,GAAIiB,IAAcnB,EAA0B,CAC1C,MAAMqB,EAAcnB,EAAIjD,kBAAkB,iBACpCj3D,EAAU,2BAA2BC,KAAKo7D,GAChDT,EAAeM,OAAO,CACpB7+C,MAAOlc,SAASH,EAAQ,GAAI,IAC5B0S,SAEJ,MAAWA,EACTkoD,EAAeM,OAAO,CACpB7+C,MAAO,EACP3J,UAEOkoD,EAAexmB,SACxBwmB,EAAexmB,QAAQ8lB,EAAI9/D,OAE/B,CAEAkhE,qBACE,IAAK,MAAMX,KAASlqE,KAAK8pE,gBACvB,OAAO,EAGT,OAAO,CACT,CAEAgB,cAAcZ,GACZ,OAAOlqE,KAAK8pE,gBAAgBI,GAAOT,GACrC,CAEAsB,iBAAiBb,GACf,OAAOA,KAASlqE,KAAK8pE,eACvB,CAEAkB,mBACE,IAAK,MAAMd,KAASlqE,KAAK8pE,gBACvB9pE,KAAKirE,aAAqB,EAARf,EAEtB,CAEAe,aAAaf,GACX,MAAMT,EAAMzpE,KAAK8pE,gBAAgBI,GAAOT,WACjCzpE,KAAK8pE,gBAAgBI,GAC5BT,EAAIr9C,OACN,EAIF,MAAM/lB,EACJwB,YAAY8f,GACV3nB,KAAKkrE,QAAUvjD,EACf3nB,KAAKmrE,SAAW,IAAIxB,EAAehiD,EAAOlhB,IAAK,CAC7CmjB,YAAajC,EAAOiC,YACpBC,gBAAiBlC,EAAOkC,kBAE1B7pB,KAAK0lE,gBAAkB/9C,EAAOQ,eAC9BnoB,KAAKulD,mBAAqB,KAC1BvlD,KAAKilE,qBAAuB,EAC9B,CAEAmG,4BAA4Bx4C,GAC1B,MAAM9xB,EAAId,KAAKilE,qBAAqBh4D,QAAQ2lB,GAExC9xB,GAAK,GACPd,KAAKilE,qBAAqB/zC,OAAOpwB,EAAG,EAExC,CAEAg4B,gBAGE,OAFA,EAAIv0B,EAAMuF,SAAS9J,KAAKulD,mBAAoB,2DAC5CvlD,KAAKulD,mBAAqB,IAAI8lB,EAAkCrrE,KAAKmrE,SAAUnrE,KAAKkrE,SAC7ElrE,KAAKulD,kBACd,CAEA5rB,eAAe/N,EAAOze,GACpB,MAAMylB,EAAS,IAAI04C,EAAmCtrE,KAAKmrE,SAAUv/C,EAAOze,GAK5E,OAJAylB,EAAO24C,SAAWvrE,KAAKorE,4BAA4BnoE,KAAKjD,MAExDA,KAAKilE,qBAAqB/kE,KAAK0yB,GAExBA,CACT,CAEAgG,kBAAkB5vB,GACZhJ,KAAKulD,oBACPvlD,KAAKulD,mBAAmB9xB,OAAOzqB,GAGjC,MAAMs9C,EAAUtmD,KAAKilE,qBAAqB55D,MAAM,GAEhDi7C,EAAQhzB,SAAQ,SAAUV,GACxBA,EAAOa,OAAOzqB,EAChB,GACF,EAIFrJ,EAAQ0G,iBAAmBA,EAE3B,MAAMglE,EACJxjE,YAAY2jE,EAAS7jD,GACnB3nB,KAAKmrE,SAAWK,EAChB,MAAMx3C,EAAO,CACXw2C,kBAAmBxqE,KAAKyrE,mBAAmBxoE,KAAKjD,MAChDyqE,OAAQzqE,KAAK0rE,QAAQzoE,KAAKjD,MAC1B2jD,QAAS3jD,KAAK2rE,SAAS1oE,KAAKjD,MAC5B8qB,WAAY9qB,KAAK0lD,YAAYziD,KAAKjD,OAEpCA,KAAKulE,KAAO59C,EAAOlhB,IACnBzG,KAAK4rE,eAAiBJ,EAAQvB,YAAYj2C,GAC1Ch0B,KAAK6rE,4BAA6B,EAAItnE,EAAMG,2BAC5C1E,KAAKylE,cAAgB99C,EAAOgB,eAAgB,EAC5C3oB,KAAKslD,eAAiB39B,EAAO/mB,OAC7BZ,KAAK0lE,gBAAkB/9C,EAAOQ,eAEzBnoB,KAAK0lE,iBAAoB1lE,KAAKylE,gBACjCzlE,KAAKylE,eAAgB,GAGvBzlE,KAAKolD,uBAAwB,EAC7BplD,KAAKqlD,mBAAoB,EACzBrlD,KAAK8rE,cAAgB,GACrB9rE,KAAK0mD,UAAY,GACjB1mD,KAAKwmD,OAAQ,EACbxmD,KAAKwlE,kBAAepkE,EACpBpB,KAAKymD,UAAY,KACjBzmD,KAAK8qB,WAAa,IACpB,CAEA2gD,qBACE,MAAMM,EAAmB/rE,KAAK4rE,eAExBI,EAAiBhsE,KAAKmrE,SAASL,cAAciB,GAE7CvF,EAAoBxkE,GACjBgqE,EAAexF,kBAAkBxkE,IAGpC,mBACJykE,EAAkB,gBAClBC,IACE,EAAIrC,EAAesC,kCAAkC,CACvDH,oBACAzB,OAAQ/kE,KAAKmrE,SAASpG,OACtB58C,eAAgBnoB,KAAK0lE,gBACrB/8C,aAAc3oB,KAAKylE,gBAGjBgB,IACFzmE,KAAKqlD,mBAAoB,GAG3BrlD,KAAKslD,eAAiBohB,GAAmB1mE,KAAKslD,eAC9CtlD,KAAKymD,WAAY,EAAI4d,EAAeuC,2BAA2BJ,GAE3DxmE,KAAKqlD,mBACPrlD,KAAKmrE,SAASF,aAAac,GAG7B/rE,KAAK6rE,2BAA2B3iE,SAClC,CAEAwiE,QAAQ13C,GACN,GAAIA,EACF,GAAIh0B,KAAK0mD,UAAU9lD,OAAS,EAAG,CAC7B,MAAMgmD,EAAoB5mD,KAAK0mD,UAAUnnB,QAEzCqnB,EAAkB19C,QAAQ,CACxBxG,MAAOsxB,EAAK/R,MACZ6Q,MAAM,GAEV,MACE9yB,KAAK8rE,cAAc5rE,KAAK8zB,EAAK/R,OAIjCjiB,KAAKwmD,OAAQ,EAETxmD,KAAK8rE,cAAclrE,OAAS,IAIhCZ,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,GACnB,CAEAilB,SAAShiE,GACP,MAAMlD,EAAMzG,KAAKulE,KACX1rC,GAAY,EAAIwqC,EAAe8C,2BAA2Bx9D,EAAQlD,GACxEzG,KAAKwlE,aAAe3rC,EAEpB75B,KAAK6rE,2BAA2B1iE,OAAO0wB,GAEvC75B,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkBz9C,OAAO0wB,EAC3B,IAEA75B,KAAK0mD,UAAY,GACjB1mD,KAAK8rE,cAAgB,EACvB,CAEApmB,YAAYljC,GACNxiB,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdgB,OAAQtJ,EAAKsJ,OACbC,MAAOvJ,EAAKypD,iBAAmBzpD,EAAKuJ,MAAQ/rB,KAAKslD,gBAGvD,CAEIrqB,eACF,OAAOj7B,KAAKymD,SACd,CAEIjtB,uBACF,OAAOx5B,KAAKqlD,iBACd,CAEI9rB,2BACF,OAAOv5B,KAAKolD,qBACd,CAEI3rB,oBACF,OAAOz5B,KAAKslD,cACd,CAEIhsB,mBACF,OAAOt5B,KAAK6rE,2BAA2BnmD,OACzC,CAEA1d,aACE,GAAIhI,KAAKwlE,aACP,MAAMxlE,KAAKwlE,aAGb,GAAIxlE,KAAK8rE,cAAclrE,OAAS,EAAG,CACjC,MAAMqhB,EAAQjiB,KAAK8rE,cAAcvsC,QAEjC,MAAO,CACL78B,MAAOuf,EACP6Q,MAAM,EAEV,CAEA,GAAI9yB,KAAKwmD,MACP,MAAO,CACL9jD,WAAOtB,EACP0xB,MAAM,GAIV,MAAM8zB,GAAoB,EAAIriD,EAAMG,2BAIpC,OAFA1E,KAAK0mD,UAAUxmD,KAAK0mD,GAEbA,EAAkBlhC,OAC3B,CAEA+N,OAAOzqB,GACLhJ,KAAKwmD,OAAQ,EAEbxmD,KAAK6rE,2BAA2B1iE,OAAOH,GAEvChJ,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,GAEb1mD,KAAKmrE,SAASJ,iBAAiB/qE,KAAK4rE,iBACtC5rE,KAAKmrE,SAASF,aAAajrE,KAAK4rE,gBAGlC5rE,KAAKulD,mBAAqB,IAC5B,EAIF,MAAM+lB,EACJzjE,YAAY2jE,EAAS5/C,EAAOze,GAC1BnN,KAAKmrE,SAAWK,EAChB,MAAMx3C,EAAO,CACXy2C,OAAQzqE,KAAK0rE,QAAQzoE,KAAKjD,MAC1B8qB,WAAY9qB,KAAK0lD,YAAYziD,KAAKjD,OAEpCA,KAAKksE,WAAaV,EAAQzB,aAAan+C,EAAOze,EAAK6mB,GACnDh0B,KAAK0mD,UAAY,GACjB1mD,KAAK8mD,aAAe,KACpB9mD,KAAKwmD,OAAQ,EACbxmD,KAAK8qB,WAAa,KAClB9qB,KAAKurE,SAAW,IAClB,CAEAY,SACMnsE,KAAKurE,UACPvrE,KAAKurE,SAASvrE,KAElB,CAEA0rE,QAAQlpD,GACN,MAAMP,EAAQO,EAAKP,MAEnB,GAAIjiB,KAAK0mD,UAAU9lD,OAAS,EAAG,CAC7B,MAAMgmD,EAAoB5mD,KAAK0mD,UAAUnnB,QAEzCqnB,EAAkB19C,QAAQ,CACxBxG,MAAOuf,EACP6Q,MAAM,GAEV,MACE9yB,KAAK8mD,aAAe7kC,EAGtBjiB,KAAKwmD,OAAQ,EAEbxmD,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,GAEjB1mD,KAAKmsE,QACP,CAEAzmB,YAAY3sB,IACL/4B,KAAKu5B,sBAAwBv5B,KAAK8qB,YACrC9qB,KAAK8qB,WAAW,CACdgB,OAAQiN,EAAIjN,QAGlB,CAEIyN,2BACF,OAAO,CACT,CAEAvxB,aACE,GAA0B,OAAtBhI,KAAK8mD,aAAuB,CAC9B,MAAM7kC,EAAQjiB,KAAK8mD,aAEnB,OADA9mD,KAAK8mD,aAAe,KACb,CACLpkD,MAAOuf,EACP6Q,MAAM,EAEV,CAEA,GAAI9yB,KAAKwmD,MACP,MAAO,CACL9jD,WAAOtB,EACP0xB,MAAM,GAIV,MAAM8zB,GAAoB,EAAIriD,EAAMG,2BAIpC,OAFA1E,KAAK0mD,UAAUxmD,KAAK0mD,GAEbA,EAAkBlhC,OAC3B,CAEA+N,OAAOzqB,GACLhJ,KAAKwmD,OAAQ,EAEbxmD,KAAK0mD,UAAUpzB,SAAQ,SAAUszB,GAC/BA,EAAkB19C,QAAQ,CACxBxG,WAAOtB,EACP0xB,MAAM,GAEV,IAEA9yB,KAAK0mD,UAAY,GAEb1mD,KAAKmrE,SAASJ,iBAAiB/qE,KAAKksE,aACtClsE,KAAKmrE,SAASF,aAAajrE,KAAKksE,YAGlClsE,KAAKmsE,QACP,EAIK,EAED,SAAUvsE,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ2G,oBAAiB,EAEzB,IAAI/B,EAAQ9C,EAAoB,GAE5B4iE,EAAiB5iE,EAAoB,IAIzC,SAAS2qE,EAAmBlG,EAASr8C,EAAiBwiD,GACpD,MAAO,CACLhG,OAAQ,MACRH,UACAoG,OAAQD,GAAmBA,EAAgBC,OAC3C1pE,KAAM,OACN2pE,YAAa1iD,EAAkB,UAAY,cAC3C2iD,SAAU,SAEd,CAEA,SAASC,EAAc7iD,GACrB,MAAMs8C,EAAU,IAAIwG,QAEpB,IAAK,MAAMtpE,KAAYwmB,EAAa,CAClC,MAAMlnB,EAAQknB,EAAYxmB,GAEL,qBAAVV,GAIXwjE,EAAQ7P,OAAOjzD,EAAUV,EAC3B,CAEA,OAAOwjE,CACT,CAEA,MAAM5/D,EACJuB,YAAY8f,GACV3nB,KAAK2nB,OAASA,EACd3nB,KAAK+kE,OAAS,YAAYrN,KAAK/vC,EAAOlhB,KACtCzG,KAAK4pB,YAAc5pB,KAAK+kE,QAAUp9C,EAAOiC,aAAe,CAAC,EACzD5pB,KAAKulD,mBAAqB,KAC1BvlD,KAAKilE,qBAAuB,EAC9B,CAEIlf,6BACF,OAAO/lD,KAAKulD,mBAAqBvlD,KAAKulD,mBAAmBS,QAAU,CACrE,CAEAltB,gBAGE,OAFA,EAAIv0B,EAAMuF,SAAS9J,KAAKulD,mBAAoB,yDAC5CvlD,KAAKulD,mBAAqB,IAAIonB,EAAqB3sE,MAC5CA,KAAKulD,kBACd,CAEA5rB,eAAe/N,EAAOze,GACpB,GAAIA,GAAOnN,KAAK+lD,uBACd,OAAO,KAGT,MAAMnzB,EAAS,IAAIg6C,EAA0B5sE,KAAM4rB,EAAOze,GAI1D,OAFAnN,KAAKilE,qBAAqB/kE,KAAK0yB,GAExBA,CACT,CAEAgG,kBAAkB5vB,GACZhJ,KAAKulD,oBACPvlD,KAAKulD,mBAAmB9xB,OAAOzqB,GAGjC,MAAMs9C,EAAUtmD,KAAKilE,qBAAqB55D,MAAM,GAEhDi7C,EAAQhzB,SAAQ,SAAUV,GACxBA,EAAOa,OAAOzqB,EAChB,GACF,EAIFrJ,EAAQ2G,eAAiBA,EAEzB,MAAMqmE,EACJ9kE,YAAY42C,GACVz+C,KAAKumD,QAAU9H,EACfz+C,KAAKm8D,QAAU,KACfn8D,KAAKgmD,QAAU,EACfhmD,KAAKymD,UAAY,KACjB,MAAM9+B,EAAS82B,EAAO92B,OACtB3nB,KAAK6sE,iBAAmBllD,EAAOkC,kBAAmB,EAClD7pB,KAAKslD,eAAiB39B,EAAO/mB,OAC7BZ,KAAK6lE,oBAAqB,EAAIthE,EAAMG,2BACpC1E,KAAKylE,cAAgB99C,EAAOgB,eAAgB,EAC5C3oB,KAAK0lE,gBAAkB/9C,EAAOQ,eAEzBnoB,KAAK0lE,iBAAoB1lE,KAAKylE,gBACjCzlE,KAAKylE,eAAgB,GAGQ,qBAApBqH,kBACT9sE,KAAK+sE,iBAAmB,IAAID,iBAG9B9sE,KAAKolD,uBAAyBz9B,EAAOiB,cACrC5oB,KAAKqlD,mBAAqB19B,EAAOgB,aACjC3oB,KAAKgtE,SAAWP,EAAczsE,KAAKumD,QAAQ38B,aAC3C,MAAMnjB,EAAMkhB,EAAOlhB,IACnB4B,MAAM5B,EAAK2lE,EAAmBpsE,KAAKgtE,SAAUhtE,KAAK6sE,iBAAkB7sE,KAAK+sE,mBAAmBzkE,MAAKC,IAC/F,KAAK,EAAI87D,EAAe+C,wBAAwB7+D,EAASoB,QACvD,MAAM,EAAI06D,EAAe8C,2BAA2B5+D,EAASoB,OAAQlD,GAGvEzG,KAAKm8D,QAAU5zD,EAAS64B,KAAKnO,YAE7BjzB,KAAK6lE,mBAAmB38D,UAExB,MAAMs9D,EAAoBxkE,GACjBuG,EAAS29D,QAAQ5jE,IAAIN,IAGxB,mBACJykE,EAAkB,gBAClBC,IACE,EAAIrC,EAAesC,kCAAkC,CACvDH,oBACAzB,OAAQ/kE,KAAKumD,QAAQwe,OACrB58C,eAAgBnoB,KAAK0lE,gBACrB/8C,aAAc3oB,KAAKylE,gBAErBzlE,KAAKqlD,kBAAoBohB,EACzBzmE,KAAKslD,eAAiBohB,GAAmB1mE,KAAKslD,eAC9CtlD,KAAKymD,WAAY,EAAI4d,EAAeuC,2BAA2BJ,IAE1DxmE,KAAKolD,uBAAyBplD,KAAKqlD,mBACtCrlD,KAAKyzB,OAAO,IAAIlvB,EAAMqN,eAAe,0BACvC,IACC7I,MAAM/I,KAAK6lE,mBAAmB18D,QACjCnJ,KAAK8qB,WAAa,IACpB,CAEIwO,mBACF,OAAOt5B,KAAK6lE,mBAAmBngD,OACjC,CAEIuV,eACF,OAAOj7B,KAAKymD,SACd,CAEIhtB,oBACF,OAAOz5B,KAAKslD,cACd,CAEI9rB,uBACF,OAAOx5B,KAAKqlD,iBACd,CAEI9rB,2BACF,OAAOv5B,KAAKolD,qBACd,CAEAp9C,mBACQhI,KAAK6lE,mBAAmBngD,QAC9B,MAAM,MACJhjB,EAAK,KACLowB,SACQ9yB,KAAKm8D,QAAQtpC,OAEvB,GAAIC,EACF,MAAO,CACLpwB,QACAowB,QAIJ9yB,KAAKgmD,SAAWtjD,EAAM2f,WAElBriB,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdgB,OAAQ9rB,KAAKgmD,QACbj6B,MAAO/rB,KAAKslD,iBAIhB,MAAMviC,EAAS,IAAIpa,WAAWjG,GAAOqgB,OACrC,MAAO,CACLrgB,MAAOqgB,EACP+P,MAAM,EAEV,CAEAW,OAAOzqB,GACDhJ,KAAKm8D,SACPn8D,KAAKm8D,QAAQ1oC,OAAOzqB,GAGlBhJ,KAAK+sE,kBACP/sE,KAAK+sE,iBAAiB3gD,OAE1B,EAIF,MAAMwgD,EACJ/kE,YAAY42C,EAAQ7yB,EAAOze,GACzBnN,KAAKumD,QAAU9H,EACfz+C,KAAKm8D,QAAU,KACfn8D,KAAKgmD,QAAU,EACf,MAAMr+B,EAAS82B,EAAO92B,OACtB3nB,KAAK6sE,iBAAmBllD,EAAOkC,kBAAmB,EAClD7pB,KAAK4lE,iBAAkB,EAAIrhE,EAAMG,2BACjC1E,KAAKolD,uBAAyBz9B,EAAOiB,cAEN,qBAApBkkD,kBACT9sE,KAAK+sE,iBAAmB,IAAID,iBAG9B9sE,KAAKgtE,SAAWP,EAAczsE,KAAKumD,QAAQ38B,aAE3C5pB,KAAKgtE,SAAS3W,OAAO,QAAS,SAASzqC,KAASze,EAAM,KAEtD,MAAM1G,EAAMkhB,EAAOlhB,IACnB4B,MAAM5B,EAAK2lE,EAAmBpsE,KAAKgtE,SAAUhtE,KAAK6sE,iBAAkB7sE,KAAK+sE,mBAAmBzkE,MAAKC,IAC/F,KAAK,EAAI87D,EAAe+C,wBAAwB7+D,EAASoB,QACvD,MAAM,EAAI06D,EAAe8C,2BAA2B5+D,EAASoB,OAAQlD,GAGvEzG,KAAK4lE,gBAAgB18D,UAErBlJ,KAAKm8D,QAAU5zD,EAAS64B,KAAKnO,WAAW,IAE1CjzB,KAAK8qB,WAAa,IACpB,CAEIyO,2BACF,OAAOv5B,KAAKolD,qBACd,CAEAp9C,mBACQhI,KAAK4lE,gBAAgBlgD,QAC3B,MAAM,MACJhjB,EAAK,KACLowB,SACQ9yB,KAAKm8D,QAAQtpC,OAEvB,GAAIC,EACF,MAAO,CACLpwB,QACAowB,QAIJ9yB,KAAKgmD,SAAWtjD,EAAM2f,WAElBriB,KAAK8qB,YACP9qB,KAAK8qB,WAAW,CACdgB,OAAQ9rB,KAAKgmD,UAIjB,MAAMjjC,EAAS,IAAIpa,WAAWjG,GAAOqgB,OACrC,MAAO,CACLrgB,MAAOqgB,EACP+P,MAAM,EAEV,CAEAW,OAAOzqB,GACDhJ,KAAKm8D,SACPn8D,KAAKm8D,QAAQ1oC,OAAOzqB,GAGlBhJ,KAAK+sE,kBACP/sE,KAAK+sE,iBAAiB3gD,OAE1B,EAIK,GAEP,G;;;;;;;;;;;;;;;;;;;;;GCxpaAjqB,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQstE,gBAAkBA,EAC1BttE,EAAQutE,kBAAoBA,EAC5BvtE,EAAQwtE,kBAAoBA,EAC5BxtE,EAAQytE,sBAAwBA,EAChCztE,EAAQ0tE,MAAQA,EAChB1tE,EAAQ2tE,sBAAwBA,EAChC3tE,EAAQ4tE,qBAAuBA,EAC/B5tE,EAAQ6tE,iBAAmBA,EAC3B7tE,EAAQ8tE,kCAAoCA,EAC5C9tE,EAAQ+tE,mBAAqBA,EAC7B/tE,EAAQguE,cAAgBA,EACxBhuE,EAAQiuE,kBAAoBA,EAC5BjuE,EAAQkuE,oBAAsBA,EAC9BluE,EAAQmuE,eAAiBA,EACzBnuE,EAAQouE,eAAiBA,EACzBpuE,EAAQquE,YAAcA,EACtBruE,EAAQsuE,sBAAwBA,EAChCtuE,EAAQuuE,yBAA2BA,EACnCvuE,EAAQwuE,qBAAuBA,EAC/BxuE,EAAQyuE,iBAAmBA,EAC3BzuE,EAAQ0uE,WAAa1uE,EAAQ2uE,iBAAmB3uE,EAAQ4uE,YAAc5uE,EAAQ6uE,SAAW7uE,EAAQ8uE,SAAW9uE,EAAQ+uE,WAAa/uE,EAAQgvE,WAAahvE,EAAQivE,cAAgBjvE,EAAQkvE,aAAelvE,EAAQmvE,sBAAwBnvE,EAAQovE,iBAAmBpvE,EAAQqvE,kBAAoBrvE,EAAQsvE,eAAiBtvE,EAAQuvE,cAAgBvvE,EAAQwvE,UAAYxvE,EAAQyvE,UAAYzvE,EAAQ0vE,cAAgB1vE,EAAQ2vE,oBAAsB3vE,EAAQ4vE,UAAY5vE,EAAQ6vE,qBAAkB,EACzd,MAAMD,EAAY,GAAO,GACzB5vE,EAAQ4vE,UAAYA,EACpB,MAAMD,EAAsB,OAC5B3vE,EAAQ2vE,oBAAsBA,EAC9B,MAAMD,EAAgB,EACtB1vE,EAAQ0vE,cAAgBA,EACxB,MAAMD,EAAY,GAClBzvE,EAAQyvE,UAAYA,EACpB,MAAMD,EAAY,GAClBxvE,EAAQwvE,UAAYA,EACpB,MAAMD,EAAgB,EACtBvvE,EAAQuvE,cAAgBA,EACxB,MAAMD,EAAiB,KACvBtvE,EAAQsvE,eAAiBA,EACzB,MAAMD,EAAoB,GAC1BrvE,EAAQqvE,kBAAoBA,EAC5B,MAAMD,EAAmB,EACzBpvE,EAAQovE,iBAAmBA,EAC3B,MAAMD,EAAwB,CAC5B/2D,QAAS,EACT03D,OAAQ,EACRC,SAAU,EACVC,WAAY,GAEdhwE,EAAQmvE,sBAAwBA,EAChC,MAAMD,EAAe,CACnBe,OAAQ,SACRC,IAAK,OAEPlwE,EAAQkvE,aAAeA,EACvB,MAAMD,EAAgB,CACpBkB,QAAS,EACTC,OAAQ,EACRC,eAAgB,GAElBrwE,EAAQivE,cAAgBA,EACxB,MAAMD,EAAa,CACjB52D,SAAU,EACVk4D,SAAU,EACVC,WAAY,EACZC,QAAS,GAEXxwE,EAAQgvE,WAAaA,EACrB,MAAMD,EAAa,CACjB32D,SAAU,EACV5P,KAAM,EACNioE,IAAK,EACLC,KAAM,GAER1wE,EAAQ+uE,WAAaA,EACrB,MAAMc,EAAkB,eAGxB,SAASc,EAAgBxnE,EAAMkrB,GAC7B,OAAKA,EAIElrB,EAAK2Y,QAAQ,wBAAwB,CAACqI,EAAK9nB,IACzCA,KAAQgyB,EAAOA,EAAKhyB,GAAQ,KAAOA,EAAO,OAJ1C8G,CAMX,CAVAnJ,EAAQ6vE,gBAAkBA,EAY1B,MAAMf,EAAW,CACfzmE,oBACE,MAAO,OACT,EAEAA,qBACE,MAAO,KACT,EAEAA,UAAU5E,EAAU4wB,EAAMu8C,GACxB,OAAOD,EAAgBC,EAAUv8C,EACnC,EAEAhsB,gBAAgBsd,GAAU,GAK5B,SAASwoD,EAAe9tC,GACtB,MAAMwwC,EAAmBzoD,OAAOyoD,kBAAoB,EAC9CC,EAAoBzwC,EAAI0wC,8BAAgC1wC,EAAI2wC,2BAA6B3wC,EAAI4wC,0BAA4B5wC,EAAI6wC,yBAA2B7wC,EAAI8wC,wBAA0B,EACtLC,EAAaP,EAAmBC,EACtC,MAAO,CACLtsD,GAAI4sD,EACJ3sD,GAAI2sD,EACJC,OAAuB,IAAfD,EAEZ,CAEA,SAAShD,EAAezoD,EAAS2rD,EAAMC,GAA6B,GAClE,IAAIC,EAAS7rD,EAAQ8rD,aAErB,IAAKD,EAEH,YADAniE,QAAQ+hB,MAAM,4CAIhB,IAAIxmB,EAAU+a,EAAQ+rD,UAAY/rD,EAAQgsD,UACtChnE,EAAUgb,EAAQisD,WAAajsD,EAAQksD,WAE3C,MAAOL,EAAOM,eAAiBN,EAAOO,cAAgBP,EAAOQ,cAAgBR,EAAOS,aAAeV,GAAoE,WAAtCW,iBAAiBV,GAAQW,SAUxJ,GATIX,EAAOlf,QAAQ8f,UACjBxnE,GAAW4mE,EAAOlf,QAAQ8f,QAC1BznE,GAAW6mE,EAAOlf,QAAQ+f,SAG5BznE,GAAW4mE,EAAOE,UAClB/mE,GAAW6mE,EAAOI,WAClBJ,EAASA,EAAOC,cAEXD,EACH,OAIAF,SACe7vE,IAAb6vE,EAAKjwC,MACPz2B,GAAW0mE,EAAKjwC,UAGA5/B,IAAd6vE,EAAKhwC,OACP32B,GAAW2mE,EAAKhwC,KAChBkwC,EAAOc,WAAa3nE,IAIxB6mE,EAAOe,UAAY3nE,CACrB,CAEA,SAASyjE,EAAYmE,EAAiB7gD,GACpC,MAAM8gD,EAAiB,SAAUr5C,GAC3Bs5C,IAIJA,EAAMtqD,OAAOoV,uBAAsB,WACjCk1C,EAAM,KACN,MAAMC,EAAWH,EAAgBF,WAC3BM,EAAQ9jC,EAAM8jC,MAEhBD,IAAaC,IACf9jC,EAAMmrB,MAAQ0Y,EAAWC,GAG3B9jC,EAAM8jC,MAAQD,EACd,MAAME,EAAWL,EAAgBD,UAC3BO,EAAQhkC,EAAMgkC,MAEhBD,IAAaC,IACfhkC,EAAMikC,KAAOF,EAAWC,GAG1BhkC,EAAMgkC,MAAQD,EACdlhD,EAASmd,EACX,IACF,EAEMA,EAAQ,CACZmrB,OAAO,EACP8Y,MAAM,EACNH,MAAOJ,EAAgBF,WACvBQ,MAAON,EAAgBD,UACvBS,cAAeP,GAEjB,IAAIC,EAAM,KAEV,OADAF,EAAgB78C,iBAAiB,SAAU88C,GAAgB,GACpD3jC,CACT,CAEA,SAAS++B,EAAiBtgE,GACxB,MAAM67D,EAAQ77D,EAAM0oD,MAAM,KACpBxvD,EAASjE,OAAOY,OAAO,MAE7B,IAAK,IAAIjC,EAAI,EAAGklB,EAAK+iD,EAAMnoE,OAAQE,EAAIklB,IAAMllB,EAAG,CAC9C,MAAM8xE,EAAQ7J,EAAMjoE,GAAG80D,MAAM,KACvB5yD,EAAM4vE,EAAM,GAAGzxB,cACfz+C,EAAQkwE,EAAMhyE,OAAS,EAAIgyE,EAAM,GAAK,KAC5CxsE,EAAO2e,mBAAmB/hB,IAAQ+hB,mBAAmBriB,EACvD,CAEA,OAAO0D,CACT,CAEA,SAAS6nE,EAAsBz7C,EAAOqgD,GACpC,IAAIC,EAAW,EACXC,EAAWvgD,EAAM5xB,OAAS,EAE9B,GAAImyE,EAAW,IAAMF,EAAUrgD,EAAMugD,IACnC,OAAOvgD,EAAM5xB,OAGf,GAAIiyE,EAAUrgD,EAAMsgD,IAClB,OAAOA,EAGT,MAAOA,EAAWC,EAAU,CAC1B,MAAMC,EAAeF,EAAWC,GAAY,EACtCE,EAAczgD,EAAMwgD,GAEtBH,EAAUI,GACZF,EAAWC,EAEXF,EAAWE,EAAe,CAE9B,CAEA,OAAOF,CACT,CAEA,SAASjF,EAAoBtiE,GAC3B,GAAIN,KAAKwqC,MAAMlqC,KAAOA,EACpB,MAAO,CAACA,EAAG,GAGb,MAAM2nE,EAAO,EAAI3nE,EACX6iC,EAAQ,EAEd,GAAI8kC,EAAO9kC,EACT,MAAO,CAAC,EAAGA,GACN,GAAInjC,KAAKwqC,MAAMy9B,KAAUA,EAC9B,MAAO,CAAC,EAAGA,GAGb,MAAMC,EAAK5nE,EAAI,EAAI2nE,EAAO3nE,EAC1B,IAsBIoZ,EAtBAX,EAAI,EACJZ,EAAI,EACJthB,EAAI,EACJC,EAAI,EAER,MAAO,EAAM,CACX,MAAMwB,EAAIygB,EAAIliB,EACR44C,EAAIt3B,EAAIrhB,EAEd,GAAI24C,EAAItM,EACN,MAGE+kC,GAAM5vE,EAAIm3C,GACZ54C,EAAIyB,EACJxB,EAAI24C,IAEJ12B,EAAIzgB,EACJ6f,EAAIs3B,EAER,CAUA,OALE/1B,EADEwuD,EAAKnvD,EAAIZ,EAAIthB,EAAIC,EAAIoxE,EACdA,IAAO5nE,EAAI,CAACyY,EAAGZ,GAAK,CAACA,EAAGY,GAExBmvD,IAAO5nE,EAAI,CAACzJ,EAAGC,GAAK,CAACA,EAAGD,GAG5B6iB,CACT,CAEA,SAASgpD,EAAcpiE,EAAGq1B,GACxB,MAAMr+B,EAAIgJ,EAAIq1B,EACd,OAAa,IAANr+B,EAAUgJ,EAAIN,KAAK8uC,MAAMxuC,EAAIhJ,EAAIq+B,EAC1C,CAEA,SAASgtC,GAAkB,KACzB1+C,EAAI,SACJD,EAAQ,OACRD,IAEA,MAAO8lB,EAAIC,EAAI0D,EAAIC,GAAMxpB,EACnBkkD,EAAoBpkD,EAAS,MAAQ,EACrC9nB,GAASuxC,EAAK3D,GAAM,GAAK7lB,EACzB9nB,GAAUuxC,EAAK3D,GAAM,GAAK9lB,EAChC,MAAO,CACL/nB,MAAOksE,EAAoBjsE,EAASD,EACpCC,OAAQisE,EAAoBlsE,EAAQC,EAExC,CAEA,SAASsmE,EAAkCloD,EAAO8tD,EAAOryC,GACvD,GAAIzb,EAAQ,EACV,OAAOA,EAGT,IAAI+tD,EAAMD,EAAM9tD,GAAOqb,IACnB2yC,EAAUD,EAAIjC,UAAYiC,EAAIhC,UAE9BiC,GAAWvyC,IACbsyC,EAAMD,EAAM9tD,EAAQ,GAAGqb,IACvB2yC,EAAUD,EAAIjC,UAAYiC,EAAIhC,WAGhC,IAAK,IAAIxwE,EAAIykB,EAAQ,EAAGzkB,GAAK,IAAKA,EAAG,CAGnC,GAFAwyE,EAAMD,EAAMvyE,GAAG8/B,IAEX0yC,EAAIjC,UAAYiC,EAAIhC,UAAYgC,EAAI7B,cAAgB8B,EACtD,MAGFhuD,EAAQzkB,CACV,CAEA,OAAOykB,CACT,CAEA,SAASmoD,EAAmB8F,EAAUH,EAAOI,GAAmB,EAAOC,GAAa,GAClF,MAAM1yC,EAAMwyC,EAAStB,UACfrY,EAAS74B,EAAMwyC,EAAS/B,aACxBxwC,EAAOuyC,EAASvB,WAChBrY,EAAQ34B,EAAOuyC,EAAS7B,YAE9B,SAASgC,EAA4BzkD,GACnC,MAAM5J,EAAU4J,EAAK0R,IACfgzC,EAAgBtuD,EAAQ+rD,UAAY/rD,EAAQgsD,UAAYhsD,EAAQmsD,aACtE,OAAOmC,EAAgB5yC,CACzB,CAEA,SAAS6yC,EAA4B3kD,GACnC,MAAM5J,EAAU4J,EAAK0R,IACfkzC,EAAexuD,EAAQisD,WAAajsD,EAAQksD,WAAalsD,EAAQqsD,YACvE,OAAOmC,EAAe7yC,CACxB,CAEA,MAAM8yC,EAAU,GACVC,EAAWX,EAAMzyE,OACvB,IAAIqzE,EAAsC,IAAbD,EAAiB,EAAI/F,EAAsBoF,EAAOK,EAAaG,EAA8BF,GAEtHM,EAAyB,GAAKA,EAAyBD,IAAaN,IACtEO,EAAyBxG,EAAkCwG,EAAwBZ,EAAOryC,IAG5F,IAAIkzC,EAAWR,EAAa9Z,GAAS,EAErC,IAAK,IAAI94D,EAAImzE,EAAwBnzE,EAAIkzE,EAAUlzE,IAAK,CACtD,MAAMouB,EAAOmkD,EAAMvyE,GACbwkB,EAAU4J,EAAK0R,IACfuzC,EAAe7uD,EAAQisD,WAAajsD,EAAQksD,WAC5C4C,EAAgB9uD,EAAQ+rD,UAAY/rD,EAAQgsD,UAC5C+C,EAAY/uD,EAAQqsD,YACpB2C,EAAahvD,EAAQmsD,aACrB8C,EAAYJ,EAAeE,EAC3BG,EAAaJ,EAAgBE,EAEnC,IAAkB,IAAdJ,EACEM,GAAc3a,IAChBqa,EAAWM,QAER,IAAKd,EAAaS,EAAeC,GAAiBF,EACvD,MAGF,GAAIM,GAAcxzC,GAAOozC,GAAiBva,GAAU0a,GAAatzC,GAAQkzC,GAAgBva,EACvF,SAGF,MAAM6a,EAAexpE,KAAK4Y,IAAI,EAAGmd,EAAMozC,GAAiBnpE,KAAK4Y,IAAI,EAAG2wD,EAAa3a,GAC3E6a,EAAczpE,KAAK4Y,IAAI,EAAGod,EAAOkzC,GAAgBlpE,KAAK4Y,IAAI,EAAG0wD,EAAY3a,GACzE+a,GAAWL,EAAaG,IAAiBJ,EAAYK,GAAe,IAAMJ,EAAaD,EAAY,EACzGN,EAAQ7zE,KAAK,CACXC,GAAI+uB,EAAK/uB,GACToL,EAAG4oE,EACH3oE,EAAG4oE,EACHllD,OACAylD,WAEJ,CAEA,MAAM1wD,EAAQ8vD,EAAQ,GAChBa,EAAOb,EAAQA,EAAQnzE,OAAS,GActC,OAZI6yE,GACFM,EAAQtvD,MAAK,SAAUT,EAAGZ,GACxB,MAAMyxD,EAAK7wD,EAAE2wD,QAAUvxD,EAAEuxD,QAEzB,OAAI1pE,KAAKC,IAAI2pE,GAAM,MACTA,EAGH7wD,EAAE7jB,GAAKijB,EAAEjjB,EAClB,IAGK,CACL8jB,QACA2wD,OACAvB,MAAOU,EAEX,CAEA,SAASxG,EAAqBx0C,GAC5BA,EAAI+7C,gBACN,CAEA,SAASC,EAAatuE,GACpB,IAAI3F,EAAI,EACR,MAAMklB,EAAKvf,EAAI7F,OAEf,MAAOE,EAAIklB,GAAwB,KAAlBvf,EAAI3F,GAAG4gD,OACtB5gD,IAGF,MAAiD,UAA1C2F,EAAI4G,UAAUvM,EAAGA,EAAI,GAAGqgD,aACjC,CAEA,SAASmsB,EAAsB7mE,EAAKuuE,EAAkB,gBACpD,GAAmB,kBAARvuE,EACT,OAAOuuE,EAGT,GAAID,EAAatuE,GAEf,OADAuI,QAAQtB,KAAK,wEACNsnE,EAGT,MAAMC,EAAQ,uDACRC,EAAa,iCACbC,EAAWF,EAAMzlE,KAAK/I,GAC5B,IAAI2uE,EAAoBF,EAAW1lE,KAAK2lE,EAAS,KAAOD,EAAW1lE,KAAK2lE,EAAS,KAAOD,EAAW1lE,KAAK2lE,EAAS,IAEjH,GAAIC,IACFA,EAAoBA,EAAkB,GAElCA,EAAkBtgD,SAAS,MAC7B,IACEsgD,EAAoBF,EAAW1lE,KAAKuV,mBAAmBqwD,IAAoB,EAC/D,CAAZ,MAAO7mE,GAAK,CAIlB,OAAO6mE,GAAqBJ,CAC9B,CAEA,SAAS9G,EAAyBn1C,GAChC,IAAIs8C,EAAQpqE,KAAKiZ,KAAK6U,EAAIu8C,OAASv8C,EAAIu8C,OAASv8C,EAAIw8C,OAASx8C,EAAIw8C,QACjE,MAAM1xC,EAAQ54B,KAAKwtD,MAAM1/B,EAAIw8C,OAAQx8C,EAAIu8C,SAEpC,IAAOrqE,KAAK0tD,GAAK90B,GAASA,EAAQ,IAAO54B,KAAK0tD,KACjD0c,GAASA,GAGX,MAAMG,EAA6B,EAC7BC,EAA4B,EAC5BC,EAAwB,GACxBC,EAAuB,GAQ7B,OANI58C,EAAI68C,YAAcJ,EACpBH,GAASK,EAAwBC,EACxB58C,EAAI68C,YAAcH,IAC3BJ,GAASM,GAGJN,CACT,CAEA,SAASpI,EAAgBppC,GACvB,OAAOtjB,OAAOC,UAAUqjB,IAAUA,EAAQ,KAAO,CACnD,CAEA,SAASqpC,EAAkBtqE,GACzB,OAAO2d,OAAOC,UAAU5d,IAAST,OAAO0zE,OAAOlH,GAAY75C,SAASlyB,IAASA,IAAS+rE,EAAW52D,OACnG,CAEA,SAASo1D,EAAkBvqE,GACzB,OAAO2d,OAAOC,UAAU5d,IAAST,OAAO0zE,OAAOnH,GAAY55C,SAASlyB,IAASA,IAAS8rE,EAAW32D,OACnG,CAEA,SAASq1D,EAAsB96C,GAC7B,OAAOA,EAAKprB,OAASorB,EAAKnrB,MAC5B,CAtYAxH,EAAQ8uE,SAAWA,EAwYnB,MAAMJ,EAAa,CACjByH,MAAO,QACPC,QAAS,WAIX,SAAS5H,GAAqB,OAC5B3hE,EAAM,KACNxK,EAAI,MACJg0E,EAAQ,IAER,OAAO,IAAI/sE,SAAQ,SAAUC,EAASC,GACpC,GAAsB,kBAAXqD,IAAyBxK,GAAwB,kBAATA,KAAwBue,OAAOC,UAAUw1D,IAAUA,GAAS,GAC7G,MAAM,IAAI5uE,MAAM,8CAGlB,SAAS43C,EAAQ90C,GACXsC,aAAkBgiE,EACpBhiE,EAAOypE,KAAKj0E,EAAMk0E,GAElB1pE,EAAO+oB,oBAAoBvzB,EAAMk0E,GAG/BxZ,GACFvsC,aAAausC,GAGfxzD,EAAQgB,EACV,CAEA,MAAMgsE,EAAel3B,EAAQ/7C,KAAK,KAAMorE,EAAWyH,OAE/CtpE,aAAkBgiE,EACpBhiE,EAAO2pE,IAAIn0E,EAAMk0E,GAEjB1pE,EAAO8oB,iBAAiBtzB,EAAMk0E,GAGhC,MAAME,EAAiBp3B,EAAQ/7C,KAAK,KAAMorE,EAAW0H,SAC/CrZ,EAAUxoC,WAAWkiD,EAAgBJ,EAC7C,GACF,CArCAr2E,EAAQ0uE,WAAaA,EAuCrB,MAAMC,EAAmB,IAAIrlE,SAAQ,SAAUC,GAC7C6e,OAAOoV,sBAAsBj0B,EAC/B,IACAvJ,EAAQ2uE,iBAAmBA,EAM3B,MAAME,EACJ3mE,YAAYksD,GACV/zD,KAAKq0B,WAAalyB,OAAOY,OAAO,KAClC,CAEAm0B,GAAGm/C,EAAW9qD,GACZvrB,KAAKm2E,IAAIE,EAAW9qD,EAAU,CAC5B+qD,UAAU,GAEd,CAEAC,IAAIF,EAAW9qD,GACbvrB,KAAKi2E,KAAKI,EAAW9qD,EAAU,CAC7B+qD,UAAU,GAEd,CAEArf,SAASof,GACP,MAAMG,EAAiBx2E,KAAKq0B,WAAWgiD,GAEvC,IAAKG,GAA4C,IAA1BA,EAAe51E,OACpC,OAGF,MAAMozB,EAAOgB,MAAM3xB,UAAUgI,MAAMzJ,KAAKwyC,UAAW,GACnD,IAAIqiC,EACJD,EAAenrE,MAAM,GAAGioB,SAAQ,UAAU,SACxC/H,EAAQ,SACR+qD,IAEA,GAAIA,EAMF,OALKG,IACHA,EAAoB,SAGtBA,EAAkBv2E,KAAKqrB,GAIzBA,EAASzJ,MAAM,KAAMkS,EACvB,IAEIyiD,IACFA,EAAkBnjD,SAAQ,SAAU/H,GAClCA,EAASzJ,MAAM,KAAMkS,EACvB,IACAyiD,EAAoB,KAExB,CAEAN,IAAIE,EAAW9qD,EAAUwoC,EAAU,MACjC,IAAIyiB,EAAiBx2E,KAAKq0B,WAAWgiD,GAEhCG,IACHx2E,KAAKq0B,WAAWgiD,GAAaG,EAAiB,IAGhDA,EAAet2E,KAAK,CAClBqrB,WACA+qD,UAA4C,KAAjCviB,GAAWA,EAAQuiB,WAElC,CAEAL,KAAKI,EAAW9qD,EAAUwoC,EAAU,MAClC,MAAMyiB,EAAiBx2E,KAAKq0B,WAAWgiD,GAEvC,GAAKG,EAIL,IAAK,IAAI11E,EAAI,EAAGklB,EAAKwwD,EAAe51E,OAAQE,EAAIklB,EAAIllB,IAClD,GAAI01E,EAAe11E,GAAGyqB,WAAaA,EAEjC,YADAirD,EAAetlD,OAAOpwB,EAAG,EAI/B,EAMF,SAASusE,EAAMvpD,EAAG1W,EAAKyW,GACrB,OAAO5Y,KAAKmC,IAAInC,KAAK4Y,IAAIC,EAAG1W,GAAMyW,EACpC,CAJAlkB,EAAQ6uE,SAAWA,EAMnB,MAAMD,EACJ1mE,YAAY1H,GAAI,OACdgH,EAAM,MACND,EAAK,MACLwvE,GACE,CAAC,GACH12E,KAAK+zE,SAAU,EACf/zE,KAAK4gC,IAAMt5B,SAASqtD,cAAcx0D,EAAK,cACvCH,KAAK22E,IAAM32E,KAAK4gC,IAAI8jB,WACpB1kD,KAAKmH,OAASA,GAAU,IACxBnH,KAAKkH,MAAQA,GAAS,IACtBlH,KAAK02E,MAAQA,GAAS,IACtB12E,KAAK4gC,IAAIC,MAAM15B,OAASnH,KAAKmH,OAASnH,KAAK02E,MAC3C12E,KAAK20E,QAAU,CACjB,CAEAiC,aACE,GAAI52E,KAAK62E,eAGP,OAFA72E,KAAK4gC,IAAIsyB,UAAU12B,IAAI,sBACvBx8B,KAAK4gC,IAAIC,MAAM35B,MAAQlH,KAAKkH,MAAQlH,KAAK02E,OAI3C12E,KAAK4gC,IAAIsyB,UAAUj1B,OAAO,iBAC1B,MAAM64C,EAAe92E,KAAKkH,MAAQlH,KAAK+2E,SAAW,IAClD/2E,KAAK4gC,IAAIC,MAAM35B,MAAQ4vE,EAAe92E,KAAK02E,KAC7C,CAEI/B,cACF,OAAO30E,KAAK+2E,QACd,CAEIpC,YAAQqC,GACVh3E,KAAK62E,eAAiB5uD,MAAM+uD,GAC5Bh3E,KAAK+2E,SAAW1J,EAAM2J,EAAK,EAAG,KAE9Bh3E,KAAK42E,YACP,CAEAK,SAASC,GACP,IAAKA,EACH,OAGF,MAAMpnB,EAAYonB,EAAOxyB,WACnByyB,EAAiBrnB,EAAUsnB,YAAcF,EAAOE,YAElDD,EAAiB,IACnBn3E,KAAK22E,IAAI91C,MAAM35B,MAAQ,eAAeiwE,OAE1C,CAEAE,OACOr3E,KAAK+zE,UAIV/zE,KAAK+zE,SAAU,EACf/zE,KAAK22E,IAAIzjB,UAAU12B,IAAI,UACvBl1B,SAAS85B,KAAK8xB,UAAUj1B,OAAO,qBACjC,CAEAq5C,OACMt3E,KAAK+zE,UAIT/zE,KAAK+zE,SAAU,EACfzsE,SAAS85B,KAAK8xB,UAAU12B,IAAI,qBAC5Bx8B,KAAK22E,IAAIzjB,UAAUj1B,OAAO,UAC5B,EAMF,SAASmwC,EAAiBhsD,EAAKywD,GAC7B,MAAM0E,EAAQ,GACR1a,EAAMz6C,EAAIxhB,OAChB,IAAI42E,EAAQ,EAEZ,IAAK,IAAI3kD,EAAO,EAAGA,EAAOgqC,IAAOhqC,EAC3BggD,EAAUzwD,EAAIyQ,IAChB0kD,EAAMr3E,KAAKkiB,EAAIyQ,KAEfzQ,EAAIo1D,GAASp1D,EAAIyQ,KACf2kD,GAIN,IAAK,IAAI3kD,EAAO,EAAG2kD,EAAQ3a,IAAOhqC,IAAQ2kD,EACxCp1D,EAAIo1D,GAASD,EAAM1kD,EAEvB,CAnBAlzB,EAAQ4uE,YAAcA,C;;;;;;;;;;;;;;;;;;;;;;CCpsBtB,SAA2C9uE,EAAMC,GAE/CE,EAAOD,QAAUD,GAOlB,EATD,CASGM,GAAM,WACT,OAAgB,SAAUe,GAEhB,IAAIS,EAAmB,CAAC,EAGxB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAU/B,QAGnC,IAAIC,EAAS4B,EAAiBE,GAAY,CACzCZ,EAAGY,EACHC,GAAG,EACHhC,QAAS,CAAC,GAUX,OANAoB,EAAQW,GAAUE,KAAKhC,EAAOD,QAASC,EAAQA,EAAOD,QAAS8B,GAG/D7B,EAAO+B,GAAI,EAGJ/B,EAAOD,OACf,CAyDA,OArDA8B,EAAoBI,EAAId,EAGxBU,EAAoBK,EAAIN,EAGxBC,EAAoBM,EAAI,SAASpC,EAASqC,EAAMC,GAC3CR,EAAoBS,EAAEvC,EAASqC,IAClCG,OAAOC,eAAezC,EAASqC,EAAM,CAAEK,YAAY,EAAMC,IAAKL,GAEhE,EAGAR,EAAoBc,EAAI,SAAS5C,GACX,qBAAX6C,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAezC,EAAS6C,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAezC,EAAS,aAAc,CAAE+C,OAAO,GACvD,EAOAjB,EAAoBkB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQjB,EAAoBiB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAtB,EAAoBc,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOjB,EAAoBM,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,EAAM,EAAEC,KAAK,KAAMD,IAC9I,OAAOF,CACR,EAGArB,EAAoByB,EAAI,SAAStD,GAChC,IAAIqC,EAASrC,GAAUA,EAAOiD,WAC7B,WAAwB,OAAOjD,EAAO,UAAY,EAClD,WAA8B,OAAOA,CAAQ,EAE9C,OADA6B,EAAoBM,EAAEE,EAAQ,IAAKA,GAC5BA,CACR,EAGAR,EAAoBS,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,EAAW,EAGpH3B,EAAoB8B,EAAI,GAIjB9B,EAAoBA,EAAoB+B,EAAI,EACnD,CApFM,CAsFN,CAEJ,SAAU5D,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAETP,OAAOC,eAAezC,EAAS,yBAA0B,CACvD0C,YAAY,EACZC,IAAK,WACH,OAAOm1E,EAA0BC,sBACnC,IAEFv1E,OAAOC,eAAezC,EAAS,gCAAiC,CAC9D0C,YAAY,EACZC,IAAK,WACH,OAAOm1E,EAA0BE,6BACnC,IAEFx1E,OAAOC,eAAezC,EAAS,0BAA2B,CACxD0C,YAAY,EACZC,IAAK,WACH,OAAOs1E,EAAoBC,uBAC7B,IAEF11E,OAAOC,eAAezC,EAAS,mBAAoB,CACjD0C,YAAY,EACZC,IAAK,WACH,OAAOs1E,EAAoBE,gBAC7B,IAEF31E,OAAOC,eAAezC,EAAS,WAAY,CACzC0C,YAAY,EACZC,IAAK,WACH,OAAOy1E,EAAUvJ,QACnB,IAEFrsE,OAAOC,eAAezC,EAAS,WAAY,CACzC0C,YAAY,EACZC,IAAK,WACH,OAAOy1E,EAAUtJ,QACnB,IAEFtsE,OAAOC,eAAezC,EAAS,cAAe,CAC5C0C,YAAY,EACZC,IAAK,WACH,OAAOy1E,EAAUxJ,WACnB,IAEFpsE,OAAOC,eAAezC,EAAS,iBAAkB,CAC/C0C,YAAY,EACZC,IAAK,WACH,OAAO01E,EAAkBC,cAC3B,IAEF91E,OAAOC,eAAezC,EAAS,oBAAqB,CAClD0C,YAAY,EACZC,IAAK,WACH,OAAO01E,EAAkBE,iBAC3B,IAEF/1E,OAAOC,eAAezC,EAAS,kBAAmB,CAChD0C,YAAY,EACZC,IAAK,WACH,OAAO61E,EAAkBC,eAC3B,IAEFj2E,OAAOC,eAAezC,EAAS,cAAe,CAC5C0C,YAAY,EACZC,IAAK,WACH,OAAO+1E,EAAaC,WACtB,IAEFn2E,OAAOC,eAAezC,EAAS,oBAAqB,CAClD0C,YAAY,EACZC,IAAK,WACH,OAAOi2E,EAAqBC,iBAC9B,IAEFr2E,OAAOC,eAAezC,EAAS,aAAc,CAC3C0C,YAAY,EACZC,IAAK,WACH,OAAOm2E,EAAaC,UACtB,IAEFv2E,OAAOC,eAAezC,EAAS,cAAe,CAC5C0C,YAAY,EACZC,IAAK,WACH,OAAOq2E,EAAeC,WACxB,IAEFz2E,OAAOC,eAAezC,EAAS,sBAAuB,CACpD0C,YAAY,EACZC,IAAK,WACH,OAAOu2E,EAAwBC,mBACjC,IAEF32E,OAAOC,eAAezC,EAAS,YAAa,CAC1C0C,YAAY,EACZC,IAAK,WACH,OAAOy2E,EAAYC,SACrB,IAGF,IAAIvB,EAA4Bh2E,EAAoB,GAEhDm2E,EAAsBn2E,EAAoB,GAE1Cs2E,EAAYt2E,EAAoB,GAEhCu2E,EAAoBv2E,EAAoB,GAExC02E,EAAoB12E,EAAoB,GAExC42E,EAAe52E,EAAoB,GAEnC82E,EAAuB92E,EAAoB,IAE3Cg3E,EAAeh3E,EAAoB,IAEnCk3E,EAAiBl3E,EAAoB,IAErCo3E,EAA0Bp3E,EAAoB,IAE9Cs3E,EAAct3E,EAAoB,GAK/B,EAED,SAAU7B,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQg4E,8BAAgCh4E,EAAQ+3E,4BAAyB,EAEzE,IAAIuB,EAAYx3E,EAAoB,GAEhCs2E,EAAYt2E,EAAoB,GAEhCu2E,EAAoBv2E,EAAoB,GAE5C,MAAMi2E,EACJ7vE,aAAY,QACVqxE,EAAO,QACPC,EAAO,YACPzpB,EAAW,gBACXC,EAAe,mBACfC,EAAqB,GAAE,uBACvBhgC,GAAyB,EAAK,KAC9BwpD,EAAOrB,EAAUtJ,WAEjBzuE,KAAKk5E,QAAUA,EACfl5E,KAAKm5E,QAAUA,EACfn5E,KAAK0vD,YAAcA,EACnB1vD,KAAK2vD,gBAAkBA,EACvB3vD,KAAK4vD,mBAAqBA,EAC1B5vD,KAAK4vB,uBAAyBA,EAC9B5vB,KAAKo5E,KAAOA,EACZp5E,KAAK4gC,IAAM,KACX5gC,KAAKq5E,YAAa,CACpB,CAEA7pD,OAAOE,EAAUL,EAAS,WACxBrvB,KAAKm5E,QAAQ/pD,eAAe,CAC1BC,WACC/mB,MAAKgvD,IACN,GAAIt3D,KAAKq5E,WACP,OAGF,MAAM1rB,EAAa,CACjBj+B,SAAUA,EAAStkB,MAAM,CACvBZ,UAAU,IAEZo2B,IAAK5gC,KAAK4gC,IACV02B,cACA5+B,KAAM14B,KAAKm5E,QACXvpB,mBAAoB5vD,KAAK4vD,mBACzBhgC,uBAAwB5vB,KAAK4vB,uBAC7B8/B,YAAa1vD,KAAK0vD,YAClBC,gBAAiB3vD,KAAK2vD,iBAGxB,GAAI3vD,KAAK4gC,IACPq4C,EAAUzzE,gBAAgB8zE,OAAO3rB,OAC5B,CACL,GAA2B,IAAvB2J,EAAY12D,OACd,OAGFZ,KAAK4gC,IAAMt5B,SAASC,cAAc,OAClCvH,KAAK4gC,IAAIuwB,UAAY,kBACrBnxD,KAAKk5E,QAAQpqE,YAAY9O,KAAK4gC,KAC9B+sB,EAAW/sB,IAAM5gC,KAAK4gC,IAEtBq4C,EAAUzzE,gBAAgBgqB,OAAOm+B,GAEjC3tD,KAAKo5E,KAAKn2C,UAAUjjC,KAAK4gC,IAC3B,IAEJ,CAEAnN,SACEzzB,KAAKq5E,YAAa,CACpB,CAEAhC,OACOr3E,KAAK4gC,KAIV5gC,KAAK4gC,IAAI32B,aAAa,SAAU,OAClC,EAIFtK,EAAQ+3E,uBAAyBA,EAEjC,MAAMC,EACJ4B,6BAA6BL,EAASC,EAASvpB,EAAqB,GAAIhgC,GAAyB,EAAOwpD,EAAOrB,EAAUtJ,UACvH,OAAO,IAAIiJ,EAAuB,CAChCwB,UACAC,UACAvpB,qBACAhgC,yBACA8/B,YAAa,IAAIsoB,EAAkBE,kBACnCkB,QAEJ,EAIFz5E,EAAQg4E,8BAAgCA,CAEjC,EAED,SAAU/3E,EAAQD,EAAS8B,GAEjC,aAGA,IAAI+3E,EAGFA,EADoB,qBAAXzxD,QAA0BA,OAAO,wBAC/BA,OAAO,wBAEP,EAAQ,KAGrBnoB,EAAOD,QAAU65E,CAEV,EAED,SAAU55E,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQstE,gBAAkBA,EAC1BttE,EAAQutE,kBAAoBA,EAC5BvtE,EAAQwtE,kBAAoBA,EAC5BxtE,EAAQytE,sBAAwBA,EAChCztE,EAAQ0tE,MAAQA,EAChB1tE,EAAQ2tE,sBAAwBA,EAChC3tE,EAAQ4tE,qBAAuBA,EAC/B5tE,EAAQ6tE,iBAAmBA,EAC3B7tE,EAAQ8tE,kCAAoCA,EAC5C9tE,EAAQ+tE,mBAAqBA,EAC7B/tE,EAAQguE,cAAgBA,EACxBhuE,EAAQiuE,kBAAoBA,EAC5BjuE,EAAQkuE,oBAAsBA,EAC9BluE,EAAQmuE,eAAiBA,EACzBnuE,EAAQouE,eAAiBA,EACzBpuE,EAAQquE,YAAcA,EACtBruE,EAAQsuE,sBAAwBA,EAChCtuE,EAAQuuE,yBAA2BA,EACnCvuE,EAAQwuE,qBAAuBA,EAC/BxuE,EAAQyuE,iBAAmBA,EAC3BzuE,EAAQ0uE,WAAa1uE,EAAQ2uE,iBAAmB3uE,EAAQ4uE,YAAc5uE,EAAQ6uE,SAAW7uE,EAAQ8uE,SAAW9uE,EAAQ+uE,WAAa/uE,EAAQgvE,WAAahvE,EAAQivE,cAAgBjvE,EAAQkvE,aAAelvE,EAAQmvE,sBAAwBnvE,EAAQovE,iBAAmBpvE,EAAQqvE,kBAAoBrvE,EAAQsvE,eAAiBtvE,EAAQuvE,cAAgBvvE,EAAQwvE,UAAYxvE,EAAQyvE,UAAYzvE,EAAQ0vE,cAAgB1vE,EAAQ2vE,oBAAsB3vE,EAAQ4vE,UAAY5vE,EAAQ6vE,qBAAkB,EACzd,MAAMD,EAAY,GAAO,GACzB5vE,EAAQ4vE,UAAYA,EACpB,MAAMD,EAAsB,OAC5B3vE,EAAQ2vE,oBAAsBA,EAC9B,MAAMD,EAAgB,EACtB1vE,EAAQ0vE,cAAgBA,EACxB,MAAMD,EAAY,GAClBzvE,EAAQyvE,UAAYA,EACpB,MAAMD,EAAY,GAClBxvE,EAAQwvE,UAAYA,EACpB,MAAMD,EAAgB,EACtBvvE,EAAQuvE,cAAgBA,EACxB,MAAMD,EAAiB,KACvBtvE,EAAQsvE,eAAiBA,EACzB,MAAMD,EAAoB,GAC1BrvE,EAAQqvE,kBAAoBA,EAC5B,MAAMD,EAAmB,EACzBpvE,EAAQovE,iBAAmBA,EAC3B,MAAMD,EAAwB,CAC5B/2D,QAAS,EACT03D,OAAQ,EACRC,SAAU,EACVC,WAAY,GAEdhwE,EAAQmvE,sBAAwBA,EAChC,MAAMD,EAAe,CACnBe,OAAQ,SACRC,IAAK,OAEPlwE,EAAQkvE,aAAeA,EACvB,MAAMD,EAAgB,CACpBkB,QAAS,EACTC,OAAQ,EACRC,eAAgB,GAElBrwE,EAAQivE,cAAgBA,EACxB,MAAMD,EAAa,CACjB52D,SAAU,EACVk4D,SAAU,EACVC,WAAY,EACZC,QAAS,GAEXxwE,EAAQgvE,WAAaA,EACrB,MAAMD,EAAa,CACjB32D,SAAU,EACV5P,KAAM,EACNioE,IAAK,EACLC,KAAM,GAER1wE,EAAQ+uE,WAAaA,EACrB,MAAMc,EAAkB,eAGxB,SAASc,EAAgBxnE,EAAMkrB,GAC7B,OAAKA,EAIElrB,EAAK2Y,QAAQ,wBAAwB,CAACqI,EAAK9nB,IACzCA,KAAQgyB,EAAOA,EAAKhyB,GAAQ,KAAOA,EAAO,OAJ1C8G,CAMX,CAVAnJ,EAAQ6vE,gBAAkBA,EAY1B,MAAMf,EAAW,CACfzmE,oBACE,MAAO,OACT,EAEAA,qBACE,MAAO,KACT,EAEAA,UAAU5E,EAAU4wB,EAAMu8C,GACxB,OAAOD,EAAgBC,EAAUv8C,EACnC,EAEAhsB,gBAAgBsd,GAAU,GAK5B,SAASwoD,EAAe9tC,GACtB,MAAMwwC,EAAmBzoD,OAAOyoD,kBAAoB,EAC9CC,EAAoBzwC,EAAI0wC,8BAAgC1wC,EAAI2wC,2BAA6B3wC,EAAI4wC,0BAA4B5wC,EAAI6wC,yBAA2B7wC,EAAI8wC,wBAA0B,EACtLC,EAAaP,EAAmBC,EACtC,MAAO,CACLtsD,GAAI4sD,EACJ3sD,GAAI2sD,EACJC,OAAuB,IAAfD,EAEZ,CAEA,SAAShD,EAAezoD,EAAS2rD,EAAMC,GAA6B,GAClE,IAAIC,EAAS7rD,EAAQ8rD,aAErB,IAAKD,EAEH,YADAniE,QAAQ+hB,MAAM,4CAIhB,IAAIxmB,EAAU+a,EAAQ+rD,UAAY/rD,EAAQgsD,UACtChnE,EAAUgb,EAAQisD,WAAajsD,EAAQksD,WAE3C,MAAOL,EAAOM,eAAiBN,EAAOO,cAAgBP,EAAOQ,cAAgBR,EAAOS,aAAeV,GAAoE,WAAtCW,iBAAiBV,GAAQW,SAUxJ,GATIX,EAAOlf,QAAQ8f,UACjBxnE,GAAW4mE,EAAOlf,QAAQ8f,QAC1BznE,GAAW6mE,EAAOlf,QAAQ+f,SAG5BznE,GAAW4mE,EAAOE,UAClB/mE,GAAW6mE,EAAOI,WAClBJ,EAASA,EAAOC,cAEXD,EACH,OAIAF,SACe7vE,IAAb6vE,EAAKjwC,MACPz2B,GAAW0mE,EAAKjwC,UAGA5/B,IAAd6vE,EAAKhwC,OACP32B,GAAW2mE,EAAKhwC,KAChBkwC,EAAOc,WAAa3nE,IAIxB6mE,EAAOe,UAAY3nE,CACrB,CAEA,SAASyjE,EAAYmE,EAAiB7gD,GACpC,MAAM8gD,EAAiB,SAAUr5C,GAC3Bs5C,IAIJA,EAAMtqD,OAAOoV,uBAAsB,WACjCk1C,EAAM,KACN,MAAMC,EAAWH,EAAgBF,WAC3BM,EAAQ9jC,EAAM8jC,MAEhBD,IAAaC,IACf9jC,EAAMmrB,MAAQ0Y,EAAWC,GAG3B9jC,EAAM8jC,MAAQD,EACd,MAAME,EAAWL,EAAgBD,UAC3BO,EAAQhkC,EAAMgkC,MAEhBD,IAAaC,IACfhkC,EAAMikC,KAAOF,EAAWC,GAG1BhkC,EAAMgkC,MAAQD,EACdlhD,EAASmd,EACX,IACF,EAEMA,EAAQ,CACZmrB,OAAO,EACP8Y,MAAM,EACNH,MAAOJ,EAAgBF,WACvBQ,MAAON,EAAgBD,UACvBS,cAAeP,GAEjB,IAAIC,EAAM,KAEV,OADAF,EAAgB78C,iBAAiB,SAAU88C,GAAgB,GACpD3jC,CACT,CAEA,SAAS++B,EAAiBtgE,GACxB,MAAM67D,EAAQ77D,EAAM0oD,MAAM,KACpBxvD,EAASjE,OAAOY,OAAO,MAE7B,IAAK,IAAIjC,EAAI,EAAGklB,EAAK+iD,EAAMnoE,OAAQE,EAAIklB,IAAMllB,EAAG,CAC9C,MAAM8xE,EAAQ7J,EAAMjoE,GAAG80D,MAAM,KACvB5yD,EAAM4vE,EAAM,GAAGzxB,cACfz+C,EAAQkwE,EAAMhyE,OAAS,EAAIgyE,EAAM,GAAK,KAC5CxsE,EAAO2e,mBAAmB/hB,IAAQ+hB,mBAAmBriB,EACvD,CAEA,OAAO0D,CACT,CAEA,SAAS6nE,EAAsBz7C,EAAOqgD,GACpC,IAAIC,EAAW,EACXC,EAAWvgD,EAAM5xB,OAAS,EAE9B,GAAImyE,EAAW,IAAMF,EAAUrgD,EAAMugD,IACnC,OAAOvgD,EAAM5xB,OAGf,GAAIiyE,EAAUrgD,EAAMsgD,IAClB,OAAOA,EAGT,MAAOA,EAAWC,EAAU,CAC1B,MAAMC,EAAeF,EAAWC,GAAY,EACtCE,EAAczgD,EAAMwgD,GAEtBH,EAAUI,GACZF,EAAWC,EAEXF,EAAWE,EAAe,CAE9B,CAEA,OAAOF,CACT,CAEA,SAASjF,EAAoBtiE,GAC3B,GAAIN,KAAKwqC,MAAMlqC,KAAOA,EACpB,MAAO,CAACA,EAAG,GAGb,MAAM2nE,EAAO,EAAI3nE,EACX6iC,EAAQ,EAEd,GAAI8kC,EAAO9kC,EACT,MAAO,CAAC,EAAGA,GACN,GAAInjC,KAAKwqC,MAAMy9B,KAAUA,EAC9B,MAAO,CAAC,EAAGA,GAGb,MAAMC,EAAK5nE,EAAI,EAAI2nE,EAAO3nE,EAC1B,IAsBIoZ,EAtBAX,EAAI,EACJZ,EAAI,EACJthB,EAAI,EACJC,EAAI,EAER,MAAO,EAAM,CACX,MAAMwB,EAAIygB,EAAIliB,EACR44C,EAAIt3B,EAAIrhB,EAEd,GAAI24C,EAAItM,EACN,MAGE+kC,GAAM5vE,EAAIm3C,GACZ54C,EAAIyB,EACJxB,EAAI24C,IAEJ12B,EAAIzgB,EACJ6f,EAAIs3B,EAER,CAUA,OALE/1B,EADEwuD,EAAKnvD,EAAIZ,EAAIthB,EAAIC,EAAIoxE,EACdA,IAAO5nE,EAAI,CAACyY,EAAGZ,GAAK,CAACA,EAAGY,GAExBmvD,IAAO5nE,EAAI,CAACzJ,EAAGC,GAAK,CAACA,EAAGD,GAG5B6iB,CACT,CAEA,SAASgpD,EAAcpiE,EAAGq1B,GACxB,MAAMr+B,EAAIgJ,EAAIq1B,EACd,OAAa,IAANr+B,EAAUgJ,EAAIN,KAAK8uC,MAAMxuC,EAAIhJ,EAAIq+B,EAC1C,CAEA,SAASgtC,GAAkB,KACzB1+C,EAAI,SACJD,EAAQ,OACRD,IAEA,MAAO8lB,EAAIC,EAAI0D,EAAIC,GAAMxpB,EACnBkkD,EAAoBpkD,EAAS,MAAQ,EACrC9nB,GAASuxC,EAAK3D,GAAM,GAAK7lB,EACzB9nB,GAAUuxC,EAAK3D,GAAM,GAAK9lB,EAChC,MAAO,CACL/nB,MAAOksE,EAAoBjsE,EAASD,EACpCC,OAAQisE,EAAoBlsE,EAAQC,EAExC,CAEA,SAASsmE,EAAkCloD,EAAO8tD,EAAOryC,GACvD,GAAIzb,EAAQ,EACV,OAAOA,EAGT,IAAI+tD,EAAMD,EAAM9tD,GAAOqb,IACnB2yC,EAAUD,EAAIjC,UAAYiC,EAAIhC,UAE9BiC,GAAWvyC,IACbsyC,EAAMD,EAAM9tD,EAAQ,GAAGqb,IACvB2yC,EAAUD,EAAIjC,UAAYiC,EAAIhC,WAGhC,IAAK,IAAIxwE,EAAIykB,EAAQ,EAAGzkB,GAAK,IAAKA,EAAG,CAGnC,GAFAwyE,EAAMD,EAAMvyE,GAAG8/B,IAEX0yC,EAAIjC,UAAYiC,EAAIhC,UAAYgC,EAAI7B,cAAgB8B,EACtD,MAGFhuD,EAAQzkB,CACV,CAEA,OAAOykB,CACT,CAEA,SAASmoD,EAAmB8F,EAAUH,EAAOI,GAAmB,EAAOC,GAAa,GAClF,MAAM1yC,EAAMwyC,EAAStB,UACfrY,EAAS74B,EAAMwyC,EAAS/B,aACxBxwC,EAAOuyC,EAASvB,WAChBrY,EAAQ34B,EAAOuyC,EAAS7B,YAE9B,SAASgC,EAA4BzkD,GACnC,MAAM5J,EAAU4J,EAAK0R,IACfgzC,EAAgBtuD,EAAQ+rD,UAAY/rD,EAAQgsD,UAAYhsD,EAAQmsD,aACtE,OAAOmC,EAAgB5yC,CACzB,CAEA,SAAS6yC,EAA4B3kD,GACnC,MAAM5J,EAAU4J,EAAK0R,IACfkzC,EAAexuD,EAAQisD,WAAajsD,EAAQksD,WAAalsD,EAAQqsD,YACvE,OAAOmC,EAAe7yC,CACxB,CAEA,MAAM8yC,EAAU,GACVC,EAAWX,EAAMzyE,OACvB,IAAIqzE,EAAsC,IAAbD,EAAiB,EAAI/F,EAAsBoF,EAAOK,EAAaG,EAA8BF,GAEtHM,EAAyB,GAAKA,EAAyBD,IAAaN,IACtEO,EAAyBxG,EAAkCwG,EAAwBZ,EAAOryC,IAG5F,IAAIkzC,EAAWR,EAAa9Z,GAAS,EAErC,IAAK,IAAI94D,EAAImzE,EAAwBnzE,EAAIkzE,EAAUlzE,IAAK,CACtD,MAAMouB,EAAOmkD,EAAMvyE,GACbwkB,EAAU4J,EAAK0R,IACfuzC,EAAe7uD,EAAQisD,WAAajsD,EAAQksD,WAC5C4C,EAAgB9uD,EAAQ+rD,UAAY/rD,EAAQgsD,UAC5C+C,EAAY/uD,EAAQqsD,YACpB2C,EAAahvD,EAAQmsD,aACrB8C,EAAYJ,EAAeE,EAC3BG,EAAaJ,EAAgBE,EAEnC,IAAkB,IAAdJ,EACEM,GAAc3a,IAChBqa,EAAWM,QAER,IAAKd,EAAaS,EAAeC,GAAiBF,EACvD,MAGF,GAAIM,GAAcxzC,GAAOozC,GAAiBva,GAAU0a,GAAatzC,GAAQkzC,GAAgBva,EACvF,SAGF,MAAM6a,EAAexpE,KAAK4Y,IAAI,EAAGmd,EAAMozC,GAAiBnpE,KAAK4Y,IAAI,EAAG2wD,EAAa3a,GAC3E6a,EAAczpE,KAAK4Y,IAAI,EAAGod,EAAOkzC,GAAgBlpE,KAAK4Y,IAAI,EAAG0wD,EAAY3a,GACzE+a,GAAWL,EAAaG,IAAiBJ,EAAYK,GAAe,IAAMJ,EAAaD,EAAY,EACzGN,EAAQ7zE,KAAK,CACXC,GAAI+uB,EAAK/uB,GACToL,EAAG4oE,EACH3oE,EAAG4oE,EACHllD,OACAylD,WAEJ,CAEA,MAAM1wD,EAAQ8vD,EAAQ,GAChBa,EAAOb,EAAQA,EAAQnzE,OAAS,GActC,OAZI6yE,GACFM,EAAQtvD,MAAK,SAAUT,EAAGZ,GACxB,MAAMyxD,EAAK7wD,EAAE2wD,QAAUvxD,EAAEuxD,QAEzB,OAAI1pE,KAAKC,IAAI2pE,GAAM,MACTA,EAGH7wD,EAAE7jB,GAAKijB,EAAEjjB,EAClB,IAGK,CACL8jB,QACA2wD,OACAvB,MAAOU,EAEX,CAEA,SAASxG,EAAqBx0C,GAC5BA,EAAI+7C,gBACN,CAEA,SAASC,EAAatuE,GACpB,IAAI3F,EAAI,EACR,MAAMklB,EAAKvf,EAAI7F,OAEf,MAAOE,EAAIklB,GAAwB,KAAlBvf,EAAI3F,GAAG4gD,OACtB5gD,IAGF,MAAiD,UAA1C2F,EAAI4G,UAAUvM,EAAGA,EAAI,GAAGqgD,aACjC,CAEA,SAASmsB,EAAsB7mE,EAAKuuE,EAAkB,gBACpD,GAAmB,kBAARvuE,EACT,OAAOuuE,EAGT,GAAID,EAAatuE,GAEf,OADAuI,QAAQtB,KAAK,wEACNsnE,EAGT,MAAMC,EAAQ,uDACRC,EAAa,iCACbC,EAAWF,EAAMzlE,KAAK/I,GAC5B,IAAI2uE,EAAoBF,EAAW1lE,KAAK2lE,EAAS,KAAOD,EAAW1lE,KAAK2lE,EAAS,KAAOD,EAAW1lE,KAAK2lE,EAAS,IAEjH,GAAIC,IACFA,EAAoBA,EAAkB,GAElCA,EAAkBtgD,SAAS,MAC7B,IACEsgD,EAAoBF,EAAW1lE,KAAKuV,mBAAmBqwD,IAAoB,EAC/D,CAAZ,MAAO7mE,GAAK,CAIlB,OAAO6mE,GAAqBJ,CAC9B,CAEA,SAAS9G,EAAyBn1C,GAChC,IAAIs8C,EAAQpqE,KAAKiZ,KAAK6U,EAAIu8C,OAASv8C,EAAIu8C,OAASv8C,EAAIw8C,OAASx8C,EAAIw8C,QACjE,MAAM1xC,EAAQ54B,KAAKwtD,MAAM1/B,EAAIw8C,OAAQx8C,EAAIu8C,SAEpC,IAAOrqE,KAAK0tD,GAAK90B,GAASA,EAAQ,IAAO54B,KAAK0tD,KACjD0c,GAASA,GAGX,MAAMG,EAA6B,EAC7BC,EAA4B,EAC5BC,EAAwB,GACxBC,EAAuB,GAQ7B,OANI58C,EAAI68C,YAAcJ,EACpBH,GAASK,EAAwBC,EACxB58C,EAAI68C,YAAcH,IAC3BJ,GAASM,GAGJN,CACT,CAEA,SAASpI,EAAgBppC,GACvB,OAAOtjB,OAAOC,UAAUqjB,IAAUA,EAAQ,KAAO,CACnD,CAEA,SAASqpC,EAAkBtqE,GACzB,OAAO2d,OAAOC,UAAU5d,IAAST,OAAO0zE,OAAOlH,GAAY75C,SAASlyB,IAASA,IAAS+rE,EAAW52D,OACnG,CAEA,SAASo1D,EAAkBvqE,GACzB,OAAO2d,OAAOC,UAAU5d,IAAST,OAAO0zE,OAAOnH,GAAY55C,SAASlyB,IAASA,IAAS8rE,EAAW32D,OACnG,CAEA,SAASq1D,EAAsB96C,GAC7B,OAAOA,EAAKprB,OAASorB,EAAKnrB,MAC5B,CAtYAxH,EAAQ8uE,SAAWA,EAwYnB,MAAMJ,EAAa,CACjByH,MAAO,QACPC,QAAS,WAIX,SAAS5H,GAAqB,OAC5B3hE,EAAM,KACNxK,EAAI,MACJg0E,EAAQ,IAER,OAAO,IAAI/sE,SAAQ,SAAUC,EAASC,GACpC,GAAsB,kBAAXqD,IAAyBxK,GAAwB,kBAATA,KAAwBue,OAAOC,UAAUw1D,IAAUA,GAAS,GAC7G,MAAM,IAAI5uE,MAAM,8CAGlB,SAAS43C,EAAQ90C,GACXsC,aAAkBgiE,EACpBhiE,EAAOypE,KAAKj0E,EAAMk0E,GAElB1pE,EAAO+oB,oBAAoBvzB,EAAMk0E,GAG/BxZ,GACFvsC,aAAausC,GAGfxzD,EAAQgB,EACV,CAEA,MAAMgsE,EAAel3B,EAAQ/7C,KAAK,KAAMorE,EAAWyH,OAE/CtpE,aAAkBgiE,EACpBhiE,EAAO2pE,IAAIn0E,EAAMk0E,GAEjB1pE,EAAO8oB,iBAAiBtzB,EAAMk0E,GAGhC,MAAME,EAAiBp3B,EAAQ/7C,KAAK,KAAMorE,EAAW0H,SAC/CrZ,EAAUxoC,WAAWkiD,EAAgBJ,EAC7C,GACF,CArCAr2E,EAAQ0uE,WAAaA,EAuCrB,MAAMC,EAAmB,IAAIrlE,SAAQ,SAAUC,GAC7C6e,OAAOoV,sBAAsBj0B,EAC/B,IACAvJ,EAAQ2uE,iBAAmBA,EAM3B,MAAME,EACJ3mE,YAAYksD,GACV/zD,KAAKq0B,WAAalyB,OAAOY,OAAO,KAClC,CAEAm0B,GAAGm/C,EAAW9qD,GACZvrB,KAAKm2E,IAAIE,EAAW9qD,EAAU,CAC5B+qD,UAAU,GAEd,CAEAC,IAAIF,EAAW9qD,GACbvrB,KAAKi2E,KAAKI,EAAW9qD,EAAU,CAC7B+qD,UAAU,GAEd,CAEArf,SAASof,GACP,MAAMG,EAAiBx2E,KAAKq0B,WAAWgiD,GAEvC,IAAKG,GAA4C,IAA1BA,EAAe51E,OACpC,OAGF,MAAMozB,EAAOgB,MAAM3xB,UAAUgI,MAAMzJ,KAAKwyC,UAAW,GACnD,IAAIqiC,EACJD,EAAenrE,MAAM,GAAGioB,SAAQ,UAAU,SACxC/H,EAAQ,SACR+qD,IAEA,GAAIA,EAMF,OALKG,IACHA,EAAoB,SAGtBA,EAAkBv2E,KAAKqrB,GAIzBA,EAASzJ,MAAM,KAAMkS,EACvB,IAEIyiD,IACFA,EAAkBnjD,SAAQ,SAAU/H,GAClCA,EAASzJ,MAAM,KAAMkS,EACvB,IACAyiD,EAAoB,KAExB,CAEAN,IAAIE,EAAW9qD,EAAUwoC,EAAU,MACjC,IAAIyiB,EAAiBx2E,KAAKq0B,WAAWgiD,GAEhCG,IACHx2E,KAAKq0B,WAAWgiD,GAAaG,EAAiB,IAGhDA,EAAet2E,KAAK,CAClBqrB,WACA+qD,UAA4C,KAAjCviB,GAAWA,EAAQuiB,WAElC,CAEAL,KAAKI,EAAW9qD,EAAUwoC,EAAU,MAClC,MAAMyiB,EAAiBx2E,KAAKq0B,WAAWgiD,GAEvC,GAAKG,EAIL,IAAK,IAAI11E,EAAI,EAAGklB,EAAKwwD,EAAe51E,OAAQE,EAAIklB,EAAIllB,IAClD,GAAI01E,EAAe11E,GAAGyqB,WAAaA,EAEjC,YADAirD,EAAetlD,OAAOpwB,EAAG,EAI/B,EAMF,SAASusE,EAAMvpD,EAAG1W,EAAKyW,GACrB,OAAO5Y,KAAKmC,IAAInC,KAAK4Y,IAAIC,EAAG1W,GAAMyW,EACpC,CAJAlkB,EAAQ6uE,SAAWA,EAMnB,MAAMD,EACJ1mE,YAAY1H,GAAI,OACdgH,EAAM,MACND,EAAK,MACLwvE,GACE,CAAC,GACH12E,KAAK+zE,SAAU,EACf/zE,KAAK4gC,IAAMt5B,SAASqtD,cAAcx0D,EAAK,cACvCH,KAAK22E,IAAM32E,KAAK4gC,IAAI8jB,WACpB1kD,KAAKmH,OAASA,GAAU,IACxBnH,KAAKkH,MAAQA,GAAS,IACtBlH,KAAK02E,MAAQA,GAAS,IACtB12E,KAAK4gC,IAAIC,MAAM15B,OAASnH,KAAKmH,OAASnH,KAAK02E,MAC3C12E,KAAK20E,QAAU,CACjB,CAEAiC,aACE,GAAI52E,KAAK62E,eAGP,OAFA72E,KAAK4gC,IAAIsyB,UAAU12B,IAAI,sBACvBx8B,KAAK4gC,IAAIC,MAAM35B,MAAQlH,KAAKkH,MAAQlH,KAAK02E,OAI3C12E,KAAK4gC,IAAIsyB,UAAUj1B,OAAO,iBAC1B,MAAM64C,EAAe92E,KAAKkH,MAAQlH,KAAK+2E,SAAW,IAClD/2E,KAAK4gC,IAAIC,MAAM35B,MAAQ4vE,EAAe92E,KAAK02E,KAC7C,CAEI/B,cACF,OAAO30E,KAAK+2E,QACd,CAEIpC,YAAQqC,GACVh3E,KAAK62E,eAAiB5uD,MAAM+uD,GAC5Bh3E,KAAK+2E,SAAW1J,EAAM2J,EAAK,EAAG,KAE9Bh3E,KAAK42E,YACP,CAEAK,SAASC,GACP,IAAKA,EACH,OAGF,MAAMpnB,EAAYonB,EAAOxyB,WACnByyB,EAAiBrnB,EAAUsnB,YAAcF,EAAOE,YAElDD,EAAiB,IACnBn3E,KAAK22E,IAAI91C,MAAM35B,MAAQ,eAAeiwE,OAE1C,CAEAE,OACOr3E,KAAK+zE,UAIV/zE,KAAK+zE,SAAU,EACf/zE,KAAK22E,IAAIzjB,UAAU12B,IAAI,UACvBl1B,SAAS85B,KAAK8xB,UAAUj1B,OAAO,qBACjC,CAEAq5C,OACMt3E,KAAK+zE,UAIT/zE,KAAK+zE,SAAU,EACfzsE,SAAS85B,KAAK8xB,UAAU12B,IAAI,qBAC5Bx8B,KAAK22E,IAAIzjB,UAAUj1B,OAAO,UAC5B,EAMF,SAASmwC,EAAiBhsD,EAAKywD,GAC7B,MAAM0E,EAAQ,GACR1a,EAAMz6C,EAAIxhB,OAChB,IAAI42E,EAAQ,EAEZ,IAAK,IAAI3kD,EAAO,EAAGA,EAAOgqC,IAAOhqC,EAC3BggD,EAAUzwD,EAAIyQ,IAChB0kD,EAAMr3E,KAAKkiB,EAAIyQ,KAEfzQ,EAAIo1D,GAASp1D,EAAIyQ,KACf2kD,GAIN,IAAK,IAAI3kD,EAAO,EAAG2kD,EAAQ3a,IAAOhqC,IAAQ2kD,EACxCp1D,EAAIo1D,GAASD,EAAM1kD,EAEvB,CAnBAlzB,EAAQ4uE,YAAcA,CAqBf,EAED,SAAU3uE,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQu4E,kBAAoBv4E,EAAQs4E,oBAAiB,EAErD,IAAIF,EAAYt2E,EAAoB,GAEpC,MAAMw2E,EACJpwE,aAAY,SACVmvD,EAAQ,mBACR3F,EAAqB,KAAI,gBACzBC,EAAkB,KAAI,oBACtBC,GAAsB,EAAI,sBAC1BkoB,GAAwB,GACtB,CAAC,GACHz5E,KAAKg3D,SAAWA,EAChBh3D,KAAKqxD,mBAAqBA,EAC1BrxD,KAAKsxD,gBAAkBA,EACvBtxD,KAAKuxD,oBAAsBA,EAC3BvxD,KAAK05E,uBAAyBD,EAC9Bz5E,KAAK8H,QAAU,KACf9H,KAAK25E,YAAc,KACnB35E,KAAK45E,UAAY,KACjB55E,KAAK65E,WAAa,KAClB75E,KAAK85E,eAAiB,IACxB,CAEAC,YAAYJ,EAAa7xE,EAAU,MACjC9H,KAAK8H,QAAUA,EACf9H,KAAK25E,YAAcA,EACnB35E,KAAK85E,eAAiB33E,OAAOY,OAAO,KACtC,CAEAi3E,UAAUJ,GACR55E,KAAK45E,UAAYA,CACnB,CAEAK,WAAWJ,GACT75E,KAAK65E,WAAaA,CACpB,CAEIK,iBACF,OAAOl6E,KAAK25E,YAAc35E,KAAK25E,YAAYptD,SAAW,CACxD,CAEImM,WACF,OAAO14B,KAAK45E,UAAUO,iBACxB,CAEIzhD,SAAKh2B,GACP1C,KAAK45E,UAAUO,kBAAoBz3E,CACrC,CAEI2H,eACF,OAAOrK,KAAK45E,UAAUQ,aACxB,CAEI/vE,aAAS3H,GACX1C,KAAK45E,UAAUQ,cAAgB13E,CACjC,CAEAkvD,WAAWtkC,GACT,MAAM+sD,EAAkB,EACtBC,YACAC,mBAEA,MAAMC,EAAUD,EAAa,GAC7B,IAAI7tD,EAEJ,GAAI8tD,aAAmBr4E,QAGrB,GAFAuqB,EAAa1sB,KAAKy6E,kBAAkBD,GAEjB,OAAf9tD,EAUF,YATA1sB,KAAK25E,YAAYhtD,aAAa6tD,GAASlyE,MAAK8lB,IAC1CpuB,KAAK06E,aAAatsD,EAAY,EAAGosD,GACjCH,EAAgB,CACdC,YACAC,gBACA,IACDxxE,OAAM,KACPiG,QAAQ+hB,MAAM,+BAA+BypD,+CAA0DltD,MAAS,QAI/G,KAAI/M,OAAOC,UAAUg6D,GAI1B,YADAxrE,QAAQ+hB,MAAM,+BAA+BypD,sDAAiEltD,OAF9GZ,EAAa8tD,EAAU,CAIzB,EAEK9tD,GAAcA,EAAa,GAAKA,EAAa1sB,KAAKk6E,WACrDlrE,QAAQ+hB,MAAM,+BAA+BrE,4CAA0DY,QAIrGttB,KAAK65E,aACP75E,KAAK65E,WAAWc,sBAChB36E,KAAK65E,WAAW35E,KAAK,CACnBo6E,YACAC,eACA7tD,gBAIJ1sB,KAAK45E,UAAUgB,mBAAmB,CAChCluD,aACAmuD,UAAWN,EACXd,sBAAuBz5E,KAAK05E,yBAC5B,EAGJ,IAAIzwE,SAAQ,CAACC,EAASC,KACA,kBAATmkB,EAUXpkB,EAAQ,CACNoxE,UAAW,GACXC,aAAcjtD,IAXdttB,KAAK25E,YAAY7sD,eAAeQ,GAAMhlB,MAAKuyE,IACzC3xE,EAAQ,CACNoxE,UAAWhtD,EACXitD,aAAcM,GACd,GAQJ,IACDvyE,MAAKka,IACDwS,MAAMC,QAAQzS,EAAK+3D,cAKxBF,EAAgB73D,GAJdxT,QAAQ+hB,MAAM,+BAA+BvO,EAAK+3D,6DAAkEjtD,MAIjG,GAEzB,CAEAqkC,mBAAmBrkC,GACjB,GAAoB,kBAATA,EACT,OAAOttB,KAAK6xD,aAAa,IAAM7sC,OAAOsI,IAGxC,GAAI0H,MAAMC,QAAQ3H,GAAO,CACvB,MAAM9L,EAAM4wC,KAAKC,UAAU/kC,GAC3B,OAAOttB,KAAK6xD,aAAa,IAAM7sC,OAAOxD,GACxC,CAEA,OAAOxhB,KAAK6xD,aAAa,GAC3B,CAEAA,aAAa7kD,GACX,OAAQhN,KAAK8H,SAAW,IAAMkF,CAChC,CAEA8tE,QAAQC,GACN,IAAIruD,EAAYY,EAEhB,GAAIytD,EAAKjmD,SAAS,KAAM,CACtB,MAAM1uB,GAAS,EAAI2xE,EAAUvK,kBAAkBuN,GAc/C,GAZI,WAAY30E,GACdpG,KAAKg3D,SAASC,SAAS,kBAAmB,CACxCtvC,OAAQ3nB,KACRkN,MAAO9G,EAAO40E,OAAOv5D,QAAQ,KAAM,IACnCw5D,aAAgC,SAAlB70E,EAAO80E,SAIrB,SAAU90E,IACZsmB,EAA2B,EAAdtmB,EAAOsyB,MAAY,GAG9B,SAAUtyB,EAAQ,CACpB,MAAM+0E,EAAW/0E,EAAOg1E,KAAKxlB,MAAM,KAC7BylB,EAAUF,EAAS,GACnBG,EAAgBzmB,WAAWwmB,GAE5BA,EAAQvmD,SAAS,OAKJ,QAAZumD,GAAiC,SAAZA,EACvB/tD,EAAO,CAAC,KAAM,CACZtrB,KAAMq5E,IAEa,SAAZA,GAAkC,UAAZA,GAAmC,SAAZA,GAAkC,UAAZA,EAC5E/tD,EAAO,CAAC,KAAM,CACZtrB,KAAMq5E,GACLF,EAASv6E,OAAS,EAAkB,EAAdu6E,EAAS,GAAS,MACtB,SAAZE,EACe,IAApBF,EAASv6E,OACXoO,QAAQ+hB,MAAM,6DAEdzD,EAAO,CAAC,KAAM,CACZtrB,KAAMq5E,GACS,EAAdF,EAAS,GAAsB,EAAdA,EAAS,GAAsB,EAAdA,EAAS,GAAsB,EAAdA,EAAS,IAGjEnsE,QAAQ+hB,MAAM,4BAA4BsqD,iCArB5C/tD,EAAO,CAAC,KAAM,CACZtrB,KAAM,OACLm5E,EAASv6E,OAAS,EAAkB,EAAdu6E,EAAS,GAAS,KAAMA,EAASv6E,OAAS,EAAkB,EAAdu6E,EAAS,GAAS,KAAMG,EAAgBA,EAAgB,IAAMD,EAsBzI,CAEI/tD,EACFttB,KAAK45E,UAAUgB,mBAAmB,CAChCluD,WAAYA,GAAc1sB,KAAK04B,KAC/BmiD,UAAWvtD,EACXiuD,qBAAqB,IAEd7uD,IACT1sB,KAAK04B,KAAOhM,GAGV,aAActmB,GAChBpG,KAAKg3D,SAASC,SAAS,WAAY,CACjCtvC,OAAQ3nB,KACR4C,KAAMwD,EAAOo1E,WAIb,cAAep1E,GACjBpG,KAAK4xD,WAAWxrD,EAAOq1E,UAE3B,KAAO,CACLnuD,EAAOrI,SAAS81D,GAEhB,IACEztD,EAAO8kC,KAAKyS,MAAMv3C,GAEb0H,MAAMC,QAAQ3H,KACjBA,EAAOA,EAAKhtB,WAEF,CAAZ,MAAOiO,GAAK,CAEd,GAAoB,kBAAT+e,GAAqBouD,EAA2BpuD,GAEzD,YADAttB,KAAK4xD,WAAWtkC,GAIlBte,QAAQ+hB,MAAM,4BAA4B9L,SAAS81D,kCACrD,CACF,CAEAjpB,mBAAmBnT,GACjB,OAAQA,GACN,IAAK,SACC3+C,KAAK65E,YACP75E,KAAK65E,WAAW8B,OAGlB,MAEF,IAAK,YACC37E,KAAK65E,YACP75E,KAAK65E,WAAW+B,UAGlB,MAEF,IAAK,WACC57E,KAAK04B,KAAO14B,KAAKk6E,YACnBl6E,KAAK04B,OAGP,MAEF,IAAK,WACC14B,KAAK04B,KAAO,GACd14B,KAAK04B,OAGP,MAEF,IAAK,WACH14B,KAAK04B,KAAO14B,KAAKk6E,WACjB,MAEF,IAAK,YACHl6E,KAAK04B,KAAO,EACZ,MAEF,QACE,MAGJ14B,KAAKg3D,SAASC,SAAS,cAAe,CACpCtvC,OAAQ3nB,KACR2+C,UAEJ,CAEA+7B,aAAamB,EAASC,GACpB,IAAKA,EACH,OAGF,MAAMC,EAAyB,IAAhBD,EAAQE,IAAY,GAAGF,EAAQG,OAAS,GAAGH,EAAQG,OAAOH,EAAQE,MACjFh8E,KAAK85E,eAAeiC,GAAUF,CAChC,CAEApB,kBAAkBqB,GAChB,MAAMC,EAAyB,IAAhBD,EAAQE,IAAY,GAAGF,EAAQG,OAAS,GAAGH,EAAQG,OAAOH,EAAQE,MACjF,OAAOh8E,KAAK85E,gBAAkB95E,KAAK85E,eAAeiC,IAAW,IAC/D,CAEAG,cAAcxvD,GACZ,OAAO1sB,KAAK45E,UAAUsC,cAAcxvD,EACtC,EAMF,SAASgvD,EAA2BpuD,GAClC,IAAK0H,MAAMC,QAAQ3H,GACjB,OAAO,EAGT,MAAM6uD,EAAa7uD,EAAK1sB,OAExB,GAAIu7E,EAAa,EACf,OAAO,EAGT,MAAMzjD,EAAOpL,EAAK,GAElB,IAAsB,kBAAToL,IAAqBnY,OAAOC,UAAUkY,EAAKujD,OAAQ17D,OAAOC,UAAUkY,EAAKsjD,SAAWz7D,OAAOC,UAAUkY,IAASA,GAAQ,GACjI,OAAO,EAGT,MAAM0iD,EAAO9tD,EAAK,GAElB,GAAsB,kBAAT8tD,GAA0C,kBAAdA,EAAKp5E,KAC5C,OAAO,EAGT,IAAIo6E,GAAY,EAEhB,OAAQhB,EAAKp5E,MACX,IAAK,MACH,GAAmB,IAAfm6E,EACF,OAAO,EAGT,MAEF,IAAK,MACL,IAAK,OACH,OAAsB,IAAfA,EAET,IAAK,OACL,IAAK,QACL,IAAK,OACL,IAAK,QACH,GAAmB,IAAfA,EACF,OAAO,EAGT,MAEF,IAAK,OACH,GAAmB,IAAfA,EACF,OAAO,EAGTC,GAAY,EACZ,MAEF,QACE,OAAO,EAGX,IAAK,IAAIt7E,EAAI,EAAGA,EAAIq7E,EAAYr7E,IAAK,CACnC,MAAM8xE,EAAQtlD,EAAKxsB,GAEnB,KAAuB,kBAAV8xE,GAAsBwJ,GAAuB,OAAVxJ,GAC9C,OAAO,CAEX,CAEA,OAAO,CACT,CAtEAjzE,EAAQs4E,eAAiBA,EAwEzB,MAAMC,EACJrwE,cACE7H,KAAKqxD,mBAAqB,KAC1BrxD,KAAKsxD,gBAAkB,KACvBtxD,KAAKuxD,qBAAsB,EAC3BvxD,KAAK05E,wBAAyB,CAChC,CAEIQ,iBACF,OAAO,CACT,CAEIxhD,WACF,OAAO,CACT,CAEIA,SAAKh2B,GAAQ,CAEb2H,eACF,OAAO,CACT,CAEIA,aAAS3H,GAAQ,CAErBkvD,WAAWtkC,GAAO,CAElBqkC,mBAAmBrkC,GACjB,MAAO,GACT,CAEAukC,aAAakpB,GACX,MAAO,GACT,CAEAD,QAAQC,GAAO,CAEfjpB,mBAAmBnT,GAAS,CAE5B+7B,aAAamB,EAASC,GAAU,CAEhCI,cAAcxvD,GACZ,OAAO,CACT,EAIF/sB,EAAQu4E,kBAAoBA,CAErB,EAED,SAAUt4E,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQk4E,wBAA0Bl4E,EAAQm4E,sBAAmB,EAE7D,IAAImB,EAAYx3E,EAAoB,GAEpC,MAAM46E,EAAsB,IAE5B,MAAMvE,EACJjwE,aAAY,aACVy0E,EAAY,SACZtlB,EAAQ,UACR5oC,EAAS,SACTsB,EAAQ,eACR6sD,EAAiB,KAAI,qBACrBxgB,GAAuB,IAEvB/7D,KAAKs8E,aAAeA,EACpBt8E,KAAKg3D,SAAWA,EAChBh3D,KAAKuyB,YAAc,KACnBvyB,KAAK87D,oBAAsB,GAC3B97D,KAAK67D,kBAAoB,KACzB77D,KAAKw8E,eAAgB,EACrBx8E,KAAKy8E,QAAUruD,EACfpuB,KAAK0sB,WAAa1sB,KAAKy8E,QAAU,EACjCz8E,KAAKuP,QAAU,GACfvP,KAAK0vB,SAAWA,EAChB1vB,KAAK+5D,SAAW,GAChB/5D,KAAKu8E,eAAiBA,EACtBv8E,KAAK08E,oBAAsB,KAC3B18E,KAAK+7D,qBAAuBA,EAC5B/7D,KAAK28E,0BAA4B,KAEjC38E,KAAK48E,YACP,CAEAC,mBAGE,GAFA78E,KAAKw8E,eAAgB,GAEhBx8E,KAAK+7D,qBAAsB,CAC9B,MAAM+gB,EAAex1E,SAASC,cAAc,OAC5Cu1E,EAAa3rB,UAAY,eACzBnxD,KAAKs8E,aAAaxtE,YAAYguE,EAChC,CAEA98E,KAAKg3D,SAASC,SAAS,oBAAqB,CAC1CtvC,OAAQ3nB,KACR0sB,WAAY1sB,KAAK0sB,WACjBqwD,YAAa/8E,KAAK+5D,SAASn5D,QAE/B,CAEA4uB,OAAOktC,EAAU,GACf,IAAM18D,KAAKuyB,cAAevyB,KAAK67D,mBAAsB77D,KAAKw8E,cACxD,OAGFx8E,KAAKyzB,SACLzzB,KAAK+5D,SAAW,GAChB,MAAMijB,EAAgB11E,SAAS21E,yBAC/Bj9E,KAAK08E,qBAAsB,EAAIzD,EAAUnzE,iBAAiB,CACxDysB,YAAavyB,KAAKuyB,YAClBspC,kBAAmB77D,KAAK67D,kBACxB/L,UAAWktB,EACXttD,SAAU1vB,KAAK0vB,SACfqqC,SAAU/5D,KAAK+5D,SACf+B,oBAAqB97D,KAAK87D,oBAC1BY,UACAX,qBAAsB/7D,KAAK+7D,uBAE7B/7D,KAAK08E,oBAAoBh3D,QAAQpd,MAAK,KACpCtI,KAAKs8E,aAAaxtE,YAAYkuE,GAE9Bh9E,KAAK68E,mBAEL78E,KAAKk9E,gBAAgB,IACpB,SAAUl0E,GAAS,IAEjBhJ,KAAK28E,4BACR38E,KAAK28E,0BAA4B5jD,IAC3BA,EAAI3K,YAAcpuB,KAAKy8E,UAA8B,IAAnB1jD,EAAI3K,WACxCpuB,KAAKk9E,gBACP,EAGFl9E,KAAKg3D,SAASmf,IAAI,yBAA0Bn2E,KAAK28E,2BAErD,CAEAlpD,SACMzzB,KAAK08E,sBACP18E,KAAK08E,oBAAoBjpD,SACzBzzB,KAAK08E,oBAAsB,MAGzB18E,KAAK28E,4BACP38E,KAAKg3D,SAASif,KAAK,yBAA0Bj2E,KAAK28E,2BAElD38E,KAAK28E,0BAA4B,KAErC,CAEAQ,qBAAqBzqD,GACnB1yB,KAAKyzB,SACLzzB,KAAK67D,kBAAoBnpC,CAC3B,CAEA0qD,eAAe7qD,GACbvyB,KAAKyzB,SACLzzB,KAAKuyB,YAAcA,CACrB,CAEA8qD,gBAAgB9tE,EAAS+tE,GACvB,IAAK/tE,EACH,MAAO,GAGT,MAAM,eACJgtE,EAAc,oBACdzgB,GACE97D,KACJ,IAAIc,EAAI,EACJy8E,EAAS,EACb,MAAMpwE,EAAM2uD,EAAoBl7D,OAAS,EACnC48E,EAAWjB,EAAe9tC,MAAMvhC,MAAMtM,OACtC+jB,EAAS,GAEf,IAAK,IAAI9iB,EAAI,EAAG47E,EAAKluE,EAAQ3O,OAAQiB,EAAI47E,EAAI57E,IAAK,CAChD,IAAI67E,EAAWnuE,EAAQ1N,GAEvB,MAAOf,IAAMqM,GAAOuwE,GAAYH,EAASzhB,EAAoBh7D,GAAGF,OAC9D28E,GAAUzhB,EAAoBh7D,GAAGF,OACjCE,IAGEA,IAAMg7D,EAAoBl7D,QAC5BoO,QAAQ+hB,MAAM,qCAGhB,MAAM43C,EAAQ,CACZ/8C,MAAO,CACL+xD,OAAQ78E,EACR6+B,OAAQ+9C,EAAWH,IAKrBG,GADEJ,EACUA,EAAcz7E,GAEd27E,EAGd,MAAO18E,IAAMqM,GAAOuwE,EAAWH,EAASzhB,EAAoBh7D,GAAGF,OAC7D28E,GAAUzhB,EAAoBh7D,GAAGF,OACjCE,IAGF6nE,EAAMx7D,IAAM,CACVwwE,OAAQ78E,EACR6+B,OAAQ+9C,EAAWH,GAErB54D,EAAOzkB,KAAKyoE,EACd,CAEA,OAAOhkD,CACT,CAEAi5D,eAAeruE,GACb,GAAuB,IAAnBA,EAAQ3O,OACV,OAGF,MAAM,eACJ27E,EAAc,QACdE,EAAO,oBACP3gB,EAAmB,SACnB/B,GACE/5D,KACE69E,EAAiBpB,IAAYF,EAAeuB,SAASrB,QACrDsB,EAAmBxB,EAAeuB,SAASJ,SAC3CM,EAAezB,EAAe9tC,MAAMuvC,aAC1C,IAAIC,EAAU,KACd,MAAMC,EAAW,CACfP,QAAS,EACTh+C,YAAQv+B,GAGV,SAASga,EAAUwQ,EAAOulC,GACxB,MAAMwsB,EAAS/xD,EAAM+xD,OACrB5jB,EAAS4jB,GAAQprD,YAAc,GAC/B4rD,EAAgBR,EAAQ,EAAG/xD,EAAM+T,OAAQwxB,EAC3C,CAEA,SAASgtB,EAAgBR,EAAQS,EAAYC,EAAUltB,GACrD,MAAMvwB,EAAMm5B,EAAS4jB,GACfl9E,EAAUq7D,EAAoB6hB,GAAQtwE,UAAU+wE,EAAYC,GAC5Dt5B,EAAOz9C,SAASwuD,eAAer1D,GAErC,GAAI0wD,EAAW,CACb,MAAMjwB,EAAO55B,SAASC,cAAc,QAIpC,OAHA25B,EAAKiwB,UAAYA,EACjBjwB,EAAKpyB,YAAYi2C,QACjBnkB,EAAI9xB,YAAYoyB,EAElB,CAEAN,EAAI9xB,YAAYi2C,EAClB,CAEA,IAAIu5B,EAAKP,EACLQ,EAAKD,EAAK,EAEd,GAAIN,EACFM,EAAK,EACLC,EAAKhvE,EAAQ3O,YACR,IAAKi9E,EACV,OAGF,IAAK,IAAI/8E,EAAIw9E,EAAIx9E,EAAIy9E,EAAIz9E,IAAK,CAC5B,MAAM6nE,EAAQp5D,EAAQzO,GAChB8qB,EAAQ+8C,EAAM/8C,MACdze,EAAMw7D,EAAMx7D,IACZqxE,EAAaX,GAAkB/8E,IAAMi9E,EACrCU,EAAkBD,EAAa,YAAc,GAoBnD,GAlBIA,GACFjC,EAAemC,oBAAoB,CACjCp5D,QAASy0C,EAASnuC,EAAM+xD,QACxBvvD,UAAWquD,EACXkC,WAAYZ,IAIXE,GAAWryD,EAAM+xD,SAAWM,EAAQN,OAOvCQ,EAAgBF,EAAQN,OAAQM,EAAQt+C,OAAQ/T,EAAM+T,SANtC,OAAZs+C,GACFE,EAAgBF,EAAQN,OAAQM,EAAQt+C,OAAQu+C,EAASv+C,QAG3DvkB,EAAUwQ,IAKRA,EAAM+xD,SAAWxwE,EAAIwwE,OACvBQ,EAAgBvyD,EAAM+xD,OAAQ/xD,EAAM+T,OAAQxyB,EAAIwyB,OAAQ,YAAc8+C,OACjE,CACLN,EAAgBvyD,EAAM+xD,OAAQ/xD,EAAM+T,OAAQu+C,EAASv+C,OAAQ,kBAAoB8+C,GAEjF,IAAK,IAAIG,EAAKhzD,EAAM+xD,OAAS,EAAGkB,EAAK1xE,EAAIwwE,OAAQiB,EAAKC,EAAID,IACxD7kB,EAAS6kB,GAAIztB,UAAY,mBAAqBstB,EAGhDrjE,EAAUjO,EAAK,gBAAkBsxE,EACnC,CAEAR,EAAU9wE,CACZ,CAEI8wE,GACFE,EAAgBF,EAAQN,OAAQM,EAAQt+C,OAAQu+C,EAASv+C,OAE7D,CAEAu9C,iBACE,IAAKl9E,KAAKw8E,cACR,OAGF,MAAM,eACJD,EAAc,QACdhtE,EAAO,QACPktE,EAAO,oBACP3gB,EAAmB,SACnB/B,GACE/5D,KACJ,IAAI8+E,GAAsB,EAE1B,IAAK,IAAIh+E,EAAI,EAAGklB,EAAKzW,EAAQ3O,OAAQE,EAAIklB,EAAIllB,IAAK,CAChD,MAAM6nE,EAAQp5D,EAAQzO,GAChB8qB,EAAQ3gB,KAAK4Y,IAAIi7D,EAAoBnW,EAAM/8C,MAAM+xD,QAEvD,IAAK,IAAIz6E,EAAI0oB,EAAOze,EAAMw7D,EAAMx7D,IAAIwwE,OAAQz6E,GAAKiK,EAAKjK,IAAK,CACzD,MAAM09B,EAAMm5B,EAAS72D,GACrB09B,EAAIrO,YAAcupC,EAAoB54D,GACtC09B,EAAIuwB,UAAY,EAClB,CAEA2tB,EAAqBnW,EAAMx7D,IAAIwwE,OAAS,CAC1C,CAEA,IAAKpB,IAAmBA,EAAewC,iBACrC,OAGF,MAAMC,EAAczC,EAAeyC,YAAYvC,IAAY,KACrDwC,EAAoB1C,EAAe0C,kBAAkBxC,IAAY,KACvEz8E,KAAKuP,QAAUvP,KAAKq9E,gBAAgB2B,EAAaC,GAEjDj/E,KAAK49E,eAAe59E,KAAKuP,QAC3B,CAEAqtE,aACE,MAAMh8C,EAAM5gC,KAAKs8E,aACjB,IAAI4C,EAAkB,KACtBt+C,EAAItL,iBAAiB,aAAayD,IAChC,GAAI/4B,KAAK+7D,sBAAwB/7D,KAAK08E,oBAQpC,OAPA18E,KAAK08E,oBAAoBzf,gBAAe,QAEpCiiB,IACF/uD,aAAa+uD,GACbA,EAAkB,OAMtB,MAAM/xE,EAAMyzB,EAAI+zB,cAAc,iBAE9B,IAAKxnD,EACH,OAGF,IAAIgyE,EAAYpmD,EAAIvsB,SAAWo0B,EAG/B,GAFAu+C,EAAYA,GAAmF,SAAtEp3D,OAAO8pD,iBAAiB1kE,GAAKiyE,iBAAiB,oBAEnED,EAAW,CACb,MAAME,EAAYz+C,EAAI0+C,wBAChB/8E,EAAI0I,KAAK4Y,IAAI,GAAIkV,EAAIwmD,MAAQF,EAAUr+C,KAAOq+C,EAAUl4E,QAC9DgG,EAAI0zB,MAAMG,KAAW,IAAJz+B,GAASw9D,QAAQ,GAAK,GACzC,CAEA5yD,EAAI+lD,UAAU12B,IAAI,SAAS,IAE7BoE,EAAItL,iBAAiB,WAAW,KAC9B,GAAIt1B,KAAK+7D,sBAAwB/7D,KAAK08E,oBAQpC,YAPAwC,EAAkBhrD,YAAW,KACvBl0B,KAAK08E,qBACP18E,KAAK08E,oBAAoBzf,gBAAe,GAG1CiiB,EAAkB,IAAI,GACrB7C,IAIL,MAAMlvE,EAAMyzB,EAAI+zB,cAAc,iBAEzBxnD,IAILA,EAAI0zB,MAAMG,IAAM,GAChB7zB,EAAI+lD,UAAUj1B,OAAO,UAAS,GAElC,EAIFt+B,EAAQm4E,iBAAmBA,EAE3B,MAAMD,EACJ2H,uBAAuBlD,EAAcluD,EAAWsB,EAAUqsC,GAAuB,EAAO/E,GACtF,OAAO,IAAI8gB,EAAiB,CAC1BwE,eACAluD,YACAsB,WACAqsC,uBACA/E,YAEJ,EAIFr3D,EAAQk4E,wBAA0BA,CAE3B,EAED,SAAUj4E,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQy4E,qBAAkB,EAE1B,IAAIa,EAAYx3E,EAAoB,GAEhCg+E,EAAwBh+E,EAAoB,GAGhD,MAAMi+E,EAA4BD,EAAsBE,0BAA0BC,yBAA0B,EAE5G,SAASC,EAASC,EAAS7kD,GACzB,MAAMjX,EAAI1c,SAASC,cAAc,KAEjC,IAAKyc,EAAE+7D,MACL,MAAM,IAAI34E,MAAM,kDAGlB4c,EAAEpX,KAAOkzE,EACT97D,EAAExX,OAAS,UAEP,aAAcwX,IAChBA,EAAE67D,SAAW5kD,IAGd3zB,SAAS85B,MAAQ95B,SAASuH,iBAAiBC,YAAYkV,GACxDA,EAAE+7D,QACF/7D,EAAEia,QACJ,CAEA,MAAMm6C,EACJvwE,aAAY,uBACV+3E,EAAyBF,IAEzB1/E,KAAK4/E,uBAAyBA,CAChC,CAEAI,YAAYv5E,EAAKw0B,IACV,EAAIg+C,EAAUt0E,wBAAwB8B,EAAK,uBAIhDo5E,EAASp5E,EAAM,yBAA0Bw0B,EAC3C,CAEAk8B,aAAa30C,EAAMyY,EAAUrV,GAC3B,GAAIuZ,UAAU8gD,WAIZ,YAHA9gD,UAAU8gD,WAAW,IAAIl6D,KAAK,CAACvD,GAAO,CACpCtY,KAAM0b,IACJqV,GAIN,MAAM6kD,GAAU,EAAI7G,EAAUx0E,iBAAiB+d,EAAMoD,EAAa5lB,KAAK4/E,wBACvEC,EAASC,EAAS7kD,EACpB,CAEA4kD,SAAS/5D,EAAMrf,EAAKw0B,GAClB,GAAIkE,UAAU8gD,WAKZ,YAJK9gD,UAAU8gD,WAAWn6D,EAAMmV,IAC9Bj7B,KAAKggF,YAAYv5E,EAAKw0B,IAM1B,GAAIj7B,KAAK4/E,uBAEP,YADA5/E,KAAKggF,YAAYv5E,EAAKw0B,GAIxB,MAAM6kD,EAAUxxE,IAAI7J,gBAAgBqhB,GACpC+5D,EAASC,EAAS7kD,EACpB,EAIFt7B,EAAQy4E,gBAAkBA,CAEnB,EAED,SAAUx4E,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQggF,+BAA4B,EACpC,MAAM39C,EAAsB7/B,OAAOY,OAAO,MAC1C,CACE,MAAMq8B,EAAiC,qBAAdD,WAA6BA,UAAUC,WAAa,GACvE8gD,EAAgC,qBAAd/gD,WAA6BA,UAAU+gD,UAAY,GACrEC,EAAsC,qBAAdhhD,WAA6BA,UAAUghD,gBAAkB,EACjFC,EAAY,UAAU1oB,KAAKt4B,GAC3BihD,EAAO,UAAU3oB,KAAKt4B,GACtBkhD,EAAQ,4BAA4B5oB,KAAKt4B,IAA2B,aAAb8gD,GAA2BC,EAAiB,EACnGI,EAAc,QAAQ7oB,KAAKt4B,IAEjC,YACMihD,GAAQE,KACVv+C,EAAoB49C,wBAAyB,EAEhD,EAJD,GAMA,YACMU,GAASF,KACXp+C,EAAoBw+C,gBAAkB,QAEzC,CAJD,EAKF,CACA,MAAMb,EAA4Bx9E,OAAO8/B,OAAOD,GAChDriC,EAAQggF,0BAA4BA,CAE7B,EAED,SAAU//E,EAAQD,EAAS8B,GAEjC,aAGAU,OAAOC,eAAezC,EAAS,aAAc,CAC3C+C,OAAO,IAET/C,EAAQ24E,iBAAc,EAEtB72E,EAAoB,GAEpB,MAAMg/E,EAAUn5E,SAASm5E,QAEzB,MAAMnI,EACJzwE,YAAY64E,GACV1gF,KAAK2gF,MAAQD,EACb1gF,KAAK4gF,OAAS,IAAI33E,SAAQ,CAACC,EAASC,KAClCs3E,EAAQI,YAAYH,GAAM,KACxBx3E,EAAQu3E,EAAQ,GAChB,GAEN,CAEAz4E,oBACE,MAAMoxE,QAAap5E,KAAK4gF,OACxB,OAAOxH,EAAK0H,aACd,CAEA94E,qBACE,MAAMoxE,QAAap5E,KAAK4gF,OACxB,OAAOxH,EAAK2H,cACd,CAEA/4E,UAAU5E,EAAU4wB,EAAMu8C,GACxB,MAAM6I,QAAap5E,KAAK4gF,OACxB,OAAOxH,EAAK92E,IAAIc,EAAU4wB,EAAMu8C,EAClC,CAEAvoE,gBAAgBsd,GACd,MAAM8zD,QAAap5E,KAAK4gF,OACxB,OAAOxH,EAAKn2C,UAAU3d,EACxB,EAIF3lB,EAAQ24E,YAAcA,CAEf,EAED,SAAU14E,EAAQD,EAAS8B,GAEjC,aAGA6F,SAASm5E,QAAU,SAAU14D,EAAQzgB,EAAUlG,GAC7C,IAAI4/E,EAAY,CAAC,EACbC,EAAY,GACZC,EAAY,cACZC,EAAY,GACZC,EAAU,CAAC,EACXC,EAAc,UACdC,GAAwB,EAE5B,SAASC,IACP,OAAOj6E,EAASk6E,iBAAiB,gCACnC,CAEA,SAASC,IACP,IAAIhzE,EAASnH,EAASqtD,cAAc,mCACpC,OAAOlmD,EAAS2jD,KAAKyS,MAAMp2D,EAAOizE,WAAa,IACjD,CAEA,SAASC,EAAwBr8D,GAC/B,OAAOA,EAAUA,EAAQk8D,iBAAiB,mBAAqB,EACjE,CAEA,SAASI,EAAkBt8D,GACzB,IAAKA,EAAS,MAAO,CAAC,EACtB,IAAI4sC,EAAS5sC,EAAQu8D,aAAa,gBAC9B1vB,EAAW7sC,EAAQu8D,aAAa,kBAChC7tD,EAAO,CAAC,EAEZ,GAAIm+B,EACF,IACEn+B,EAAOo+B,KAAKyS,MAAM1S,EAGpB,CAFE,MAAOtxC,GACP7R,QAAQtB,KAAK,kCAAoCwkD,EACnD,CAGF,MAAO,CACL/xD,GAAI+xD,EACJl+B,KAAMA,EAEV,CAEA,SAAS8tD,EAAYr7E,EAAKs7E,EAAWC,GACnCD,EAAYA,GAAa,SAAoBv/D,GAAO,EAEpDw/D,EAAYA,GAAa,WAAuB,EAEhD,IAAIvY,EAAM,IAAIpgE,eACdogE,EAAIngE,KAAK,MAAO7C,EAAK66E,GAEjB7X,EAAIwY,kBACNxY,EAAIwY,iBAAiB,6BAGvBxY,EAAIjgE,mBAAqB,WACD,GAAlBigE,EAAIhgE,aACY,KAAdggE,EAAI9/D,QAAgC,IAAf8/D,EAAI9/D,OAC3Bo4E,EAAUtY,EAAI7/D,cAEdo4E,IAGN,EAEAvY,EAAI96D,QAAUqzE,EACdvY,EAAIyY,UAAYF,EAEhB,IACEvY,EAAI5/D,KAAK,KAGX,CAFE,MAAOgX,GACPmhE,GACF,CACF,CAEA,SAASG,EAAcv1E,EAAM8zE,EAAM0B,EAAiBC,GAClD,IAAIC,EAAU11E,EAAK6U,QAAQ,UAAW,KAAO,KAE7C,SAAS8gE,EAAWz5E,GAClB,OAAIA,EAAKwE,YAAY,MAAQ,EAAUxE,EAChCA,EAAK2Y,QAAQ,QAAS,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,IAClO,CAEA,SAAS+gE,EAAgB15E,EAAM25E,GAC7B,IAAIC,EAAa,CAAC,EACdC,EAAU,YACVC,EAAY,cACZC,EAAY,mBACZC,EAAW,iCACXC,EAAU,yBAEd,SAASC,EAAcC,EAASC,EAAgBC,GAC9C,IAAIC,EAAUH,EAAQxhE,QAAQkhE,EAAS,IAAI/sB,MAAM,WAC7CytB,EAAc,IACdC,EAAc5C,EAAK9qB,MAAM,IAAK,GAAG,GACjC2tB,GAAW,EACX5a,EAAQ,GAEZ,SAAS6a,IACP,MAAO,EAAM,CACX,IAAKJ,EAAQxiF,OAEX,YADAuiF,IAIF,IAAIttB,EAAOutB,EAAQ7jD,QACnB,IAAIqjD,EAAUlrB,KAAK7B,GAAnB,CAEA,GAAIqtB,EAAgB,CAGlB,GAFAva,EAAQka,EAAUrzE,KAAKqmD,GAEnB8S,EAAO,CACT0a,EAAc1a,EAAM,GAAGxnB,cACvBoiC,EAA2B,MAAhBF,GAAuBA,IAAgB3C,GAAQ2C,IAAgBC,EAC1E,QACF,CAAO,GAAIC,EACT,SAKF,GAFA5a,EAAQma,EAAStzE,KAAKqmD,GAElB8S,EAEF,YADA8a,EAAWnB,EAAU3Z,EAAM,GAAI6a,EAGnC,CAEA,IAAIlrC,EAAMud,EAAK8S,MAAMoa,GAEjBzqC,GAAqB,GAAdA,EAAI13C,SACb8hF,EAAWpqC,EAAI,IAAMiqC,EAAWjqC,EAAI,IAxBJ,CA0BpC,CACF,CAEAkrC,GACF,CAEA,SAASC,EAAWh9E,EAAK6qB,GACvBwwD,EAAYr7E,GAAK,SAAUhG,GACzBuiF,EAAcviF,GAAS,EAAO6wB,EAChC,IAAG,WACDtiB,QAAQtB,KAAKjH,EAAM,eACnB6qB,GACF,GACF,CAEA0xD,EAAcl6E,GAAM,GAAM,WACxB25E,EAAyBC,EAC3B,GACF,CAEAZ,EAAYl1E,GAAM,SAAUrE,GAC1B04E,GAAa14E,EACbi6E,EAAgBj6E,GAAU,SAAUia,GAClC,IAAK,IAAIxf,KAAOwf,EAAM,CACpB,IAAIriB,EACA+gB,EACAqE,EAAQviB,EAAIsK,YAAY,KAExBiY,EAAQ,GACVplB,EAAK6C,EAAIqK,UAAU,EAAGkY,GACtBrE,EAAOle,EAAIqK,UAAUkY,EAAQ,KAE7BplB,EAAK6C,EACLke,EAAOggE,GAGJF,EAAU7gF,KACb6gF,EAAU7gF,GAAM,CAAC,GAGnB6gF,EAAU7gF,GAAI+gB,GAAQsB,EAAKxf,EAC7B,CAEIo/E,GACFA,GAEJ,GACF,GAAGC,EACL,CAEA,SAASqB,EAAWhD,EAAMpvD,GACpBovD,IACFA,EAAOA,EAAKv/B,eAGd7vB,EAAWA,GAAY,WAAsB,EAE7CoC,IACAytD,EAAYT,EACZ,IAAIiD,EAAYpC,IACZqC,EAAYD,EAAU/iF,OAE1B,GAAkB,IAAdgjF,EAAJ,CA+BA,IAAIC,EAAmB,KACnBC,EAAiB,EAErBD,EAAmB,WACjBC,IAEIA,GAAkBF,IACpBtyD,IACA+vD,EAAc,WAElB,EAeA,IAAK,IAAIvgF,EAAI,EAAGA,EAAI8iF,EAAW9iF,IAAK,CAClC,IAAIijF,EAAW,IAAIC,EAAiBL,EAAU7iF,IAC9CijF,EAASE,KAAKvD,EAAMmD,EACtB,CA9BA,KA7BA,CACE,IAAIK,EAAOzC,IAEX,GAAIyC,GAAQA,EAAKC,SAAWD,EAAKE,eAAgB,CAI/C,GAHAp1E,QAAQC,IAAI,oDACZ+xE,EAAYkD,EAAKC,QAAQzD,IAEpBM,EAAW,CACd,IAAIqD,EAAgBH,EAAKE,eAAejjC,cAExC,IAAK,IAAImjC,KAAeJ,EAAKC,QAAS,CAGpC,GAFAG,EAAcA,EAAYnjC,cAEtBmjC,IAAgB5D,EAAM,CACxBM,EAAYkD,EAAKC,QAAQzD,GACzB,KACF,CAAW4D,IAAgBD,IACzBrD,EAAYkD,EAAKC,QAAQE,GAE7B,CACF,CAEA/yD,GACF,MACEtiB,QAAQC,IAAI,sCAGdoyE,EAAc,UAEhB,CAcA,SAAS2C,EAAiBz3E,GACxB,IAAIK,EAAOL,EAAKK,KAEhB5M,KAAKikF,KAAO,SAAUvD,EAAMpvD,GAC1B6wD,EAAcv1E,EAAM8zE,EAAMpvD,GAAU,WAClCtiB,QAAQtB,KAAKd,EAAO,eACpBoC,QAAQtB,KAAK,IAAMgzE,EAAO,wBAC1BS,EAAY,GACZ7vD,GACF,GACF,CACF,CAMF,CAEA,SAASoC,IACPstD,EAAY,CAAC,EACbC,EAAY,GACZE,EAAY,EACd,CAEA,SAASoD,EAAe7D,GACtB,IAAI8D,EAAgB,CAClB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,GACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,GACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,IAAO,GACP,GAAM,EACN,GAAM,EACN,IAAO,GACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,GACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,GACN,IAAO,GACP,GAAM,GACN,GAAM,GACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,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","sources":["webpack://ofd-view/webpack/universalModuleDefinition","webpack://ofd-view/./packages/pdfView/src/index.vue?5a69","webpack://ofd-view/./node_modules/css-loader/dist/runtime/api.js","webpack://ofd-view/./node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://ofd-view/./node_modules/pdfjs-dist/build/pdf.js","webpack://ofd-view/./node_modules/pdfjs-dist/lib/web/ui_utils.js","webpack://ofd-view/./node_modules/pdfjs-dist/web/pdf_viewer.js","webpack://ofd-view/./packages/pdfView/src/index.vue?8870","webpack://ofd-view/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://ofd-view/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://ofd-view/webpack/bootstrap","webpack://ofd-view/webpack/runtime/compat get default export","webpack://ofd-view/webpack/runtime/define property getters","webpack://ofd-view/webpack/runtime/hasOwnProperty shorthand","webpack://ofd-view/webpack/runtime/make namespace object","webpack://ofd-view/webpack/runtime/publicPath","webpack://ofd-view/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://ofd-view/./packages/ofdView/src/index.vue?3586","webpack://ofd-view/packages/ofdView/src/index.vue","webpack://ofd-view/./packages/ofdView/src/index.vue?3d0b","webpack://ofd-view/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://ofd-view/./packages/ofdView/src/index.vue","webpack://ofd-view/./packages/ofdView/index.js","webpack://ofd-view/./packages/pdfView/src/index.vue?09ad","webpack://ofd-view/packages/pdfView/src/index.vue","webpack://ofd-view/./packages/pdfView/src/index.vue?e290","webpack://ofd-view/./packages/pdfView/src/index.vue","webpack://ofd-view/./packages/pdfView/index.js","webpack://ofd-view/./packages/index.js","webpack://ofd-view/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ofd-view\"] = factory();\n\telse\n\t\troot[\"ofd-view\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#pageContainer[data-v-fa94153c]{margin:auto;width:80%}div.page[data-v-fa94153c]{display:inline-block}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addLinkAttributes\", {\n enumerable: true,\n get: function () {\n return _display_utils.addLinkAttributes;\n }\n});\nObject.defineProperty(exports, \"getFilenameFromUrl\", {\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n});\nObject.defineProperty(exports, \"LinkTarget\", {\n enumerable: true,\n get: function () {\n return _display_utils.LinkTarget;\n }\n});\nObject.defineProperty(exports, \"loadScript\", {\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n});\nObject.defineProperty(exports, \"PDFDateString\", {\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n});\nObject.defineProperty(exports, \"RenderingCancelledException\", {\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n});\nObject.defineProperty(exports, \"build\", {\n enumerable: true,\n get: function () {\n return _api.build;\n }\n});\nObject.defineProperty(exports, \"getDocument\", {\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n});\nObject.defineProperty(exports, \"LoopbackPort\", {\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n});\nObject.defineProperty(exports, \"PDFDataRangeTransport\", {\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n});\nObject.defineProperty(exports, \"PDFWorker\", {\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _api.version;\n }\n});\nObject.defineProperty(exports, \"CMapCompressionType\", {\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n});\nObject.defineProperty(exports, \"createObjectURL\", {\n enumerable: true,\n get: function () {\n return _util.createObjectURL;\n }\n});\nObject.defineProperty(exports, \"createPromiseCapability\", {\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n});\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", {\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n});\nObject.defineProperty(exports, \"InvalidPDFException\", {\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n});\nObject.defineProperty(exports, \"MissingPDFException\", {\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n});\nObject.defineProperty(exports, \"OPS\", {\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n});\nObject.defineProperty(exports, \"PasswordResponses\", {\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n});\nObject.defineProperty(exports, \"PermissionFlag\", {\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n});\nObject.defineProperty(exports, \"removeNullCharacters\", {\n enumerable: true,\n get: function () {\n return _util.removeNullCharacters;\n }\n});\nObject.defineProperty(exports, \"shadow\", {\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n});\nObject.defineProperty(exports, \"UnexpectedResponseException\", {\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n});\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", {\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n});\nObject.defineProperty(exports, \"Util\", {\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n});\nObject.defineProperty(exports, \"VerbosityLevel\", {\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n});\nObject.defineProperty(exports, \"AnnotationLayer\", {\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n});\nObject.defineProperty(exports, \"apiCompatibilityParams\", {\n enumerable: true,\n get: function () {\n return _api_compatibility.apiCompatibilityParams;\n }\n});\nObject.defineProperty(exports, \"GlobalWorkerOptions\", {\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n});\nObject.defineProperty(exports, \"renderTextLayer\", {\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n});\nObject.defineProperty(exports, \"SVGGraphics\", {\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n});\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_layer = __w_pdfjs_require__(16);\n\nvar _api_compatibility = __w_pdfjs_require__(7);\n\nvar _worker_options = __w_pdfjs_require__(10);\n\nvar _text_layer = __w_pdfjs_require__(17);\n\nvar _svg = __w_pdfjs_require__(18);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(19).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(22).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(23).PDFFetchStream;\n }\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.isFetchSupported = isFetchSupported;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.deprecated = deprecated;\nexports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass DOMCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass DOMCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n\n if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {\n return fetch(url).then(async response => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n let cMapData;\n\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = (0, _util.stringToBytes)(await response.text());\n }\n\n return {\n cMapData,\n compressionType\n };\n }).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}` + `CMap at: ${url}`);\n });\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (this.isCompressed) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let cMapData;\n\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData,\n compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n }).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}` + `CMap at: ${url}`);\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMSVGFactory {\n create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, \"Invalid SVG dimensions\");\n const svg = document.createElementNS(SVG_NS, \"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", width + \"px\");\n svg.setAttribute(\"height\", height + \"px\");\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n return svg;\n }\n\n createElement(type) {\n (0, _util.assert)(typeof type === \"string\", \"Invalid SVG element type\");\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg);\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n const urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isFetchSupported() {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype && typeof ReadableStream !== \"undefined\";\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\nexports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontGetPath: \"errorFontGetPath\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n const length = str.length;\n const bytes = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n static makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join(\"\");\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (const key in obj) {\n return false;\n }\n\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nconst createObjectURL = function createObjectURLClosure() {\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !process.versions.electron;\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _font_loader = __w_pdfjs_require__(6);\n\nvar _api_compatibility = __w_pdfjs_require__(7);\n\nvar _canvas = __w_pdfjs_require__(8);\n\nvar _worker_options = __w_pdfjs_require__(10);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(11);\n\nvar _metadata = __w_pdfjs_require__(12);\n\nvar _transport_stream = __w_pdfjs_require__(14);\n\nvar _webgl = __w_pdfjs_require__(15);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\") {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either Uint8Array, string or a parameter object\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n if (key === \"url\" && typeof window !== \"undefined\") {\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === \"range\") {\n rangeTransport = source[key];\n continue;\n } else if (key === \"worker\") {\n worker = source[key];\n continue;\n } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n const pdfBytes = source[key];\n\n if (typeof pdfBytes === \"string\") {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if (typeof pdfBytes === \"object\" && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string or array-like object is expected in the \" + \"data property.\");\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.5.207',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n });\n}\n\nconst PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\" + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n destroy() {\n this.destroyed = true;\n const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n });\n }\n\n }\n\n return PDFDocumentLoadingTask;\n}();\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getOpenActionDestination() {\n (0, _display_utils.deprecated)(\"getOpenActionDestination, use getOpenAction instead.\");\n return this.getOpenAction().then(function (openAction) {\n return openAction && openAction.dest ? openAction.dest : null;\n });\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n getStats() {\n return this._transport.getStats();\n }\n\n cleanup() {\n return this._transport.startCleanup();\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = null\n } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n enableWebGL = false,\n renderInteractiveForms = false,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null\n }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n const intentState = this.intentStates[renderingIntent];\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();\n const webGLContext = new _webgl.WebGLContext({\n enable: enableWebGL\n });\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true\n });\n }\n\n const complete = error => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (this.cleanupAfterRender || renderingIntent === \"print\") {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(transparency => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n const i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = \"oplist\";\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n const waitOn = [];\n Object.keys(this.intentStates).forEach(intent => {\n const intentState = this.intentStates[intent];\n\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n return;\n }\n\n intentState.renderTasks.forEach(function (renderTask) {\n const renderCompleted = renderTask.capability.promise.catch(function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n });\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup || Object.keys(this.intentStates).some(intent => {\n const intentState = this.intentStates[intent];\n return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;\n })) {\n return false;\n }\n\n Object.keys(this.intentStates).forEach(intent => {\n delete this.intentStates[intent];\n });\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList(args) {\n (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", args);\n\n const reader = readableStream.getReader();\n const intentState = this.intentStates[args.intent];\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n (0, _util.assert)(reason instanceof Error || typeof reason === \"object\" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.length !== 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n Object.keys(this.intentStates).some(intent => {\n if (this.intentStates[intent] === intentState) {\n delete this.intentStates[intent];\n return true;\n }\n\n return false;\n });\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n let buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n const transferable = transfers && transfers.includes(buffer);\n\n if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (const i in value) {\n let desc,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);\n }\n\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(listener => {\n listener.call(this, {\n data: obj\n });\n });\n\n return;\n }\n\n const cloned = new WeakMap();\n const e = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(() => {\n this._listeners.forEach(listener => {\n listener.call(this, e);\n });\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\n\nconst PDFWorker = function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let isWorkerDisabled = false;\n let fallbackWorkerSrc;\n let nextFakeWorkerId = 0;\n let fakeWorkerCapability;\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n isWorkerDisabled = true;\n fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n } catch (ex) {}\n\n return mainWorkerMessageHandler || null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n\n fakeWorkerCapability = (0, _util.createPromiseCapability)();\n\n const loader = async function () {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(getWorkerSrc());\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(getWorkerSrc());\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(url) {\n const wrapper = \"importScripts('\" + url + \"');\";\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n class PDFWorker {\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = true;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = \"fake\" + nextFakeWorkerId++;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n\n }\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\n\nclass WorkerTransport {\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this)\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\n this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.fontLoader.clear();\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n this._passwordCapability.resolve({\n password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.pageCache[data.pageIndex];\n\n page._startRenderPage(data.transparency, data.intent);\n });\n messageHandler.on(\"commonobj\", data => {\n if (this.destroyed) {\n return;\n }\n\n const [id, type, exportedData] = data;\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"FontType3Res\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", data => {\n if (this.destroyed) {\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && \"data\" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n\n return undefined;\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n\n fetched = true;\n this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n const pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref\n }).catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader ? this._fullReader.filename : null\n };\n });\n }\n\n getStats() {\n return this.messageHandler.sendWithPromise(\"GetStats\", null);\n }\n\n startCleanup() {\n return this.messageHandler.sendWithPromise(\"Cleanup\", null).then(() => {\n for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n const page = this.pageCache[i];\n\n if (page) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);\n }\n }\n }\n\n this.commonObjs.clear();\n this.fontLoader.clear();\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableFontFace: params.disableFontFace\n });\n }\n\n}\n\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n const obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj ? obj.resolved : false;\n }\n\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n\n clear() {\n this._objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n}\n\nconst InternalRenderTask = function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n class InternalRenderTask {\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n operatorList,\n pageIndex,\n canvasFactory,\n webGLContext,\n useRequestAnimationFrame = false,\n pdfBug = false\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n initializeGraphics(transparency = false) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this.cancel.bind(this));\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n }\n\n return InternalRenderTask;\n}();\n\nconst version = '2.5.207';\nexports.version = version;\nconst build = '0974d605';\nexports.build = build;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n this.nativeFontFaces.forEach(function (nativeFontFace) {\n document.fonts.delete(nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const supported = typeof document !== \"undefined\" && !!document.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", supported);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(docId) {\n super(docId);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n let i, ii;\n const canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n\n names.push(loadTestFontId);\n const div = document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (i = 0, ii = names.length; i < ii; ++i) {\n const span = document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature = null,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(new Uint8Array(this.data));\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds, current;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n }\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n let args,\n js = \"\";\n\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(\",\");\n } else {\n args = \"\";\n }\n\n js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", js);\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.apiCompatibilityParams = void 0;\n\nvar _is_node = __w_pdfjs_require__(4);\n\nconst compatibilityParams = Object.create(null);\n{\n (function checkFontFace() {\n if (_is_node.isNodeJS) {\n compatibilityParams.disableFontFace = true;\n }\n })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\nexports.apiCompatibilityParams = apiCompatibilityParams;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _pattern_helper = __w_pdfjs_require__(9);\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar MIN_WIDTH_FACTOR = 0.65;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\n\nfunction addContextCurrentTransform(ctx) {\n if (!ctx.mozCurrentTransform) {\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n }\n}\n\nvar CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n\n clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n };\n return CachedCanvases;\n}();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n var o = outlines[k];\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nvar CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n}();\n\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xffffffff;\n var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\n if (!smask.transferMap && webGLContext.isEnabled) {\n const composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask,\n properties: {\n subtype: smask.subtype,\n backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n\n setRenderingIntent(intent) {},\n\n setFlatness(flatness) {},\n\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = \"smaskGroupAt\" + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (strokeColor && strokeColor.hasOwnProperty(\"type\") && strokeColor.type === \"Pattern\") {\n ctx.save();\n const transform = ctx.mozCurrentTransform;\n\n const scale = _util.Util.singularValueDecompose2dScale(transform)[0];\n\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.stroke();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n var name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n var typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n\n paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n var addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n var charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var pattern;\n\n if (IR[0] === \"TilingPattern\") {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\n\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n var cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width,\n height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = \"prescale1\";\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)(\"Unsupported 'paintXObject' command.\");\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n\n getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n const inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n };\n\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar ShadingIRs = {};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var bbox = raw[2];\n var colorStops = raw[3];\n var p0 = raw[4];\n var p1 = raw[5];\n var r0 = raw[6];\n var r1 = raw[7];\n return {\n type: \"Pattern\",\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n var grad;\n\n if (type === \"axial\") {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === \"radial\") {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n\n return grad;\n }\n };\n }\n};\n\nvar createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y1 === y2) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n }\n\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords,\n colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n });\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n return createMeshCanvas;\n}();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var bbox = raw[7];\n var background = raw[8];\n return {\n type: \"Pattern\",\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n };\n }\n};\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: \"Pattern\",\n getPattern: function Dummy_fromIR_getPattern() {\n return \"hotpink\";\n }\n };\n }\n};\n\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n\n if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = \"Pattern\";\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n },\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n }\n };\n return TilingPattern;\n}();\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++;\n const sourceName = this.sourceName;\n const targetName = this.targetName;\n const comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n\n _createStreamSink(data) {\n const self = this;\n const action = this.actionHandler[data.action];\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\n _processStreamMessage(data) {\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].startCall.resolve();\n } else {\n this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!this.streamSinks[streamId]) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\n\n _postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _xml_parser = __w_pdfjs_require__(13);\n\nclass Metadata {\n constructor(data) {\n (0, _util.assert)(typeof data === \"string\", \"Metadata: input is not a string\");\n data = this._repair(data);\n const parser = new _xml_parser.SimpleXMLParser();\n const xmlDocument = parser.parseFromString(data);\n this._metadataMap = new Map();\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n\n case \"apos\":\n return \"'\";\n\n case \"gt\":\n return \">\";\n\n case \"lt\":\n return \"<\";\n\n case \"quot\":\n return '\"';\n }\n\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n let chars = \"\";\n\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n }\n }\n\n return \">\" + chars;\n });\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n const nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n const children = rdf.childNodes;\n\n for (let i = 0, ii = children.length; i < ii; i++) {\n const desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n continue;\n }\n\n for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n const entry = desc.childNodes[j];\n const name = entry.nodeName.toLowerCase();\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n }\n\n get(name) {\n return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n }\n\n getAll() {\n const obj = Object.create(null);\n\n for (const [key, value] of this._metadataMap) {\n obj[key] = value;\n }\n\n return obj;\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleXMLParser = void 0;\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n\n switch (entity) {\n case \"lt\":\n return \"<\";\n\n case \"gt\":\n return \">\";\n\n case \"amp\":\n return \"&\";\n\n case \"quot\":\n return '\"';\n }\n\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== \"=\") {\n return null;\n }\n\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\n\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n\n return {\n name,\n attributes,\n parsed: pos - start\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start\n };\n }\n\n parseXml(s) {\n let i = 0;\n\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case \"?\":\n ++j;\n\n const pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n break;\n\n default:\n const content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n let isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, \"parentNode\", {\n value: null,\n writable: true\n });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n\n if (!childNodes) {\n return undefined;\n }\n\n const index = childNodes.indexOf(this);\n\n if (index === -1) {\n return undefined;\n }\n\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join(\"\");\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor() {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n const [documentElement] = this._currentFragment;\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement\n };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case \"apos\":\n return \"'\";\n }\n\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n\n if (!lastElement) {\n return;\n }\n\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n\n onError(code) {\n this._errorCode = code;\n }\n\n}\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n const initialData = params.initialData;\n\n if (initialData && initialData.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLContext = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass WebGLContext {\n constructor({\n enable = false\n }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, \"isEnabled\", enabled);\n }\n\n composeSMask({\n layer,\n mask,\n properties\n }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n }) {\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n\n}\n\nexports.WebGLContext = WebGLContext;\n\nvar WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error(\"Error during shader compilation: \" + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error(\"Error during program linking: \" + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement(\"canvas\");\n currentGL = currentCanvas.getContext(\"webgl\", {\n premultipliedalpha: false\n });\n }\n\n var smaskVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } \";\n var smaskFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } \";\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.backdropLocation = gl.getUniformLocation(program, \"u_backdrop\");\n cache.subtypeLocation = gl.getUniformLocation(program, \"u_subtype\");\n var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n var texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n var texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === \"Luminosity\" ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n\n var figuresVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } \";\n var figuresFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } \";\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.scaleLocation = gl.getUniformLocation(program, \"u_scale\");\n cache.offsetLocation = gl.getUniformLocation(program, \"u_offset\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.colorLocation = gl.getAttribLocation(program, \"a_color\");\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n var count = 0;\n var i, ii, rows;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case \"lattice\":\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n\n case \"triangles\":\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case \"lattice\":\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n\n break;\n\n case \"triangles\":\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n\n composeSMask,\n drawFigures,\n\n cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n\n };\n}();\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationLayer = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters, isRenderable = false, ignoreBorder = false) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n return container;\n }\n\n _createPopup(container, trigger, data) {\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"linkAnnotation\";\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (destination) {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, isRenderable);\n }\n\n render() {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", this.data.fieldValue);\n }\n\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n let font = null;\n\n if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\n\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n _setTextStyle(element, font) {\n const style = element.style;\n style.fontSize = `${this.data.fontSize}px`;\n style.direction = this.data.fontDirection < 0 ? \"rtl\" : \"ltr\";\n\n if (!font) {\n return;\n }\n\n let bold = \"normal\";\n\n if (font.black) {\n bold = \"900\";\n } else if (font.bold) {\n bold = \"bold\";\n }\n\n style.fontWeight = bold;\n style.fontStyle = font.italic ? \"italic\" : \"normal\";\n const fontFamily = font.loadedName ? `\"${font.loadedName}\", ` : \"\";\n const fallbackName = font.fallbackName || \"Helvetica, sans-serif\";\n style.fontFamily = fontFamily + fallbackName;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue && this.data.fieldValue !== \"Off\") {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"radio\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n render() {\n const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents\n });\n const parentLeft = parseFloat(parentElement.style.left);\n const parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`;\n this.container.style.left = `${parentLeft + parentWidth}px`;\n this.container.appendChild(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute(\"hidden\", true);\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.textContent = this.title;\n popup.appendChild(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n const contents = this._formatContents(this.contents);\n\n popup.appendChild(contents);\n this.trigger.addEventListener(\"click\", this._toggle.bind(this));\n this.trigger.addEventListener(\"mouseover\", this._show.bind(this, false));\n this.trigger.addEventListener(\"mouseout\", this._hide.bind(this, false));\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n _formatContents(contents) {\n const p = document.createElement(\"p\");\n const lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute(\"hidden\")) {\n this.hideElement.removeAttribute(\"hidden\");\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hasAttribute(\"hidden\") && !this.pinned) {\n this.hideElement.setAttribute(\"hidden\", true);\n this.container.style.zIndex -= 1;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"none\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"highlightAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"underlineAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squigglyAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"strikeoutAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, true);\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n\n if (this.linkService.eventBus) {\n this.linkService.eventBus.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: (0, _util.stringToPDFString)(filename),\n filename,\n content\n });\n }\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n _download() {\n if (!this.downloadManager) {\n (0, _util.warn)(\"Download cannot be started due to unavailable download manager\");\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, \"\");\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n sortedAnnotations.push(data);\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderInteractiveForms: parameters.renderInteractiveForms || false,\n svgFactory: new _display_utils.DOMSVGFactory()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n\n static update(parameters) {\n for (const data of parameters.annotations) {\n const element = parameters.div.querySelector(`[data-annotation-id=\"${data.id}\"]`);\n\n if (element) {\n element.style.transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n }\n }\n\n parameters.div.removeAttribute(\"hidden\");\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderTextLayer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement(\"span\");\n var textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n\n task._textDivs.push(textDiv);\n\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.textContent = geom.str;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m\n });\n }\n }\n\n function render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n }\n\n function findPositiveMin(ts, offset, count) {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n }\n\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, j) {\n var t = _util.Util.applyTransform(p, m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n });\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n }\n\n function expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n function TextLayerRenderTask({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise.finally(() => {\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n },\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0) {\n const {\n fontSize,\n fontFamily\n } = textDiv.style;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n this._container.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n const canvas = document.createElement(\"canvas\");\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + \" parameters specified.\");\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (divProps.isWhitespace) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n };\n\n function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n }\n\n return renderTextLayer;\n}();\n\nexports.renderTextLayer = renderTextLayer;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nlet SVGGraphics = function () {\n throw new Error(\"Not implemented: SVGGraphics\");\n};\n\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.sqrt(a * a + b * b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeCssRgb(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeCssRgb(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix);\n\n const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeCssRgb(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(20);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _content_disposition = __w_pdfjs_require__(21);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(\"Unexpected server response (\" + status + ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const bytes = Array.from(value, function (ch) {\n return ch.charCodeAt(0) & 0xff;\n });\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(20);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n\n hasPendingRequests() {\n for (const xhrId in this.pendingRequests) {\n return true;\n }\n\n return false;\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortAllRequests() {\n for (const xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n _onError(status) {\n const url = this._url;\n const exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n\n this._requests = [];\n this._cachedChunks = [];\n }\n\n _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._close();\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(20);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController && abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n });\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.js.map","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.clamp = clamp;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;\nexports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0;\nconst CSS_UNITS = 96.0 / 72.0;\nexports.CSS_UNITS = CSS_UNITS;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\"\n};\nexports.RendererType = RendererType;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n\n async getDirection() {\n return \"ltr\";\n },\n\n async get(property, args, fallback) {\n return formatL10nValue(fallback, args);\n },\n\n async translate(element) {}\n\n};\nexports.NullL10n = NullL10n;\n\nfunction getOutputScale(ctx) {\n const devicePixelRatio = window.devicePixelRatio || 1;\n const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n const pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\n\nfunction scrollIntoView(element, spot, skipOverflowHiddenElements = false) {\n let parent = element.offsetParent;\n\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === \"hidden\") {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n const parts = query.split(\"&\");\n const params = Object.create(null);\n\n for (let i = 0, ii = parts.length; i < ii; ++i) {\n const param = parts[i].split(\"=\");\n const key = param[0].toLowerCase();\n const value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return params;\n}\n\nfunction binarySearchFirstItem(items, condition) {\n let minIndex = 0;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n const xinv = 1 / x;\n const limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n const p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n let result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements(scrollEl, views, sortByVisibility = false, horizontal = false) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementRightAfterViewLeft(view) {\n const element = view.div;\n const elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n\n const visible = [],\n numViews = views.length;\n let firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent\n });\n }\n\n const first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first,\n last,\n views: visible\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n let i = 0;\n const ii = url.length;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction getPDFFileNameFromURL(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataSchema(url)) {\n console.warn(\"getPDFFileNameFromURL: \" + 'ignoring \"data:\" URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nfunction dispatchDOMEvent(eventName, args = null) {\n throw new Error(\"Not implemented: dispatchDOMEvent\");\n}\n\nclass EventBus {\n constructor(options) {\n this._listeners = Object.create(null);\n }\n\n on(eventName, listener) {\n this._on(eventName, listener, {\n external: true\n });\n }\n\n off(eventName, listener) {\n this._off(eventName, listener, {\n external: true\n });\n }\n\n dispatch(eventName) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n\n const args = Array.prototype.slice.call(arguments, 1);\n let externalListeners;\n eventListeners.slice(0).forEach(function ({\n listener,\n external\n }) {\n if (external) {\n if (!externalListeners) {\n externalListeners = [];\n }\n\n externalListeners.push(listener);\n return;\n }\n\n listener.apply(null, args);\n });\n\n if (externalListeners) {\n externalListeners.forEach(function (listener) {\n listener.apply(null, args);\n });\n externalListeners = null;\n }\n }\n\n _on(eventName, listener, options = null) {\n let eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n this._listeners[eventName] = eventListeners = [];\n }\n\n eventListeners.push({\n listener,\n external: (options && options.external) === true\n });\n }\n\n _off(eventName, listener, options = null) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n return;\n }\n\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n\n}\n\nexports.EventBus = EventBus;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n constructor(id, {\n height,\n width,\n units\n } = {}) {\n this.visible = true;\n this.div = document.querySelector(id + \" .progress\");\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || \"%\";\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n const progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n\n get percent() {\n return this._percent;\n }\n\n set percent(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n\n this._updateBar();\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n this.bar.style.width = `calc(100% - ${scrollbarWidth}px)`;\n }\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n document.body.classList.remove(\"loadingInProgress\");\n }\n\n show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n document.body.classList.add(\"loadingInProgress\");\n this.bar.classList.remove(\"hidden\");\n }\n\n}\n\nexports.ProgressBar = ProgressBar;\n\nfunction moveToEndOfArray(arr, condition) {\n const moved = [],\n len = arr.length;\n let write = 0;\n\n for (let read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n\n for (let read = 0; write < len; ++read, ++write) {\n arr[write] = moved[read];\n }\n}","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/web/pdf_viewer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", {\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"DefaultAnnotationLayerFactory\", {\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.DefaultAnnotationLayerFactory;\n }\n});\nObject.defineProperty(exports, \"DefaultTextLayerFactory\", {\n enumerable: true,\n get: function () {\n return _text_layer_builder.DefaultTextLayerFactory;\n }\n});\nObject.defineProperty(exports, \"TextLayerBuilder\", {\n enumerable: true,\n get: function () {\n return _text_layer_builder.TextLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"EventBus\", {\n enumerable: true,\n get: function () {\n return _ui_utils.EventBus;\n }\n});\nObject.defineProperty(exports, \"NullL10n\", {\n enumerable: true,\n get: function () {\n return _ui_utils.NullL10n;\n }\n});\nObject.defineProperty(exports, \"ProgressBar\", {\n enumerable: true,\n get: function () {\n return _ui_utils.ProgressBar;\n }\n});\nObject.defineProperty(exports, \"PDFLinkService\", {\n enumerable: true,\n get: function () {\n return _pdf_link_service.PDFLinkService;\n }\n});\nObject.defineProperty(exports, \"SimpleLinkService\", {\n enumerable: true,\n get: function () {\n return _pdf_link_service.SimpleLinkService;\n }\n});\nObject.defineProperty(exports, \"DownloadManager\", {\n enumerable: true,\n get: function () {\n return _download_manager.DownloadManager;\n }\n});\nObject.defineProperty(exports, \"GenericL10n\", {\n enumerable: true,\n get: function () {\n return _genericl10n.GenericL10n;\n }\n});\nObject.defineProperty(exports, \"PDFFindController\", {\n enumerable: true,\n get: function () {\n return _pdf_find_controller.PDFFindController;\n }\n});\nObject.defineProperty(exports, \"PDFHistory\", {\n enumerable: true,\n get: function () {\n return _pdf_history.PDFHistory;\n }\n});\nObject.defineProperty(exports, \"PDFPageView\", {\n enumerable: true,\n get: function () {\n return _pdf_page_view.PDFPageView;\n }\n});\nObject.defineProperty(exports, \"PDFSinglePageViewer\", {\n enumerable: true,\n get: function () {\n return _pdf_single_page_viewer.PDFSinglePageViewer;\n }\n});\nObject.defineProperty(exports, \"PDFViewer\", {\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFViewer;\n }\n});\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _text_layer_builder = __w_pdfjs_require__(5);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nvar _download_manager = __w_pdfjs_require__(6);\n\nvar _genericl10n = __w_pdfjs_require__(8);\n\nvar _pdf_find_controller = __w_pdfjs_require__(10);\n\nvar _pdf_history = __w_pdfjs_require__(12);\n\nvar _pdf_page_view = __w_pdfjs_require__(13);\n\nvar _pdf_single_page_viewer = __w_pdfjs_require__(15);\n\nvar _pdf_viewer = __w_pdfjs_require__(17);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nclass AnnotationLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n imageResourcesPath = \"\",\n renderInteractiveForms = false,\n l10n = _ui_utils.NullL10n\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderInteractiveForms = renderInteractiveForms;\n this.l10n = l10n;\n this.div = null;\n this._cancelled = false;\n }\n\n render(viewport, intent = \"display\") {\n this.pdfPage.getAnnotations({\n intent\n }).then(annotations => {\n if (this._cancelled) {\n return;\n }\n\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n annotations,\n page: this.pdfPage,\n imageResourcesPath: this.imageResourcesPath,\n renderInteractiveForms: this.renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager\n };\n\n if (this.div) {\n _pdfjsLib.AnnotationLayer.update(parameters);\n } else {\n if (annotations.length === 0) {\n return;\n }\n\n this.div = document.createElement(\"div\");\n this.div.className = \"annotationLayer\";\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n\n _pdfjsLib.AnnotationLayer.render(parameters);\n\n this.l10n.translate(this.div);\n }\n });\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n\n this.div.setAttribute(\"hidden\", \"true\");\n }\n\n}\n\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\nclass DefaultAnnotationLayerFactory {\n createAnnotationLayerBuilder(pageDiv, pdfPage, imageResourcesPath = \"\", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) {\n return new AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderInteractiveForms,\n linkService: new _pdf_link_service.SimpleLinkService(),\n l10n\n });\n }\n\n}\n\nexports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nlet pdfjsLib;\n\nif (typeof window !== \"undefined\" && window[\"pdfjs-dist/build/pdf\"]) {\n pdfjsLib = window[\"pdfjs-dist/build/pdf\"];\n} else {\n pdfjsLib = require(\"../build/pdf.js\");\n}\n\nmodule.exports = pdfjsLib;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.clamp = clamp;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;\nexports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0;\nconst CSS_UNITS = 96.0 / 72.0;\nexports.CSS_UNITS = CSS_UNITS;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\"\n};\nexports.RendererType = RendererType;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n\n async getDirection() {\n return \"ltr\";\n },\n\n async get(property, args, fallback) {\n return formatL10nValue(fallback, args);\n },\n\n async translate(element) {}\n\n};\nexports.NullL10n = NullL10n;\n\nfunction getOutputScale(ctx) {\n const devicePixelRatio = window.devicePixelRatio || 1;\n const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n const pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\n\nfunction scrollIntoView(element, spot, skipOverflowHiddenElements = false) {\n let parent = element.offsetParent;\n\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === \"hidden\") {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n const parts = query.split(\"&\");\n const params = Object.create(null);\n\n for (let i = 0, ii = parts.length; i < ii; ++i) {\n const param = parts[i].split(\"=\");\n const key = param[0].toLowerCase();\n const value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return params;\n}\n\nfunction binarySearchFirstItem(items, condition) {\n let minIndex = 0;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n const xinv = 1 / x;\n const limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n const p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n let result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements(scrollEl, views, sortByVisibility = false, horizontal = false) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementRightAfterViewLeft(view) {\n const element = view.div;\n const elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n\n const visible = [],\n numViews = views.length;\n let firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent\n });\n }\n\n const first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first,\n last,\n views: visible\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n let i = 0;\n const ii = url.length;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction getPDFFileNameFromURL(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataSchema(url)) {\n console.warn(\"getPDFFileNameFromURL: \" + 'ignoring \"data:\" URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nfunction dispatchDOMEvent(eventName, args = null) {\n throw new Error(\"Not implemented: dispatchDOMEvent\");\n}\n\nclass EventBus {\n constructor(options) {\n this._listeners = Object.create(null);\n }\n\n on(eventName, listener) {\n this._on(eventName, listener, {\n external: true\n });\n }\n\n off(eventName, listener) {\n this._off(eventName, listener, {\n external: true\n });\n }\n\n dispatch(eventName) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n\n const args = Array.prototype.slice.call(arguments, 1);\n let externalListeners;\n eventListeners.slice(0).forEach(function ({\n listener,\n external\n }) {\n if (external) {\n if (!externalListeners) {\n externalListeners = [];\n }\n\n externalListeners.push(listener);\n return;\n }\n\n listener.apply(null, args);\n });\n\n if (externalListeners) {\n externalListeners.forEach(function (listener) {\n listener.apply(null, args);\n });\n externalListeners = null;\n }\n }\n\n _on(eventName, listener, options = null) {\n let eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n this._listeners[eventName] = eventListeners = [];\n }\n\n eventListeners.push({\n listener,\n external: (options && options.external) === true\n });\n }\n\n _off(eventName, listener, options = null) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n return;\n }\n\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n\n}\n\nexports.EventBus = EventBus;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n constructor(id, {\n height,\n width,\n units\n } = {}) {\n this.visible = true;\n this.div = document.querySelector(id + \" .progress\");\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || \"%\";\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n const progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n\n get percent() {\n return this._percent;\n }\n\n set percent(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n\n this._updateBar();\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n this.bar.style.width = `calc(100% - ${scrollbarWidth}px)`;\n }\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n document.body.classList.remove(\"loadingInProgress\");\n }\n\n show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n document.body.classList.add(\"loadingInProgress\");\n this.bar.classList.remove(\"hidden\");\n }\n\n}\n\nexports.ProgressBar = ProgressBar;\n\nfunction moveToEndOfArray(arr, condition) {\n const moved = [],\n len = arr.length;\n let write = 0;\n\n for (let read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n\n for (let read = 0; write < len; ++read, ++write) {\n arr[write] = moved[read];\n }\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleLinkService = exports.PDFLinkService = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nclass PDFLinkService {\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n externalLinkEnabled = true,\n ignoreDestinationZoom = false\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = externalLinkEnabled;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n this._pagesRefCache = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n\n navigateTo(dest) {\n const goToDestination = ({\n namedDest,\n explicitDest\n }) => {\n const destRef = explicitDest[0];\n let pageNumber;\n\n if (destRef instanceof Object) {\n pageNumber = this._cachedPageNumber(destRef);\n\n if (pageNumber === null) {\n this.pdfDocument.getPageIndex(destRef).then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n goToDestination({\n namedDest,\n explicitDest\n });\n }).catch(() => {\n console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` + `a valid page reference, for dest=\"${dest}\".`);\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` + `a valid destination reference, for dest=\"${dest}\".`);\n return;\n }\n\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`PDFLinkService.navigateTo: \"${pageNumber}\" is not ` + `a valid page number, for dest=\"${dest}\".`);\n return;\n }\n\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({\n namedDest,\n explicitDest,\n pageNumber\n });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom\n });\n };\n\n new Promise((resolve, reject) => {\n if (typeof dest === \"string\") {\n this.pdfDocument.getDestination(dest).then(destArray => {\n resolve({\n namedDest: dest,\n explicitDest: destArray\n });\n });\n return;\n }\n\n resolve({\n namedDest: \"\",\n explicitDest: dest\n });\n }).then(data => {\n if (!Array.isArray(data.explicitDest)) {\n console.error(`PDFLinkService.navigateTo: \"${data.explicitDest}\" is` + ` not a valid destination array, for dest=\"${dest}\".`);\n return;\n }\n\n goToDestination(data);\n });\n }\n\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n\n if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n\n return this.getAnchorUrl(\"\");\n }\n\n getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n\n setHash(hash) {\n let pageNumber, dest;\n\n if (hash.includes(\"=\")) {\n const params = (0, _ui_utils.parseQueryString)(hash);\n\n if (\"search\" in params) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params.search.replace(/\"/g, \"\"),\n phraseSearch: params.phrase === \"true\"\n });\n }\n\n if (\"page\" in params) {\n pageNumber = params.page | 0 || 1;\n }\n\n if (\"zoom\" in params) {\n const zoomArgs = params.zoom.split(\",\");\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not ` + \"a valid zoom value.\");\n }\n }\n }\n\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n\n if (\"pagemode\" in params) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.pagemode\n });\n }\n\n if (\"nameddest\" in params) {\n this.navigateTo(params.nameddest);\n }\n } else {\n dest = unescape(hash);\n\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === \"string\" || isValidExplicitDestination(dest)) {\n this.navigateTo(dest);\n return;\n }\n\n console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not ` + \"a valid destination.\");\n }\n }\n\n executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n if (this.pdfHistory) {\n this.pdfHistory.back();\n }\n\n break;\n\n case \"GoForward\":\n if (this.pdfHistory) {\n this.pdfHistory.forward();\n }\n\n break;\n\n case \"NextPage\":\n if (this.page < this.pagesCount) {\n this.page++;\n }\n\n break;\n\n case \"PrevPage\":\n if (this.page > 1) {\n this.page--;\n }\n\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break;\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action\n });\n }\n\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this._pagesRefCache[refStr] = pageNum;\n }\n\n _cachedPageNumber(pageRef) {\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this._pagesRefCache && this._pagesRefCache[refStr] || null;\n }\n\n isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n\n}\n\nexports.PDFLinkService = PDFLinkService;\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n\n const destLength = dest.length;\n\n if (destLength < 2) {\n return false;\n }\n\n const page = dest[0];\n\n if (!(typeof page === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n\n const zoom = dest[1];\n\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n\n let allowNull = true;\n\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n\n break;\n\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n\n break;\n\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n\n allowNull = false;\n break;\n\n default:\n return false;\n }\n\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n\n return true;\n}\n\nclass SimpleLinkService {\n constructor() {\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = false;\n }\n\n get pagesCount() {\n return 0;\n }\n\n get page() {\n return 0;\n }\n\n set page(value) {}\n\n get rotation() {\n return 0;\n }\n\n set rotation(value) {}\n\n navigateTo(dest) {}\n\n getDestinationHash(dest) {\n return \"#\";\n }\n\n getAnchorUrl(hash) {\n return \"#\";\n }\n\n setHash(hash) {}\n\n executeNamedAction(action) {}\n\n cachePageRef(pageNum, pageRef) {}\n\n isPageVisible(pageNumber) {\n return true;\n }\n\n}\n\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nconst EXPAND_DIVS_TIMEOUT = 300;\n\nclass TextLayerBuilder {\n constructor({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n findController = null,\n enhanceTextSelection = false\n }) {\n this.textLayerDiv = textLayerDiv;\n this.eventBus = eventBus;\n this.textContent = null;\n this.textContentItemsStr = [];\n this.textContentStream = null;\n this.renderingDone = false;\n this.pageIdx = pageIndex;\n this.pageNumber = this.pageIdx + 1;\n this.matches = [];\n this.viewport = viewport;\n this.textDivs = [];\n this.findController = findController;\n this.textLayerRenderTask = null;\n this.enhanceTextSelection = enhanceTextSelection;\n this._onUpdateTextLayerMatches = null;\n\n this._bindMouse();\n }\n\n _finishRendering() {\n this.renderingDone = true;\n\n if (!this.enhanceTextSelection) {\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.textLayerDiv.appendChild(endOfContent);\n }\n\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.pageNumber,\n numTextDivs: this.textDivs.length\n });\n }\n\n render(timeout = 0) {\n if (!(this.textContent || this.textContentStream) || this.renderingDone) {\n return;\n }\n\n this.cancel();\n this.textDivs = [];\n const textLayerFrag = document.createDocumentFragment();\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContent: this.textContent,\n textContentStream: this.textContentStream,\n container: textLayerFrag,\n viewport: this.viewport,\n textDivs: this.textDivs,\n textContentItemsStr: this.textContentItemsStr,\n timeout,\n enhanceTextSelection: this.enhanceTextSelection\n });\n this.textLayerRenderTask.promise.then(() => {\n this.textLayerDiv.appendChild(textLayerFrag);\n\n this._finishRendering();\n\n this._updateMatches();\n }, function (reason) {});\n\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = evt => {\n if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n this._updateMatches();\n }\n };\n\n this.eventBus._on(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n }\n }\n\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n\n if (this._onUpdateTextLayerMatches) {\n this.eventBus._off(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n\n this._onUpdateTextLayerMatches = null;\n }\n }\n\n setTextContentStream(readableStream) {\n this.cancel();\n this.textContentStream = readableStream;\n }\n\n setTextContent(textContent) {\n this.cancel();\n this.textContent = textContent;\n }\n\n _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n\n const {\n findController,\n textContentItemsStr\n } = this;\n let i = 0,\n iIndex = 0;\n const end = textContentItemsStr.length - 1;\n const queryLen = findController.state.query.length;\n const result = [];\n\n for (let m = 0, mm = matches.length; m < mm; m++) {\n let matchIdx = matches[m];\n\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n if (i === textContentItemsStr.length) {\n console.error(\"Could not find a matching mapping\");\n }\n\n const match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n\n if (matchesLength) {\n matchIdx += matchesLength[m];\n } else {\n matchIdx += queryLen;\n }\n\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n\n return result;\n }\n\n _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n\n const {\n findController,\n pageIdx,\n textContentItemsStr,\n textDivs\n } = this;\n const isSelectedPage = pageIdx === findController.selected.pageIdx;\n const selectedMatchIdx = findController.selected.matchIdx;\n const highlightAll = findController.state.highlightAll;\n let prevEnd = null;\n const infinity = {\n divIdx: -1,\n offset: undefined\n };\n\n function beginText(begin, className) {\n const divIdx = begin.divIdx;\n textDivs[divIdx].textContent = \"\";\n appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n const div = textDivs[divIdx];\n const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n const node = document.createTextNode(content);\n\n if (className) {\n const span = document.createElement(\"span\");\n span.className = className;\n span.appendChild(node);\n div.appendChild(span);\n return;\n }\n\n div.appendChild(node);\n }\n\n let i0 = selectedMatchIdx,\n i1 = i0 + 1;\n\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n\n for (let i = i0; i < i1; i++) {\n const match = matches[i];\n const begin = match.begin;\n const end = match.end;\n const isSelected = isSelectedPage && i === selectedMatchIdx;\n const highlightSuffix = isSelected ? \" selected\" : \"\";\n\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n\n if (begin.divIdx === end.divIdx) {\n appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n } else {\n appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n\n for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n }\n\n beginText(end, \"highlight end\" + highlightSuffix);\n }\n\n prevEnd = end;\n }\n\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n\n _updateMatches() {\n if (!this.renderingDone) {\n return;\n }\n\n const {\n findController,\n matches,\n pageIdx,\n textContentItemsStr,\n textDivs\n } = this;\n let clearedUntilDivIdx = -1;\n\n for (let i = 0, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n\n for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n const div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = \"\";\n }\n\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n\n if (!findController || !findController.highlightMatches) {\n return;\n }\n\n const pageMatches = findController.pageMatches[pageIdx] || null;\n const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n\n this._renderMatches(this.matches);\n }\n\n _bindMouse() {\n const div = this.textLayerDiv;\n let expandDivsTimer = null;\n div.addEventListener(\"mousedown\", evt => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(true);\n\n if (expandDivsTimer) {\n clearTimeout(expandDivsTimer);\n expandDivsTimer = null;\n }\n\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n let adjustTop = evt.target !== div;\n adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue(\"-moz-user-select\") !== \"none\";\n\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n\n end.classList.add(\"active\");\n });\n div.addEventListener(\"mouseup\", () => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n expandDivsTimer = setTimeout(() => {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(false);\n }\n\n expandDivsTimer = null;\n }, EXPAND_DIVS_TIMEOUT);\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n end.style.top = \"\";\n end.classList.remove(\"active\");\n });\n }\n\n}\n\nexports.TextLayerBuilder = TextLayerBuilder;\n\nclass DefaultTextLayerFactory {\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {\n return new TextLayerBuilder({\n textLayerDiv,\n pageIndex,\n viewport,\n enhanceTextSelection,\n eventBus\n });\n }\n\n}\n\nexports.DefaultTextLayerFactory = DefaultTextLayerFactory;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DownloadManager = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _viewer_compatibility = __w_pdfjs_require__(7);\n\n;\nconst DISABLE_CREATE_OBJECT_URL = _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL || false;\n\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n\n a.href = blobUrl;\n a.target = \"_parent\";\n\n if (\"download\" in a) {\n a.download = filename;\n }\n\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.remove();\n}\n\nclass DownloadManager {\n constructor({\n disableCreateObjectURL = DISABLE_CREATE_OBJECT_URL\n }) {\n this.disableCreateObjectURL = disableCreateObjectURL;\n }\n\n downloadUrl(url, filename) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, \"http://example.com\")) {\n return;\n }\n\n download(url + \"#pdfjs.action=download\", filename);\n }\n\n downloadData(data, filename, contentType) {\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(new Blob([data], {\n type: contentType\n }), filename);\n return;\n }\n\n const blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL);\n download(blobUrl, filename);\n }\n\n download(blob, url, filename) {\n if (navigator.msSaveBlob) {\n if (!navigator.msSaveBlob(blob, filename)) {\n this.downloadUrl(url, filename);\n }\n\n return;\n }\n\n if (this.disableCreateObjectURL) {\n this.downloadUrl(url, filename);\n return;\n }\n\n const blobUrl = URL.createObjectURL(blob);\n download(blobUrl, filename);\n }\n\n}\n\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.viewerCompatibilityParams = void 0;\nconst compatibilityParams = Object.create(null);\n{\n const userAgent = typeof navigator !== \"undefined\" && navigator.userAgent || \"\";\n const platform = typeof navigator !== \"undefined\" && navigator.platform || \"\";\n const maxTouchPoints = typeof navigator !== \"undefined\" && navigator.maxTouchPoints || 1;\n const isAndroid = /Android/.test(userAgent);\n const isIE = /Trident/.test(userAgent);\n const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n const isIOSChrome = /CriOS/.test(userAgent);\n\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nconst viewerCompatibilityParams = Object.freeze(compatibilityParams);\nexports.viewerCompatibilityParams = viewerCompatibilityParams;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GenericL10n = void 0;\n\n__w_pdfjs_require__(9);\n\nconst webL10n = document.webL10n;\n\nclass GenericL10n {\n constructor(lang) {\n this._lang = lang;\n this._ready = new Promise((resolve, reject) => {\n webL10n.setLanguage(lang, () => {\n resolve(webL10n);\n });\n });\n }\n\n async getLanguage() {\n const l10n = await this._ready;\n return l10n.getLanguage();\n }\n\n async getDirection() {\n const l10n = await this._ready;\n return l10n.getDirection();\n }\n\n async get(property, args, fallback) {\n const l10n = await this._ready;\n return l10n.get(property, args, fallback);\n }\n\n async translate(element) {\n const l10n = await this._ready;\n return l10n.translate(element);\n }\n\n}\n\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\ndocument.webL10n = function (window, document, undefined) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n\n return {\n id: l10nId,\n args: args\n };\n }\n\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n\n onFailure = onFailure || function _onFailure() {};\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n\n var line = entries.shift();\n if (reComment.test(line)) continue;\n\n if (extendedSyntax) {\n match = reSection.exec(line);\n\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n\n match = reImport.exec(line);\n\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n\n var tmp = line.match(reSplit);\n\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n\n nextEntry();\n }\n\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n\n gL10nData[id][prop] = data[key];\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n\n callback = callback || function _callback() {};\n\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n\n if (langCount === 0) {\n var dict = getL10nDictionary();\n\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n\n gReadyState = 'complete';\n return;\n }\n\n var onResourceLoaded = null;\n var gResourceCount = 0;\n\n onResourceLoaded = function () {\n gResourceCount++;\n\n if (gResourceCount >= langCount) {\n callback();\n gReadyState = 'complete';\n }\n };\n\n function L10nResourceLink(link) {\n var href = link.href;\n\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n\n var pluralRules = {\n '0': function (n) {\n return 'other';\n },\n '1': function (n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function (n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function (n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function (n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function (n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function (n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function (n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function (n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function (n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function (n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function (n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function (n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function (n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function (n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function (n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function (n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function (n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function (n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function (n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function (n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function (n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function (n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n\n return pluralRules[index];\n }\n\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n\n var index = '[' + gMacros._pluralRules(n) + ']';\n\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n\n return str;\n };\n\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n\n if (!fallback) {\n return null;\n }\n\n data = fallback;\n }\n\n var rv = {};\n\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n\n return rv;\n }\n\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n\n return str;\n }\n\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.insertBefore(textNode, element.firstChild);\n }\n }\n\n delete data[gTextProp];\n }\n\n for (var k in data) {\n element[k] = data[k];\n }\n }\n\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n\n var count = 0;\n\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n\n return count;\n }\n\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n\n translateElement(element);\n }\n\n return {\n get: function (key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n\n var fallback;\n\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n\n var data = getL10nData(key, args, fallback);\n\n if (data && prop in data) {\n return data[prop];\n }\n\n return '{{' + key + '}}';\n },\n getData: function () {\n return gL10nData;\n },\n getText: function () {\n return gTextData;\n },\n getLanguage: function () {\n return gLanguage;\n },\n setLanguage: function (lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function () {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function () {\n return gReadyState;\n },\n ready: function (callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFindController = exports.FindState = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_find_utils = __w_pdfjs_require__(11);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -50;\nconst MATCH_SCROLL_OFFSET_LEFT = -400;\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2018\": \"'\",\n \"\\u2019\": \"'\",\n \"\\u201A\": \"'\",\n \"\\u201B\": \"'\",\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\u00BC\": \"1/4\",\n \"\\u00BD\": \"1/2\",\n \"\\u00BE\": \"3/4\"\n};\nlet normalizationRegex = null;\n\nfunction normalize(text) {\n if (!normalizationRegex) {\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n normalizationRegex = new RegExp(`[${replace}]`, \"g\");\n }\n\n return text.replace(normalizationRegex, function (ch) {\n return CHARACTERS_TO_NORMALIZE[ch];\n });\n}\n\nclass PDFFindController {\n constructor({\n linkService,\n eventBus\n }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n\n this._reset();\n\n eventBus._on(\"findbarclose\", this._onFindBarClose.bind(this));\n }\n\n get highlightMatches() {\n return this._highlightMatches;\n }\n\n get pageMatches() {\n return this._pageMatches;\n }\n\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n\n get selected() {\n return this._selected;\n }\n\n get state() {\n return this._state;\n }\n\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this._reset();\n }\n\n if (!pdfDocument) {\n return;\n }\n\n this._pdfDocument = pdfDocument;\n\n this._firstPageCapability.resolve();\n }\n\n executeCommand(cmd, state) {\n if (!state) {\n return;\n }\n\n const pdfDocument = this._pdfDocument;\n\n if (this._state === null || this._shouldDirtyMatch(cmd, state)) {\n this._dirtyMatch = true;\n }\n\n this._state = state;\n\n if (cmd !== \"findhighlightallchange\") {\n this._updateUIState(FindState.PENDING);\n }\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n this._extractText();\n\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (cmd === \"find\") {\n this._findTimeout = setTimeout(() => {\n this._nextMatch();\n\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n this._nextMatch();\n } else if (cmd === \"findagain\") {\n this._nextMatch();\n\n if (findbarClosed && this._state.highlightAll) {\n this._updateAllPages();\n }\n } else if (cmd === \"findhighlightallchange\") {\n if (pendingTimeout) {\n this._nextMatch();\n } else {\n this._highlightMatches = true;\n }\n\n this._updateAllPages();\n } else {\n this._nextMatch();\n }\n });\n }\n\n scrollMatchIntoView({\n element = null,\n pageIndex = -1,\n matchIndex = -1\n }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n\n this._scrollMatches = false;\n const spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n\n _reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this._state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = Object.create(null);\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n }\n\n get _query() {\n if (this._state.query !== this._rawQuery) {\n this._rawQuery = this._state.query;\n this._normalizedQuery = normalize(this._state.query);\n }\n\n return this._normalizedQuery;\n }\n\n _shouldDirtyMatch(cmd, state) {\n if (state.query !== this._state.query) {\n return true;\n }\n\n switch (cmd) {\n case \"findagain\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n\n if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) {\n return true;\n }\n\n return false;\n\n case \"findhighlightallchange\":\n return false;\n }\n\n return true;\n }\n\n _prepareMatches(matchesWithLength, matches, matchesLength) {\n function isSubTerm(currentIndex) {\n const currentElem = matchesWithLength[currentIndex];\n const nextElem = matchesWithLength[currentIndex + 1];\n\n if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) {\n currentElem.skipped = true;\n return true;\n }\n\n for (let i = currentIndex - 1; i >= 0; i--) {\n const prevElem = matchesWithLength[i];\n\n if (prevElem.skipped) {\n continue;\n }\n\n if (prevElem.match + prevElem.matchLength < currentElem.match) {\n break;\n }\n\n if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) {\n currentElem.skipped = true;\n return true;\n }\n }\n\n return false;\n }\n\n matchesWithLength.sort(function (a, b) {\n return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match;\n });\n\n for (let i = 0, len = matchesWithLength.length; i < len; i++) {\n if (isSubTerm(i)) {\n continue;\n }\n\n matches.push(matchesWithLength[i].match);\n matchesLength.push(matchesWithLength[i].matchLength);\n }\n }\n\n _isEntireWord(content, startIdx, length) {\n if (startIdx > 0) {\n const first = content.charCodeAt(startIdx);\n const limit = content.charCodeAt(startIdx - 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n const endIdx = startIdx + length - 1;\n\n if (endIdx < content.length - 1) {\n const last = content.charCodeAt(endIdx);\n const limit = content.charCodeAt(endIdx + 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n return true;\n }\n\n _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) {\n const matches = [];\n const queryLen = query.length;\n let matchIdx = -queryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(query, matchIdx + queryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) {\n continue;\n }\n\n matches.push(matchIdx);\n }\n\n this._pageMatches[pageIndex] = matches;\n }\n\n _calculateWordMatch(query, pageIndex, pageContent, entireWord) {\n const matchesWithLength = [];\n const queryArray = query.match(/\\S+/g);\n\n for (let i = 0, len = queryArray.length; i < len; i++) {\n const subquery = queryArray[i];\n const subqueryLen = subquery.length;\n let matchIdx = -subqueryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) {\n continue;\n }\n\n matchesWithLength.push({\n match: matchIdx,\n matchLength: subqueryLen,\n skipped: false\n });\n }\n }\n\n this._pageMatchesLength[pageIndex] = [];\n this._pageMatches[pageIndex] = [];\n\n this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]);\n }\n\n _calculateMatch(pageIndex) {\n let pageContent = this._pageContents[pageIndex];\n let query = this._query;\n const {\n caseSensitive,\n entireWord,\n phraseSearch\n } = this._state;\n\n if (query.length === 0) {\n return;\n }\n\n if (!caseSensitive) {\n pageContent = pageContent.toLowerCase();\n query = query.toLowerCase();\n }\n\n if (phraseSearch) {\n this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord);\n } else {\n this._calculateWordMatch(query, pageIndex, pageContent, entireWord);\n }\n\n if (this._state.highlightAll) {\n this._updatePage(pageIndex);\n }\n\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n\n this._nextPageMatch();\n }\n\n const pageMatchesCount = this._pageMatches[pageIndex].length;\n\n if (pageMatchesCount > 0) {\n this._matchesCountTotal += pageMatchesCount;\n\n this._updateUIResultsCount();\n }\n }\n\n _extractText() {\n if (this._extractTextPromises.length > 0) {\n return;\n }\n\n let promise = Promise.resolve();\n\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(() => {\n return this._pdfDocument.getPage(i + 1).then(pdfPage => {\n return pdfPage.getTextContent({\n normalizeWhitespace: true\n });\n }).then(textContent => {\n const textItems = textContent.items;\n const strBuf = [];\n\n for (let j = 0, jj = textItems.length; j < jj; j++) {\n strBuf.push(textItems[j].str);\n }\n\n this._pageContents[i] = normalize(strBuf.join(\"\"));\n extractTextCapability.resolve(i);\n }, reason => {\n console.error(`Unable to get text content for page ${i + 1}`, reason);\n this._pageContents[i] = \"\";\n extractTextCapability.resolve(i);\n });\n });\n }\n }\n\n _updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index\n });\n }\n\n _updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1\n });\n }\n\n _nextMatch() {\n const previous = this._state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this._matchesCountTotal = 0;\n\n this._updateAllPages();\n\n for (let i = 0; i < numPages; i++) {\n if (this._pendingFindMatches[i] === true) {\n continue;\n }\n\n this._pendingFindMatches[i] = true;\n\n this._extractTextPromises[i].then(pageIdx => {\n delete this._pendingFindMatches[pageIdx];\n\n this._calculateMatch(pageIdx);\n });\n }\n }\n\n if (this._query === \"\") {\n this._updateUIState(FindState.FOUND);\n\n return;\n }\n\n if (this._resumePageIdx) {\n return;\n }\n\n const offset = this._offset;\n this._pagesToSearch = numPages;\n\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n\n this._updateMatch(true);\n\n return;\n }\n\n this._advanceOffsetPage(previous);\n }\n\n this._nextPageMatch();\n }\n\n _matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this._state.findPrevious;\n\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n\n this._updateMatch(true);\n\n return true;\n }\n\n this._advanceOffsetPage(previous);\n\n if (offset.wrapped) {\n offset.matchIdx = null;\n\n if (this._pagesToSearch < 0) {\n this._updateMatch(false);\n\n return true;\n }\n }\n\n return false;\n }\n\n _nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n\n let matches = null;\n\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this._matchesReady(matches));\n }\n\n _advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n\n _updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this._updatePage(previousPage);\n }\n }\n\n this._updateUIState(state, this._state.findPrevious);\n\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n\n this._updatePage(this._selected.pageIdx);\n }\n }\n\n _onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n\n this._updateUIState(FindState.FOUND);\n\n this._highlightMatches = false;\n\n this._updateAllPages();\n });\n }\n\n _requestMatchesCount() {\n const {\n pageIdx,\n matchIdx\n } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i] && this._pageMatches[i].length || 0;\n }\n\n current += matchIdx + 1;\n }\n\n if (current < 1 || current > total) {\n current = total = 0;\n }\n\n return {\n current,\n total\n };\n }\n\n _updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this._requestMatchesCount()\n });\n }\n\n _updateUIState(state, previous) {\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n matchesCount: this._requestMatchesCount()\n });\n }\n\n}\n\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCharacterType = getCharacterType;\nexports.CharacterType = void 0;\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\n\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\n\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\n\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\n\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\n\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\n\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\n\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\n\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\n\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\n\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\n\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n return CharacterType.ALPHA_LETTER;\n }\n\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xa0) {\n return CharacterType.SPACE;\n }\n\n return CharacterType.ALPHA_LETTER;\n }\n\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n\n return CharacterType.ALPHA_LETTER;\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isDestHashesEqual = isDestHashesEqual;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.PDFHistory = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\n\nfunction getCurrentHash() {\n return document.location.hash;\n}\n\nclass PDFHistory {\n constructor({\n linkService,\n eventBus\n }) {\n this.linkService = linkService;\n this.eventBus = eventBus;\n this._initialized = false;\n this._fingerprint = \"\";\n this.reset();\n this._boundEvents = null;\n this._isViewerInPresentationMode = false;\n\n this.eventBus._on(\"presentationmodechanged\", evt => {\n this._isViewerInPresentationMode = evt.active || evt.switchInProgress;\n });\n\n this.eventBus._on(\"pagesinit\", () => {\n this._isPagesLoaded = false;\n\n const onPagesLoaded = evt => {\n this.eventBus._off(\"pagesloaded\", onPagesLoaded);\n\n this._isPagesLoaded = !!evt.pagesCount;\n };\n\n this.eventBus._on(\"pagesloaded\", onPagesLoaded);\n });\n }\n\n initialize({\n fingerprint,\n resetHistory = false,\n updateUrl = false\n }) {\n if (!fingerprint || typeof fingerprint !== \"string\") {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n\n if (this._initialized) {\n this.reset();\n }\n\n const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n this._fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n this._initialized = true;\n\n this._bindEvents();\n\n const state = window.history.state;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n\n if (!this._isValidState(state, true) || resetHistory) {\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash(true);\n\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n\n return;\n }\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if (destination.rotation !== undefined) {\n this._initialRotation = destination.rotation;\n }\n\n if (destination.dest) {\n this._initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this._initialBookmark = destination.hash;\n } else if (destination.page) {\n this._initialBookmark = `page=${destination.page}`;\n }\n }\n\n reset() {\n if (this._initialized) {\n this._pageHide();\n\n this._initialized = false;\n\n this._unbindEvents();\n }\n\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._initialBookmark = null;\n this._initialRotation = null;\n }\n\n push({\n namedDest = null,\n explicitDest,\n pageNumber\n }) {\n if (!this._initialized) {\n return;\n }\n\n if (namedDest && typeof namedDest !== \"string\") {\n console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n return;\n } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) {\n if (pageNumber !== null || this._destination) {\n console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n }\n\n const hash = namedDest || JSON.stringify(explicitDest);\n\n if (!hash) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n\n forceReplace = true;\n }\n\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n\n this._pushOrReplaceState({\n dest: explicitDest,\n hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n\n pushCurrentPosition() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n this._tryPushCurrentPosition();\n }\n\n back() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n\n forward() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n\n get popStateInProgress() {\n return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n\n get initialBookmark() {\n return this._initialized ? this._initialBookmark : null;\n }\n\n get initialRotation() {\n return this._initialized ? this._initialRotation : null;\n }\n\n _pushOrReplaceState(destination, forceReplace = false) {\n const shouldReplace = forceReplace || !this._destination;\n const newState = {\n fingerprint: this._fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination\n };\n\n this._updateInternalState(destination, newState.uid);\n\n let newUrl;\n\n if (this._updateUrl && destination && destination.hash) {\n const baseUrl = document.location.href.split(\"#\")[0];\n\n if (!baseUrl.startsWith(\"file://\")) {\n newUrl = `${baseUrl}#${destination.hash}`;\n }\n }\n\n if (shouldReplace) {\n window.history.replaceState(newState, \"\", newUrl);\n } else {\n this._maxUid = this._uid;\n window.history.pushState(newState, \"\", newUrl);\n }\n }\n\n _tryPushCurrentPosition(temporary = false) {\n if (!this._position) {\n return;\n }\n\n let position = this._position;\n\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n\n if (!this._destination) {\n this._pushOrReplaceState(position);\n\n return;\n }\n\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n\n return;\n }\n\n if (this._destination.hash === position.hash) {\n return;\n }\n\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest || !this._destination.first) {\n return;\n }\n\n forceReplace = true;\n }\n\n this._pushOrReplaceState(position, forceReplace);\n }\n\n _isValidState(state, checkReload = false) {\n if (!state) {\n return false;\n }\n\n if (state.fingerprint !== this._fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n return false;\n }\n\n const [perfEntry] = performance.getEntriesByType(\"navigation\");\n\n if (!perfEntry || perfEntry.type !== \"reload\") {\n return false;\n }\n } else {\n return false;\n }\n }\n\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n\n if (state.destination === null || typeof state.destination !== \"object\") {\n return false;\n }\n\n return true;\n }\n\n _updateInternalState(destination, uid, removeTemporary = false) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n if (removeTemporary && destination && destination.temporary) {\n delete destination.temporary;\n }\n\n this._destination = destination;\n this._uid = uid;\n this._numPositionUpdates = 0;\n }\n\n _parseCurrentHash(checkNameddest = false) {\n const hash = unescape(getCurrentHash()).substring(1);\n const params = (0, _ui_utils.parseQueryString)(hash);\n const nameddest = params.nameddest || \"\";\n let page = params.page | 0;\n\n if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount) || checkNameddest && nameddest.length > 0) {\n page = null;\n }\n\n return {\n hash,\n page,\n rotation: this.linkService.rotation\n };\n }\n\n _updateViewarea({\n location\n }) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._position = {\n hash: this._isViewerInPresentationMode ? `page=${location.pageNumber}` : location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n\n if (this._popStateInProgress) {\n return;\n }\n\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(() => {\n if (!this._popStateInProgress) {\n this._tryPushCurrentPosition(true);\n }\n\n this._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n\n _popState({\n state\n }) {\n const newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n\n if (!state) {\n this._uid++;\n\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash();\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n if (!this._isValidState(state)) {\n return;\n }\n\n this._popStateInProgress = true;\n\n if (hashChanged) {\n this._blockHashChange++;\n (0, _ui_utils.waitOnEventOrTimeout)({\n target: window,\n name: \"hashchange\",\n delay: HASH_CHANGE_TIMEOUT\n }).then(() => {\n this._blockHashChange--;\n });\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n\n if (destination.dest) {\n this.linkService.navigateTo(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n\n _pageHide() {\n if (!this._destination || this._destination.temporary) {\n this._tryPushCurrentPosition();\n }\n }\n\n _bindEvents() {\n if (this._boundEvents) {\n return;\n }\n\n this._boundEvents = {\n updateViewarea: this._updateViewarea.bind(this),\n popState: this._popState.bind(this),\n pageHide: this._pageHide.bind(this)\n };\n\n this.eventBus._on(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.addEventListener(\"popstate\", this._boundEvents.popState);\n window.addEventListener(\"pagehide\", this._boundEvents.pageHide);\n }\n\n _unbindEvents() {\n if (!this._boundEvents) {\n return;\n }\n\n this.eventBus._off(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.removeEventListener(\"popstate\", this._boundEvents.popState);\n window.removeEventListener(\"pagehide\", this._boundEvents.pageHide);\n this._boundEvents = null;\n }\n\n}\n\nexports.PDFHistory = PDFHistory;\n\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n return false;\n }\n\n if (destHash === pushHash) {\n return true;\n }\n\n const {\n nameddest\n } = (0, _ui_utils.parseQueryString)(destHash);\n\n if (nameddest === pushHash) {\n return true;\n }\n\n return false;\n}\n\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (typeof first !== typeof second) {\n return false;\n }\n\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n\n if (first !== null && typeof first === \"object\" && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (const key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n\n for (let i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFPageView = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _viewer_compatibility = __w_pdfjs_require__(7);\n\nconst MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;\n\nclass PDFPageView {\n constructor(options) {\n const container = options.container;\n const defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = \"page\" + this.id;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this.hasRestrictedScaling = false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = options.renderInteractiveForms || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;\n this.eventBus = options.eventBus;\n this.renderingQueue = options.renderingQueue;\n this.textLayerFactory = options.textLayerFactory;\n this.annotationLayerFactory = options.annotationLayerFactory;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.paintTask = null;\n this.paintedViewportMap = new WeakMap();\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n this.resume = null;\n this.error = null;\n this.annotationLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n const div = document.createElement(\"div\");\n div.className = \"page\";\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n div.setAttribute(\"data-page-number\", this.id);\n this.div = div;\n container.appendChild(div);\n }\n\n setPdfPage(pdfPage) {\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n this.stats = pdfPage.stats;\n this.reset();\n }\n\n destroy() {\n this.reset();\n\n if (this.pdfPage) {\n this.pdfPage.cleanup();\n }\n }\n\n _resetZoomLayer(removeFromDOM = false) {\n if (!this.zoomLayer) {\n return;\n }\n\n const zoomLayerCanvas = this.zoomLayer.firstChild;\n this.paintedViewportMap.delete(zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n\n this.zoomLayer = null;\n }\n\n reset(keepZoomLayer = false, keepAnnotations = false) {\n this.cancelRendering(keepAnnotations);\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n const div = this.div;\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n const childNodes = div.childNodes;\n const currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null;\n const currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null;\n\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const node = childNodes[i];\n\n if (currentZoomLayerNode === node || currentAnnotationNode === node) {\n continue;\n }\n\n div.removeChild(node);\n }\n\n div.removeAttribute(\"data-loaded\");\n\n if (currentAnnotationNode) {\n this.annotationLayer.hide();\n } else if (this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n\n if (!currentZoomLayerNode) {\n if (this.canvas) {\n this.paintedViewportMap.delete(this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n\n this._resetZoomLayer();\n }\n\n if (this.svg) {\n this.paintedViewportMap.delete(this.svg);\n delete this.svg;\n }\n\n this.loadingIconDiv = document.createElement(\"div\");\n this.loadingIconDiv.className = \"loadingIcon\";\n div.appendChild(this.loadingIconDiv);\n }\n\n update(scale, rotation) {\n this.scale = scale || this.scale;\n\n if (typeof rotation !== \"undefined\") {\n this.rotation = rotation;\n }\n\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n\n if (this.svg) {\n this.cssTransform(this.svg, true);\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now()\n });\n return;\n }\n\n let isScalingRestricted = false;\n\n if (this.canvas && this.maxCanvasPixels > 0) {\n const outputScale = this.outputScale;\n\n if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {\n isScalingRestricted = true;\n }\n }\n\n if (this.canvas) {\n if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {\n this.cssTransform(this.canvas, true);\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now()\n });\n return;\n }\n\n if (!this.zoomLayer && !this.canvas.hasAttribute(\"hidden\")) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = \"absolute\";\n }\n }\n\n if (this.zoomLayer) {\n this.cssTransform(this.zoomLayer.firstChild);\n }\n\n this.reset(true, true);\n }\n\n cancelRendering(keepAnnotations = false) {\n if (this.paintTask) {\n this.paintTask.cancel();\n this.paintTask = null;\n }\n\n this.resume = null;\n\n if (this.textLayer) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n\n if (!keepAnnotations && this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n }\n\n cssTransform(target, redrawAnnotations = false) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const div = this.div;\n target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + \"px\";\n target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + \"px\";\n const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;\n const absRotation = Math.abs(relativeRotation);\n let scaleX = 1,\n scaleY = 1;\n\n if (absRotation === 90 || absRotation === 270) {\n scaleX = height / width;\n scaleY = width / height;\n }\n\n const cssTransform = \"rotate(\" + relativeRotation + \"deg) \" + \"scale(\" + scaleX + \",\" + scaleY + \")\";\n target.style.transform = cssTransform;\n\n if (this.textLayer) {\n const textLayerViewport = this.textLayer.viewport;\n const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;\n const textAbsRotation = Math.abs(textRelativeRotation);\n let scale = width / textLayerViewport.width;\n\n if (textAbsRotation === 90 || textAbsRotation === 270) {\n scale = width / textLayerViewport.height;\n }\n\n const textLayerDiv = this.textLayer.textLayerDiv;\n let transX, transY;\n\n switch (textAbsRotation) {\n case 0:\n transX = transY = 0;\n break;\n\n case 90:\n transX = 0;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 180:\n transX = \"-\" + textLayerDiv.style.width;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 270:\n transX = \"-\" + textLayerDiv.style.width;\n transY = 0;\n break;\n\n default:\n console.error(\"Bad rotation value.\");\n break;\n }\n\n textLayerDiv.style.transform = \"rotate(\" + textAbsRotation + \"deg) \" + \"scale(\" + scale + \", \" + scale + \") \" + \"translate(\" + transX + \", \" + transY + \")\";\n textLayerDiv.style.transformOrigin = \"0% 0%\";\n }\n\n if (redrawAnnotations && this.annotationLayer) {\n this.annotationLayer.render(this.viewport, \"display\");\n }\n }\n\n get width() {\n return this.viewport.width;\n }\n\n get height() {\n return this.viewport.height;\n }\n\n getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n\n draw() {\n if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {\n console.error(\"Must be in new state before drawing\");\n this.reset();\n }\n\n const {\n div,\n pdfPage\n } = this;\n\n if (!pdfPage) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n div.removeChild(this.loadingIconDiv);\n delete this.loadingIconDiv;\n }\n\n return Promise.reject(new Error(\"pdfPage is not loaded\"));\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n const canvasWrapper = document.createElement(\"div\");\n canvasWrapper.style.width = div.style.width;\n canvasWrapper.style.height = div.style.height;\n canvasWrapper.classList.add(\"canvasWrapper\");\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(canvasWrapper, this.annotationLayer.div);\n } else {\n div.appendChild(canvasWrapper);\n }\n\n let textLayer = null;\n\n if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {\n const textLayerDiv = document.createElement(\"div\");\n textLayerDiv.className = \"textLayer\";\n textLayerDiv.style.width = canvasWrapper.style.width;\n textLayerDiv.style.height = canvasWrapper.style.height;\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(textLayerDiv, this.annotationLayer.div);\n } else {\n div.appendChild(textLayerDiv);\n }\n\n textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus);\n }\n\n this.textLayer = textLayer;\n let renderContinueCallback = null;\n\n if (this.renderingQueue) {\n renderContinueCallback = cont => {\n if (!this.renderingQueue.isHighestPriority(this)) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;\n\n this.resume = () => {\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n cont();\n };\n\n return;\n }\n\n cont();\n };\n }\n\n const finishPaintTask = async error => {\n if (paintTask === this.paintTask) {\n this.paintTask = null;\n }\n\n if (error instanceof _pdfjsLib.RenderingCancelledException) {\n this.error = null;\n return;\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n div.removeChild(this.loadingIconDiv);\n delete this.loadingIconDiv;\n }\n\n this._resetZoomLayer(true);\n\n this.error = error;\n this.stats = pdfPage.stats;\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: false,\n timestamp: performance.now()\n });\n\n if (error) {\n throw error;\n }\n };\n\n const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);\n paintTask.onRenderContinue = renderContinueCallback;\n this.paintTask = paintTask;\n const resultPromise = paintTask.promise.then(function () {\n return finishPaintTask(null).then(function () {\n if (textLayer) {\n const readableStream = pdfPage.streamTextContent({\n normalizeWhitespace: true\n });\n textLayer.setTextContentStream(readableStream);\n textLayer.render();\n }\n });\n }, function (reason) {\n return finishPaintTask(reason);\n });\n\n if (this.annotationLayerFactory) {\n if (!this.annotationLayer) {\n this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n);\n }\n\n this.annotationLayer.render(this.viewport, \"display\");\n }\n\n div.setAttribute(\"data-loaded\", true);\n this.eventBus.dispatch(\"pagerender\", {\n source: this,\n pageNumber: this.id\n });\n return resultPromise;\n }\n\n paintOnCanvas(canvasWrapper) {\n const renderCapability = (0, _pdfjsLib.createPromiseCapability)();\n const result = {\n promise: renderCapability.promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n renderTask.cancel();\n }\n\n };\n const viewport = this.viewport;\n const canvas = document.createElement(\"canvas\");\n this.l10n.get(\"page_canvas\", {\n page: this.id\n }, \"Page {{page}}\").then(msg => {\n canvas.setAttribute(\"aria-label\", msg);\n });\n canvas.setAttribute(\"hidden\", \"hidden\");\n let isCanvasHidden = true;\n\n const showCanvas = function () {\n if (isCanvasHidden) {\n canvas.removeAttribute(\"hidden\");\n isCanvasHidden = false;\n }\n };\n\n canvasWrapper.appendChild(canvas);\n this.canvas = canvas;\n canvas.mozOpaque = true;\n const ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const outputScale = (0, _ui_utils.getOutputScale)(ctx);\n this.outputScale = outputScale;\n\n if (this.useOnlyCssZoom) {\n const actualSizeViewport = viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n outputScale.sx *= actualSizeViewport.width / viewport.width;\n outputScale.sy *= actualSizeViewport.height / viewport.height;\n outputScale.scaled = true;\n }\n\n if (this.maxCanvasPixels > 0) {\n const pixelsInViewport = viewport.width * viewport.height;\n const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n outputScale.scaled = true;\n this.hasRestrictedScaling = true;\n } else {\n this.hasRestrictedScaling = false;\n }\n }\n\n const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);\n canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + \"px\";\n canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + \"px\";\n this.paintedViewportMap.set(canvas, viewport);\n const transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0];\n const renderContext = {\n canvasContext: ctx,\n transform,\n viewport: this.viewport,\n enableWebGL: this.enableWebGL,\n renderInteractiveForms: this.renderInteractiveForms\n };\n const renderTask = this.pdfPage.render(renderContext);\n\n renderTask.onContinue = function (cont) {\n showCanvas();\n\n if (result.onRenderContinue) {\n result.onRenderContinue(cont);\n } else {\n cont();\n }\n };\n\n renderTask.promise.then(function () {\n showCanvas();\n renderCapability.resolve(undefined);\n }, function (error) {\n showCanvas();\n renderCapability.reject(error);\n });\n return result;\n }\n\n paintOnSvg(wrapper) {\n let cancelled = false;\n\n const ensureNotCancelled = () => {\n if (cancelled) {\n throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, \"svg\");\n }\n };\n\n const pdfPage = this.pdfPage;\n const actualSizeViewport = this.viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n const promise = pdfPage.getOperatorList().then(opList => {\n ensureNotCancelled();\n const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs);\n return svgGfx.getSVG(opList, actualSizeViewport).then(svg => {\n ensureNotCancelled();\n this.svg = svg;\n this.paintedViewportMap.set(svg, actualSizeViewport);\n svg.style.width = wrapper.style.width;\n svg.style.height = wrapper.style.height;\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n wrapper.appendChild(svg);\n });\n });\n return {\n promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n cancelled = true;\n }\n\n };\n }\n\n setPageLabel(label) {\n this.pageLabel = typeof label === \"string\" ? label : null;\n\n if (this.pageLabel !== null) {\n this.div.setAttribute(\"data-page-label\", this.pageLabel);\n } else {\n this.div.removeAttribute(\"data-page-label\");\n }\n }\n\n}\n\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFRenderingQueue = exports.RenderingStates = void 0;\nconst CLEANUP_TIMEOUT = 30000;\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\n\nclass PDFRenderingQueue {\n constructor() {\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n\n isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n\n renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n\n if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {\n if (this.pdfThumbnailViewer.forceRendering()) {\n return;\n }\n }\n\n if (this.printing) {\n return;\n }\n\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n\n getHighestPriority(visible, views, scrolledDown) {\n const visibleViews = visible.views;\n const numVisible = visibleViews.length;\n\n if (numVisible === 0) {\n return null;\n }\n\n for (let i = 0; i < numVisible; ++i) {\n const view = visibleViews[i].view;\n\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n\n if (scrolledDown) {\n const nextPageIndex = visible.last.id;\n\n if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {\n return views[nextPageIndex];\n }\n } else {\n const previousPageIndex = visible.first.id - 2;\n\n if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {\n return views[previousPageIndex];\n }\n }\n\n return null;\n }\n\n isViewFinished(view) {\n return view.renderingState === RenderingStates.FINISHED;\n }\n\n renderView(view) {\n switch (view.renderingState) {\n case RenderingStates.FINISHED:\n return false;\n\n case RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n\n case RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n\n case RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw().finally(() => {\n this.renderHighestPriority();\n }).catch(reason => {\n console.error(`renderView: \"${reason}\"`);\n });\n break;\n }\n\n return true;\n }\n\n}\n\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFSinglePageViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(16);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nclass PDFSinglePageViewer extends _base_viewer.BaseViewer {\n constructor(options) {\n super(options);\n\n this.eventBus._on(\"pagesinit\", evt => {\n this._ensurePageViewVisible();\n });\n }\n\n get _viewerElement() {\n return (0, _pdfjsLib.shadow)(this, \"_viewerElement\", this._shadowViewer);\n }\n\n _resetView() {\n super._resetView();\n\n this._previousPageNumber = 1;\n this._shadowViewer = document.createDocumentFragment();\n this._updateScrollDown = null;\n }\n\n _ensurePageViewVisible() {\n const pageView = this._pages[this._currentPageNumber - 1];\n const previousPageView = this._pages[this._previousPageNumber - 1];\n const viewerNodes = this.viewer.childNodes;\n\n switch (viewerNodes.length) {\n case 0:\n this.viewer.appendChild(pageView.div);\n break;\n\n case 1:\n if (viewerNodes[0] !== previousPageView.div) {\n throw new Error(\"_ensurePageViewVisible: Unexpected previously visible page.\");\n }\n\n if (pageView === previousPageView) {\n break;\n }\n\n this._shadowViewer.appendChild(previousPageView.div);\n\n this.viewer.appendChild(pageView.div);\n this.container.scrollTop = 0;\n break;\n\n default:\n throw new Error(\"_ensurePageViewVisible: Only one page should be visible at a time.\");\n }\n\n this._previousPageNumber = this._currentPageNumber;\n }\n\n _scrollUpdate() {\n if (this._updateScrollDown) {\n this._updateScrollDown();\n }\n\n super._scrollUpdate();\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n if (pageNumber) {\n this._setCurrentPageNumber(pageNumber);\n }\n\n const scrolledDown = this._currentPageNumber >= this._previousPageNumber;\n\n this._ensurePageViewVisible();\n\n this.update();\n\n super._scrollIntoView({\n pageDiv,\n pageSpot,\n pageNumber\n });\n\n this._updateScrollDown = () => {\n this.scroll.down = scrolledDown;\n this._updateScrollDown = null;\n };\n }\n\n _getVisiblePages() {\n return this._getCurrentVisiblePage();\n }\n\n _updateHelper(visiblePages) {}\n\n get _isScrollModeHorizontal() {\n return (0, _pdfjsLib.shadow)(this, \"_isScrollModeHorizontal\", false);\n }\n\n _updateScrollMode() {}\n\n _updateSpreadMode() {}\n\n}\n\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BaseViewer = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_page_view = __w_pdfjs_require__(13);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nvar _text_layer_builder = __w_pdfjs_require__(5);\n\nconst DEFAULT_CACHE_SIZE = 10;\n\nfunction PDFPageViewBuffer(size) {\n const data = [];\n\n this.push = function (view) {\n const i = data.indexOf(view);\n\n if (i >= 0) {\n data.splice(i, 1);\n }\n\n data.push(view);\n\n if (data.length > size) {\n data.shift().destroy();\n }\n };\n\n this.resize = function (newSize, pagesToKeep) {\n size = newSize;\n\n if (pagesToKeep) {\n const pageIdsToKeep = new Set();\n\n for (let i = 0, iMax = pagesToKeep.length; i < iMax; ++i) {\n pageIdsToKeep.add(pagesToKeep[i].id);\n }\n\n (0, _ui_utils.moveToEndOfArray)(data, function (page) {\n return pageIdsToKeep.has(page.id);\n });\n }\n\n while (data.length > size) {\n data.shift().destroy();\n }\n };\n}\n\nfunction isSameScale(oldScale, newScale) {\n if (newScale === oldScale) {\n return true;\n }\n\n if (Math.abs(newScale - oldScale) < 1e-15) {\n return true;\n }\n\n return false;\n}\n\nclass BaseViewer {\n constructor(options) {\n if (this.constructor === BaseViewer) {\n throw new Error(\"Cannot initialize BaseViewer.\");\n }\n\n this._name = this.constructor.name;\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this.removePageBorders = options.removePageBorders || false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = options.renderInteractiveForms || false;\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.defaultRenderingQueue = !options.renderingQueue;\n\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n\n this._resetView();\n\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n\n Promise.resolve().then(() => {\n this.eventBus.dispatch(\"baseviewerinit\", {\n source: this\n });\n });\n }\n\n get pagesCount() {\n return this._pages.length;\n }\n\n getPageView(index) {\n return this._pages[index];\n }\n\n get pageViewsReady() {\n if (!this._pagesCapability.settled) {\n return false;\n }\n\n return this._pages.every(function (pageView) {\n return pageView && pageView.pdfPage;\n });\n }\n\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(`${this._name}.currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n\n this._currentPageNumber = val;\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels && this._pageLabels[val - 1]\n });\n\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n get currentPageLabel() {\n return this._pageLabels && this._pageLabels[this._currentPageNumber - 1];\n }\n\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n let page = val | 0;\n\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n\n if (i >= 0) {\n page = i + 1;\n }\n }\n\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(`${this._name}.currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n\n get currentScale() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n }\n\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get pagesRotation() {\n return this._pagesRotation;\n }\n\n set pagesRotation(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (this._pagesRotation === rotation) {\n return;\n }\n\n this._pagesRotation = rotation;\n const pageNumber = this._currentPageNumber;\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n const pageView = this._pages[i];\n pageView.update(pageView.scale, rotation);\n }\n\n if (this._currentScaleValue) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n\n get _viewerElement() {\n throw new Error(\"Not implemented: _viewerElement\");\n }\n\n _onePageRenderedOrForceFetch() {\n if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n return Promise.resolve();\n }\n\n return this._onePageRenderedCapability.promise;\n }\n\n setDocument(pdfDocument) {\n if (this.pdfDocument) {\n this._cancelRendering();\n\n this._resetView();\n\n if (this.findController) {\n this.findController.setDocument(null);\n }\n }\n\n this.pdfDocument = pdfDocument;\n\n if (!pdfDocument) {\n return;\n }\n\n const pagesCount = pdfDocument.numPages;\n const firstPagePromise = pdfDocument.getPage(1);\n\n this._pagesCapability.promise.then(() => {\n this.eventBus.dispatch(\"pagesloaded\", {\n source: this,\n pagesCount\n });\n });\n\n this._onBeforeDraw = evt => {\n const pageView = this._pages[evt.pageNumber - 1];\n\n if (!pageView) {\n return;\n }\n\n this._buffer.push(pageView);\n };\n\n this.eventBus._on(\"pagerender\", this._onBeforeDraw);\n\n this._onAfterDraw = evt => {\n if (evt.cssTransform || this._onePageRenderedCapability.settled) {\n return;\n }\n\n this._onePageRenderedCapability.resolve();\n\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n };\n\n this.eventBus._on(\"pagerendered\", this._onAfterDraw);\n\n firstPagePromise.then(firstPdfPage => {\n this._firstPageCapability.resolve(firstPdfPage);\n\n const scale = this.currentScale;\n const viewport = firstPdfPage.getViewport({\n scale: scale * _ui_utils.CSS_UNITS\n });\n const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? this : null;\n\n for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n const pageView = new _pdf_page_view.PDFPageView({\n container: this._viewerElement,\n eventBus: this.eventBus,\n id: pageNum,\n scale,\n defaultViewport: viewport.clone(),\n renderingQueue: this.renderingQueue,\n textLayerFactory,\n textLayerMode: this.textLayerMode,\n annotationLayerFactory: this,\n imageResourcesPath: this.imageResourcesPath,\n renderInteractiveForms: this.renderInteractiveForms,\n renderer: this.renderer,\n enableWebGL: this.enableWebGL,\n useOnlyCssZoom: this.useOnlyCssZoom,\n maxCanvasPixels: this.maxCanvasPixels,\n l10n: this.l10n\n });\n\n this._pages.push(pageView);\n }\n\n const firstPageView = this._pages[0];\n\n if (firstPageView) {\n firstPageView.setPdfPage(firstPdfPage);\n this.linkService.cachePageRef(1, firstPdfPage.ref);\n }\n\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n this._updateSpreadMode();\n }\n\n this._onePageRenderedOrForceFetch().then(() => {\n if (this.findController) {\n this.findController.setDocument(pdfDocument);\n }\n\n if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n let getPagesLeft = pagesCount - 1;\n\n if (getPagesLeft <= 0) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n pdfDocument.getPage(pageNum).then(pdfPage => {\n const pageView = this._pages[pageNum - 1];\n\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this.linkService.cachePageRef(pageNum, pdfPage.ref);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n }, reason => {\n console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n });\n }\n });\n\n this.eventBus.dispatch(\"pagesinit\", {\n source: this\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }).catch(reason => {\n console.error(\"Unable to initialize viewer\", reason);\n });\n }\n\n setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(`${this._name}.setPageLabels: Invalid page labels.`);\n } else {\n this._pageLabels = labels;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n const pageView = this._pages[i];\n const label = this._pageLabels && this._pageLabels[i];\n pageView.setPageLabel(label);\n }\n }\n\n _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._pagesRequests = new WeakMap();\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n\n if (this._onBeforeDraw) {\n this.eventBus._off(\"pagerender\", this._onBeforeDraw);\n\n this._onBeforeDraw = null;\n }\n\n if (this._onAfterDraw) {\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n }\n\n this.viewer.textContent = \"\";\n\n this._updateScrollMode();\n }\n\n _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n\n this.update();\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);\n }\n\n _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) {\n this._currentScaleValue = newValue.toString();\n\n if (isSameScale(this._currentScale, newScale)) {\n if (preset) {\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n\n return;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].update(newScale);\n }\n\n this._currentScale = newScale;\n\n if (!noScroll) {\n let page = this._currentPageNumber,\n dest;\n\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: \"XYZ\"\n }, this._location.left, this._location.top, null];\n }\n\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n _setScale(value, noScroll = false) {\n let scale = parseFloat(value);\n\n if (scale > 0) {\n this._setScaleUpdatePages(scale, value, noScroll, false);\n } else {\n const currentPage = this._pages[this._currentPageNumber - 1];\n\n if (!currentPage) {\n return;\n }\n\n const noPadding = this.isInPresentationMode || this.removePageBorders;\n let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;\n let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;\n\n if (!noPadding && this._isScrollModeHorizontal) {\n [hPadding, vPadding] = [vPadding, hPadding];\n }\n\n const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale;\n const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n\n switch (value) {\n case \"page-actual\":\n scale = 1;\n break;\n\n case \"page-width\":\n scale = pageWidthScale;\n break;\n\n case \"page-height\":\n scale = pageHeightScale;\n break;\n\n case \"page-fit\":\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n\n case \"auto\":\n const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n\n default:\n console.error(`${this._name}._setScale: \"${value}\" is an unknown zoom value.`);\n return;\n }\n\n this._setScaleUpdatePages(scale, value, noScroll, true);\n }\n }\n\n _resetCurrentPageView() {\n if (this.isInPresentationMode) {\n this._setScale(this._currentScaleValue, true);\n }\n\n const pageView = this._pages[this._currentPageNumber - 1];\n\n this._scrollIntoView({\n pageDiv: pageView.div\n });\n }\n\n scrollPageIntoView({\n pageNumber,\n destArray = null,\n allowNegativeOffset = false,\n ignoreDestinationZoom = false\n }) {\n if (!this.pdfDocument) {\n return;\n }\n\n const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n\n if (!pageView) {\n console.error(`${this._name}.scrollPageIntoView: ` + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n\n return;\n }\n\n let x = 0,\n y = 0;\n let width = 0,\n height = 0,\n widthScale,\n heightScale;\n const changeOrientation = pageView.rotation % 180 !== 0;\n const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS;\n const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS;\n let scale = 0;\n\n switch (destArray[1].name) {\n case \"XYZ\":\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n\n case \"Fit\":\n case \"FitB\":\n scale = \"page-fit\";\n break;\n\n case \"FitH\":\n case \"FitBH\":\n y = destArray[2];\n scale = \"page-width\";\n\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n }\n\n break;\n\n case \"FitV\":\n case \"FitBV\":\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = \"page-height\";\n break;\n\n case \"FitR\":\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;\n const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;\n widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n\n default:\n console.error(`${this._name}.scrollPageIntoView: ` + `\"${destArray[1].name}\" is not a valid destination type.`);\n return;\n }\n\n if (!ignoreDestinationZoom) {\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n }\n\n if (scale === \"page-fit\" && !destArray[4]) {\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageNumber\n });\n\n return;\n }\n\n const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageSpot: {\n left,\n top\n },\n pageNumber\n });\n }\n\n _updateLocation(firstPage) {\n const currentScale = this._currentScale;\n const currentScaleValue = this._currentScaleValue;\n const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n const pageNumber = firstPage.id;\n let pdfOpenParams = \"#page=\" + pageNumber;\n pdfOpenParams += \"&zoom=\" + normalizedScaleValue;\n const currentPageView = this._pages[pageNumber - 1];\n const container = this.container;\n const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n const intLeft = Math.round(topLeft[0]);\n const intTop = Math.round(topLeft[1]);\n pdfOpenParams += \",\" + intLeft + \",\" + intTop;\n this._location = {\n pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams\n };\n }\n\n _updateHelper(visiblePages) {\n throw new Error(\"Not implemented: _updateHelper\");\n }\n\n update() {\n const visible = this._getVisiblePages();\n\n const visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n\n if (numVisiblePages === 0) {\n return;\n }\n\n const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n\n this._buffer.resize(newCacheSize, visiblePages);\n\n this.renderingQueue.renderHighestPriority(visible);\n\n this._updateHelper(visiblePages);\n\n this._updateLocation(visible.first);\n\n this.eventBus.dispatch(\"updateviewarea\", {\n source: this,\n location: this._location\n });\n }\n\n containsElement(element) {\n return this.container.contains(element);\n }\n\n focus() {\n this.container.focus();\n }\n\n get _isScrollModeHorizontal() {\n return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL;\n }\n\n get isInPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n\n get isChangingPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n\n get isHorizontalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n\n get isVerticalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n\n _getCurrentVisiblePage() {\n if (!this.pagesCount) {\n return {\n views: []\n };\n }\n\n const pageView = this._pages[this._currentPageNumber - 1];\n const element = pageView.div;\n const view = {\n id: pageView.id,\n x: element.offsetLeft + element.clientLeft,\n y: element.offsetTop + element.clientTop,\n view: pageView\n };\n return {\n first: view,\n last: view,\n views: [view]\n };\n }\n\n _getVisiblePages() {\n return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal);\n }\n\n isPageVisible(pageNumber) {\n if (!this.pdfDocument) {\n return false;\n }\n\n if (pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`${this._name}.isPageVisible: \"${pageNumber}\" is out of bounds.`);\n return false;\n }\n\n return this._getVisiblePages().views.some(function (view) {\n return view.id === pageNumber;\n });\n }\n\n cleanup() {\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {\n this._pages[i].reset();\n }\n }\n }\n\n _cancelRendering() {\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i]) {\n this._pages[i].cancelRendering();\n }\n }\n }\n\n _ensurePdfPageLoaded(pageView) {\n if (pageView.pdfPage) {\n return Promise.resolve(pageView.pdfPage);\n }\n\n if (this._pagesRequests.has(pageView)) {\n return this._pagesRequests.get(pageView);\n }\n\n const promise = this.pdfDocument.getPage(pageView.id).then(pdfPage => {\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this._pagesRequests.delete(pageView);\n\n return pdfPage;\n }).catch(reason => {\n console.error(\"Unable to get page for page view\", reason);\n\n this._pagesRequests.delete(pageView);\n });\n\n this._pagesRequests.set(pageView, promise);\n\n return promise;\n }\n\n forceRendering(currentlyVisiblePages) {\n const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n\n const scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;\n const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);\n\n if (pageView) {\n this._ensurePdfPageLoaded(pageView).then(() => {\n this.renderingQueue.renderView(pageView);\n });\n\n return true;\n }\n\n return false;\n }\n\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {\n return new _text_layer_builder.TextLayerBuilder({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n findController: this.isInPresentationMode ? null : this.findController,\n enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection\n });\n }\n\n createAnnotationLayerBuilder(pageDiv, pdfPage, imageResourcesPath = \"\", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) {\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n l10n\n });\n }\n\n get hasEqualPageSizes() {\n const firstPageView = this._pages[0];\n\n for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n const pageView = this._pages[i];\n\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n\n return true;\n }\n\n getPagesOverview() {\n const pagesOverview = this._pages.map(function (pageView) {\n const viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n });\n\n if (!this.enablePrintAutoRotate) {\n return pagesOverview;\n }\n\n const isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]);\n return pagesOverview.map(function (size) {\n if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) {\n return size;\n }\n\n return {\n width: size.height,\n height: size.width,\n rotation: (size.rotation + 90) % 360\n };\n });\n }\n\n get scrollMode() {\n return this._scrollMode;\n }\n\n set scrollMode(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(`Invalid scroll mode: ${mode}`);\n }\n\n this._scrollMode = mode;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n\n this._updateScrollMode(this._currentPageNumber);\n }\n\n _updateScrollMode(pageNumber = null) {\n const scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle(\"scrollHorizontal\", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle(\"scrollWrapped\", scrollMode === _ui_utils.ScrollMode.WRAPPED);\n\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n get spreadMode() {\n return this._spreadMode;\n }\n\n set spreadMode(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(`Invalid spread mode: ${mode}`);\n }\n\n this._spreadMode = mode;\n this.eventBus.dispatch(\"spreadmodechanged\", {\n source: this,\n mode\n });\n\n this._updateSpreadMode(this._currentPageNumber);\n }\n\n _updateSpreadMode(pageNumber = null) {\n if (!this.pdfDocument) {\n return;\n }\n\n const viewer = this.viewer,\n pages = this._pages;\n viewer.textContent = \"\";\n\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (let i = 0, iMax = pages.length; i < iMax; ++i) {\n viewer.appendChild(pages[i].div);\n }\n } else {\n const parity = this._spreadMode - 1;\n let spread = null;\n\n for (let i = 0, iMax = pages.length; i < iMax; ++i) {\n if (spread === null) {\n spread = document.createElement(\"div\");\n spread.className = \"spread\";\n viewer.appendChild(spread);\n } else if (i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.appendChild(spread);\n }\n\n spread.appendChild(pages[i].div);\n }\n }\n\n if (!pageNumber) {\n return;\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n}\n\nexports.BaseViewer = BaseViewer;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(16);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nclass PDFViewer extends _base_viewer.BaseViewer {\n get _viewerElement() {\n return (0, _pdfjsLib.shadow)(this, \"_viewerElement\", this.viewer);\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n if (!pageSpot && !this.isInPresentationMode) {\n const left = pageDiv.offsetLeft + pageDiv.clientLeft;\n const right = left + pageDiv.clientWidth;\n const {\n scrollLeft,\n clientWidth\n } = this.container;\n\n if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n\n super._scrollIntoView({\n pageDiv,\n pageSpot,\n pageNumber\n });\n }\n\n _getVisiblePages() {\n if (this.isInPresentationMode) {\n return this._getCurrentVisiblePage();\n }\n\n return super._getVisiblePages();\n }\n\n _updateHelper(visiblePages) {\n if (this.isInPresentationMode) {\n return;\n }\n\n let currentId = this._currentPageNumber;\n let stillFullyVisible = false;\n\n for (const page of visiblePages) {\n if (page.percent < 100) {\n break;\n }\n\n if (page.id === currentId) {\n stillFullyVisible = true;\n break;\n }\n }\n\n if (!stillFullyVisible) {\n currentId = visiblePages[0].id;\n }\n\n this._setCurrentPageNumber(currentId);\n }\n\n}\n\nexports.PDFViewer = PDFViewer;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf_viewer.js.map","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-96.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-96.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-96.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=fa94153c&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7f4a3e57\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"outerContainer\"}},[_c('div',{attrs:{\"id\":\"mainContainer\"}},[_c('div',{staticClass:\"secondaryToolbar hidden doorHangerRight\",attrs:{\"id\":\"secondaryToolbar\"}},[_c('div',{attrs:{\"id\":\"secondaryToolbarButtonContainer\"}},[_c('button',{staticClass:\"secondaryToolbarButton openFile visibleLargeView\",attrs:{\"id\":\"secondaryOpenFile\",\"title\":\"打开文件\",\"tabindex\":\"52\",\"data-l10n-id\":\"open_file\"}},[_c('span',{attrs:{\"data-l10n-id\":\"open_file_label\"}},[_vm._v(\"打开\")])]),_c('button',{staticClass:\"secondaryToolbarButton print visibleMediumView\",attrs:{\"id\":\"secondaryPrint\",\"title\":\"打印\",\"tabindex\":\"53\",\"data-l10n-id\":\"print\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_label\"}},[_vm._v(\"打印\")])]),_c('button',{staticClass:\"secondaryToolbarButton documentProperties\",attrs:{\"id\":\"documentProperties\",\"title\":\"文档属性…\",\"tabindex\":\"69\",\"data-l10n-id\":\"document_properties\",\"aria-controls\":\"documentPropertiesDialog\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_label\"}},[_vm._v(\"文档属性…\")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"toolbar\"},[_c('div',{attrs:{\"id\":\"toolbarContainer\"}},[_c('div',{attrs:{\"id\":\"toolbarViewer\"}},[_c('div',{attrs:{\"id\":\"toolbarViewerLeft\"}},[_c('div',{staticClass:\"splitToolbarButton hiddenSmallView\"},[_c('button',{staticClass:\"toolbarButton pageUp\",attrs:{\"title\":\"上一页\",\"id\":\"previous\",\"tabindex\":\"13\",\"data-l10n-id\":\"previous\"}},[_c('span',{attrs:{\"data-l10n-id\":\"previous_label\"}},[_vm._v(\"上一页\")])]),_c('div',{staticClass:\"splitToolbarButtonSeparator\"}),_c('button',{staticClass:\"toolbarButton pageDown\",attrs:{\"title\":\"下一页\",\"id\":\"next\",\"tabindex\":\"14\",\"data-l10n-id\":\"next\"}},[_c('span',{attrs:{\"data-l10n-id\":\"next_label\"}},[_vm._v(\"下一页\")])])]),_c('input',{staticClass:\"toolbarField pageNumber\",attrs:{\"type\":\"number\",\"id\":\"pageNumber\",\"title\":\"页面\",\"value\":\"1\",\"size\":\"4\",\"min\":\"1\",\"tabindex\":\"15\",\"data-l10n-id\":\"page\",\"autocomplete\":\"off\"}}),_c('span',{staticClass:\"toolbarLabel\",attrs:{\"id\":\"numPages\"}})]),_c('div',{attrs:{\"id\":\"toolbarViewerRight\"}},[_c('button',{staticClass:\"toolbarButton openFile hiddenLargeView\",attrs:{\"id\":\"openFile\",\"title\":\"打开文件\",\"tabindex\":\"32\",\"data-l10n-id\":\"open_file\"}},[_c('span',{attrs:{\"data-l10n-id\":\"open_file_label\"}},[_vm._v(\"打开\")])]),_c('button',{staticClass:\"toolbarButton print hiddenMediumView\",attrs:{\"id\":\"print\",\"title\":\"打印\",\"tabindex\":\"33\",\"data-l10n-id\":\"print\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_label\"}},[_vm._v(\"打印\")])]),_c('div',{staticClass:\"verticalToolbarSeparator hiddenSmallView\"}),_c('button',{staticClass:\"toolbarButton\",attrs:{\"id\":\"secondaryToolbarToggle\",\"title\":\"工具\",\"tabindex\":\"36\",\"data-l10n-id\":\"tools\",\"aria-expanded\":\"false\",\"aria-controls\":\"secondaryToolbar\"}},[_c('span',{attrs:{\"data-l10n-id\":\"tools_label\"}},[_vm._v(\"工具\")])])]),_c('div',{attrs:{\"id\":\"toolbarViewerMiddle\"}},[_c('div',{staticClass:\"splitToolbarButton\"},[_c('button',{staticClass:\"toolbarButton zoomOut\",attrs:{\"id\":\"zoomOut\",\"title\":\"缩小\",\"tabindex\":\"21\",\"data-l10n-id\":\"zoom_out\"}},[_c('span',{attrs:{\"data-l10n-id\":\"zoom_out_label\"}},[_vm._v(\"缩小\")])]),_c('div',{staticClass:\"splitToolbarButtonSeparator\"}),_c('button',{staticClass:\"toolbarButton zoomIn\",attrs:{\"id\":\"zoomIn\",\"title\":\"放大\",\"tabindex\":\"22\",\"data-l10n-id\":\"zoom_in\"}},[_c('span',{attrs:{\"data-l10n-id\":\"zoom_in_label\"}},[_vm._v(\"放大\")])])]),_c('span',{staticClass:\"dropdownToolbarButton\",attrs:{\"id\":\"scaleSelectContainer\"}},[_c('select',{attrs:{\"id\":\"scaleSelect\",\"title\":\"缩放\",\"tabindex\":\"23\",\"data-l10n-id\":\"zoom\"}},[_c('option',{attrs:{\"id\":\"pageAutoOption\",\"title\":\"\",\"value\":\"auto\",\"selected\":\"selected\",\"data-l10n-id\":\"page_scale_auto\"}},[_vm._v(\"自动缩放\")]),_c('option',{attrs:{\"id\":\"pageActualOption\",\"title\":\"\",\"value\":\"page-actual\",\"data-l10n-id\":\"page_scale_actual\"}},[_vm._v(\"实际大小\")]),_c('option',{attrs:{\"id\":\"pageFitOption\",\"title\":\"\",\"value\":\"page-fit\",\"data-l10n-id\":\"page_scale_fit\"}},[_vm._v(\"适合页面\")]),_c('option',{attrs:{\"id\":\"pageWidthOption\",\"title\":\"\",\"value\":\"page-width\",\"data-l10n-id\":\"page_scale_width\"}},[_vm._v(\"适合页宽\")]),_c('option',{attrs:{\"id\":\"customScaleOption\",\"title\":\"\",\"value\":\"custom\",\"disabled\":\"disabled\",\"hidden\":\"true\"}}),_c('option',{attrs:{\"title\":\"\",\"value\":\"0.5\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 50 }\"}},[_vm._v(\"50%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"0.75\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 75 }\"}},[_vm._v(\"75%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 100 }\"}},[_vm._v(\"100%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1.25\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 125 }\"}},[_vm._v(\"125%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1.5\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 150 }\"}},[_vm._v(\"150%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"2\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 200 }\"}},[_vm._v(\"200%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"3\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 300 }\"}},[_vm._v(\"300%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"4\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 400 }\"}},[_vm._v(\"400%\")])])])])])])]),_c('div',{attrs:{\"id\":\"viewerContainer\",\"tabindex\":\"0\"}},[_c('div',{staticClass:\"pdfViewer\",attrs:{\"id\":\"viewer\"}})]),_c('div',{attrs:{\"id\":\"errorWrapper\",\"hidden\":\"true\"}},[_c('div',{attrs:{\"id\":\"errorMessageLeft\"}},[_c('span',{attrs:{\"id\":\"errorMessage\"}}),_c('button',{attrs:{\"id\":\"errorShowMore\",\"data-l10n-id\":\"error_more_info\"}},[_vm._v(\" More Information \")]),_c('button',{attrs:{\"id\":\"errorShowLess\",\"data-l10n-id\":\"error_less_info\",\"hidden\":\"true\"}},[_vm._v(\" Less Information \")])]),_c('div',{attrs:{\"id\":\"errorMessageRight\"}},[_c('button',{attrs:{\"id\":\"errorClose\",\"data-l10n-id\":\"error_close\"}},[_vm._v(\" Close \")])]),_c('div',{staticClass:\"clearBoth\"}),_c('textarea',{attrs:{\"id\":\"errorMoreInfo\",\"hidden\":\"true\",\"readonly\":\"readonly\"}})])]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"dialogContainer\"}},[_c('dialog',{attrs:{\"id\":\"documentPropertiesDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"fileNameLabel\",\"data-l10n-id\":\"document_properties_file_name\"}},[_vm._v(\"文件名:\")]),_c('p',{attrs:{\"id\":\"fileNameField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"fileSizeLabel\",\"data-l10n-id\":\"document_properties_file_size\"}},[_vm._v(\"文件大小:\")]),_c('p',{attrs:{\"id\":\"fileSizeField\",\"aria-labelledby\":\"fileSizeLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"titleLabel\",\"data-l10n-id\":\"document_properties_title\"}},[_vm._v(\"标题:\")]),_c('p',{attrs:{\"id\":\"titleField\",\"aria-labelledby\":\"titleLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"authorLabel\",\"data-l10n-id\":\"document_properties_author\"}},[_vm._v(\"作者:\")]),_c('p',{attrs:{\"id\":\"authorField\",\"aria-labelledby\":\"authorLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"subjectLabel\",\"data-l10n-id\":\"document_properties_subject\"}},[_vm._v(\"主题:\")]),_c('p',{attrs:{\"id\":\"subjectField\",\"aria-labelledby\":\"subjectLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"keywordsLabel\",\"data-l10n-id\":\"document_properties_keywords\"}},[_vm._v(\"关键词:\")]),_c('p',{attrs:{\"id\":\"keywordsField\",\"aria-labelledby\":\"keywordsLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"creationDateLabel\",\"data-l10n-id\":\"document_properties_creation_date\"}},[_vm._v(\"创建日期:\")]),_c('p',{attrs:{\"id\":\"creationDateField\",\"aria-labelledby\":\"creationDateLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"modificationDateLabel\",\"data-l10n-id\":\"document_properties_modification_date\"}},[_vm._v(\"修改日期:\")]),_c('p',{attrs:{\"id\":\"modificationDateField\",\"aria-labelledby\":\"modificationDateLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"creatorLabel\",\"data-l10n-id\":\"document_properties_creator\"}},[_vm._v(\"创建者:\")]),_c('p',{attrs:{\"id\":\"creatorField\",\"aria-labelledby\":\"creatorLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"producerLabel\",\"data-l10n-id\":\"document_properties_producer\"}},[_vm._v(\"OFD 生成器:\")]),_c('p',{attrs:{\"id\":\"producerField\",\"aria-labelledby\":\"producerLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"versionLabel\",\"data-l10n-id\":\"document_properties_version\"}},[_vm._v(\"OFD 版本:\")]),_c('p',{attrs:{\"id\":\"versionField\",\"aria-labelledby\":\"versionLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"pageCountLabel\",\"data-l10n-id\":\"document_properties_page_count\"}},[_vm._v(\"页数:\")]),_c('p',{attrs:{\"id\":\"pageCountField\",\"aria-labelledby\":\"pageCountLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"pageSizeLabel\",\"data-l10n-id\":\"document_properties_page_size\"}},[_vm._v(\"页面大小:\")]),_c('p',{attrs:{\"id\":\"pageSizeField\",\"aria-labelledby\":\"pageSizeLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\",attrs:{\"hidden\":\"hidden\"}},[_c('span',{attrs:{\"id\":\"linearizedLabel\",\"data-l10n-id\":\"document_properties_linearized\"}},[_vm._v(\"快速 Web 视图:\")]),_c('p',{attrs:{\"id\":\"linearizedField\",\"aria-labelledby\":\"linearizedLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"documentPropertiesClose\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_close\"}},[_vm._v(\"关闭\")])])])]),_c('dialog',{staticStyle:{\"min-width\":\"200px\"},attrs:{\"id\":\"printServiceDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"data-l10n-id\":\"print_progress_message\"}},[_vm._v(\"正在准备打印文档…\")])]),_c('div',{staticClass:\"row\"},[_c('progress',{attrs:{\"id\":\"printProgress\",\"value\":\"0\",\"max\":\"100\"}}),_c('span',{staticClass:\"relative-progress\",attrs:{\"data-l10n-id\":\"print_progress_percent\",\"data-l10n-args\":\"{ \\\"progress\\\": 0 }\"}},[_vm._v(\"0%\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"printCancel\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_progress_close\"}},[_vm._v(\"取消\")])])])]),_c('dialog',{attrs:{\"id\":\"signaturePropertiesDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signerLabel\"}},[_vm._v(\"签章人:\")]),_c('p',{attrs:{\"id\":\"signerField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"providerLabel\"}},[_vm._v(\"签章提供者:\")]),_c('p',{attrs:{\"id\":\"providerField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"hashedValueLabel\"}},[_vm._v(\"原文摘要值:\")]),_c('p',{attrs:{\"id\":\"hashedValueField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signedValueLabel\"}},[_vm._v(\"签名值:\")]),_c('p',{attrs:{\"id\":\"signedValueField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signMethodLabel\"}},[_vm._v(\"签名算法:\")]),_c('p',{attrs:{\"id\":\"signMethodField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"signVersionLabel\"}},[_vm._v(\"版本号:\")]),_c('p',{attrs:{\"id\":\"signVersionField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"verifyLabel\"}},[_vm._v(\"验签结果:\")]),_c('p',{attrs:{\"id\":\"verifyField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealIDLabel\"}},[_vm._v(\"印章标识:\")]),_c('p',{attrs:{\"id\":\"sealIDField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealNameLabel\"}},[_vm._v(\"印章名称:\")]),_c('p',{attrs:{\"id\":\"sealNameField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealTypeLabel\"}},[_vm._v(\"印章类型:\")]),_c('p',{attrs:{\"id\":\"sealTypeField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealAuthTimeLabel\"}},[_vm._v(\"有效时间:\")]),_c('p',{attrs:{\"id\":\"sealAuthTimeField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealMakeTimeLabel\"}},[_vm._v(\"制章日期:\")]),_c('p',{attrs:{\"id\":\"sealMakeTimeField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"sealVersionLabel\"}},[_vm._v(\"印章版本:\")]),_c('p',{attrs:{\"id\":\"sealVersionField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"signaturePropertiesClose\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_close\"}},[_vm._v(\"关闭\")])])])])])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"outerContainer\">\r\n\r\n <div id=\"mainContainer\">\r\n\r\n <div id=\"secondaryToolbar\" class=\"secondaryToolbar hidden doorHangerRight\">\r\n <div id=\"secondaryToolbarButtonContainer\">\r\n <button id=\"secondaryOpenFile\" class=\"secondaryToolbarButton openFile visibleLargeView\" title=\"打开文件\"\r\n tabindex=\"52\" data-l10n-id=\"open_file\">\r\n <span data-l10n-id=\"open_file_label\">打开</span>\r\n </button>\r\n\r\n <button id=\"secondaryPrint\" class=\"secondaryToolbarButton print visibleMediumView\" title=\"打印\" tabindex=\"53\"\r\n data-l10n-id=\"print\">\r\n <span data-l10n-id=\"print_label\">打印</span>\r\n </button>\r\n\r\n <button id=\"documentProperties\" class=\"secondaryToolbarButton documentProperties\" title=\"文档属性…\"\r\n tabindex=\"69\" data-l10n-id=\"document_properties\" aria-controls=\"documentPropertiesDialog\">\r\n <span data-l10n-id=\"document_properties_label\">文档属性…</span>\r\n </button>\r\n </div>\r\n </div> <!-- secondaryToolbar -->\r\n\r\n <div class=\"toolbar\">\r\n <div id=\"toolbarContainer\">\r\n <div id=\"toolbarViewer\">\r\n <div id=\"toolbarViewerLeft\">\r\n <div class=\"splitToolbarButton hiddenSmallView\">\r\n <button class=\"toolbarButton pageUp\" title=\"上一页\" id=\"previous\" tabindex=\"13\"\r\n data-l10n-id=\"previous\">\r\n <span data-l10n-id=\"previous_label\">上一页</span>\r\n </button>\r\n <div class=\"splitToolbarButtonSeparator\"></div>\r\n <button class=\"toolbarButton pageDown\" title=\"下一页\" id=\"next\" tabindex=\"14\" data-l10n-id=\"next\">\r\n <span data-l10n-id=\"next_label\">下一页</span>\r\n </button>\r\n </div>\r\n <input type=\"number\" id=\"pageNumber\" class=\"toolbarField pageNumber\" title=\"页面\" value=\"1\" size=\"4\"\r\n min=\"1\" tabindex=\"15\" data-l10n-id=\"page\" autocomplete=\"off\">\r\n <span id=\"numPages\" class=\"toolbarLabel\"></span>\r\n </div>\r\n <div id=\"toolbarViewerRight\">\r\n\r\n <button id=\"openFile\" class=\"toolbarButton openFile hiddenLargeView\" title=\"打开文件\" tabindex=\"32\"\r\n data-l10n-id=\"open_file\">\r\n <span data-l10n-id=\"open_file_label\">打开</span>\r\n </button>\r\n\r\n <button id=\"print\" class=\"toolbarButton print hiddenMediumView\" title=\"打印\" tabindex=\"33\"\r\n data-l10n-id=\"print\">\r\n <span data-l10n-id=\"print_label\">打印</span>\r\n </button>\r\n\r\n <div class=\"verticalToolbarSeparator hiddenSmallView\"></div>\r\n\r\n <button id=\"secondaryToolbarToggle\" class=\"toolbarButton\" title=\"工具\" tabindex=\"36\" data-l10n-id=\"tools\"\r\n aria-expanded=\"false\" aria-controls=\"secondaryToolbar\">\r\n <span data-l10n-id=\"tools_label\">工具</span>\r\n </button>\r\n </div>\r\n <div id=\"toolbarViewerMiddle\">\r\n <div class=\"splitToolbarButton\">\r\n <button id=\"zoomOut\" class=\"toolbarButton zoomOut\" title=\"缩小\" tabindex=\"21\"\r\n data-l10n-id=\"zoom_out\">\r\n <span data-l10n-id=\"zoom_out_label\">缩小</span>\r\n </button>\r\n <div class=\"splitToolbarButtonSeparator\"></div>\r\n <button id=\"zoomIn\" class=\"toolbarButton zoomIn\" title=\"放大\" tabindex=\"22\" data-l10n-id=\"zoom_in\">\r\n <span data-l10n-id=\"zoom_in_label\">放大</span>\r\n </button>\r\n </div>\r\n <span id=\"scaleSelectContainer\" class=\"dropdownToolbarButton\">\r\n <select id=\"scaleSelect\" title=\"缩放\" tabindex=\"23\" data-l10n-id=\"zoom\">\r\n <option id=\"pageAutoOption\" title=\"\" value=\"auto\" selected=\"selected\"\r\n data-l10n-id=\"page_scale_auto\">自动缩放</option>\r\n <option id=\"pageActualOption\" title=\"\" value=\"page-actual\" data-l10n-id=\"page_scale_actual\">实际大小</option>\r\n <option id=\"pageFitOption\" title=\"\" value=\"page-fit\" data-l10n-id=\"page_scale_fit\">适合页面</option>\r\n <option id=\"pageWidthOption\" title=\"\" value=\"page-width\"\r\n data-l10n-id=\"page_scale_width\">适合页宽</option>\r\n <option id=\"customScaleOption\" title=\"\" value=\"custom\" disabled=\"disabled\" hidden=\"true\"></option>\r\n <option title=\"\" value=\"0.5\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 50 }'>50%</option>\r\n <option title=\"\" value=\"0.75\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 75 }'>75%</option>\r\n <option title=\"\" value=\"1\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 100 }'>100%</option>\r\n <option title=\"\" value=\"1.25\" data-l10n-id=\"page_scale_percent\" data-l10n-args='{ \"scale\": 125 }'>125%</option>\r\n <option title=\"\" value=\"1.5\" data-l10n-id=\"page_scale_percent\" data-l10n-args='{ \"scale\": 150 }'>150%</option>\r\n <option title=\"\" value=\"2\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 200 }'>200%</option>\r\n <option title=\"\" value=\"3\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 300 }'>300%</option>\r\n <option title=\"\" value=\"4\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 400 }'>400%</option>\r\n </select>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"viewerContainer\" tabindex=\"0\">\r\n <div id=\"viewer\" class=\"pdfViewer\"></div>\r\n </div>\r\n\r\n <!--#if !MOZCENTRAL-->\r\n <div id=\"errorWrapper\" hidden='true'>\r\n <div id=\"errorMessageLeft\">\r\n <span id=\"errorMessage\"></span>\r\n <button id=\"errorShowMore\" data-l10n-id=\"error_more_info\">\r\n More Information\r\n </button>\r\n <button id=\"errorShowLess\" data-l10n-id=\"error_less_info\" hidden='true'>\r\n Less Information\r\n </button>\r\n </div>\r\n <div id=\"errorMessageRight\">\r\n <button id=\"errorClose\" data-l10n-id=\"error_close\">\r\n Close\r\n </button>\r\n </div>\r\n <div class=\"clearBoth\"></div>\r\n <textarea id=\"errorMoreInfo\" hidden='true' readonly=\"readonly\"></textarea>\r\n </div>\r\n <!--#endif-->\r\n </div> <!-- mainContainer -->\r\n\r\n <div id=\"dialogContainer\">\r\n <dialog id=\"documentPropertiesDialog\">\r\n <div class=\"row\">\r\n <span id=\"fileNameLabel\" data-l10n-id=\"document_properties_file_name\">文件名:</span>\r\n <p id=\"fileNameField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"fileSizeLabel\" data-l10n-id=\"document_properties_file_size\">文件大小:</span>\r\n <p id=\"fileSizeField\" aria-labelledby=\"fileSizeLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"titleLabel\" data-l10n-id=\"document_properties_title\">标题:</span>\r\n <p id=\"titleField\" aria-labelledby=\"titleLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"authorLabel\" data-l10n-id=\"document_properties_author\">作者:</span>\r\n <p id=\"authorField\" aria-labelledby=\"authorLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"subjectLabel\" data-l10n-id=\"document_properties_subject\">主题:</span>\r\n <p id=\"subjectField\" aria-labelledby=\"subjectLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"keywordsLabel\" data-l10n-id=\"document_properties_keywords\">关键词:</span>\r\n <p id=\"keywordsField\" aria-labelledby=\"keywordsLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"creationDateLabel\" data-l10n-id=\"document_properties_creation_date\">创建日期:</span>\r\n <p id=\"creationDateField\" aria-labelledby=\"creationDateLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"modificationDateLabel\"\r\n data-l10n-id=\"document_properties_modification_date\">修改日期:</span>\r\n <p id=\"modificationDateField\" aria-labelledby=\"modificationDateLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"creatorLabel\" data-l10n-id=\"document_properties_creator\">创建者:</span>\r\n <p id=\"creatorField\" aria-labelledby=\"creatorLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"producerLabel\" data-l10n-id=\"document_properties_producer\">OFD 生成器:</span>\r\n <p id=\"producerField\" aria-labelledby=\"producerLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"versionLabel\" data-l10n-id=\"document_properties_version\">OFD 版本:</span>\r\n <p id=\"versionField\" aria-labelledby=\"versionLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"pageCountLabel\" data-l10n-id=\"document_properties_page_count\">页数:</span>\r\n <p id=\"pageCountField\" aria-labelledby=\"pageCountLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"pageSizeLabel\" data-l10n-id=\"document_properties_page_size\">页面大小:</span>\r\n <p id=\"pageSizeField\" aria-labelledby=\"pageSizeLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\" hidden=\"hidden\">\r\n <span id=\"linearizedLabel\" data-l10n-id=\"document_properties_linearized\">快速 Web 视图:</span>\r\n <p id=\"linearizedField\" aria-labelledby=\"linearizedLabel\">-</p>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"documentPropertiesClose\" class=\"dialogButton\"><span\r\n data-l10n-id=\"document_properties_close\">关闭</span></button>\r\n </div>\r\n </dialog>\r\n <!--#if !MOZCENTRAL-->\r\n <dialog id=\"printServiceDialog\" style=\"min-width: 200px;\">\r\n <div class=\"row\">\r\n <span data-l10n-id=\"print_progress_message\">正在准备打印文档…</span>\r\n </div>\r\n <div class=\"row\">\r\n <progress id=\"printProgress\" value=\"0\" max=\"100\"></progress>\r\n <span data-l10n-id=\"print_progress_percent\" data-l10n-args='{ \"progress\": 0 }'\r\n class=\"relative-progress\">0%</span>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"printCancel\" class=\"dialogButton\"><span data-l10n-id=\"print_progress_close\">取消</span></button>\r\n </div>\r\n </dialog>\r\n\r\n <dialog id=\"signaturePropertiesDialog\">\r\n <div class=\"row\">\r\n <span id=\"signerLabel\">签章人:</span>\r\n <p id=\"signerField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"providerLabel\">签章提供者:</span>\r\n <p id=\"providerField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"hashedValueLabel\">原文摘要值:</span>\r\n <p id=\"hashedValueField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"signedValueLabel\">签名值:</span>\r\n <p id=\"signedValueField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"signMethodLabel\">签名算法:</span>\r\n <p id=\"signMethodField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"signVersionLabel\">版本号:</span>\r\n <p id=\"signVersionField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"verifyLabel\">验签结果:</span>\r\n <p id=\"verifyField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"sealIDLabel\">印章标识:</span>\r\n <p id=\"sealIDField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealNameLabel\">印章名称:</span>\r\n <p id=\"sealNameField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealTypeLabel\">印章类型:</span>\r\n <p id=\"sealTypeField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealAuthTimeLabel\">有效时间:</span>\r\n <p id=\"sealAuthTimeField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealMakeTimeLabel\">制章日期:</span>\r\n <p id=\"sealMakeTimeField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"sealVersionLabel\">印章版本:</span>\r\n <p id=\"sealVersionField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"signaturePropertiesClose\" class=\"dialogButton\"><span data-l10n-id=\"document_properties_close\">关闭</span>\r\n </button>\r\n </div>\r\n </dialog>\r\n <!--#endif-->\r\n <!--#if CHROME-->\r\n <!--#include viewer-snippet-chrome-overlays.html-->\r\n <!--#endif-->\r\n </div> <!-- dialogContainer -->\r\n\r\n </div> <!-- outerContainer -->\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"OfdView\",\r\n props: {\r\n\r\n },\r\n\r\n watch: {\r\n\r\n },\r\n\r\n\r\n data() {\r\n return {\r\n\r\n config: null,\r\n }\r\n },\r\n\r\n mounted() {\r\n if (!this.config) {\r\n this.config = this.getViewerConfiguration()\r\n //vue下viewerContainer必须设置height\r\n // this.containerHeight = `${window.innerHeight - 100}px`\r\n let img = new Image();\r\n img.style.position = 'absolute';\r\n img.style.left = 0;\r\n img.style.right = 0;\r\n img.style.margin = 'auto';\r\n img.style.top = 0;\r\n img.style.bottom = 0;\r\n img.src = 'data:image/gif;base64,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';\r\n img.draggable = false;\r\n this.config.loadingContainer = img\r\n // config.onPageChanging = pageNumber => {\r\n // // console.log(pageNumber)\r\n // }\r\n // config.parserOFDSuccess = core => {\r\n // // console.log(core)\r\n // }\r\n // config.onPageScale = scale => {\r\n // // console.log(scale)\r\n // }\r\n }\r\n this.$emit('ofdViewReady', this.config)\r\n },\r\n\r\n methods: {\r\n getViewerConfiguration() {\r\n let errorWrapper = null\r\n errorWrapper = {\r\n container: document.getElementById('errorWrapper'),\r\n errorMessage: document.getElementById('errorMessage'),\r\n closeButton: document.getElementById('errorClose'),\r\n errorMoreInfo: document.getElementById('errorMoreInfo'),\r\n moreInfoButton: document.getElementById('errorShowMore'),\r\n lessInfoButton: document.getElementById('errorShowLess'),\r\n }\r\n\r\n return {\r\n appContainer: document.body,\r\n mainContainer: document.getElementById('viewerContainer'),\r\n viewerContainer: document.getElementById('viewer'),\r\n toolbar: {\r\n container: document.getElementById('toolbarViewer'),\r\n numPages: document.getElementById('numPages'),\r\n pageNumber: document.getElementById('pageNumber'),\r\n scaleSelect: document.getElementById('scaleSelect'),\r\n customScaleOption: document.getElementById('customScaleOption'),\r\n previous: document.getElementById('previous'),\r\n next: document.getElementById('next'),\r\n zoomIn: document.getElementById('zoomIn'),\r\n zoomOut: document.getElementById('zoomOut'),\r\n openFile: document.getElementById('openFile'),\r\n print: document.getElementById('print'),\r\n },\r\n secondaryToolbar: {\r\n toolbar: document.getElementById('secondaryToolbar'),\r\n toggleButton: document.getElementById('secondaryToolbarToggle'),\r\n toolbarButtonContainer: document.getElementById(\r\n 'secondaryToolbarButtonContainer'\r\n ),\r\n openFileButton: document.getElementById('secondaryOpenFile'),\r\n printButton: document.getElementById('secondaryPrint'),\r\n documentPropertiesButton: document.getElementById('documentProperties'),\r\n },\r\n sidebar: {\r\n // Divs (and sidebar button)\r\n outerContainer: document.getElementById('outerContainer'),\r\n viewerContainer: document.getElementById('viewerContainer'),\r\n },\r\n sidebarResizer: {\r\n outerContainer: document.getElementById('outerContainer'),\r\n },\r\n documentProperties: {\r\n dialog: document.getElementById('documentPropertiesDialog'),\r\n closeButton: document.getElementById('documentPropertiesClose'),\r\n fields: {\r\n fileName: document.getElementById('fileNameField'),\r\n fileSize: document.getElementById('fileSizeField'),\r\n title: document.getElementById('titleField'),\r\n author: document.getElementById('authorField'),\r\n subject: document.getElementById('subjectField'),\r\n keywords: document.getElementById('keywordsField'),\r\n creationDate: document.getElementById('creationDateField'),\r\n modificationDate: document.getElementById('modificationDateField'),\r\n creator: document.getElementById('creatorField'),\r\n producer: document.getElementById('producerField'),\r\n version: document.getElementById('versionField'),\r\n pageCount: document.getElementById('pageCountField'),\r\n pageSize: document.getElementById('pageSizeField'),\r\n linearized: document.getElementById('linearizedField'),\r\n },\r\n },\r\n signatureProperties: {\r\n dialog: document.getElementById('signaturePropertiesDialog'),\r\n closeButton: document.getElementById('signaturePropertiesClose'),\r\n fields: {\r\n signer: document.getElementById('signerField'),\r\n provider: document.getElementById('providerField'),\r\n hashedValue: document.getElementById('hashedValueField'),\r\n signedValue: document.getElementById('signedValueField'),\r\n signMethod: document.getElementById('signMethodField'),\r\n signVersion: document.getElementById('signVersionField'),\r\n verify: document.getElementById('verifyField'),\r\n\r\n sealID: document.getElementById('sealIDField'),\r\n sealName: document.getElementById('sealNameField'),\r\n sealType: document.getElementById('sealTypeField'),\r\n sealAuthTime: document.getElementById('sealAuthTimeField'),\r\n sealMakeTime: document.getElementById('sealMakeTimeField'),\r\n sealVersion: document.getElementById('sealVersionField'),\r\n },\r\n },\r\n errorWrapper,\r\n printContainer: document.getElementById('printContainer'),\r\n openFileInputName: 'fileInput',\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5f966ce0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f966ce0\",\n null\n \n)\n\nexport default component.exports","import OfdView from './src';\r\n\r\nOfdView.install = Vue => Vue.component(OfdView.name, OfdView);//注册组件\r\n\r\nexport default OfdView\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"outerContainer\"}},[_c('div',{attrs:{\"id\":\"mainContainer\"}},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"toolbar\"},[_c('div',{attrs:{\"id\":\"toolbarContainer\"}},[_c('div',{attrs:{\"id\":\"toolbarViewer\"}},[_c('div',{attrs:{\"id\":\"toolbarViewerLeft\"}},[_c('div',{staticClass:\"splitToolbarButton hiddenSmallView\"},[_c('button',{staticClass:\"toolbarButton pageUp\",attrs:{\"title\":\"上一页\",\"id\":\"previous\",\"tabindex\":\"13\",\"data-l10n-id\":\"previous\",\"disabled\":_vm.page === 1},on:{\"click\":_vm.prevPage}},[_c('span',{attrs:{\"data-l10n-id\":\"previous_label\"}},[_vm._v(\"上一页\")])]),_c('div',{staticClass:\"splitToolbarButtonSeparator\"}),_c('button',{staticClass:\"toolbarButton pageDown\",attrs:{\"title\":\"下一页\",\"id\":\"next\",\"tabindex\":\"14\",\"data-l10n-id\":\"next\",\"disabled\":_vm.page === _vm.numPages},on:{\"click\":_vm.nextPage}},[_c('span',{attrs:{\"data-l10n-id\":\"next_label\"}},[_vm._v(\"下一页\")])])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.page),expression:\"page\"}],staticClass:\"toolbarField pageNumber\",attrs:{\"type\":\"number\",\"id\":\"pageNumber\",\"title\":\"页面\",\"size\":\"4\",\"min\":\"1\",\"tabindex\":\"15\",\"data-l10n-id\":\"page\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.page)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.goPage.apply(null, arguments)},\"blur\":_vm.goPage,\"input\":function($event){if($event.target.composing)return;_vm.page=$event.target.value}}}),(_vm.numPages > 0)?_c('span',{staticClass:\"toolbarLabel\",attrs:{\"id\":\"numPages\"}},[_vm._v(\"/ \"+_vm._s(_vm.numPages))]):_vm._e()]),_c('div',{attrs:{\"id\":\"toolbarViewerRight\"}}),_c('div',{attrs:{\"id\":\"toolbarViewerMiddle\"}},[_c('div',{staticClass:\"splitToolbarButton\"},[_c('button',{staticClass:\"toolbarButton zoomOut\",attrs:{\"id\":\"zoomOut\",\"title\":\"缩小\",\"tabindex\":\"21\",\"data-l10n-id\":\"zoom_out\"},on:{\"click\":_vm.zoomOut}},[_c('span',{attrs:{\"data-l10n-id\":\"zoom_out_label\"}},[_vm._v(\"缩小\")])]),_c('div',{staticClass:\"splitToolbarButtonSeparator\"}),_c('button',{staticClass:\"toolbarButton zoomIn\",attrs:{\"id\":\"zoomIn\",\"title\":\"放大\",\"tabindex\":\"22\",\"data-l10n-id\":\"zoom_in\"},on:{\"click\":_vm.zoomIn}},[_c('span',{attrs:{\"data-l10n-id\":\"zoom_in_label\"}},[_vm._v(\"放大\")])])]),_c('span',{staticClass:\"dropdownToolbarButton\",attrs:{\"id\":\"scaleSelectContainer\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.scale),expression:\"scale\"}],attrs:{\"id\":\"scaleSelect\",\"title\":\"缩放\",\"tabindex\":\"23\",\"data-l10n-id\":\"zoom\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.scale=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.scaleChanged]}},[_c('option',{attrs:{\"id\":\"pageAutoOption\",\"title\":\"\",\"value\":\"auto\",\"selected\":\"selected\",\"data-l10n-id\":\"page_scale_auto\"}},[_vm._v(\"自动缩放\")]),_c('option',{attrs:{\"id\":\"pageActualOption\",\"title\":\"\",\"value\":\"page-actual\",\"data-l10n-id\":\"page_scale_actual\"}},[_vm._v(\"实际大小\")]),_c('option',{attrs:{\"id\":\"pageFitOption\",\"title\":\"\",\"value\":\"page-fit\",\"data-l10n-id\":\"page_scale_fit\"}},[_vm._v(\"适合页面\")]),_c('option',{attrs:{\"id\":\"pageWidthOption\",\"title\":\"\",\"value\":\"page-width\",\"data-l10n-id\":\"page_scale_width\"}},[_vm._v(\"适合页宽\")]),_c('option',{attrs:{\"id\":\"customScaleOption\",\"title\":\"\",\"value\":\"custom\",\"disabled\":\"disabled\",\"hidden\":\"true\"}},[_vm._v(_vm._s(_vm.custom))]),_c('option',{attrs:{\"title\":\"\",\"value\":\"0.5\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 50 }\"}},[_vm._v(\"50%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"0.75\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 75 }\"}},[_vm._v(\"75%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 100 }\"}},[_vm._v(\"100%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1.25\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 125 }\"}},[_vm._v(\"125%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"1.5\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 150 }\"}},[_vm._v(\"150%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"2\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 200 }\"}},[_vm._v(\"200%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"3\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 300 }\"}},[_vm._v(\"300%\")]),_c('option',{attrs:{\"title\":\"\",\"value\":\"4\",\"data-l10n-id\":\"page_scale_percent\",\"data-l10n-args\":\"{ \\\"scale\\\": 400 }\"}},[_vm._v(\"400%\")])])])])])])]),_vm._m(1),_vm._m(2)]),_vm._v(\" \"),_vm._m(3)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"secondaryToolbar hidden doorHangerRight\",attrs:{\"id\":\"secondaryToolbar\"}},[_c('div',{attrs:{\"id\":\"secondaryToolbarButtonContainer\"}})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"viewerContainer\",\"tabindex\":\"0\"}},[_c('div',{staticClass:\"pdfViewer\",attrs:{\"id\":\"viewer\"}})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"errorWrapper\",\"hidden\":\"true\"}},[_c('div',{attrs:{\"id\":\"errorMessageLeft\"}},[_c('span',{attrs:{\"id\":\"errorMessage\"}}),_c('button',{attrs:{\"id\":\"errorShowMore\",\"data-l10n-id\":\"error_more_info\"}},[_vm._v(\" More Information \")]),_c('button',{attrs:{\"id\":\"errorShowLess\",\"data-l10n-id\":\"error_less_info\",\"hidden\":\"true\"}},[_vm._v(\" Less Information \")])]),_c('div',{attrs:{\"id\":\"errorMessageRight\"}},[_c('button',{attrs:{\"id\":\"errorClose\",\"data-l10n-id\":\"error_close\"}},[_vm._v(\" Close \")])]),_c('div',{staticClass:\"clearBoth\"}),_c('textarea',{attrs:{\"id\":\"errorMoreInfo\",\"hidden\":\"true\",\"readonly\":\"readonly\"}})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"dialogContainer\"}},[_c('dialog',{attrs:{\"id\":\"documentPropertiesDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"fileNameLabel\",\"data-l10n-id\":\"document_properties_file_name\"}},[_vm._v(\"文件名:\")]),_c('p',{attrs:{\"id\":\"fileNameField\",\"aria-labelledby\":\"fileNameLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"fileSizeLabel\",\"data-l10n-id\":\"document_properties_file_size\"}},[_vm._v(\"文件大小:\")]),_c('p',{attrs:{\"id\":\"fileSizeField\",\"aria-labelledby\":\"fileSizeLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"titleLabel\",\"data-l10n-id\":\"document_properties_title\"}},[_vm._v(\"标题:\")]),_c('p',{attrs:{\"id\":\"titleField\",\"aria-labelledby\":\"titleLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"authorLabel\",\"data-l10n-id\":\"document_properties_author\"}},[_vm._v(\"作者:\")]),_c('p',{attrs:{\"id\":\"authorField\",\"aria-labelledby\":\"authorLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"subjectLabel\",\"data-l10n-id\":\"document_properties_subject\"}},[_vm._v(\"主题:\")]),_c('p',{attrs:{\"id\":\"subjectField\",\"aria-labelledby\":\"subjectLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"keywordsLabel\",\"data-l10n-id\":\"document_properties_keywords\"}},[_vm._v(\"关键词:\")]),_c('p',{attrs:{\"id\":\"keywordsField\",\"aria-labelledby\":\"keywordsLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"creationDateLabel\",\"data-l10n-id\":\"document_properties_creation_date\"}},[_vm._v(\"创建日期:\")]),_c('p',{attrs:{\"id\":\"creationDateField\",\"aria-labelledby\":\"creationDateLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"modificationDateLabel\",\"data-l10n-id\":\"document_properties_modification_date\"}},[_vm._v(\"修改日期:\")]),_c('p',{attrs:{\"id\":\"modificationDateField\",\"aria-labelledby\":\"modificationDateLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"creatorLabel\",\"data-l10n-id\":\"document_properties_creator\"}},[_vm._v(\"创建者:\")]),_c('p',{attrs:{\"id\":\"creatorField\",\"aria-labelledby\":\"creatorLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"producerLabel\",\"data-l10n-id\":\"document_properties_producer\"}},[_vm._v(\"OFD 生成器:\")]),_c('p',{attrs:{\"id\":\"producerField\",\"aria-labelledby\":\"producerLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"versionLabel\",\"data-l10n-id\":\"document_properties_version\"}},[_vm._v(\"OFD 版本:\")]),_c('p',{attrs:{\"id\":\"versionField\",\"aria-labelledby\":\"versionLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"pageCountLabel\",\"data-l10n-id\":\"document_properties_page_count\"}},[_vm._v(\"页数:\")]),_c('p',{attrs:{\"id\":\"pageCountField\",\"aria-labelledby\":\"pageCountLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"id\":\"pageSizeLabel\",\"data-l10n-id\":\"document_properties_page_size\"}},[_vm._v(\"页面大小:\")]),_c('p',{attrs:{\"id\":\"pageSizeField\",\"aria-labelledby\":\"pageSizeLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"row\",attrs:{\"hidden\":\"hidden\"}},[_c('span',{attrs:{\"id\":\"linearizedLabel\",\"data-l10n-id\":\"document_properties_linearized\"}},[_vm._v(\"快速 Web 视图:\")]),_c('p',{attrs:{\"id\":\"linearizedField\",\"aria-labelledby\":\"linearizedLabel\"}},[_vm._v(\"-\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"documentPropertiesClose\"}},[_c('span',{attrs:{\"data-l10n-id\":\"document_properties_close\"}},[_vm._v(\"关闭\")])])])]),_c('dialog',{staticStyle:{\"min-width\":\"200px\"},attrs:{\"id\":\"printServiceDialog\"}},[_c('div',{staticClass:\"row\"},[_c('span',{attrs:{\"data-l10n-id\":\"print_progress_message\"}},[_vm._v(\"正在准备打印文档…\")])]),_c('div',{staticClass:\"row\"},[_c('progress',{attrs:{\"id\":\"printProgress\",\"value\":\"0\",\"max\":\"100\"}}),_c('span',{staticClass:\"relative-progress\",attrs:{\"data-l10n-id\":\"print_progress_percent\",\"data-l10n-args\":\"{ \\\"progress\\\": 0 }\"}},[_vm._v(\"0%\")])]),_c('div',{staticClass:\"buttonRow\"},[_c('button',{staticClass:\"dialogButton\",attrs:{\"id\":\"printCancel\"}},[_c('span',{attrs:{\"data-l10n-id\":\"print_progress_close\"}},[_vm._v(\"取消\")])])])])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"outerContainer\">\r\n\r\n <div id=\"mainContainer\">\r\n\r\n <div id=\"secondaryToolbar\" class=\"secondaryToolbar hidden doorHangerRight\">\r\n <div id=\"secondaryToolbarButtonContainer\">\r\n <!-- <button id=\"secondaryOpenFile\" class=\"secondaryToolbarButton openFile visibleLargeView\" title=\"打开文件\"-->\r\n <!-- tabindex=\"52\" data-l10n-id=\"open_file\">-->\r\n <!-- <span data-l10n-id=\"open_file_label\">打开</span>-->\r\n <!-- </button>-->\r\n\r\n <!-- <button id=\"secondaryPrint\" class=\"secondaryToolbarButton print visibleMediumView\" title=\"打印\" tabindex=\"53\" @click=\"webViewerPrint\"-->\r\n <!-- data-l10n-id=\"print\">-->\r\n <!-- <span data-l10n-id=\"print_label\">打印</span>-->\r\n <!-- </button>-->\r\n\r\n <!-- <button id=\"documentProperties\" class=\"secondaryToolbarButton documentProperties\" title=\"文档属性…\"-->\r\n <!-- tabindex=\"69\" data-l10n-id=\"document_properties\" aria-controls=\"documentPropertiesDialog\">-->\r\n <!-- <span data-l10n-id=\"document_properties_label\">文档属性…</span>-->\r\n <!-- </button>-->\r\n </div>\r\n </div> <!-- secondaryToolbar -->\r\n\r\n <div class=\"toolbar\">\r\n <div id=\"toolbarContainer\">\r\n <div id=\"toolbarViewer\">\r\n <div id=\"toolbarViewerLeft\">\r\n <div class=\"splitToolbarButton hiddenSmallView\">\r\n <button class=\"toolbarButton pageUp\" title=\"上一页\" id=\"previous\" tabindex=\"13\"\r\n data-l10n-id=\"previous\" @click=\"prevPage\" :disabled=\"page === 1\">\r\n <span data-l10n-id=\"previous_label\">上一页</span>\r\n </button>\r\n <div class=\"splitToolbarButtonSeparator\"></div>\r\n <button class=\"toolbarButton pageDown\" title=\"下一页\" id=\"next\" tabindex=\"14\" data-l10n-id=\"next\"\r\n @click=\"nextPage\" :disabled=\"page === numPages\">\r\n <span data-l10n-id=\"next_label\">下一页</span>\r\n </button>\r\n </div>\r\n <input type=\"number\" id=\"pageNumber\" class=\"toolbarField pageNumber\" title=\"页面\" v-model=\"page\" size=\"4\"\r\n @keyup.enter=\"goPage\" @blur=\"goPage\"\r\n min=\"1\" tabindex=\"15\" data-l10n-id=\"page\" autocomplete=\"off\">\r\n <span id=\"numPages\" class=\"toolbarLabel\" v-if=\"numPages > 0\">/ {{ numPages }}</span>\r\n </div>\r\n <div id=\"toolbarViewerRight\">\r\n\r\n <!-- <button id=\"openFile\" class=\"toolbarButton openFile hiddenLargeView\" title=\"打开文件\" tabindex=\"32\"-->\r\n <!-- data-l10n-id=\"open_file\">-->\r\n <!-- <span data-l10n-id=\"open_file_label\">打开</span>-->\r\n <!-- </button>-->\r\n\r\n <!-- <button id=\"print\" class=\"toolbarButton print hiddenMediumView\" title=\"打印\" tabindex=\"33\" @click=\"webViewerPrint\"-->\r\n <!-- data-l10n-id=\"print\">-->\r\n <!-- <span data-l10n-id=\"print_label\">打印</span>-->\r\n <!-- </button>-->\r\n\r\n <!-- <div class=\"verticalToolbarSeparator hiddenSmallView\"></div>-->\r\n\r\n <!-- <button id=\"secondaryToolbarToggle\" class=\"toolbarButton\" title=\"工具\" tabindex=\"36\" data-l10n-id=\"tools\"-->\r\n <!-- aria-expanded=\"false\" aria-controls=\"secondaryToolbar\">-->\r\n <!-- <span data-l10n-id=\"tools_label\">工具</span>-->\r\n <!-- </button>-->\r\n </div>\r\n <div id=\"toolbarViewerMiddle\">\r\n <div class=\"splitToolbarButton\">\r\n <button id=\"zoomOut\" class=\"toolbarButton zoomOut\" title=\"缩小\" tabindex=\"21\" @click=\"zoomOut\"\r\n data-l10n-id=\"zoom_out\">\r\n <span data-l10n-id=\"zoom_out_label\">缩小</span>\r\n </button>\r\n <div class=\"splitToolbarButtonSeparator\"></div>\r\n <button id=\"zoomIn\" class=\"toolbarButton zoomIn\" title=\"放大\" tabindex=\"22\" data-l10n-id=\"zoom_in\"\r\n @click=\"zoomIn\">\r\n <span data-l10n-id=\"zoom_in_label\">放大</span>\r\n </button>\r\n </div>\r\n <span id=\"scaleSelectContainer\" class=\"dropdownToolbarButton\">\r\n <select id=\"scaleSelect\" title=\"缩放\" tabindex=\"23\" data-l10n-id=\"zoom\" v-model=\"scale\"\r\n @change=\"scaleChanged\">\r\n <option id=\"pageAutoOption\" title=\"\" value=\"auto\" selected=\"selected\"\r\n data-l10n-id=\"page_scale_auto\">自动缩放</option>\r\n <option id=\"pageActualOption\" title=\"\" value=\"page-actual\"\r\n data-l10n-id=\"page_scale_actual\">实际大小</option>\r\n <option id=\"pageFitOption\" title=\"\" value=\"page-fit\" data-l10n-id=\"page_scale_fit\">适合页面</option>\r\n <option id=\"pageWidthOption\" title=\"\" value=\"page-width\"\r\n data-l10n-id=\"page_scale_width\">适合页宽</option>\r\n <option id=\"customScaleOption\" title=\"\" value=\"custom\" disabled=\"disabled\"\r\n hidden=\"true\">{{ custom }}</option>\r\n <option title=\"\" value=\"0.5\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 50 }'>50%</option>\r\n <option title=\"\" value=\"0.75\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 75 }'>75%</option>\r\n <option title=\"\" value=\"1\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 100 }'>100%</option>\r\n <option title=\"\" value=\"1.25\" data-l10n-id=\"page_scale_percent\" data-l10n-args='{ \"scale\": 125 }'>125%</option>\r\n <option title=\"\" value=\"1.5\" data-l10n-id=\"page_scale_percent\" data-l10n-args='{ \"scale\": 150 }'>150%</option>\r\n <option title=\"\" value=\"2\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 200 }'>200%</option>\r\n <option title=\"\" value=\"3\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 300 }'>300%</option>\r\n <option title=\"\" value=\"4\" data-l10n-id=\"page_scale_percent\"\r\n data-l10n-args='{ \"scale\": 400 }'>400%</option>\r\n </select>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"viewerContainer\" tabindex=\"0\">\r\n <div id=\"viewer\" class=\"pdfViewer\"></div>\r\n </div>\r\n\r\n <!--#if !MOZCENTRAL-->\r\n <div id=\"errorWrapper\" hidden='true'>\r\n <div id=\"errorMessageLeft\">\r\n <span id=\"errorMessage\"></span>\r\n <button id=\"errorShowMore\" data-l10n-id=\"error_more_info\">\r\n More Information\r\n </button>\r\n <button id=\"errorShowLess\" data-l10n-id=\"error_less_info\" hidden='true'>\r\n Less Information\r\n </button>\r\n </div>\r\n <div id=\"errorMessageRight\">\r\n <button id=\"errorClose\" data-l10n-id=\"error_close\">\r\n Close\r\n </button>\r\n </div>\r\n <div class=\"clearBoth\"></div>\r\n <textarea id=\"errorMoreInfo\" hidden='true' readonly=\"readonly\"></textarea>\r\n </div>\r\n <!--#endif-->\r\n </div> <!-- mainContainer -->\r\n\r\n <div id=\"dialogContainer\">\r\n <dialog id=\"documentPropertiesDialog\">\r\n <div class=\"row\">\r\n <span id=\"fileNameLabel\" data-l10n-id=\"document_properties_file_name\">文件名:</span>\r\n <p id=\"fileNameField\" aria-labelledby=\"fileNameLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"fileSizeLabel\" data-l10n-id=\"document_properties_file_size\">文件大小:</span>\r\n <p id=\"fileSizeField\" aria-labelledby=\"fileSizeLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"titleLabel\" data-l10n-id=\"document_properties_title\">标题:</span>\r\n <p id=\"titleField\" aria-labelledby=\"titleLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"authorLabel\" data-l10n-id=\"document_properties_author\">作者:</span>\r\n <p id=\"authorField\" aria-labelledby=\"authorLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"subjectLabel\" data-l10n-id=\"document_properties_subject\">主题:</span>\r\n <p id=\"subjectField\" aria-labelledby=\"subjectLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"keywordsLabel\" data-l10n-id=\"document_properties_keywords\">关键词:</span>\r\n <p id=\"keywordsField\" aria-labelledby=\"keywordsLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"creationDateLabel\" data-l10n-id=\"document_properties_creation_date\">创建日期:</span>\r\n <p id=\"creationDateField\" aria-labelledby=\"creationDateLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"modificationDateLabel\"\r\n data-l10n-id=\"document_properties_modification_date\">修改日期:</span>\r\n <p id=\"modificationDateField\" aria-labelledby=\"modificationDateLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"creatorLabel\" data-l10n-id=\"document_properties_creator\">创建者:</span>\r\n <p id=\"creatorField\" aria-labelledby=\"creatorLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\">\r\n <span id=\"producerLabel\" data-l10n-id=\"document_properties_producer\">OFD 生成器:</span>\r\n <p id=\"producerField\" aria-labelledby=\"producerLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"versionLabel\" data-l10n-id=\"document_properties_version\">OFD 版本:</span>\r\n <p id=\"versionField\" aria-labelledby=\"versionLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"pageCountLabel\" data-l10n-id=\"document_properties_page_count\">页数:</span>\r\n <p id=\"pageCountField\" aria-labelledby=\"pageCountLabel\">-</p>\r\n </div>\r\n <div class=\"row\">\r\n <span id=\"pageSizeLabel\" data-l10n-id=\"document_properties_page_size\">页面大小:</span>\r\n <p id=\"pageSizeField\" aria-labelledby=\"pageSizeLabel\">-</p>\r\n </div>\r\n <div class=\"separator\"></div>\r\n <div class=\"row\" hidden=\"hidden\">\r\n <span id=\"linearizedLabel\" data-l10n-id=\"document_properties_linearized\">快速 Web 视图:</span>\r\n <p id=\"linearizedField\" aria-labelledby=\"linearizedLabel\">-</p>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"documentPropertiesClose\" class=\"dialogButton\"><span\r\n data-l10n-id=\"document_properties_close\">关闭</span></button>\r\n </div>\r\n </dialog>\r\n <!--#if !MOZCENTRAL-->\r\n <dialog id=\"printServiceDialog\" style=\"min-width: 200px;\">\r\n <div class=\"row\">\r\n <span data-l10n-id=\"print_progress_message\">正在准备打印文档…</span>\r\n </div>\r\n <div class=\"row\">\r\n <progress id=\"printProgress\" value=\"0\" max=\"100\"></progress>\r\n <span data-l10n-id=\"print_progress_percent\" data-l10n-args='{ \"progress\": 0 }'\r\n class=\"relative-progress\">0%</span>\r\n </div>\r\n <div class=\"buttonRow\">\r\n <button id=\"printCancel\" class=\"dialogButton\"><span data-l10n-id=\"print_progress_close\">取消</span></button>\r\n </div>\r\n </dialog>\r\n\r\n <!--#endif-->\r\n <!--#if CHROME-->\r\n <!--#include viewer-snippet-chrome-overlays.html-->\r\n <!--#endif-->\r\n </div> <!-- dialogContainer -->\r\n\r\n </div> <!-- outerContainer -->\r\n</template>\r\n\r\n<script>\r\nimport {EventBus} from \"pdfjs-dist/lib/web/ui_utils\";\r\nconst pdfjsLib = require(\"pdfjs-dist\");\r\npdfjsLib.GlobalWorkerOptions.workerSrc = \"https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.5.207/pdf.worker.js\";\r\nimport {PDFViewer, PDFLinkService} from \"pdfjs-dist/web/pdf_viewer\";\r\nconst ui_utils = require('pdfjs-dist/lib/web/ui_utils')\r\nconst DEFAULT_SCALE_DELTA = 1.1;\r\nconst WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; // ms\r\n\r\nexport default {\r\n name: 'PDFJSViewer',\r\n props: {\r\n url: {\r\n type: String,\r\n required: true\r\n },\r\n rangeChunkSize: {\r\n type: Number,\r\n required: false,\r\n default: 1024 * 512\r\n },\r\n disableAutoFetch: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n disableCreateObjectURL: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n disableFontFace: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n disableRange: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n },\r\n disableStream: {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n isEvalSupported: {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n maxImageSize: {\r\n type: Number,\r\n required: false,\r\n default: -1\r\n },\r\n postMessageTransfers: {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n verbosity: {\r\n type: Number,\r\n required: false,\r\n default: 1\r\n },\r\n },\r\n watch: {\r\n page: function (newPage, oldPage) {\r\n if (newPage > this.numPages) {\r\n this.page = oldPage;\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n APIS: ['rangeChunkSize', 'disableAutoFetch', 'disableCreateObjectURL', 'disableFontFace', 'disableRange', 'disableStream', 'isEvalSupported', 'maxImageSize', 'postMessageTransfers',\r\n 'verbosity'],\r\n pdfViewer: null,\r\n pdfThumbnailViewer: null,\r\n pdfLinkService: null,\r\n numPages: 0,\r\n page: 1,\r\n scale: 'auto',\r\n zoomDisabledTimeout: null,\r\n custom: null,\r\n sidebaropen: false,\r\n isThumbnailViewVisible: false,\r\n viewVisible: false,\r\n dragging: false,\r\n dist: 0,\r\n eventBus: new EventBus(),\r\n sp: 1,\r\n overlay: false,\r\n printProgress: 0\r\n }\r\n },\r\n beforeUnmount() {\r\n this.pdfViewer.setDocument(null);\r\n if (this.pdfThumbnailViewer) {\r\n this.pdfThumbnailViewer.setDocument(null);\r\n }\r\n this.pdfViewer = null;\r\n this.pdfThumbnailViewer = null;\r\n this.eventBus.off('resize', this.viewerResize);\r\n this.eventBus.off('pagerendered', this.viewerPageRendered);\r\n this.eventBus.off('pagechanging', this.viewerPageChanging);\r\n this.eventBus.off('scalechanging', this.viewerScaleChanging);\r\n this.eventBus.off('updateviewarea', this.updateViewerArea);\r\n document.removeEventListener('visibilitychange', this.viewerVisibilityChange);\r\n window.removeEventListener('resize', this.windowResize);\r\n this.config.mainContainer.removeEventListener('wheel', this.viewerWheel);\r\n },\r\n mounted() {\r\n if (!this.config) {\r\n this.config = this.getViewerConfiguration()\r\n }\r\n this.initialize()\r\n },\r\n methods: {\r\n _readPreferences() {\r\n let parameters = {};\r\n this.APIS.forEach(it => {\r\n parameters[it] = this[it];\r\n });\r\n return parameters;\r\n },\r\n\r\n initialize() {\r\n let parameters = this._readPreferences();\r\n parameters.url = this.url;\r\n //get pdf\r\n this._initializeViewerComponents();\r\n //bind events\r\n this.eventBus.on('resize', this.viewerResize);\r\n this.eventBus.on('beforeprint', this.beforePrint);\r\n this.eventBus.on('afterprint', this.afterPrint);\r\n this.eventBus.on('updateviewarea', this.updateViewerArea);\r\n this.eventBus.on('pagerendered', this.viewerPageRendered);\r\n this.eventBus.on('pagechanging', this.viewerPageChanging);\r\n this.eventBus.on('scalechanging', this.viewerScaleChanging);\r\n //\r\n document.addEventListener('visibilitychange', this.viewerVisibilityChange);\r\n window.addEventListener('resize', this.windowResize);\r\n window.addEventListener('beforeprint', this.windowBeforePrint);\r\n window.addEventListener('afterprint', this.windowAfterPrint);\r\n this.config.mainContainer.addEventListener('transitionend', () => {\r\n this.eventBus.dispatch('resize', {source: this,});\r\n });\r\n this.config.mainContainer.addEventListener('wheel', this.viewerWheel);\r\n //load pdf\r\n parameters.cMapUrl = '/static/cmaps/';\r\n parameters.cMapPacked = true;\r\n this._load(parameters);\r\n },\r\n\r\n _initializeViewerComponents() {\r\n //link service\r\n this.pdfLinkService = new PDFLinkService({\r\n eventBus: this.eventBus,\r\n externalLinkTarget: 0,\r\n externalLinkRel: 'noopener noreferrer nofollow'\r\n });\r\n this.pdfViewer = new PDFViewer({\r\n container: this.config.mainContainer,\r\n viewer: this.config.viewerContainer,\r\n eventBus: this.eventBus,\r\n linkService: this.pdfLinkService,\r\n textLayerMode: 1,\r\n // enablePrintAutoRotate: false,\r\n scale: 'auto',\r\n useOnlyCssZoom: false\r\n });\r\n this.pdfLinkService.setViewer(this.pdfViewer);\r\n this.pdfViewer.renderingQueue.onIdle = this.cleanup.bind(this);\r\n //thumbnail view\r\n // if(this.showSidebar){\r\n // this.pdfThumbnailViewer = new PDFThumbnailViewer({\r\n // container: this.$refs.thumbnailView,\r\n // renderingQueue: this.pdfViewer.renderingQueue,\r\n // linkService: this.pdfLinkService\r\n // });\r\n // this.pdfViewer.renderingQueue.setThumbnailViewer(this.pdfThumbnailViewer);\r\n // }\r\n },\r\n\r\n cleanup() {\r\n if (!this.pdfViewer || !this.pdfViewer.pdfDocument) {\r\n return; // run cleanup when document is loaded\r\n }\r\n this.pdfViewer.cleanup();\r\n // if(this.showSidebar){\r\n // this.pdfThumbnailViewer.cleanup();\r\n // }\r\n // We don't want to remove fonts used by active page SVGs.\r\n if (this.pdfViewer.renderer !== 'svg') {\r\n this.pdfViewer.pdfDocument.cleanup();\r\n }\r\n },\r\n\r\n getViewerConfiguration() {\r\n let errorWrapper = null\r\n errorWrapper = {\r\n container: document.getElementById('errorWrapper'),\r\n errorMessage: document.getElementById('errorMessage'),\r\n closeButton: document.getElementById('errorClose'),\r\n errorMoreInfo: document.getElementById('errorMoreInfo'),\r\n moreInfoButton: document.getElementById('errorShowMore'),\r\n lessInfoButton: document.getElementById('errorShowLess'),\r\n }\r\n\r\n return {\r\n appContainer: document.body,\r\n mainContainer: document.getElementById('viewerContainer'),\r\n viewerContainer: document.getElementById('viewer'),\r\n toolbar: {\r\n container: document.getElementById('toolbarViewer'),\r\n numPages: document.getElementById('numPages'),\r\n pageNumber: document.getElementById('pageNumber'),\r\n scaleSelect: document.getElementById('scaleSelect'),\r\n customScaleOption: document.getElementById('customScaleOption'),\r\n previous: document.getElementById('previous'),\r\n next: document.getElementById('next'),\r\n zoomIn: document.getElementById('zoomIn'),\r\n zoomOut: document.getElementById('zoomOut'),\r\n openFile: document.getElementById('openFile'),\r\n print: document.getElementById('print'),\r\n },\r\n secondaryToolbar: {\r\n toolbar: document.getElementById('secondaryToolbar'),\r\n toggleButton: document.getElementById('secondaryToolbarToggle'),\r\n toolbarButtonContainer: document.getElementById(\r\n 'secondaryToolbarButtonContainer'\r\n ),\r\n openFileButton: document.getElementById('secondaryOpenFile'),\r\n printButton: document.getElementById('secondaryPrint'),\r\n documentPropertiesButton: document.getElementById('documentProperties'),\r\n },\r\n sidebar: {\r\n // Divs (and sidebar button)\r\n outerContainer: document.getElementById('outerContainer'),\r\n viewerContainer: document.getElementById('viewerContainer'),\r\n },\r\n sidebarResizer: {\r\n outerContainer: document.getElementById('outerContainer'),\r\n },\r\n documentProperties: {\r\n dialog: document.getElementById('documentPropertiesDialog'),\r\n closeButton: document.getElementById('documentPropertiesClose'),\r\n fields: {\r\n fileName: document.getElementById('fileNameField'),\r\n fileSize: document.getElementById('fileSizeField'),\r\n title: document.getElementById('titleField'),\r\n author: document.getElementById('authorField'),\r\n subject: document.getElementById('subjectField'),\r\n keywords: document.getElementById('keywordsField'),\r\n creationDate: document.getElementById('creationDateField'),\r\n modificationDate: document.getElementById('modificationDateField'),\r\n creator: document.getElementById('creatorField'),\r\n producer: document.getElementById('producerField'),\r\n version: document.getElementById('versionField'),\r\n pageCount: document.getElementById('pageCountField'),\r\n pageSize: document.getElementById('pageSizeField'),\r\n linearized: document.getElementById('linearizedField'),\r\n },\r\n },\r\n signatureProperties: {\r\n dialog: document.getElementById('signaturePropertiesDialog'),\r\n closeButton: document.getElementById('signaturePropertiesClose'),\r\n fields: {\r\n signer: document.getElementById('signerField'),\r\n provider: document.getElementById('providerField'),\r\n hashedValue: document.getElementById('hashedValueField'),\r\n signedValue: document.getElementById('signedValueField'),\r\n signMethod: document.getElementById('signMethodField'),\r\n signVersion: document.getElementById('signVersionField'),\r\n verify: document.getElementById('verifyField'),\r\n\r\n sealID: document.getElementById('sealIDField'),\r\n sealName: document.getElementById('sealNameField'),\r\n sealType: document.getElementById('sealTypeField'),\r\n sealAuthTime: document.getElementById('sealAuthTimeField'),\r\n sealMakeTime: document.getElementById('sealMakeTimeField'),\r\n sealVersion: document.getElementById('sealVersionField'),\r\n },\r\n },\r\n errorWrapper,\r\n printContainer: document.getElementById('printContainer'),\r\n openFileInputName: 'fileInput',\r\n }\r\n },\r\n\r\n _load(parameters) {\r\n let loadingTask = pdfjsLib.getDocument(parameters);\r\n loadingTask.promise.then(pdf => {\r\n this.numPages = pdf.numPages;\r\n //??\r\n this.pdfLinkService.setDocument(pdf, this.url);\r\n //set pdf document\r\n this.pdfViewer.setDocument(pdf);\r\n // if(this.showSidebar){\r\n // this.pdfThumbnailViewer.setDocument(pdf);\r\n // }\r\n let firstPagePromise = this.pdfViewer.firstPagePromise;\r\n let pagesPromise = this.pdfViewer.pagesPromise;\r\n // const pageModePromise = pdf.getPageMode().catch(\r\n // function() { /* Avoid breaking initial rendering; ignoring errors. */ });\r\n // const openActionDestPromise = pdf.getOpenActionDestination().catch(\r\n // function() { /* Avoid breaking initial rendering; ignoring errors. */ });\r\n // eslint-disable-next-line no-unused-vars\r\n firstPagePromise.then(pdfPage => {\r\n this.page = this.pdfViewer.currentPageNumber;\r\n // Make all navigation keys work on document load\r\n this.pdfViewer.focus();\r\n // For documents with different page sizes, once all pages are resolved,\r\n // ensure that the correct location becomes visible on load.\r\n // (To reduce the risk, in very large and/or slow loading documents,\r\n // that the location changes *after* the user has started interacting\r\n // with the viewer, wait for either `pagesPromise` or a timeout.)\r\n Promise.race([pagesPromise, new Promise((resolve) => {\r\n setTimeout(resolve, 10000);\r\n })]).then(() => {\r\n this.pdfViewer.update();\r\n });\r\n this.pdfViewer.currentScaleValue = this.scale;\r\n // this.resetStampsView();\r\n this.viewVisible = true;\r\n // if(this.blockUI){\r\n // this.$blockUI.hide();\r\n // }\r\n this.$emit('viewready', this.pdfViewer);\r\n //\r\n // Promise.all([pageModePromise, openActionDestPromise])\r\n // .then(async ([pageMode, openActionDest]) => {\r\n // this.eventBus.dispatch('documentinit', { source: this, });\r\n // //\r\n // this.page = this.pdfViewer.currentPageNumber;\r\n // // Make all navigation keys work on document load\r\n // this.pdfViewer.focus();\r\n // // For documents with different page sizes, once all pages are resolved,\r\n // // ensure that the correct location becomes visible on load.\r\n // // (To reduce the risk, in very large and/or slow loading documents,\r\n // // that the location changes *after* the user has started interacting\r\n // // with the viewer, wait for either `pagesPromise` or a timeout.)\r\n // await Promise.race([pagesPromise, new Promise((resolve) => {\r\n // setTimeout(resolve, 10000);\r\n // })]);\r\n // this.pdfViewer.currentScaleValue = this.scale;\r\n // this.resetStampsView();\r\n // this.viewVisible = true;\r\n // if(this.blockUI){\r\n // this.$spink.hide();\r\n // }\r\n // this.$emit('viewready', this.pdfViewer);\r\n // }).then(() => {\r\n // // At this point, rendering of the initial page(s) should always have\r\n // // started (and may even have completed).\r\n // // To prevent any future issues, e.g. the document being completely\r\n // // blank on load, always trigger rendering here.\r\n // this.pdfViewer.update();\r\n // });\r\n });\r\n });\r\n },\r\n\r\n scaleChanged() {\r\n this.pdfViewer.currentScaleValue = this.scale;\r\n this.pdfViewer.update();\r\n },\r\n\r\n viewerResize() {\r\n if (!this.pdfViewer.pdfDocument) return;\r\n let currentScaleValue = this.pdfViewer.currentScaleValue;\r\n if (currentScaleValue === 'auto' ||\r\n currentScaleValue === 'page-fit' ||\r\n currentScaleValue === 'page-width') {\r\n // Note: the scale is constant for 'page-actual'.\r\n this.pdfViewer.currentScaleValue = currentScaleValue;\r\n }\r\n this.pdfViewer.update();\r\n // this.resetStampsView();\r\n // this.eventBus.dispatch('stampResize', {source: null});\r\n },\r\n\r\n updateViewerArea(e) {\r\n this.sp = e.location.pageNumber;\r\n },\r\n\r\n viewerPageRendered(evt) {\r\n let pageNumber = evt.pageNumber;\r\n let pageIndex = pageNumber - 1;\r\n let pageView = this.pdfViewer.getPageView(pageIndex);\r\n // Prevent errors in the edge-case where the PDF document is removed *before*\r\n // the 'pagerendered' event handler is invoked.\r\n if (!pageView) {\r\n return;\r\n }\r\n // Use the rendered page to set the corresponding thumbnail image.\r\n if (this.isThumbnailViewVisible) {\r\n let thumbnailView = this.pdfThumbnailViewer.getThumbnail(pageIndex);\r\n thumbnailView.setImage(pageView);\r\n }\r\n },\r\n\r\n viewerPageChanging(evt) {\r\n this.page = evt.pageNumber;\r\n if (this.isThumbnailViewVisible) {\r\n this.pdfThumbnailViewer.scrollThumbnailIntoView(this.page);\r\n }\r\n // this.resetStampsView();\r\n },\r\n viewerScaleChanging() {\r\n this.pdfViewer.update();\r\n // this.resetStampsView();\r\n // this.eventBus.dispatch('stampResize', {source: null});\r\n },\r\n\r\n viewerVisibilityChange() {\r\n if (document.visibilityState === 'visible') {\r\n this.setZoomDisabledTimeout();\r\n }\r\n },\r\n\r\n windowResize() {\r\n this.eventBus.dispatch('resize', {source: window,})\r\n },\r\n\r\n setZoomDisabledTimeout() {\r\n if (this.zoomDisabledTimeout) {\r\n clearTimeout(this.zoomDisabledTimeout);\r\n }\r\n this.zoomDisabledTimeout = setTimeout(() => {\r\n this.zoomDisabledTimeout = null;\r\n }, WHEEL_ZOOM_DISABLED_TIMEOUT);\r\n },\r\n\r\n viewerWheel(evt) {\r\n let pdfViewer = this.pdfViewer;\r\n if (evt.ctrlKey || evt.metaKey) {\r\n // Only zoom the pages, not the entire viewer.\r\n evt.preventDefault();\r\n // NOTE: this check must be placed *after* preventDefault.\r\n if (this.zoomDisabledTimeout || document.visibilityState === 'hidden') {\r\n return;\r\n }\r\n let previousScale = pdfViewer.currentScale;\r\n let delta = ui_utils.normalizeWheelEventDelta(evt);\r\n const MOUSE_WHEEL_DELTA_PER_PAGE_SCALE = 3.0;\r\n let ticks = delta * MOUSE_WHEEL_DELTA_PER_PAGE_SCALE;\r\n if (ticks < 0) {\r\n this._zoomOut(-ticks);\r\n } else {\r\n this._zoomIn(ticks);\r\n }\r\n let currentScale = pdfViewer.currentScale;\r\n if (previousScale !== currentScale) {\r\n // After scaling the page via zoomIn/zoomOut, the position of the upper-\r\n // left corner is restored. When the mouse wheel is used, the position\r\n // under the cursor should be restored instead.\r\n let scaleCorrectionFactor = currentScale / previousScale - 1;\r\n let rect = pdfViewer.container.getBoundingClientRect();\r\n let dx = evt.clientX - rect.left;\r\n let dy = evt.clientY - rect.top;\r\n pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor;\r\n pdfViewer.container.scrollTop += dy * scaleCorrectionFactor;\r\n }\r\n } else {\r\n this.setZoomDisabledTimeout();\r\n }\r\n },\r\n\r\n _zoomOut(ticks) {\r\n let newScale = this.pdfViewer.currentScale;\r\n do {\r\n newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2);\r\n newScale = Math.floor(newScale * 10) / 10;\r\n newScale = Math.max(ui_utils.MIN_SCALE, newScale);\r\n } while (--ticks > 0 && newScale > ui_utils.MIN_SCALE);\r\n this.pdfViewer.currentScaleValue = newScale;\r\n this.scale = 'custom';\r\n this.custom = Math.floor(newScale * 100) + '%';\r\n },\r\n _zoomIn(ticks) {\r\n let newScale = this.pdfViewer.currentScale;\r\n do {\r\n newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2);\r\n newScale = Math.ceil(newScale * 10) / 10;\r\n newScale = Math.min(ui_utils.MAX_SCALE, newScale);\r\n } while (--ticks > 0 && newScale < ui_utils.MAX_SCALE);\r\n this.pdfViewer.currentScaleValue = newScale;\r\n this.scale = 'custom';\r\n this.custom = Math.floor(newScale * 100) + '%';\r\n },\r\n zoomOut() {\r\n this._zoomOut();\r\n },\r\n zoomIn() {\r\n this._zoomIn();\r\n },\r\n\r\n nextPage() {\r\n if (this.page < this.numPages) {\r\n this.page++;\r\n this.pdfViewer.currentPageNumber = this.page;\r\n }\r\n },\r\n prevPage() {\r\n if (this.page > 1) {\r\n this.page--;\r\n this.pdfViewer.currentPageNumber = this.page;\r\n }\r\n },\r\n\r\n goPage() {\r\n this.pdfViewer.currentPageLabel = this.page;\r\n },\r\n\r\n webViewerPrint() {\r\n window.print();\r\n }\r\n\r\n },\r\n\r\n}\r\n</script>\r\n<style scoped>\r\n#pageContainer {\r\n margin: auto;\r\n width: 80%;\r\n}\r\n\r\ndiv.page {\r\n display: inline-block;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fa94153c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=fa94153c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fa94153c\",\n null\n \n)\n\nexport default component.exports","import PdfView from './src';\r\n\r\nPdfView.install = Vue => Vue.component(PdfView.name, PdfView);//注册组件\r\n\r\nexport default PdfView\r\n","import OfdView from './ofdView'\r\nimport PdvView from './pdfView'\r\n\r\nconst components = [\r\n OfdView,\r\n PdvView\r\n]\r\n\r\n// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册\r\nconst install = function (Vue) {\r\n\r\n// 判断是否安装\r\n if (install.installed) return\r\n // 遍历注册全局组件\r\n components.map(component => Vue.component(component.name, component))\r\n}\r\n\r\n// 判断是否是直接引入文件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n install(window.Vue)\r\n}\r\n\r\nexport default {\r\n // 导出的对象必须具有 install,才能被 Vue.use() 方法安装\r\n install,\r\n // 以下是具体的组件列表\r\n OfdView,\r\n PdvView\r\n}\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","define","amd","self","this","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","installedModules","__w_pdfjs_require__","moduleId","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_display_utils","addLinkAttributes","getFilenameFromUrl","LinkTarget","loadScript","PDFDateString","RenderingCancelledException","_api","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","version","_util","CMapCompressionType","createObjectURL","createPromiseCapability","createValidAbsoluteUrl","InvalidPDFException","MissingPDFException","OPS","PasswordResponses","PermissionFlag","removeNullCharacters","shadow","UnexpectedResponseException","UNSUPPORTED_FEATURES","Util","VerbosityLevel","_annotation_layer","AnnotationLayer","_api_compatibility","apiCompatibilityParams","_worker_options","GlobalWorkerOptions","_text_layer","renderTextLayer","_svg","SVGGraphics","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","params","PDFNetworkStream","PDFFetchStream","isFetchSupported","isValidFetchUrl","url","deprecated","StatTimer","DOMSVGFactory","DOMCMapReaderFactory","DOMCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","width","height","Error","canvas","document","createElement","context","getContext","reset","canvasAndContext","destroy","constructor","baseUrl","isCompressed","async","compressionType","BINARY","NONE","baseURI","fetch","then","response","ok","statusText","cMapData","Uint8Array","arrayBuffer","stringToBytes","text","catch","reason","Promise","resolve","reject","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","status","responseText","send","assert","svg","createElementNS","setAttribute","type","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","Math","abs","transform","clone","slice","convertToViewportPoint","x","y","applyTransform","convertToViewportRectangle","rect","topLeft","bottomRight","convertToPdfPoint","applyInverseTransform","BaseException","msg","super","SELF","BLANK","PARENT","TOP","link","target","rel","enabled","urlNullRemoved","href","title","onclick","targetStr","anchor","indexOf","query","end","min","substring","lastIndexOf","started","times","time","warn","Date","now","timeEnd","start","outBuf","longest","duration","padEnd","Response","ReadableStream","protocol","URL","ex","src","script","onload","onerror","head","documentElement","appendChild","details","console","log","pdfDateStringRegex","static","input","isString","RegExp","matches","exec","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","UTC","arrayByteLength","arraysToBytes","bytesToString","getVerbosityLevel","info","isArrayBuffer","isArrayEqual","isBool","isEmptyObj","isNum","isSameOrigin","setVerbosityLevel","string32","stringToPDFString","stringToUTF8String","utf8StringToString","unreachable","IsEvalSupportedCached","IsLittleEndianCached","FormatError","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","AbortException","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","level","Number","isInteger","cond","otherUrl","base","origin","e","other","_isValidProtocol","absoluteUrl","obj","prop","configurable","writable","message","code","NullCharactersRegExp","str","replace","bytes","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","chunk","subarray","charCodeAt","arr","byteLength","resultLength","pos","data","itemLength","set","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","rgbBuf","g","b","m1","m2","xt","yt","p1","p2","p3","p4","max","v","transpose","a","first","sqrt","sx","sy","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","every","element","index","capability","isSettled","promise","digits","contentType","forceDataSchema","blob","Blob","ii","b1","b2","b3","d1","d2","d3","d4","process","versions","nw","electron","PDFPageProxy","PDFDocumentProxy","_font_loader","_canvas","_is_node","_message_handler","_metadata","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","createPDFNetworkStream","pdfNetworkStreamFactory","task","PDFDocumentLoadingTask","source","range","rangeTransport","worker","window","pdfBytes","isNaN","location","rangeChunkSize","CMapReaderFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","maxImageSize","disableFontFace","disableRange","disableStream","disableAutoFetch","workerParams","port","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","all","workerId","messageHandler","MessageHandler","postMessageTransfers","transport","WorkerTransport","_transport","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","docBaseUrl","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","abort","pdfInfo","_pdfInfo","numPages","fingerprint","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getOpenActionDestination","openAction","dest","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","getData","getDownloadInfo","downloadInfoCapability","getStats","cleanup","startCleanup","loadingTask","loadingParams","pageIndex","pageInfo","_pageIndex","_pageInfo","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","rotate","userUnit","view","getViewport","getAnnotations","intent","annotationsPromise","annotationsIntent","render","canvasContext","viewport","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","complete","error","renderTasks","internalRenderTask","splice","_tryCleanup","_abortOperatorList","InternalRenderTask","callback","useRequestAnimationFrame","renderTask","transparency","initializeGraphics","operatorListChanged","getOperatorList","opListReadCapability","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","highWaterMark","size","textContent","items","getTextContent","readableStream","pump","reader","read","done","assign","styles","getReader","_destroy","pageCache","waitOn","keys","forEach","force","renderCompleted","cancel","clear","resetStats","some","_startRenderPage","_renderPageChunk","operatorListChunk","args","streamReader","setTimeout","stats","defer","_listeners","_defer","_deferred","postMessage","transfers","cloneValue","cloned","has","transferable","includes","byteOffset","Array","isArray","desc","getOwnPropertyDescriptor","getPrototypeOf","WeakMap","addEventListener","removeEventListener","terminate","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","globalThis","pdfjsWorker","WorkerMessageHandler","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","Worker","terminateEarly","onWorkerError","_setupFakeWorker","supportTransfers","sendTest","testObj","workerHandler","setup","delete","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","page","terminated","cancelAllRequests","sink","getFullReader","evt","onPull","close","enqueue","onCancel","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","exception","updatePassword","exportedData","exportedError","fontRegistry","FontInspector","registerFont","fontAdded","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","builtInCMap","featureId","results","metadata","Metadata","contentDispositionFilename","filename","cleanupSuccessful","_objs","_ensureObj","objId","resolved","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","add","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","addNativeFontFace","nativeFontFace","fonts","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","remove","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","_loadTestFont","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","navigator","userAgent","completeRequest","otherRequest","shift","getLoadTestFont","atob","int32","offset","spliceString","insert","chunk1","chunk2","ctx","called","isFontReady","fillText","getImageData","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","btoa","names","loadedName","div","style","visibility","position","top","left","span","fontFamily","body","removeChild","translatedData","compiledGlyphs","FontFace","mimetype","getPathGenerator","character","cmds","current","js","cmd","compatibilityParams","freeze","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","f","ad_bc","bc_ad","old","prev","pop","angle","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","compileType3Glyph","imgData","j","j0","POINT_TO_PROCESS_LIMIT","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","sum","steps","Int32Array","outlines","pp","coords","p0","step","drawOutline","beginPath","kk","ll","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","composeFn","hasBackdrop","PIXELS_TO_PROCESS","chunkSize","ceil","row","chunkHeight","composeSMask","scaleX","scaleY","isEnabled","composed","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","op","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","depObjId","objsPool","startsWith","endSMaskGroup","endLayout","limit","dashArray","dashPhase","flatness","states","state","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","singularValueDecompose2dScale","getPattern","isPatternFill","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","glyph","scaledX","scaledY","scaledAccentX","scaledAccentY","vmetric","vx","vy","charWidth","restoreNeeded","isSpace","fontChar","accent","remeasure","measuredWidth","measureText","characterScaleX","isInFont","spacingLength","isTextInvisible","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","arguments","makeCssRgb","patternIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","getAxialAlignedBoundingBox","canvasBounds","intersect","floor","imageSmoothingEnabled","mozImageSmoothingEnabled","img","compiled","maskCanvas","positions","images","image","w","h","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","entry","tag","inverse","ShadingIRs","applyBoundingBox","Path2D","region","RadialAxial","fromIR","raw","colorStops","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","c1","c2","c3","tmp","colors","rowSize","x2","y2","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","round","maxY","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","combinesScale","figures","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","event","stream","_processStreamMessage","action","cbSourceName","cbTargetName","_createStreamSink","actionName","handler","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","ready","success","_deleteStreamController","allSettled","_xml_parser","_repair","parser","SimpleXMLParser","xmlDocument","parseFromString","_metadataMap","Map","_parse","codes","chars","rdf","nodeName","toLowerCase","firstChild","nextSibling","hasChildNodes","children","childNodes","jj","trim","getAll","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","ch","isWhitespaceString","XMLParserBase","_resolveEntities","entity","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onError","onEndElement","pi","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","onBeginElement","onText","isEmpty","SimpleDOMNode","nodeValue","parentNode","child","_currentFragment","_stack","_errorCode","node","lastElement","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","_begin","_progressiveDataLength","_loaded","firstReader","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","readers","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","requestsCapability","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","program","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","initSmaskGL","vertexShader","fragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","flush","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","container","_createContainer","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","_createPopup","trigger","popupElement","PopupElement","modificationDate","contents","hideWrapper","popup","className","newWindow","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","hasPopup","alt","dataset","l10nId","l10nArgs","JSON","stringify","hasAppearance","fieldValue","TEXT_ALIGNMENT","multiLine","disabled","readOnly","fieldName","maxLen","maxLength","comb","fieldWidth","combWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlignment","textAlign","direction","fontWeight","fontStyle","buttonValue","selectElement","combo","options","multiSelect","multiple","option","optionElement","displayValue","exportValue","IGNORE_TYPES","parentType","selector","parentId","parentElement","querySelector","parentLeft","parseFloat","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","date","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","lines","split","line","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","lineCoordinates","append","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","file","eventBus","dispatch","_download","downloadData","sortedAnnotations","popupAnnotations","annotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","test","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","tx","_viewport","atan2","fontName","PI","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","right","bottom","_canceled","textDivs","textDivsLength","_renderingDone","findPositiveMin","ts","expand","expanded","expandBounds","divProperties","Float64Array","boxScale","boxes","box","x1New","x2New","expandBoundsLTR","fakeBoundary","Infinity","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","_processItems","styleCache","len","mozOpaque","textItems","textStyles","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","padding","SVG_DEFAULTS","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","Buffer","from","output","maxBlockLength","deflateBlocks","idat","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListElement","fn","pf","toFixed","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","svgElement","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","shadingId","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","stop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","_network_utils","fs","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","parse","host","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","_setReadableStream","BaseRangeReader","createRequestOptions","headers","auth","hostname","method","handleResponse","statusCode","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","TextDecoder","fatal","decode","err","contentDispositionStr","match","iter","quot","part","parts","quotindex","extvalue","encodingend","langvalue","charset","hex","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","array","NetworkManager","getXhr","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhrId","pendingRequest","setRequestHeader","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","hasPendingRequests","getRequestXhr","isPendingRequest","abortAllRequests","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","isValidRotation","isValidScrollMode","isValidSpreadMode","isPortraitOrientation","clamp","getPDFFileNameFromURL","noContextMenuHandler","parseQueryString","backtrackBeforeAllVisibleElements","getVisibleElements","roundToDivide","getPageSizeInches","approximateFraction","getOutputScale","scrollIntoView","watchScroll","binarySearchFirstItem","normalizeWheelEventDelta","waitOnEventOrTimeout","moveToEndOfArray","WaitOnType","animationStarted","ProgressBar","EventBus","NullL10n","SpreadMode","ScrollMode","TextLayerMode","RendererType","PresentationModeState","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","MAX_SCALE","MIN_SCALE","DEFAULT_SCALE","DEFAULT_SCALE_VALUE","CSS_UNITS","AutoPrintRegExp","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","ODD","EVEN","formatL10nValue","fallback","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","scaled","spot","skipOverflowHiddenElements","parent","offsetParent","offsetTop","clientTop","offsetLeft","clientLeft","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflow","_scaleY","_scaleX","scrollLeft","scrollTop","viewAreaElement","debounceScroll","rAF","currentX","lastX","currentY","lastY","down","_eventHandler","param","condition","minIndex","maxIndex","currentIndex","currentItem","xinv","x_","changeOrientation","views","elt","pageTop","scrollEl","sortByVisibility","horizontal","isElementBottomAfterViewTop","elementBottom","isElementRightAfterViewLeft","elementRight","visible","numViews","firstVisibleElementInd","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","percent","last","pc","preventDefault","isDataSchema","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","delta","deltaX","deltaY","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","deltaMode","values","EVENT","TIMEOUT","delay","_off","eventHandler","_on","timeoutHandler","eventName","external","off","eventListeners","externalListeners","units","bar","_updateBar","_indeterminate","progressSize","_percent","val","setWidth","viewer","scrollbarWidth","offsetWidth","hide","show","moved","write","_annotation_layer_builder","AnnotationLayerBuilder","DefaultAnnotationLayerFactory","_text_layer_builder","DefaultTextLayerFactory","TextLayerBuilder","_ui_utils","_pdf_link_service","PDFLinkService","SimpleLinkService","_download_manager","DownloadManager","_genericl10n","GenericL10n","_pdf_find_controller","PDFFindController","_pdf_history","PDFHistory","_pdf_page_view","PDFPageView","_pdf_single_page_viewer","PDFSinglePageViewer","_pdf_viewer","PDFViewer","_pdfjsLib","pageDiv","pdfPage","l10n","_cancelled","update","createAnnotationLayerBuilder","pdfjsLib","ignoreDestinationZoom","_ignoreDestinationZoom","pdfDocument","pdfViewer","pdfHistory","_pagesRefCache","setDocument","setViewer","setHistory","pagesCount","currentPageNumber","pagesRotation","goToDestination","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pushCurrentPosition","scrollPageIntoView","destArray","setHash","hash","search","phraseSearch","phrase","zoomArgs","zoom","zoomArg","zoomArgNumber","allowNegativeOffset","pagemode","nameddest","isValidExplicitDestination","back","forward","pageNum","pageRef","refStr","gen","num","isPageVisible","destLength","allowNull","EXPAND_DIVS_TIMEOUT","textLayerDiv","findController","renderingDone","pageIdx","textLayerRenderTask","_onUpdateTextLayerMatches","_bindMouse","_finishRendering","endOfContent","numTextDivs","textLayerFrag","createDocumentFragment","_updateMatches","setTextContentStream","setTextContent","_convertMatches","matchesLength","iIndex","queryLen","mm","matchIdx","divIdx","_renderMatches","isSelectedPage","selected","selectedMatchIdx","highlightAll","prevEnd","infinity","appendTextToDiv","fromOffset","toOffset","i0","i1","isSelected","highlightSuffix","scrollMatchIntoView","matchIndex","n0","n1","clearedUntilDivIdx","highlightMatches","pageMatches","pageMatchesLength","expandDivsTimer","adjustTop","getPropertyValue","divBounds","getBoundingClientRect","pageY","createTextLayerBuilder","_viewer_compatibility","DISABLE_CREATE_OBJECT_URL","viewerCompatibilityParams","disableCreateObjectURL","download","blobUrl","click","downloadUrl","msSaveBlob","platform","maxTouchPoints","isAndroid","isIE","isIOS","isIOSChrome","maxCanvasPixels","webL10n","lang","_lang","_ready","setLanguage","getLanguage","getDirection","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","getL10nResourceLinks","querySelectorAll","getL10nDictionary","innerHTML","getTranslatableChildren","getL10nAttributes","getAttribute","xhrLoadText","onSuccess","onFailure","overrideMimeType","ontimeout","parseResource","successCallback","failureCallback","baseURL","evalString","parseProperties","parsedPropertiesCallback","dictionary","reBlank","reComment","reSection","reImport","reSplit","parseRawLines","rawText","extendedSyntax","parsedRawLinesCallback","entries","currentLang","genericLang","skipLang","nextEntry","loadImport","loadLocale","langLinks","langCount","onResourceLoaded","gResourceCount","resource","L10nResourceLink","load","dict","locales","default_locale","defaultLocale","anyCaseLang","getPluralRules","locales2rules","isIn","isBetween","pluralRules","getL10nData","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","matched_text","arg","translateElement","getChildElementCount","nodeType","textNode","insertBefore","childElementCount","translateFragment","elementCount","plural","_pluralRules","fallbackString","getText","rtlList","shortCode","getReadyState","once","FindState","_pdf_find_utils","FOUND","NOT_FOUND","PENDING","FIND_TIMEOUT","MATCH_SCROLL_OFFSET_TOP","MATCH_SCROLL_OFFSET_LEFT","CHARACTERS_TO_NORMALIZE","normalizationRegex","normalize","_linkService","_eventBus","_reset","_onFindBarClose","_highlightMatches","_pageMatches","_pageMatchesLength","_selected","_state","_pdfDocument","_firstPageCapability","executeCommand","_shouldDirtyMatch","_dirtyMatch","_updateUIState","_extractText","findbarClosed","pendingTimeout","_findTimeout","_nextMatch","_updateAllPages","_scrollMatches","_offset","wrapped","_extractTextPromises","_pageContents","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","_query","_rawQuery","_normalizedQuery","_prepareMatches","matchesWithLength","isSubTerm","currentElem","nextElem","skipped","prevElem","matchLength","_isEntireWord","startIdx","getCharacterType","endIdx","_calculatePhraseMatch","pageContent","entireWord","_calculateWordMatch","queryArray","subquery","subqueryLen","_calculateMatch","caseSensitive","_updatePage","_nextPageMatch","pageMatchesCount","_updateUIResultsCount","extractTextCapability","previous","findPrevious","currentPageIndex","numPageMatches","_updateMatch","_advanceOffsetPage","_matchesReady","numMatches","previousPage","_requestMatchesCount","matchesCount","CharacterType","SPACE","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","isAlphabeticalScript","charCode","isAscii","isAsciiAlpha","isAsciiDigit","isAsciiSpace","isHan","isKatakana","isHiragana","isHalfwidthKatakana","isThai","isDestHashesEqual","isDestArraysEqual","HASH_CHANGE_TIMEOUT","POSITION_UPDATED_THRESHOLD","UPDATE_VIEWAREA_TIMEOUT","getCurrentHash","_initialized","_fingerprint","_boundEvents","_isViewerInPresentationMode","active","switchInProgress","_isPagesLoaded","onPagesLoaded","initialize","resetHistory","updateUrl","reInitialized","_updateUrl","_bindEvents","history","_popStateInProgress","_blockHashChange","_currentHash","_numPositionUpdates","_uid","_maxUid","_destination","_position","_isValidState","_parseCurrentHash","_pushOrReplaceState","_updateInternalState","uid","_initialRotation","_initialBookmark","_pageHide","_unbindEvents","_updateViewareaTimeout","forceReplace","_tryPushCurrentPosition","popStateInProgress","initialBookmark","initialRotation","shouldReplace","newState","newUrl","replaceState","pushState","temporary","checkReload","perfEntry","performance","getEntriesByType","removeTemporary","checkNameddest","_updateViewarea","pdfOpenParams","_popState","newHash","hashChanged","updateViewarea","popState","pageHide","destHash","pushHash","firstDest","secondDest","isEntryEqual","_pdf_rendering_queue","MAX_CANVAS_PIXELS","defaultViewport","renderingId","pageLabel","pdfPageRotate","hasRestrictedScaling","textLayerMode","useOnlyCssZoom","renderingQueue","textLayerFactory","annotationLayerFactory","renderer","paintTask","paintedViewportMap","renderingState","RenderingStates","INITIAL","resume","annotationLayer","textLayer","zoomLayer","setPdfPage","totalRotation","_resetZoomLayer","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotations","cancelRendering","currentZoomLayerNode","currentAnnotationNode","loadingIconDiv","cssTransform","timestamp","isScalingRestricted","outputScale","redrawAnnotations","relativeRotation","absRotation","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","getPagePoint","draw","FINISHED","RUNNING","canvasWrapper","renderContinueCallback","cont","isHighestPriority","PAUSED","finishPaintTask","paintOnSvg","paintOnCanvas","onRenderContinue","resultPromise","renderCapability","isCanvasHidden","showCanvas","actualSizeViewport","pixelsInViewport","maxScale","sfx","sfy","renderContext","ensureNotCancelled","svgGfx","setPageLabel","label","PDFRenderingQueue","CLEANUP_TIMEOUT","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","setThumbnailViewer","renderHighestPriority","currentlyVisiblePages","forceRendering","getHighestPriority","scrolledDown","visibleViews","numVisible","isViewFinished","nextPageIndex","previousPageIndex","renderView","_base_viewer","BaseViewer","_ensurePageViewVisible","_viewerElement","_shadowViewer","_resetView","_previousPageNumber","_updateScrollDown","pageView","_pages","_currentPageNumber","previousPageView","viewerNodes","_scrollUpdate","_scrollIntoView","pageSpot","_setCurrentPageNumber","scroll","_getVisiblePages","_getCurrentVisiblePage","_updateHelper","visiblePages","_isScrollModeHorizontal","_updateScrollMode","_updateSpreadMode","DEFAULT_CACHE_SIZE","PDFPageViewBuffer","resize","newSize","pagesToKeep","pageIdsToKeep","Set","iMax","isSameScale","oldScale","newScale","_name","firstElementChild","removePageBorders","enablePrintAutoRotate","defaultRenderingQueue","presentationModeState","_onBeforeDraw","_onAfterDraw","getPageView","pageViewsReady","_pagesCapability","settled","resetCurrentPageView","_resetCurrentPageView","_pageLabels","currentPageLabel","currentScale","_currentScale","_setScale","currentScaleValue","_currentScaleValue","_pagesRotation","firstPagePromise","onePageRendered","_onePageRenderedCapability","pagesPromise","_onePageRenderedOrForceFetch","_cancelRendering","_buffer","firstPdfPage","firstPageView","_spreadMode","getPagesLeft","setPageLabels","labels","_location","_pagesRequests","_scrollMode","_setScaleUpdatePages","newValue","noScroll","preset","presetValue","isInPresentationMode","isChangingPresentationMode","currentPage","noPadding","hPadding","vPadding","pageWidthScale","pageHeightScale","horizontalScale","pageWidth","pageHeight","boundingRect","_updateLocation","firstPage","normalizedScaleValue","currentPageView","intLeft","intTop","numVisiblePages","newCacheSize","containsElement","contains","focus","isHorizontalScrollbarEnabled","isVerticalScrollbarEnabled","_ensurePdfPageLoaded","scrollAhead","hasEqualPageSizes","getPagesOverview","pagesOverview","isFirstPagePortrait","scrollMode","toggle","spreadMode","pages","parity","spread","currentId","stillFullyVisible","default","locals","listToStyles","newStyles","css","sourceMap","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","replacement","filter","Boolean","cssText","cssNode","ssrId","sources","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","definition","_vm","_self","_c","_m","staticRenderFns","attrs","staticClass","_v","staticStyle","props","watch","config","mounted","getViewerConfiguration","Image","margin","draggable","loadingContainer","$emit","methods","errorWrapper","getElementById","errorMessage","closeButton","errorMoreInfo","moreInfoButton","lessInfoButton","appContainer","mainContainer","viewerContainer","toolbar","scaleSelect","customScaleOption","next","zoomIn","zoomOut","openFile","print","secondaryToolbar","toggleButton","toolbarButtonContainer","openFileButton","printButton","documentPropertiesButton","sidebar","outerContainer","sidebarResizer","documentProperties","dialog","fields","fileName","fileSize","author","subject","keywords","creationDate","creator","producer","pageCount","pageSize","linearized","signatureProperties","signer","provider","hashedValue","signedValue","signMethod","signVersion","verify","sealID","sealName","sealType","sealAuthTime","sealMakeTime","sealVersion","printContainer","openFileInputName","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","component","Vue","prevPage","nextPage","directives","rawName","expression","domProps","$event","keyCode","goPage","composing","_s","_e","$$selectedVal","_value","scaleChanged","custom","DEFAULT_SCALE_DELTA","WHEEL_ZOOM_DISABLED_TIMEOUT","required","newPage","oldPage","APIS","pdfLinkService","zoomDisabledTimeout","sidebaropen","isThumbnailViewVisible","viewVisible","dragging","dist","sp","overlay","printProgress","beforeUnmount","viewerResize","viewerPageRendered","viewerPageChanging","viewerScaleChanging","updateViewerArea","viewerVisibilityChange","windowResize","viewerWheel","_readPreferences","it","_initializeViewerComponents","beforePrint","afterPrint","windowBeforePrint","windowAfterPrint","_load","pdf","race","thumbnailView","getThumbnail","setImage","scrollThumbnailIntoView","visibilityState","setZoomDisabledTimeout","ctrlKey","metaKey","previousScale","MOUSE_WHEEL_DELTA_PER_PAGE_SCALE","ticks","_zoomOut","_zoomIn","scaleCorrectionFactor","dx","clientX","dy","clientY","webViewerPrint","components","install","installed","OfdView","PdvView"],"sourceRoot":""}
|