{"version":3,"file":"index-06ae1fe4.js","sources":["../../../node_modules/warning/warning.js","../../../__vite-browser-external","../../../node_modules/pdfjs-dist/build/pdf.js","../../../node_modules/react-pdf/dist/esm/pdfjs.js","../../../node_modules/react-pdf/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/react-pdf/node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-pdf/node_modules/prop-types/index.js","../../../node_modules/make-event-props/dist/esm/index.js","../../../node_modules/make-cancellable-promise/dist/esm/index.js","../../../node_modules/react-pdf/node_modules/clsx/dist/clsx.mjs","../../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../node_modules/dequal/dist/index.mjs","../../../node_modules/react-pdf/dist/esm/DocumentContext.js","../../../node_modules/react-pdf/dist/esm/Message.js","../../../node_modules/react-pdf/dist/esm/LinkService.js","../../../node_modules/react-pdf/dist/esm/PasswordResponses.js","../../../node_modules/react-pdf/dist/esm/shared/utils.js","../../../node_modules/react-pdf/dist/esm/shared/hooks/useResolver.js","../../../node_modules/react-pdf/dist/esm/shared/propTypes.js","../../../node_modules/react-pdf/dist/esm/Document.js","../../../node_modules/react-pdf/dist/esm/OutlineContext.js","../../../node_modules/react-pdf/dist/esm/Ref.js","../../../node_modules/react-pdf/dist/esm/shared/hooks/useCachedValue.js","../../../node_modules/react-pdf/dist/esm/shared/hooks/useDocumentContext.js","../../../node_modules/react-pdf/dist/esm/shared/hooks/useOutlineContext.js","../../../node_modules/react-pdf/dist/esm/OutlineItem.js","../../../node_modules/react-pdf/dist/esm/Outline.js","../../../node_modules/merge-refs/dist/esm/index.js","../../../node_modules/react-pdf/dist/esm/PageContext.js","../../../node_modules/react-pdf/dist/esm/shared/constants.js","../../../node_modules/react-pdf/dist/esm/shared/structTreeUtils.js","../../../node_modules/react-pdf/dist/esm/StructTreeItem.js","../../../node_modules/react-pdf/dist/esm/shared/hooks/usePageContext.js","../../../node_modules/react-pdf/dist/esm/StructTree.js","../../../node_modules/react-pdf/dist/esm/Page/PageCanvas.js","../../../node_modules/react-pdf/dist/esm/Page/PageSVG.js","../../../node_modules/react-pdf/dist/esm/Page/TextLayer.js","../../../node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../../../node_modules/react-pdf/dist/esm/Page.js","../../../node_modules/react-pdf/dist/esm/Thumbnail.js","../../../node_modules/react-pdf/dist/esm/index.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","export default {}","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 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 = root.pdfjsLib = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], () => { return (root.pdfjsLib = factory()); });\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PromiseCapability = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.MAX_IMAGE_SIZE_TO_CACHE = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationReplyType = exports.AnnotationPrefix = exports.AnnotationMode = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.getModificationDate = getModificationDate;\nexports.getUuid = getUuid;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isNodeJS = void 0;\nexports.normalizeUnicode = normalizeUnicode;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\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 MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nexports.MAX_IMAGE_SIZE_TO_CACHE = MAX_IMAGE_SIZE_TO_CACHE;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nexports.BASELINE_FACTOR = BASELINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n STAMP: 13,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\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 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 AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1\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 beginAnnotation: 80,\n endAnnotation: 81,\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 PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nexports.BaseException = BaseException;\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nexports.PasswordException = PasswordException;\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nexports.UnknownErrorException = UnknownErrorException;\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nexports.InvalidPDFException = InvalidPDFException;\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nexports.MissingPDFException = MissingPDFException;\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nexports.UnexpectedResponseException = UnexpectedResponseException;\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nexports.FormatError = FormatError;\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nexports.AbortException = AbortException;\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\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 return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\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}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator === \"undefined\") {\n return shadow(this, \"platform\", {\n isWin: false,\n isMac: false\n });\n }\n return shadow(this, \"platform\", {\n isWin: navigator.platform.includes(\"Win\"),\n isMac: navigator.platform.includes(\"Mac\")\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\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 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 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 static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.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 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 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) ** 2 - 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 static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\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];\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v?.byteLength !== undefined;\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nclass PromiseCapability {\n #settled = false;\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = data => {\n this.#settled = true;\n resolve(data);\n };\n this.reject = reason => {\n this.#settled = true;\n reject(reason);\n };\n });\n }\n get settled() {\n return this.#settled;\n }\n}\nexports.PromiseCapability = PromiseCapability;\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n });\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultFilterFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _displaySvg.SVGGraphics;\n }\n}));\nexports.build = void 0;\nexports.getDocument = getDocument;\nexports.version = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _font_loader = __w_pdfjs_require__(9);\nvar _displayNode_utils = __w_pdfjs_require__(10);\nvar _canvas = __w_pdfjs_require__(11);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _message_handler = __w_pdfjs_require__(15);\nvar _metadata = __w_pdfjs_require__(16);\nvar _optional_content_config = __w_pdfjs_require__(17);\nvar _transport_stream = __w_pdfjs_require__(18);\nvar _displayFetch_stream = __w_pdfjs_require__(19);\nvar _displayNetwork = __w_pdfjs_require__(22);\nvar _displayNode_stream = __w_pdfjs_require__(23);\nvar _displaySvg = __w_pdfjs_require__(24);\nvar _xfa_text = __w_pdfjs_require__(25);\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = _util.isNodeJS ? _displayNode_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nconst DefaultCMapReaderFactory = _util.isNodeJS ? _displayNode_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nconst DefaultFilterFactory = _util.isNodeJS ? _displayNode_utils.NodeFilterFactory : _display_utils.DOMFilterFactory;\nexports.DefaultFilterFactory = DefaultFilterFactory;\nconst DefaultStandardFontDataFactory = _util.isNodeJS ? _displayNode_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\nfunction getDocument(src) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n src = {\n data: src\n };\n }\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !_util.isNodeJS;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : _util.isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !_util.isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI);\n const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({\n ownerDocument\n });\n const filterFactory = src.filterFactory || new DefaultFilterFactory({\n docId,\n ownerDocument\n });\n const styleElement = null;\n (0, _util.setVerbosityLevel)(verbosity);\n const transportFactory = {\n canvasFactory,\n filterFactory\n };\n if (!useWorkerFetch) {\n transportFactory.cMapReaderFactory = new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n });\n transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n });\n }\n if (!worker) {\n const workerParams = {\n verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const fetchDocParams = {\n docId,\n apiVersion: '3.11.174',\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n ignoreErrors,\n isEvalSupported,\n disableFontFace,\n fontExtraProperties,\n enableXfa,\n ownerDocument,\n disableAutoFetch,\n pdfBug,\n styleElement\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length,\n initialData: rangeTransport.initialData,\n progressiveDone: rangeTransport.progressiveDone,\n contentDispositionFilename: rangeTransport.contentDispositionFilename,\n disableRange,\n disableStream\n }, rangeTransport);\n } else if (!data) {\n const createPDFNetworkStream = params => {\n if (_util.isNodeJS) {\n return new _displayNode_stream.PDFNodeStream(params);\n }\n return (0, _display_utils.isValidFetchUrl)(params.url) ? new _displayFetch_stream.PDFFetchStream(params) : new _displayNetwork.PDFNetworkStream(params);\n };\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\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 const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nasync function _fetchDocument(worker, source) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", source, source.data ? [source.data.buffer] : null);\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (_util.isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (_util.isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return (0, _util.stringToBytes)(val);\n }\n if (typeof val === \"object\" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = new _util.PromiseCapability();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = new _util.PromiseCapability();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\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 onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"getJavaScript\", {\n value: () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getJavaScript`, \" + \"please use `PDFDocumentProxy.getJSActions` instead.\");\n return this.getJSActions().then(js => {\n if (!js) {\n return js;\n }\n const jsArr = [];\n for (const name in js) {\n jsArr.push(...js[name]);\n }\n return jsArr;\n });\n }\n });\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nexports.PDFDocumentProxy = PDFDocumentProxy;\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\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._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\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 getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = new _util.PromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = new _util.PromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\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 Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new _display_utils.StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\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 intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable\n }) {\n const {\n map,\n transfers\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map\n }, transfers);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\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 pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof _display_utils.RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nexports.PDFPageProxy = PDFPageProxy;\nclass LoopbackPort {\n #listeners = new Set();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n terminate() {\n this.#listeners.clear();\n }\n}\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_util.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\nclass PDFWorker {\n static #workerPorts;\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = new _util.PromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n return this._readyCapability.promise;\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\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 this._readyCapability.resolve();\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 destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_util.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n if (_util.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nexports.PDFWorker = PDFWorker;\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = new _util.PromiseCapability();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = _annotation_storage.SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case _util.AnnotationMode.ENABLE:\n break;\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,\n annotationStorageSerializable\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = new _util.PromiseCapability();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n this._networkStream?.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\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 this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\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 (0, _util.assert)(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = new _util.PromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\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 const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = new _util.PromiseCapability();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\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 return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n if (this.commonObjs.has(id)) {\n return;\n }\n switch (type) {\n case \"Font\":\n const params = this._params;\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 const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n inspectFont\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 this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData) {\n let length;\n if (imageData.bitmap) {\n const {\n width,\n height\n } = imageData;\n length = width * height * 4;\n } else {\n length = imageData.data?.length || 0;\n }\n if (length > _util.MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.cMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.standardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n (0, _util.warn)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfers\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfers).finally(() => {\n this.annotationStorage.resetModified();\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 const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\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 const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n }\n get loadingParams() {\n const {\n disableAutoFetch,\n enableXfa\n } = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch,\n enableXfa\n });\n }\n}\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n capability: new _util.PromiseCapability(),\n data: null\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nexports.RenderTask = RenderTask;\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\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 = new _util.PromiseCapability();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(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 get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.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 InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && 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 const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = '3.11.174';\nexports.version = version;\nconst build = 'ce8716743';\nexports.build = build;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SerializableEmpty = exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfers: undefined\n});\nexports.SerializableEmpty = SerializableEmpty;\nclass AnnotationStorage {\n #modified = false;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new _murmurhash.MurmurHash3_64(),\n transfers = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfers.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfers\n } : SerializableEmpty;\n }\n}\nexports.AnnotationStorage = AnnotationStorage;\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfers\n } = parent.serializable;\n const clone = structuredClone(map, transfers ? {\n transfer: transfers\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfers\n };\n }\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n}\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\nvar _tools = __w_pdfjs_require__(5);\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass AnnotationEditor {\n #altText = \"\";\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenClicked = false;\n #isEditing = false;\n #isInEditMode = false;\n _initialOptions = Object.create(null);\n _uiManager = null;\n _focusEventsAllowed = true;\n _l10nPromise = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n static SMALL_EDITOR_SIZE = 0;\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, options = null) {\n AnnotationEditor._l10nPromise ||= new Map([\"editor_alt_text_button_label\", \"editor_alt_text_edit_button_label\", \"editor_alt_text_decorative_tooltip\"].map(str => [str, l10n.get(str)]));\n if (options?.strings) {\n for (const str of options.strings) {\n AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n }\n }\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n (0, _util.unreachable)(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n #getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n fixAndSetPosition() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n switch (this.rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n const scaledWidth = pageWidth * parentScale;\n const scaledHeight = pageHeight * parentScale;\n return _util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n this.#altTextButton?.classList.toggle(\"small\", width < AnnotationEditor.SMALL_EDITOR_SIZE || height < AnnotationEditor.SMALL_EDITOR_SIZE);\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"];\n if (!this._willKeepAspectRatio) {\n classes.push(\"topMiddle\", \"middleRight\", \"bottomMiddle\", \"middleLeft\");\n }\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name));\n div.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const pointerMoveOptions = {\n passive: true,\n capture: true\n };\n window.addEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n this._isDraggable = savedDraggable;\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n window.removeEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n async addAltTextButton() {\n if (this.#altTextButton) {\n return;\n }\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n const msg = await AnnotationEditor._l10nPromise.get(\"editor_alt_text_button_label\");\n altText.textContent = msg;\n altText.setAttribute(\"aria-label\", msg);\n altText.tabIndex = \"0\";\n altText.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n altText.addEventListener(\"click\", event => {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }, {\n capture: true\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }\n });\n this.#setAltTextButtonState();\n this.div.append(altText);\n if (!AnnotationEditor.SMALL_EDITOR_SIZE) {\n const PERCENT = 40;\n AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(128, Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100)));\n }\n }\n async #setAltTextButtonState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n AnnotationEditor._l10nPromise.get(\"editor_alt_text_edit_button_label\").then(msg => {\n button.setAttribute(\"aria-label\", msg);\n });\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n const id = tooltip.id = `alt-text-tooltip-${this.id}`;\n button.setAttribute(\"aria-describedby\", id);\n const DELAY_TO_SHOW_TOOLTIP = 100;\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"alt_text_tooltip\"\n }\n }\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n });\n button.addEventListener(\"mouseleave\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip?.classList.remove(\"show\");\n });\n }\n button.classList.add(\"done\");\n tooltip.innerText = this.#altTextDecorative ? await AnnotationEditor._l10nPromise.get(\"editor_alt_text_decorative_tooltip\") : this.#altText;\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n get altTextData() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set altTextData({\n altText,\n decorative\n }) {\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n this.#setAltTextButtonState();\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n this.#setUpDragSession(event);\n }\n #setUpDragSession(event) {\n if (!this._isDraggable) {\n return;\n }\n const isSelected = this._uiManager.isSelected(this);\n this._uiManager.setUpDragSession();\n let pointerMoveOptions, pointerMoveCallback;\n if (isSelected) {\n pointerMoveOptions = {\n passive: true,\n capture: true\n };\n pointerMoveCallback = e => {\n const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n const pointerUpCallback = () => {\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n if (isSelected) {\n window.removeEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n moveInDOM() {\n this.parent?.moveEditorInDOM(this);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (this.rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return false;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n this.div?.addEventListener(\"focusout\", this.#boundFocusout);\n }\n serialize(isForCopying = false, context = null) {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n static deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextTooltip = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n }\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus();\n }\n }\n updateParams(type, value) {}\n disableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = true;\n }\n }\n enableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = false;\n }\n }\n enterInEditMode() {}\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n}\nexports.AnnotationEditor = AnnotationEditor;\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex\n };\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = (0, _util.getUuid)();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\");\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return (0, _util.shadow)(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n const response = await fetch(rawData);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n image = await response.blob();\n } else {\n image = data.file = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n return this.getFromUrl(data.url);\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nexports.CommandManager = CommandManager;\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = _util.FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nexports.KeyboardManager = KeyboardManager;\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return _util.Util.makeHexColor(...rgb);\n }\n}\nexports.ColorManager = ColorManager;\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #filterFactory = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #lastActiveElement = null;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #pageColors = null;\n #boundBlur = this.blur.bind(this);\n #boundFocus = this.focus.bind(this);\n #boundCopy = this.copy.bind(this);\n #boundCut = this.cut.bind(this);\n #boundPaste = this.paste.bind(this);\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnScaleChanging = this.onScaleChanging.bind(this);\n #boundOnRotationChanging = this.onRotationChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => {\n const {\n activeElement\n } = document;\n return activeElement && self.#container.contains(activeElement) && self.hasSomethingToControl();\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors) {\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.viewParameters = {\n realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n }\n destroy() {\n this.#removeKeyboardManager();\n this.#removeFocusManager();\n this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager.destroy();\n }\n get hcmFilter() {\n return (0, _util.shadow)(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return (0, _util.shadow)(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n editAltText(editor) {\n this.#altTextManager?.editAltText(this, editor);\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #addFocusManager() {\n window.addEventListener(\"focus\", this.#boundFocus);\n window.addEventListener(\"blur\", this.#boundBlur);\n }\n #removeFocusManager() {\n window.removeEventListener(\"focus\", this.#boundFocus);\n window.removeEventListener(\"blur\", this.#boundBlur);\n }\n blur() {\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n window.addEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #removeKeyboardManager() {\n window.removeEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #addCopyPasteListeners() {\n document.addEventListener(\"copy\", this.#boundCopy);\n document.addEventListener(\"cut\", this.#boundCut);\n document.addEventListener(\"paste\", this.#boundPaste);\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.getId();\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n updateMode(mode, editId = null) {\n if (this.#mode === mode) {\n return;\n }\n this.#mode = mode;\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n return;\n }\n this.setEditingState(true);\n this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId) {\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n break;\n }\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n if (type === _util.AnnotationEditorParamsType.CREATE) {\n this.currentLayer.addNewEditor(type);\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return (0, _util.shadow)(this, \"imageManager\", new ImageManager());\n }\n}\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMFilterFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.noContextMenu = noContextMenu;\nexports.setLayerDimensions = setLayerDimensions;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nexports.PixelsPerInch = PixelsPerInch;\nclass DOMFilterFactory extends _base_factory.BaseFilterFactory {\n #_cache;\n #_defs;\n #docId;\n #document;\n #hcmFilter;\n #hcmKey;\n #hcmUrl;\n #hcmHighlightFilter;\n #hcmHighlightKey;\n #hcmHighlightUrl;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n let tableR, tableG, tableB, key;\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n key = tableR = tableG = tableB = buffer.join(\",\");\n } else {\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n tableR = bufferR.join(\",\");\n tableG = bufferG.join(\",\");\n tableB = bufferB.join(\",\");\n key = `${tableR}${tableG}${tableB}`;\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n if (this.#hcmKey === key) {\n return this.#hcmUrl;\n }\n this.#hcmKey = key;\n this.#hcmUrl = \"none\";\n this.#hcmFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmUrl;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = _util.Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = _util.Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return this.#hcmUrl;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n this.#hcmUrl = `url(#${id})`;\n return this.#hcmUrl;\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n if (this.#hcmHighlightKey === key) {\n return this.#hcmHighlightUrl;\n }\n this.#hcmHighlightKey = key;\n this.#hcmHighlightUrl = \"none\";\n this.#hcmHighlightFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmHighlightUrl;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_highlight_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n this.#hcmHighlightUrl = `url(#${id})`;\n return this.#hcmHighlightUrl;\n }\n destroy(keepHCM = false) {\n if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\nexports.DOMFilterFactory = DOMFilterFactory;\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\nexports.DOMCanvasFactory = DOMCanvasFactory;\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n}\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\nexports.DOMSVGFactory = DOMSVGFactory;\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 %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (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 = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\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 get rawDims() {\n const {\n viewBox\n } = this;\n return (0, _util.shadow)(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\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 convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n}\nexports.PageViewport = PageViewport;\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nexports.RenderingCancelledException = RenderingCancelledException;\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n if (!onlyStripPath) {\n [url] = url.split(/[#?]/, 1);\n }\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\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 if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nexports.StatTimer = StatTimer;\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 {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).append(script);\n });\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nlet pdfDateStringRegex;\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n pdfDateStringRegex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\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 if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nexports.PDFDateString = PDFDateString;\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = _util.FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseFilterFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass BaseFilterFactory {\n constructor() {\n if (this.constructor === BaseFilterFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseFilterFactory.\");\n }\n }\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nexports.BaseFilterFactory = BaseFilterFactory;\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n}\nexports.BaseCanvasFactory = BaseCanvasFactory;\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\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 if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n}\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont(info) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n (0, _util.assert)(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n } catch {\n (0, _util.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n (0, _util.unreachable)(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font.systemFontInfo);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (_util.isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = 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 return (0, _util.shadow)(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, 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 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 let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\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 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\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 div = this._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 for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nexports.FontLoader = FontLoader;\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeFilterFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\n;\n;\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n};\nclass NodeFilterFactory extends _base_factory.BaseFilterFactory {}\nexports.NodeFilterFactory = NodeFilterFactory;\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n}\nexports.NodeCanvasFactory = NodeCanvasFactory;\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n}\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _pattern_helper = __w_pdfjs_require__(12);\nvar _image_utils = __w_pdfjs_require__(13);\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\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.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\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 pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\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 pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\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 path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\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.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\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 for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\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 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 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 for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\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 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.convertBlackAndWhiteToRGBA)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = 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 if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\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 const 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}\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const 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}\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n const composeFn = subtype === \"Luminosity\" ? composeSMaskLuminosity : composeSMaskAlpha;\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n return false;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\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.filterFactory = filterFactory;\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.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\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 if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.ctx.restore();\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 endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let 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 const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\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 current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\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 if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n 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() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\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 this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\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 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\n x,\n y,\n fontSize,\n addToPath\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 const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\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 glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * 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 if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const 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 if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n });\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n setFillRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(...matrix);\n }\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\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 currentCtx.save();\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 }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let 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 this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nexports.CanvasGraphics = CanvasGraphics;\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\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}\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\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 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 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 const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\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 if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\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 let k;\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 xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\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}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let 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 break;\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 break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let 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 for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\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}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(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.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const 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 case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA;\nexports.convertToRGBA = convertToRGBA;\nexports.grayToRGBA = grayToRGBA;\nvar _util = __w_pdfjs_require__(1);\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case _util.ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (_util.FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (_util.FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\nvar _util = __w_pdfjs_require__(1);\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};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\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.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\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 return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\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 if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = new _util.PromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.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 return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = new _util.PromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = new _util.PromiseCapability();\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 = new _util.PromiseCapability();\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 #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = new _util.PromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\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 error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\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 sinkCapability: new _util.PromiseCapability(),\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 #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.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 case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.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 streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #visible = true;\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n get visible() {\n return this.#visible;\n }\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data) {\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new _murmurhash.MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass PDFDataTransportStream {\n constructor({\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null,\n disableRange = false,\n disableStream = false\n }, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n this._pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (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 !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\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, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nexports.PDFDataTransportStream = PDFDataTransportStream;\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\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 _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\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 if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n (0, _util.warn)(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\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 get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\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 getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFFetchStream = PDFFetchStream;\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 = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\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 this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const getResponseHeader = name => {\n return response.headers.get(name);\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 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 get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\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 = new _util.PromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\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 this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\nvar _util = __w_pdfjs_require__(1);\nvar _content_disposition = __w_pdfjs_require__(21);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\nvar _util = __w_pdfjs_require__(1);\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\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 tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\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 function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return (0, _util.stringToBytes)(data).buffer;\n}\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\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 for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n xhr.setRequestHeader(property, value);\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 xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\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 onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = getArrayBuffer(xhr);\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 {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\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 _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\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 getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNetworkStream = PDFNetworkStream;\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 = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\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 _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\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 if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\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 if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n const url = require(\"url\");\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\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 get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\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 getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNodeStream = PDFNodeStream;\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 if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n this._headersCapability = new _util.PromiseCapability();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\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 this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\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 = new _util.PromiseCapability();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\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 this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\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}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\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 this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\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 this._setReadableStream(response);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\nvar _display_utils = __w_pdfjs_require__(6);\nvar _util = __w_pdfjs_require__(1);\n;\nconst SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n};\nconst XML_NS = \"http://www.w3.org/XML/1998/namespace\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\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 return buffer;\n};\nconst 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 for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n c = c & 1 ? 0xedb88320 ^ c >> 1 & 0x7fffffff : c >> 1 & 0x7fffffff;\n }\n crcTable[i] = c;\n }\n function crc32(data, start, end) {\n let crc = -1;\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 return crc ^ -1;\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 function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!_util.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n try {\n const input = parseInt(process.versions.node) >= 8 ? literals : Buffer.from(literals);\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\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 return deflateSyncUncompressed(literals);\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 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 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 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 switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\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 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\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 createObjectURL(data, \"image/png\", forceDataSchema);\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}();\nclass 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 clone() {\n return Object.create(this);\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nfunction opListToTree(opList) {\n let opTree = [];\n const tmp = [];\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.at(-1).items;\n continue;\n }\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n}\nfunction pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n}\nfunction 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 return `scale(${pf(m[0])} ${pf(m[3])})`;\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 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n}\nlet clipCount = 0;\nlet maskCount = 0;\nlet shadingCount = 0;\nclass SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\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 for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\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 restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\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 return Promise.all(this.current.dependencies);\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 getSVG(operatorList, viewport) {\n this.viewport = viewport;\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\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 return opListToTree(opList);\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 switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\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.hypot(a, 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.append(current.tspan);\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 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 showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\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 for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\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 if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {}\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n }\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\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 if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\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 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 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\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.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n this._ensureTransformGroup().append(current.txtElement);\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\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 if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\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 if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\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 endText() {\n const current = this.current;\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n shadingFill(args) {\n const {\n width,\n height\n } = this.viewport;\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\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 if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().append(rect);\n }\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\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 const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\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 if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\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.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\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 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 default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\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.append(stop);\n }\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\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 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 case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\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 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 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 case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n d = d.join(\" \");\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 this._ensureTransformGroup().append(current.path);\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 endPath() {\n const current = this.current;\n current.path = null;\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\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 if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n if (current.activeClipUrl) {\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n clip(type) {\n this.pendingClip = type;\n }\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n fill() {\n const current = this.current;\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 stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\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 eoFill() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fill();\n }\n fillStroke() {\n this.stroke();\n this.fill();\n }\n eoFillStroke() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fillStroke();\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\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 this._ensureTransformGroup().append(rect);\n }\n paintImageXObject(objId) {\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\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 if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n paintImageMaskXObject(img) {\n const imgData = this.getObject(img.data, img);\n if (imgData.bitmap) {\n (0, _util.warn)(\"paintImageMaskXObject: ImageBitmap support is not implemented, \" + \"ensure that the `isOffscreenCanvasSupported` API parameter is disabled.\");\n return;\n }\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.append(mask);\n this._ensureTransformGroup().append(rect);\n this.paintInlineImageXObject(imgData, mask);\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 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 paintFormXObjectEnd() {}\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\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.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\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 if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n return this.tgrp;\n }\n}\nexports.SVGGraphics = SVGGraphics;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\nexports.updateTextLayer = updateTextLayer;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nfunction getCtx(size, isOffscreenCanvasSupported) {\n let ctx;\n if (isOffscreenCanvasSupported && _util.FeatureTest.isOffscreenCanvasSupported) {\n ctx = new OffscreenCanvas(size, size).getContext(\"2d\", {\n alpha: false\n });\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = size;\n ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n return ctx;\n}\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\nfunction appendText(task, geom, styles) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n task._textDivs.push(textDiv);\n const tx = _util.Util.transform(task._transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, task._isOffscreenCanvasSupported);\n let left, top;\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 const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (task._container === task._rootContainer) {\n divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n divStyle.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._isReadableStream) {\n task._layoutText(textDiv);\n }\n}\nfunction layout(params) {\n const {\n div,\n scale,\n properties,\n ctx,\n prevFontSize,\n prevFontFamily\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n ctx.font = `${fontSize * scale}px ${fontFamily}`;\n params.prevFontSize = fontSize;\n params.prevFontFamily = fontFamily;\n }\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * scale / width})`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n}\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n capability.resolve();\n return;\n }\n if (!task._isReadableStream) {\n for (const textDiv of textDivs) {\n task._layoutText(textDiv);\n }\n }\n capability.resolve();\n}\nclass TextLayerRenderTask {\n constructor({\n textContentSource,\n container,\n viewport,\n textDivs,\n textDivProperties,\n textContentItemsStr,\n isOffscreenCanvasSupported\n }) {\n this._textContentSource = textContentSource;\n this._isReadableStream = textContentSource instanceof ReadableStream;\n this._container = this._rootContainer = container;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._textDivProperties = textDivProperties || new WeakMap();\n this._canceled = false;\n this._capability = new _util.PromiseCapability();\n this._layoutTextParams = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n properties: null,\n ctx: getCtx(0, isOffscreenCanvasSupported)\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this._pageWidth = pageWidth;\n this._pageHeight = pageHeight;\n (0, _display_utils.setLayerDimensions)(container, viewport);\n this._capability.promise.finally(() => {\n this._layoutTextParams = null;\n }).catch(() => {});\n }\n get promise() {\n return this._capability.promise;\n }\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n this._reader = null;\n }\n this._capability.reject(new _util.AbortException(\"TextLayer task cancelled.\"));\n }\n _processItems(items, styleCache) {\n for (const item of items) {\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this._container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this._container);\n } else if (item.type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(item.str);\n appendText(this, item, styleCache);\n }\n }\n _layoutText(textDiv) {\n const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv);\n this._layoutTextParams.div = textDiv;\n layout(this._layoutTextParams);\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.append(br);\n }\n }\n _render() {\n const capability = new _util.PromiseCapability();\n let styleCache = Object.create(null);\n if (this._isReadableStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentSource.getReader();\n pump();\n } else if (this._textContentSource) {\n const {\n items,\n styles\n } = this._textContentSource;\n this._processItems(items, styles);\n capability.resolve();\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n capability.promise.then(() => {\n styleCache = null;\n render(this);\n }, this._capability.reject);\n }\n}\nexports.TextLayerRenderTask = TextLayerRenderTask;\nfunction renderTextLayer(params) {\n if (!params.textContentSource && (params.textContent || params.textContentStream)) {\n (0, _display_utils.deprecated)(\"The TextLayerRender `textContent`/`textContentStream` parameters \" + \"will be removed in the future, please use `textContentSource` instead.\");\n params.textContentSource = params.textContent || params.textContentStream;\n }\n const {\n container,\n viewport\n } = params;\n const style = getComputedStyle(container);\n const visibility = style.getPropertyValue(\"visibility\");\n const scaleFactor = parseFloat(style.getPropertyValue(\"--scale-factor\"));\n if (visibility === \"visible\" && (!scaleFactor || Math.abs(scaleFactor - viewport.scale) > 1e-5)) {\n console.error(\"The `--scale-factor` CSS-variable must be set, \" + \"to the same value as `viewport.scale`, \" + \"either on the `container`-element itself or higher up in the DOM.\");\n }\n const task = new TextLayerRenderTask(params);\n task._render();\n return task;\n}\nfunction updateTextLayer({\n container,\n viewport,\n textDivs,\n textDivProperties,\n isOffscreenCanvasSupported,\n mustRotate = true,\n mustRescale = true\n}) {\n if (mustRotate) {\n (0, _display_utils.setLayerDimensions)(container, {\n rotation: viewport.rotation\n });\n }\n if (mustRescale) {\n const ctx = getCtx(0, isOffscreenCanvasSupported);\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const params = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale,\n properties: null,\n ctx\n };\n for (const div of textDivs) {\n params.properties = textDivProperties.get(div);\n params.div = div;\n layout(params);\n }\n }\n}\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _freetext = __w_pdfjs_require__(28);\nvar _ink = __w_pdfjs_require__(33);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _stamp = __w_pdfjs_require__(34);\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #uiManager;\n static _initialized = false;\n constructor({\n uiManager,\n pageIndex,\n div,\n accessibilityManager,\n annotationLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [_freetext.FreeTextEditor, _ink.InkEditor, _stamp.StampEditor];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n if (mode !== _util.AnnotationEditorType.NONE) {\n this.div.classList.toggle(\"freeTextEditing\", mode === _util.AnnotationEditorType.FREETEXT);\n this.div.classList.toggle(\"inkEditing\", mode === _util.AnnotationEditorType.INK);\n this.div.classList.toggle(\"stampEditing\", mode === _util.AnnotationEditorType.STAMP);\n this.div.hidden = false;\n }\n }\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.#createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n enable() {\n this.div.style.pointerEvents = \"auto\";\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n if (editor.annotationElementId) {\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.style.pointerEvents = \"none\";\n const hiddenAnnotationIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId || editor.serialize() !== null) {\n hiddenAnnotationIds.add(editor.annotationElementId);\n continue;\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (hiddenAnnotationIds.has(id) || this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n if (editor.div.contains(document.activeElement)) {\n setTimeout(() => {\n this.#uiManager.focusMainContainer();\n }, 0);\n }\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n _editor.AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement)) {\n editor._focusEventsAllowed = false;\n setTimeout(() => {\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n #createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n case _util.AnnotationEditorType.STAMP:\n return new _stamp.StampEditor(params);\n }\n return null;\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n deserialize(data) {\n switch (data.annotationType ?? data.annotationEditorType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.STAMP:\n return _stamp.StampEditor.deserialize(data, this, this.#uiManager);\n }\n return null;\n }\n #createAndAddNewEditor(event, isCentered) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.#createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === _util.AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.#createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, {\n rotation: viewport.rotation\n });\n this.updateMode();\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n}\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _tools = __w_pdfjs_require__(5);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivInput = this.editorDivInput.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #fontSize;\n #initialData = null;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = _tools.AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = _tools.AnnotationEditorUIManager.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new _tools.KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"free_text2_default_content\", \"editor_free_text2_aria_label\"]\n });\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.#color;\n this.addCommands({\n cmd: () => {\n this.#color = this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n this.#cheatInitialRect();\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n const buffer = [];\n for (const div of divs) {\n buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freeTextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.enableEditing();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_free_text2_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n _editor.AnnotationEditor._l10nPromise.get(\"free_text2_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this.#initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof _annotation_layer.FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect,\n rotation,\n id,\n deleted: false\n };\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n editor.annotationElementId = data.id || null;\n editor.#initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return {\n pageIndex: this.pageIndex,\n id: this.annotationElementId,\n deleted: true\n };\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = _editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n rect,\n pageIndex\n } = this.#initialData;\n return serialized.value !== value || serialized.fontSize !== fontSize || serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n #cheatInitialRect(delayed = false) {\n if (!this.annotationElementId) {\n return;\n }\n this.#setEditorDimensions();\n if (!delayed && (this.width === 0 || this.height === 0)) {\n setTimeout(() => this.#cheatInitialRect(true), 0);\n return;\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n this.#initialData.rect = this.getRect(padding, padding);\n }\n}\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampAnnotationElement = exports.InkAnnotationElement = exports.FreeTextAnnotationElement = exports.AnnotationLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _scripting_utils = __w_pdfjs_require__(30);\nvar _displayL10n_utils = __w_pdfjs_require__(31);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\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 return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #hasBorder = false;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n container.style.zIndex = this.parent.zIndex++;\n if (this.data.popupRef) {\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\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 if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n container.style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: _scripting_utils.ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect;\n if (quadPoints.length === 1) {\n const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] = quadPoints[0];\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", ``, ``];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] of quadPoints) {\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(``);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n container,\n data\n } = this;\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n const popup = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n _editOnDoubleClick() {\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this._bindAttachment(link, data.attachment);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindAttachment(link, attachment) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(this.container, attachment.content, attachment.filename);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\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 if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = _util.FeatureTest.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n elementData.focused = true;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 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 }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\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 if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${_util.AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #dateTimePromise = null;\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n const dateObject = _display_utils.PDFDateString.toDateObject(modificationDate);\n if (dateObject) {\n this.#dateTimePromise = parent.l10n.get(\"annotation_date_string\", {\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n }\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = _util.Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = _util.Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateTimePromise) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n this.#dateTimePromise.then(localized => {\n modificationDate.textContent = localized;\n });\n header.append(modificationDate);\n }\n const contentsObj = this.#contentsObj;\n const richText = this.#richText;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: richText.html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(contentsObj);\n popup.append(contents);\n }\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || _util.Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = _util.Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n const {\n style\n } = this.#container;\n style.left = `${100 * (popupLeft - pageX) / pageWidth}%`;\n style.top = `${100 * (popupTop - pageY) / pageHeight}%`;\n this.#container.append(popup);\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = _util.AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nexports.FreeTextAnnotationElement = FreeTextAnnotationElement;\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#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 line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#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\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#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\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\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 points = points.join(\" \");\n const polyline = this.#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\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = _util.AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of data.inkLists) {\n let points = [];\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 points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n svg.append(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nexports.InkAnnotationElement = InkAnnotationElement;\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nexports.StampAnnotationElement = StampAnnotationElement;\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename, true);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = _util.FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n l10n,\n page,\n viewport\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.l10n = l10n;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this.l10n ||= _displayL10n_utils.NullL10n;\n }\n #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_util.AnnotationPrefix}${id}`;\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n (0, _display_utils.setLayerDimensions)(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === _util.AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n if (element.annotationEditorType > 0) {\n this.#editableAnnotations.set(element.data.id, element);\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n this.#appendElement(rendered, data.id);\n }\n this.#setAnnotationCanvasMap();\n await this.l10n.translate(layer);\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n rendering_error: \"An error occurred while rendering the page.\",\n annotation_date_string: \"{{date}}, {{time}}\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n free_text2_default_content: \"Start typing…\",\n editor_free_text2_aria_label: \"Text Editor\",\n editor_ink2_aria_label: \"Draw Editor\",\n editor_ink_canvas_aria_label: \"User-created image\",\n editor_alt_text_button_label: \"Alt text\",\n editor_alt_text_edit_button_label: \"Edit alt text\",\n editor_alt_text_decorative_tooltip: \"Marked as decorative\"\n};\n{\n DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n async getDirection() {\n return \"ltr\";\n },\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n async translate(element) {}\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\nvar _xfa_text = __w_pdfjs_require__(25);\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _tools = __w_pdfjs_require__(5);\nclass InkEditor extends _editor.AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"editor_ink_canvas_aria_label\", \"editor_ink2_aria_label\"]\n });\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.#fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.#fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.color;\n this.addCommands({\n cmd: () => {\n this.color = color;\n this.#redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.#redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${(0, _tools.opacityToHex)(opacity)}`;\n }\n #startDrawing(x, y) {\n this.canvas.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.makeResizable();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n setTimeout(() => {\n this.canvas.removeEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink2_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.InkAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass StampEditor extends _editor.AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return (0, _util.shadow)(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return (0, _util.shadow)(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(_util.AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (this.#canvas) {\n this.div.focus();\n }\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this.#getBitmapFetched(data);\n }\n resolve();\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n div.append(canvas);\n div.hidden = false;\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"inserted_image\"\n }\n }\n });\n this.addAltTextButton();\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setDims(width, height);\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n width = Math.ceil(width);\n height = Math.ceil(height);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === width && canvas.height === height) {\n return;\n }\n canvas.width = width;\n canvas.height = height;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height);\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.StampAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n const serialized = {\n annotationType: _util.AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.altTextData;\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.altTextData;\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n}\nexports.StampEditor = StampEditor;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AbortException\", ({\n enumerable: true,\n get: function () {\n return _util.AbortException;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"DOMSVGFactory\", ({\n enumerable: true,\n get: function () {\n return _display_utils.DOMSVGFactory;\n }\n}));\nObject.defineProperty(exports, \"FeatureTest\", ({\n enumerable: true,\n get: function () {\n return _util.FeatureTest;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"ImageKind\", ({\n enumerable: true,\n get: function () {\n return _util.ImageKind;\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, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\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, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"PromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.PromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _api.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\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, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isDataScheme\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isDataScheme;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"noContextMenu\", ({\n enumerable: true,\n get: function () {\n return _display_utils.noContextMenu;\n }\n}));\nObject.defineProperty(exports, \"normalizeUnicode\", ({\n enumerable: true,\n get: function () {\n return _util.normalizeUnicode;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"setLayerDimensions\", ({\n enumerable: true,\n get: function () {\n return _display_utils.setLayerDimensions;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"updateTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.updateTextLayer;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\nvar _util = __w_pdfjs_require__(1);\nvar _api = __w_pdfjs_require__(2);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _text_layer = __w_pdfjs_require__(26);\nvar _annotation_editor_layer = __w_pdfjs_require__(27);\nvar _tools = __w_pdfjs_require__(5);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst pdfjsVersion = '3.11.174';\nconst pdfjsBuild = 'ce8716743';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map","import * as pdfjsModule from 'pdfjs-dist';\nconst pdfjs = ('default' in pdfjsModule ? pdfjsModule['default'] : pdfjsModule);\nexport default pdfjs;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = [\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var mediaEvents = [\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n];\nexport var mouseEvents = [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n];\nexport var dragEvents = [\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var pointerEvents = [\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var animationEvents = [\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var changeEvents = ['onChange'];\nexport var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\nexport default function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n var eventHandler = props[eventName];\n if (!eventHandler) {\n return;\n }\n if (getArgs) {\n eventProps[eventName] = (function (event) {\n return eventHandler(event, getArgs(eventName));\n });\n }\n else {\n eventProps[eventName] = eventHandler;\n }\n });\n return eventProps;\n}\n","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise\n .then(function (value) { return !isCancelled && resolve(value); })\n .catch(function (error) { return !isCancelled && reject(error); });\n });\n return {\n promise: wrappedPromise,\n cancel: function () {\n isCancelled = true;\n },\n };\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n invariant(dest, 'Destination is not specified.');\n if (typeof dest === 'string') {\n this.pdfDocument.getDestination(dest).then(resolve);\n }\n else if (Array.isArray(dest)) {\n resolve(dest);\n }\n else {\n dest.then(resolve);\n }\n }).then((explicitDest) => {\n invariant(Array.isArray(explicitDest), `\"${explicitDest}\" is not a valid destination array.`);\n const destRef = explicitDest[0];\n new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n if (destRef instanceof Object) {\n this.pdfDocument\n .getPageIndex(destRef)\n .then((pageIndex) => {\n resolve(pageIndex);\n })\n .catch(() => {\n invariant(false, `\"${destRef}\" is not a valid page reference.`);\n });\n }\n else if (typeof destRef === 'number') {\n resolve(destRef);\n }\n else {\n invariant(false, `\"${destRef}\" is not a valid destination reference.`);\n }\n }).then((pageIndex) => {\n const pageNumber = pageIndex + 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n dest: explicitDest,\n pageIndex,\n pageNumber,\n });\n });\n });\n }\n navigateTo(dest) {\n this.goToDestination(dest);\n }\n goToPage(pageNumber) {\n const pageIndex = pageNumber - 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n pageIndex,\n pageNumber,\n });\n }\n addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n getDestinationHash() {\n return '#';\n }\n getAnchorUrl() {\n return '#';\n }\n setHash() {\n // Intentionally empty\n }\n executeNamedAction() {\n // Intentionally empty\n }\n cachePageRef() {\n // Intentionally empty\n }\n isPageVisible() {\n return true;\n }\n isPageCached() {\n return true;\n }\n executeSetOCGState() {\n // Intentionally empty\n }\n}\n","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\nexport default PasswordResponses;\n","import invariant from 'tiny-invariant';\nimport warning from 'warning';\n/**\n * Checks if we're running in a browser environment.\n */\nexport const isBrowser = typeof document !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\nexport const isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checks whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checks whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checks whether a variable provided is a data URI.\n *\n * @param {*} variable String to check\n */\nexport function isDataURI(variable) {\n return isString(variable) && /^data:/.test(variable);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n const [headersString = '', dataString = ''] = dataURI.split(',');\n const headers = headersString.split(';');\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n return unescape(dataString);\n}\nexport function getDevicePixelRatio() {\n return (isBrowser && window.devicePixelRatio) || 1;\n}\nconst allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, `Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, `Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask && runningTask.cancel)\n runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get() {\n return this.view[2] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'height', {\n get() {\n return this.view[3] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalWidth', {\n get() {\n return this.view[2];\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalHeight', {\n get() {\n return this.view[3];\n },\n configurable: true,\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n if (!reader.result) {\n return reject(new Error('Error while reading a file.'));\n }\n resolve(reader.result);\n };\n reader.onerror = (event) => {\n if (!event.target) {\n return reject(new Error('Error while reading a file.'));\n }\n const { error } = event.target;\n if (!error) {\n return reject(new Error('Error while reading a file.'));\n }\n switch (error.code) {\n case error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n case error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n case error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n reader.readAsArrayBuffer(file);\n });\n}\n","import { useReducer } from 'react';\nfunction reducer(state, action) {\n switch (action.type) {\n case 'RESOLVE':\n return { value: action.value, error: undefined };\n case 'REJECT':\n return { value: false, error: action.error };\n case 'RESET':\n return { value: undefined, error: undefined };\n default:\n return state;\n }\n}\nexport default function useResolver() {\n return useReducer((reducer), { value: undefined, error: undefined });\n}\n","import PropTypes from 'prop-types';\nimport { allEvents } from 'make-event-props';\nimport pdfjs from '../pdfjs.js';\nimport { isDefined } from './utils.js';\nimport LinkService from '../LinkService.js';\nconst { PDFDataRangeTransport } = pdfjs;\nexport const eventProps = (() => {\n const result = {};\n allEvents.forEach((eventName) => {\n result[eventName] = PropTypes.func;\n });\n return result;\n})();\nconst isTypedArray = PropTypes.oneOfType([\n PropTypes.instanceOf(Int8Array),\n PropTypes.instanceOf(Uint8Array),\n PropTypes.instanceOf(Uint8ClampedArray),\n PropTypes.instanceOf(Int16Array),\n PropTypes.instanceOf(Uint16Array),\n PropTypes.instanceOf(Int32Array),\n PropTypes.instanceOf(Uint32Array),\n PropTypes.instanceOf(Float32Array),\n PropTypes.instanceOf(Float64Array),\n]);\nconst fileTypes = [\n PropTypes.string,\n PropTypes.instanceOf(ArrayBuffer),\n PropTypes.shape({\n data: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(ArrayBuffer),\n PropTypes.arrayOf(PropTypes.number.isRequired),\n isTypedArray,\n ]).isRequired,\n }),\n PropTypes.shape({\n range: PropTypes.instanceOf(PDFDataRangeTransport).isRequired,\n }),\n PropTypes.shape({\n url: PropTypes.string.isRequired,\n }),\n];\nif (typeof Blob !== 'undefined') {\n fileTypes.push(PropTypes.instanceOf(Blob));\n}\nexport const isClassName = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n]);\nexport const isFile = PropTypes.oneOfType(fileTypes);\nexport const isLinkService = PropTypes.instanceOf(LinkService);\nexport const isLinkTarget = PropTypes.oneOf(['_self', '_blank', '_parent', '_top']);\nexport const isPage = PropTypes.shape({\n commonObjs: PropTypes.shape({}).isRequired,\n getAnnotations: PropTypes.func.isRequired,\n getTextContent: PropTypes.func.isRequired,\n getViewport: PropTypes.func.isRequired,\n render: PropTypes.func.isRequired,\n});\nexport const isPageIndex = function isPageIndex(props, propName, componentName) {\n const { [propName]: pageIndex, pageNumber, pdf } = props;\n if (!isDefined(pdf)) {\n return null;\n }\n if (isDefined(pageIndex)) {\n if (typeof pageIndex !== 'number') {\n return new Error(`\\`${propName}\\` of type \\`${typeof pageIndex}\\` supplied to \\`${componentName}\\`, expected \\`number\\`.`);\n }\n if (pageIndex < 0) {\n return new Error(`Expected \\`${propName}\\` to be greater or equal to 0.`);\n }\n const { numPages } = pdf;\n if (pageIndex + 1 > numPages) {\n return new Error(`Expected \\`${propName}\\` to be less or equal to ${numPages - 1}.`);\n }\n }\n else if (!isDefined(pageNumber)) {\n return new Error(`\\`${propName}\\` not supplied. Either pageIndex or pageNumber must be supplied to \\`${componentName}\\`.`);\n }\n // Everything is fine\n return null;\n};\nexport const isPageNumber = function isPageNumber(props, propName, componentName) {\n const { [propName]: pageNumber, pageIndex, pdf } = props;\n if (!isDefined(pdf)) {\n return null;\n }\n if (isDefined(pageNumber)) {\n if (typeof pageNumber !== 'number') {\n return new Error(`\\`${propName}\\` of type \\`${typeof pageNumber}\\` supplied to \\`${componentName}\\`, expected \\`number\\`.`);\n }\n if (pageNumber < 1) {\n return new Error(`Expected \\`${propName}\\` to be greater or equal to 1.`);\n }\n const { numPages } = pdf;\n if (pageNumber > numPages) {\n return new Error(`Expected \\`${propName}\\` to be less or equal to ${numPages}.`);\n }\n }\n else if (!isDefined(pageIndex)) {\n return new Error(`\\`${propName}\\` not supplied. Either pageIndex or pageNumber must be supplied to \\`${componentName}\\`.`);\n }\n // Everything is fine\n return null;\n};\nexport const isPdf = PropTypes.oneOfType([\n // Ideally, this would be `PropTypes.instanceOf(PDFDocumentProxy)`, but it can't be imported.\n PropTypes.any,\n PropTypes.oneOf([false]),\n]);\nexport const isRef = PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.exact({\n current: PropTypes.any,\n }),\n]);\nexport const isRenderMode = PropTypes.oneOf(['canvas', 'custom', 'none', 'svg']);\nexport const isRotate = PropTypes.oneOf([0, 90, 180, 270]);\n","'use client';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, } from 'react';\nimport PropTypes from 'prop-types';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport { dequal } from 'dequal';\nimport pdfjs from './pdfjs.js';\nimport DocumentContext from './DocumentContext.js';\nimport Message from './Message.js';\nimport LinkService from './LinkService.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, loadFromFile, } from './shared/utils.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { eventProps, isClassName, isFile, isRef } from './shared/propTypes.js';\nconst { PDFDataRangeTransport } = pdfjs;\nconst defaultOnPassword = (callback, reason) => {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD: {\n // eslint-disable-next-line no-alert\n const password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n // eslint-disable-next-line no-alert\n const password = prompt('Invalid password. Please try again.');\n callback(password);\n break;\n }\n default:\n }\n};\nfunction isParameterObject(file) {\n return (typeof file === 'object' &&\n file !== null &&\n ('data' in file || 'range' in file || 'url' in file));\n}\n/**\n * Loads a document passed using `file` prop.\n */\nconst Document = forwardRef(function Document(_a, ref) {\n var { children, className, error = 'Failed to load PDF file.', externalLinkRel, externalLinkTarget, file, inputRef, imageResourcesPath, loading = 'Loading PDF…', noData = 'No PDF file specified.', onItemClick, onLoadError: onLoadErrorProps, onLoadProgress, onLoadSuccess: onLoadSuccessProps, onPassword = defaultOnPassword, onSourceError: onSourceErrorProps, onSourceSuccess: onSourceSuccessProps, options, renderMode, rotate } = _a, otherProps = __rest(_a, [\"children\", \"className\", \"error\", \"externalLinkRel\", \"externalLinkTarget\", \"file\", \"inputRef\", \"imageResourcesPath\", \"loading\", \"noData\", \"onItemClick\", \"onLoadError\", \"onLoadProgress\", \"onLoadSuccess\", \"onPassword\", \"onSourceError\", \"onSourceSuccess\", \"options\", \"renderMode\", \"rotate\"]);\n const [sourceState, sourceDispatch] = useResolver();\n const { value: source, error: sourceError } = sourceState;\n const [pdfState, pdfDispatch] = useResolver();\n const { value: pdf, error: pdfError } = pdfState;\n const linkService = useRef(new LinkService());\n const pages = useRef([]);\n const prevFile = useRef();\n const prevOptions = useRef();\n useEffect(() => {\n if (file && file !== prevFile.current && isParameterObject(file)) {\n warning(!dequal(file, prevFile.current), `File prop passed to changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"file\" prop.`);\n prevFile.current = file;\n }\n }, [file]);\n // Detect non-memoized changes in options prop\n useEffect(() => {\n if (options && options !== prevOptions.current) {\n warning(!dequal(options, prevOptions.current), `Options prop passed to changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"options\" prop.`);\n prevOptions.current = options;\n }\n }, [options]);\n const viewer = useRef({\n // Handling jumping to internal links target\n scrollPageIntoView: (args) => {\n const { dest, pageNumber, pageIndex = pageNumber - 1 } = args;\n // First, check if custom handling of onItemClick was provided\n if (onItemClick) {\n onItemClick({ dest, pageIndex, pageNumber });\n return;\n }\n // If not, try to look for target page within the .\n const page = pages.current[pageIndex];\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n warning(false, `An internal link leading to page ${pageNumber} was clicked, but neither was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to and handle navigating by yourself or ensure that all pages are rendered within .`);\n },\n });\n useImperativeHandle(ref, () => ({\n linkService,\n pages,\n viewer,\n }), []);\n /**\n * Called when a document source is resolved correctly\n */\n function onSourceSuccess() {\n if (onSourceSuccessProps) {\n onSourceSuccessProps();\n }\n }\n /**\n * Called when a document source failed to be resolved correctly\n */\n function onSourceError() {\n if (!sourceError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, sourceError.toString());\n if (onSourceErrorProps) {\n onSourceErrorProps(sourceError);\n }\n }\n function resetSource() {\n sourceDispatch({ type: 'RESET' });\n }\n useEffect(resetSource, [file, sourceDispatch]);\n const findDocumentSource = useCallback(() => __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n return null;\n }\n // File is a string\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n const fileByteString = dataURItoByteString(file);\n return { data: fileByteString };\n }\n displayCORSWarning();\n return { url: file };\n }\n // File is PDFDataRangeTransport\n if (file instanceof PDFDataRangeTransport) {\n return { range: file };\n }\n // File is an ArrayBuffer\n if (isArrayBuffer(file)) {\n return { data: file };\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file)) {\n const data = yield loadFromFile(file);\n return { data };\n }\n }\n // At this point, file must be an object\n invariant(typeof file === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(isParameterObject(file), 'Invalid parameter object: need either .data, .range or .url');\n // File .url is a string\n if ('url' in file && typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n const { url } = file, otherParams = __rest(file, [\"url\"]);\n const fileByteString = dataURItoByteString(url);\n return Object.assign({ data: fileByteString }, otherParams);\n }\n displayCORSWarning();\n }\n return file;\n }), [file]);\n useEffect(() => {\n const cancellable = makeCancellable(findDocumentSource());\n cancellable.promise\n .then((nextSource) => {\n sourceDispatch({ type: 'RESOLVE', value: nextSource });\n })\n .catch((error) => {\n sourceDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(cancellable);\n };\n }, [findDocumentSource, sourceDispatch]);\n useEffect(() => {\n if (typeof source === 'undefined') {\n return;\n }\n if (source === false) {\n onSourceError();\n return;\n }\n onSourceSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source]);\n /**\n * Called when a document is read successfully\n */\n function onLoadSuccess() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(pdf);\n }\n pages.current = new Array(pdf.numPages);\n linkService.current.setDocument(pdf);\n }\n /**\n * Called when a document failed to read successfully\n */\n function onLoadError() {\n if (!pdfError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pdfError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pdfError);\n }\n }\n function resetDocument() {\n pdfDispatch({ type: 'RESET' });\n }\n useEffect(resetDocument, [pdfDispatch, source]);\n function loadDocument() {\n if (!source) {\n return;\n }\n const documentInitParams = options\n ? Object.assign(Object.assign({}, source), options) : source;\n const destroyable = pdfjs.getDocument(documentInitParams);\n if (onLoadProgress) {\n destroyable.onProgress = onLoadProgress;\n }\n if (onPassword) {\n destroyable.onPassword = onPassword;\n }\n const loadingTask = destroyable;\n loadingTask.promise\n .then((nextPdf) => {\n pdfDispatch({ type: 'RESOLVE', value: nextPdf });\n })\n .catch((error) => {\n if (loadingTask.destroyed) {\n return;\n }\n pdfDispatch({ type: 'REJECT', error });\n });\n return () => {\n loadingTask.destroy();\n };\n }\n useEffect(loadDocument, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [options, pdfDispatch, source]);\n useEffect(() => {\n if (typeof pdf === 'undefined') {\n return;\n }\n if (pdf === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pdf]);\n function setupLinkService() {\n linkService.current.setViewer(viewer.current);\n linkService.current.setExternalLinkRel(externalLinkRel);\n linkService.current.setExternalLinkTarget(externalLinkTarget);\n }\n useEffect(setupLinkService, [externalLinkRel, externalLinkTarget]);\n function registerPage(pageIndex, ref) {\n pages.current[pageIndex] = ref;\n }\n function unregisterPage(pageIndex) {\n delete pages.current[pageIndex];\n }\n const childContext = useMemo(() => ({\n imageResourcesPath,\n linkService: linkService.current,\n onItemClick,\n pdf,\n registerPage,\n renderMode,\n rotate,\n unregisterPage,\n }), [imageResourcesPath, onItemClick, pdf, renderMode, rotate]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => pdf), [otherProps, pdf]);\n function renderChildren() {\n return React.createElement(DocumentContext.Provider, { value: childContext }, children);\n }\n function renderContent() {\n if (!file) {\n return React.createElement(Message, { type: \"no-data\" }, typeof noData === 'function' ? noData() : noData);\n }\n if (pdf === undefined || pdf === null) {\n return (React.createElement(Message, { type: \"loading\" }, typeof loading === 'function' ? loading() : loading));\n }\n if (pdf === false) {\n return React.createElement(Message, { type: \"error\" }, typeof error === 'function' ? error() : error);\n }\n return renderChildren();\n }\n return (React.createElement(\"div\", Object.assign({ className: clsx('react-pdf__Document', className), ref: inputRef, style: {\n ['--scale-factor']: '1',\n } }, eventProps), renderContent()));\n});\nconst isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nDocument.propTypes = Object.assign(Object.assign({}, eventProps), { children: PropTypes.node, className: isClassName, error: isFunctionOrNode, externalLinkRel: PropTypes.string, externalLinkTarget: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']), file: isFile, imageResourcesPath: PropTypes.string, inputRef: isRef, loading: isFunctionOrNode, noData: isFunctionOrNode, onItemClick: PropTypes.func, onLoadError: PropTypes.func, onLoadProgress: PropTypes.func, onLoadSuccess: PropTypes.func, onPassword: PropTypes.func, onSourceError: PropTypes.func, onSourceSuccess: PropTypes.func, options: PropTypes.shape({\n canvasFactory: PropTypes.any,\n canvasMaxAreaInBytes: PropTypes.number,\n cMapPacked: PropTypes.bool,\n CMapReaderFactory: PropTypes.any,\n cMapUrl: PropTypes.string,\n disableAutoFetch: PropTypes.bool,\n disableFontFace: PropTypes.bool,\n disableRange: PropTypes.bool,\n disableStream: PropTypes.bool,\n docBaseUrl: PropTypes.string,\n enableXfa: PropTypes.bool,\n filterFactory: PropTypes.any,\n fontExtraProperties: PropTypes.bool,\n httpHeaders: PropTypes.object,\n isEvalSupported: PropTypes.bool,\n isOffscreenCanvasSupported: PropTypes.bool,\n length: PropTypes.number,\n maxImageSize: PropTypes.number,\n ownerDocument: PropTypes.any,\n password: PropTypes.string,\n pdfBug: PropTypes.bool,\n rangeChunkSize: PropTypes.number,\n StandardFontDataFactory: PropTypes.any,\n standardFontDataUrl: PropTypes.string,\n stopAtErrors: PropTypes.bool,\n useSystemFonts: PropTypes.bool,\n useWorkerFetch: PropTypes.bool,\n verbosity: PropTypes.number,\n withCredentials: PropTypes.bool,\n worker: PropTypes.any,\n }), rotate: PropTypes.number });\nexport default Document;\n","'use client';\nimport { createContext } from 'react';\nexport default createContext(null);\n","export default class Ref {\n constructor({ num, gen }) {\n this.num = num;\n this.gen = gen;\n }\n toString() {\n let str = `${this.num}R`;\n if (this.gen !== 0) {\n str += this.gen;\n }\n return str;\n }\n}\n","'use client';\nimport { useRef } from 'react';\nimport { isDefined } from '../utils.js';\nexport default function useCachedValue(getter) {\n const ref = useRef();\n const currentValue = ref.current;\n if (isDefined(currentValue)) {\n return () => currentValue;\n }\n return () => {\n const value = getter();\n ref.current = value;\n return value;\n };\n}\n","import { useContext } from 'react';\nimport DocumentContext from '../../DocumentContext.js';\nexport default function useDocumentContext() {\n return useContext(DocumentContext);\n}\n","import { useContext } from 'react';\nimport OutlineContext from '../../OutlineContext.js';\nexport default function useOutlineContext() {\n return useContext(OutlineContext);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport Ref from './Ref.js';\nimport useCachedValue from './shared/hooks/useCachedValue.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useOutlineContext from './shared/hooks/useOutlineContext.js';\nexport default function OutlineItem(props) {\n const documentContext = useDocumentContext();\n invariant(documentContext, 'Unable to find Document context. Did you wrap in ?');\n const outlineContext = useOutlineContext();\n invariant(outlineContext, 'Unable to find Outline context.');\n const mergedProps = Object.assign(Object.assign(Object.assign({}, documentContext), outlineContext), props);\n const { item, linkService, onItemClick, pdf } = mergedProps, otherProps = __rest(mergedProps, [\"item\", \"linkService\", \"onItemClick\", \"pdf\"]);\n invariant(pdf, 'Attempted to load an outline, but no document was specified.');\n const getDestination = useCachedValue(() => {\n if (typeof item.dest === 'string') {\n return pdf.getDestination(item.dest);\n }\n return item.dest;\n });\n const getPageIndex = useCachedValue(() => __awaiter(this, void 0, void 0, function* () {\n const destination = yield getDestination();\n if (!destination) {\n throw new Error('Destination not found.');\n }\n const [ref] = destination;\n return pdf.getPageIndex(new Ref(ref));\n }));\n const getPageNumber = useCachedValue(() => __awaiter(this, void 0, void 0, function* () {\n const pageIndex = yield getPageIndex();\n return pageIndex + 1;\n }));\n function onClick(event) {\n event.preventDefault();\n if (onItemClick) {\n Promise.all([getDestination(), getPageIndex(), getPageNumber()]).then(([dest, pageIndex, pageNumber]) => {\n onItemClick({\n dest,\n pageIndex,\n pageNumber,\n });\n });\n }\n else {\n linkService.goToDestination(item.dest);\n }\n }\n function renderSubitems() {\n if (!item.items || !item.items.length) {\n return null;\n }\n const { items: subitems } = item;\n return (React.createElement(\"ul\", null, subitems.map((subitem, subitemIndex) => (React.createElement(OutlineItem, Object.assign({ key: typeof subitem.dest === 'string' ? subitem.dest : subitemIndex, item: subitem }, otherProps))))));\n }\n return (React.createElement(\"li\", null,\n React.createElement(\"a\", { href: \"#\", onClick: onClick }, item.title),\n renderSubitems()));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport OutlineContext from './OutlineContext.js';\nimport OutlineItem from './OutlineItem.js';\nimport { cancelRunningTask } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { eventProps, isClassName, isPdf, isRef } from './shared/propTypes.js';\n/**\n * Displays an outline (table of contents).\n *\n * Should be placed inside ``. Alternatively, it can have `pdf` prop passed, which can be obtained from ``'s `onLoadSuccess` callback function.\n */\nconst Outline = function Outline(props) {\n const documentContext = useDocumentContext();\n invariant(documentContext, 'Unable to find Document context. Did you wrap in ?');\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { className, inputRef, onItemClick, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, pdf } = mergedProps, otherProps = __rest(mergedProps, [\"className\", \"inputRef\", \"onItemClick\", \"onLoadError\", \"onLoadSuccess\", \"pdf\"]);\n invariant(pdf, 'Attempted to load an outline, but no document was specified.');\n const [outlineState, outlineDispatch] = useResolver();\n const { value: outline, error: outlineError } = outlineState;\n /**\n * Called when an outline is read successfully\n */\n function onLoadSuccess() {\n if (typeof outline === 'undefined' || outline === false) {\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(outline);\n }\n }\n /**\n * Called when an outline failed to read successfully\n */\n function onLoadError() {\n if (!outlineError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, outlineError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(outlineError);\n }\n }\n function resetOutline() {\n outlineDispatch({ type: 'RESET' });\n }\n useEffect(resetOutline, [outlineDispatch, pdf]);\n function loadOutline() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n const cancellable = makeCancellable(pdf.getOutline());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextOutline) => {\n outlineDispatch({ type: 'RESOLVE', value: nextOutline });\n })\n .catch((error) => {\n outlineDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadOutline, [outlineDispatch, pdf]);\n useEffect(() => {\n if (outline === undefined) {\n return;\n }\n if (outline === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [outline]);\n const childContext = useMemo(() => ({\n onItemClick,\n }), [onItemClick]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => outline), [otherProps, outline]);\n if (!outline) {\n return null;\n }\n function renderOutline() {\n if (!outline) {\n return null;\n }\n return (React.createElement(\"ul\", null, outline.map((item, itemIndex) => (React.createElement(OutlineItem, { key: typeof item.dest === 'string' ? item.dest : itemIndex, item: item })))));\n }\n return (React.createElement(\"div\", Object.assign({ className: clsx('react-pdf__Outline', className), ref: inputRef }, eventProps),\n React.createElement(OutlineContext.Provider, { value: childContext }, renderOutline())));\n};\nOutline.propTypes = Object.assign(Object.assign({}, eventProps), { className: isClassName, inputRef: isRef, onItemClick: PropTypes.func, onLoadError: PropTypes.func, onLoadSuccess: PropTypes.func, pdf: isPdf });\nexport default Outline;\n","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```tsx\n *
\n * ```\n *\n * @param {(React.Ref | undefined)[]} inputRefs Array of refs\n * @returns {React.Ref | React.RefCallback} Merged refs\n */\nexport default function mergeRefs() {\n var inputRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputRefs[_i] = arguments[_i];\n }\n var filteredInputRefs = inputRefs.filter(Boolean);\n if (filteredInputRefs.length <= 1) {\n var firstRef = filteredInputRefs[0];\n return firstRef || null;\n }\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n }\n else if (inputRef) {\n inputRef.current = ref;\n }\n });\n };\n}\n","'use client';\nimport { createContext } from 'react';\nexport default createContext(null);\n","// From pdfjs-dist/lib/web/struct_tree_layer_builder.js\nexport const PDF_ROLE_TO_HTML_ROLE = {\n // Document level structure types\n Document: null, // There's a \"document\" role, but it doesn't make sense here.\n DocumentFragment: null,\n // Grouping level structure types\n Part: 'group',\n Sect: 'group', // XXX: There's a \"section\" role, but it's abstract.\n Div: 'group',\n Aside: 'note',\n NonStruct: 'none',\n // Block level structure types\n P: null,\n // H,\n H: 'heading',\n Title: null,\n FENote: 'note',\n // Sub-block level structure type\n Sub: 'group',\n // General inline level structure types\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: 'link',\n Annot: 'note',\n Form: 'form',\n // Ruby and Warichu structure types\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n // List standard structure types\n L: 'list',\n LI: 'listitem',\n LBody: null,\n // Table standard structure types\n Table: 'table',\n TR: 'row',\n TH: 'columnheader',\n TD: 'cell',\n THead: 'columnheader',\n TBody: null,\n TFoot: null,\n // Standard structure type Caption\n Caption: null,\n // Standard structure type Figure\n Figure: 'figure',\n // Standard structure type Formula\n Formula: null,\n // standard structure type Artifact\n Artifact: null,\n};\nexport const HEADING_PATTERN = /^H(\\d+)$/;\n","import { HEADING_PATTERN, PDF_ROLE_TO_HTML_ROLE } from './constants.js';\nexport function isPdfRole(role) {\n return role in PDF_ROLE_TO_HTML_ROLE;\n}\nexport function isStructTreeNode(node) {\n return 'children' in node;\n}\nexport function isStructTreeNodeWithOnlyContentChild(node) {\n if (!isStructTreeNode(node)) {\n return false;\n }\n return node.children.length === 1 && 0 in node.children && 'id' in node.children[0];\n}\nexport function getRoleAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n const { role } = node;\n const matches = role.match(HEADING_PATTERN);\n if (matches) {\n attributes.role = 'heading';\n attributes['aria-level'] = Number(matches[1]);\n }\n else if (isPdfRole(role)) {\n const htmlRole = PDF_ROLE_TO_HTML_ROLE[role];\n if (htmlRole) {\n attributes.role = htmlRole;\n }\n }\n }\n return attributes;\n}\nexport function getBaseAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n if (node.alt !== undefined) {\n attributes['aria-label'] = node.alt;\n }\n if (node.lang !== undefined) {\n attributes.lang = node.lang;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n const [child] = node.children;\n if (child) {\n const childAttributes = getBaseAttributes(child);\n return Object.assign(Object.assign({}, attributes), childAttributes);\n }\n }\n }\n else {\n if ('id' in node) {\n attributes['aria-owns'] = node.id;\n }\n }\n return attributes;\n}\nexport function getAttributes(node) {\n if (!node) {\n return null;\n }\n return Object.assign(Object.assign({}, getRoleAttributes(node)), getBaseAttributes(node));\n}\n","import React, { useMemo } from 'react';\nimport { getAttributes, isStructTreeNode, isStructTreeNodeWithOnlyContentChild, } from './shared/structTreeUtils.js';\nexport default function StructTreeItem({ className, node }) {\n const attributes = useMemo(() => getAttributes(node), [node]);\n const children = useMemo(() => {\n if (!isStructTreeNode(node)) {\n return null;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n return null;\n }\n return node.children.map((child, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(StructTreeItem, { key: index, node: child }));\n });\n }, [node]);\n return (React.createElement(\"span\", Object.assign({ className: className }, attributes), children));\n}\n","import { useContext } from 'react';\nimport PageContext from '../../PageContext.js';\nexport default function usePageContext() {\n return useContext(PageContext);\n}\n","import React, { useEffect } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport StructTreeItem from './StructTreeItem.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { cancelRunningTask } from './shared/utils.js';\nexport default function StructTree() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, } = pageContext;\n const [structTreeState, structTreeDispatch] = useResolver();\n const { value: structTree, error: structTreeError } = structTreeState;\n const { customTextRenderer, page } = pageContext;\n function onLoadSuccess() {\n if (!structTree) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetStructTreeSuccessProps) {\n onGetStructTreeSuccessProps(structTree);\n }\n }\n function onLoadError() {\n if (!structTreeError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, structTreeError.toString());\n if (onGetStructTreeErrorProps) {\n onGetStructTreeErrorProps(structTreeError);\n }\n }\n function resetAnnotations() {\n structTreeDispatch({ type: 'RESET' });\n }\n useEffect(resetAnnotations, [structTreeDispatch, page]);\n function loadStructTree() {\n if (customTextRenderer) {\n // TODO: Document why this is necessary\n return;\n }\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getStructTree());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextStructTree) => {\n structTreeDispatch({ type: 'RESOLVE', value: nextStructTree });\n })\n .catch((error) => {\n structTreeDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadStructTree, [customTextRenderer, page, structTreeDispatch]);\n useEffect(() => {\n if (structTree === undefined) {\n return;\n }\n if (structTree === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [structTree]);\n if (!structTree) {\n return null;\n }\n return React.createElement(StructTreeItem, { className: \"react-pdf__Page__structTree structTree\", node: structTree });\n}\n","'use client';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport StructTree from '../StructTree.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport { cancelRunningTask, getDevicePixelRatio, isCancelException, makePageCallback, } from '../shared/utils.js';\nconst ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport default function PageCanvas(props) {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, pageContext), props);\n const { _className, canvasBackground, devicePixelRatio = getDevicePixelRatio(), onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, page, renderForms, renderTextLayer, rotate, scale, } = mergedProps;\n const { canvasRef } = props;\n invariant(page, 'Attempted to render page canvas, but no page was specified.');\n const canvasElement = useRef(null);\n /**\n * Called when a page is rendered successfully.\n */\n function onRenderSuccess() {\n if (!page) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onRenderSuccessProps) {\n onRenderSuccessProps(makePageCallback(page, scale));\n }\n }\n /**\n * Called when a page fails to render.\n */\n function onRenderError(error) {\n if (isCancelException(error)) {\n return;\n }\n warning(false, error.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(error);\n }\n }\n const renderViewport = useMemo(() => page.getViewport({ scale: scale * devicePixelRatio, rotation: rotate }), [devicePixelRatio, page, rotate, scale]);\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function drawPageOnCanvas() {\n if (!page) {\n return;\n }\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n const { current: canvas } = canvasElement;\n if (!canvas) {\n return;\n }\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = `${Math.floor(viewport.width)}px`;\n canvas.style.height = `${Math.floor(viewport.height)}px`;\n canvas.style.visibility = 'hidden';\n const renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n canvasContext: canvas.getContext('2d', { alpha: false }),\n viewport: renderViewport,\n };\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n }\n const cancellable = page.render(renderContext);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n canvas.style.visibility = '';\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }\n useEffect(drawPageOnCanvas, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n canvasBackground,\n canvasElement,\n devicePixelRatio,\n page,\n renderForms,\n renderViewport,\n viewport,\n ]);\n const cleanup = useCallback(() => {\n const { current: canvas } = canvasElement;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }, [canvasElement]);\n useEffect(() => cleanup, [cleanup]);\n return (React.createElement(\"canvas\", { className: `${_className}__canvas`, dir: \"ltr\", ref: mergeRefs(canvasRef, canvasElement), style: {\n display: 'block',\n userSelect: 'none',\n } }, renderTextLayer ? React.createElement(StructTree, null) : null));\n}\n","import React, { useEffect, useMemo } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask, isCancelException, makePageCallback } from '../shared/utils.js';\nexport default function PageSVG() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { _className, onRenderSuccess: onRenderSuccessProps, onRenderError: onRenderErrorProps, page, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to render page SVG, but no page was specified.');\n const [svgState, svgDispatch] = useResolver();\n const { value: svg, error: svgError } = svgState;\n /**\n * Called when a page is rendered successfully\n */\n function onRenderSuccess() {\n if (!page) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onRenderSuccessProps) {\n onRenderSuccessProps(makePageCallback(page, scale));\n }\n }\n /**\n * Called when a page fails to render\n */\n function onRenderError() {\n if (!svgError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (isCancelException(svgError)) {\n return;\n }\n warning(false, svgError.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(svgError);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function resetSVG() {\n svgDispatch({ type: 'RESET' });\n }\n useEffect(resetSVG, [page, svgDispatch, viewport]);\n function renderSVG() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getOperatorList());\n cancellable.promise\n .then((operatorList) => {\n const svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n svgGfx\n .getSVG(operatorList, viewport)\n .then((nextSvg) => {\n // See https://github.com/mozilla/pdf.js/issues/16745\n if (!(nextSvg instanceof SVGElement)) {\n throw new Error('getSVG returned unexpected result.');\n }\n svgDispatch({ type: 'RESOLVE', value: nextSvg });\n })\n .catch((error) => {\n svgDispatch({ type: 'REJECT', error });\n });\n })\n .catch((error) => {\n svgDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(cancellable);\n }\n useEffect(renderSVG, [page, svgDispatch, viewport]);\n useEffect(() => {\n if (svg === undefined) {\n return;\n }\n if (svg === false) {\n onRenderError();\n return;\n }\n onRenderSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [svg]);\n function drawPageOnContainer(element) {\n if (!element || !svg) {\n return;\n }\n // Append SVG element to the main container, if this hasn't been done already\n if (!element.firstElementChild) {\n element.appendChild(svg);\n }\n const { width, height } = viewport;\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n }\n const { width, height } = viewport;\n return (React.createElement(\"div\", { className: `${_className}__svg`, \n // Note: This cannot be shortened, as we need this function to be called with each render.\n ref: (ref) => drawPageOnContainer(ref), style: {\n display: 'block',\n backgroundColor: 'white',\n overflow: 'hidden',\n width,\n height,\n userSelect: 'none',\n } }));\n}\n","'use client';\nimport React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nfunction isTextItem(item) {\n return 'str' in item;\n}\nexport default function TextLayer() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { customTextRenderer, onGetTextError, onGetTextSuccess, onRenderTextLayerError, onRenderTextLayerSuccess, page, pageIndex, pageNumber, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n const [textContentState, textContentDispatch] = useResolver();\n const { value: textContent, error: textContentError } = textContentState;\n const layerElement = useRef(null);\n const endElement = useRef();\n warning(parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-text-layer'), 10) === 1, 'TextLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-text-layer');\n /**\n * Called when a page text content is read successfully\n */\n function onLoadSuccess() {\n if (!textContent) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetTextSuccess) {\n onGetTextSuccess(textContent);\n }\n }\n /**\n * Called when a page text content failed to read successfully\n */\n function onLoadError() {\n if (!textContentError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, textContentError.toString());\n if (onGetTextError) {\n onGetTextError(textContentError);\n }\n }\n function resetTextContent() {\n textContentDispatch({ type: 'RESET' });\n }\n useEffect(resetTextContent, [page, textContentDispatch]);\n function loadTextContent() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getTextContent());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextTextContent) => {\n textContentDispatch({ type: 'RESOLVE', value: nextTextContent });\n })\n .catch((error) => {\n textContentDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadTextContent, [page, textContentDispatch]);\n useEffect(() => {\n if (textContent === undefined) {\n return;\n }\n if (textContent === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [textContent]);\n /**\n * Called when a text layer is rendered successfully\n */\n const onRenderSuccess = useCallback(() => {\n if (onRenderTextLayerSuccess) {\n onRenderTextLayerSuccess();\n }\n }, [onRenderTextLayerSuccess]);\n /**\n * Called when a text layer failed to render successfully\n */\n const onRenderError = useCallback((error) => {\n warning(false, error.toString());\n if (onRenderTextLayerError) {\n onRenderTextLayerError(error);\n }\n }, [onRenderTextLayerError]);\n function onMouseDown() {\n const end = endElement.current;\n if (!end) {\n return;\n }\n end.classList.add('active');\n }\n function onMouseUp() {\n const end = endElement.current;\n if (!end) {\n return;\n }\n end.classList.remove('active');\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function renderTextLayer() {\n if (!page || !textContent) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n layer.innerHTML = '';\n const textContentSource = page.streamTextContent({ includeMarkedContent: true });\n const parameters = {\n container: layer,\n textContentSource,\n viewport,\n };\n const cancellable = pdfjs.renderTextLayer(parameters);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n const end = document.createElement('div');\n end.className = 'endOfContent';\n layer.append(end);\n endElement.current = end;\n const layerChildren = layer.querySelectorAll('[role=\"presentation\"]');\n if (customTextRenderer) {\n let index = 0;\n textContent.items.forEach((item, itemIndex) => {\n if (!isTextItem(item)) {\n return;\n }\n const child = layerChildren[index];\n if (!child) {\n return;\n }\n const content = customTextRenderer(Object.assign({ pageIndex,\n pageNumber,\n itemIndex }, item));\n child.innerHTML = content;\n index += item.str && item.hasEOL ? 2 : 1;\n });\n }\n // Intentional immediate callback\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }\n useLayoutEffect(renderTextLayer, [\n customTextRenderer,\n onRenderError,\n onRenderSuccess,\n page,\n pageIndex,\n pageNumber,\n textContent,\n viewport,\n ]);\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n React.createElement(\"div\", { className: clsx('react-pdf__Page__textContent', 'textLayer'), onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: layerElement }));\n}\n","'use client';\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport useDocumentContext from '../shared/hooks/useDocumentContext.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nexport default function AnnotationLayer() {\n const documentContext = useDocumentContext();\n invariant(documentContext, 'Unable to find Document context. Did you wrap in ?');\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, documentContext), pageContext);\n const { imageResourcesPath, linkService, onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, page, pdf, renderForms, rotate, scale = 1, } = mergedProps;\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n const [annotationsState, annotationsDispatch] = useResolver();\n const { value: annotations, error: annotationsError } = annotationsState;\n const layerElement = useRef(null);\n warning(parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-annotation-layer'), 10) === 1, 'AnnotationLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-annotations');\n function onLoadSuccess() {\n if (!annotations) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetAnnotationsSuccessProps) {\n onGetAnnotationsSuccessProps(annotations);\n }\n }\n function onLoadError() {\n if (!annotationsError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, annotationsError.toString());\n if (onGetAnnotationsErrorProps) {\n onGetAnnotationsErrorProps(annotationsError);\n }\n }\n function resetAnnotations() {\n annotationsDispatch({ type: 'RESET' });\n }\n useEffect(resetAnnotations, [annotationsDispatch, page]);\n function loadAnnotations() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getAnnotations());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextAnnotations) => {\n annotationsDispatch({ type: 'RESOLVE', value: nextAnnotations });\n })\n .catch((error) => {\n annotationsDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(runningTask);\n };\n }\n useEffect(loadAnnotations, [annotationsDispatch, page, renderForms]);\n useEffect(() => {\n if (annotations === undefined) {\n return;\n }\n if (annotations === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [annotations]);\n function onRenderSuccess() {\n if (onRenderAnnotationLayerSuccessProps) {\n onRenderAnnotationLayerSuccessProps();\n }\n }\n function onRenderError(error) {\n warning(false, `${error}`);\n if (onRenderAnnotationLayerErrorProps) {\n onRenderAnnotationLayerErrorProps(error);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n function renderAnnotationLayer() {\n if (!pdf || !page || !annotations) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n const clonedViewport = viewport.clone({ dontFlip: true });\n const annotationLayerParameters = {\n accessibilityManager: null, // TODO: Implement this\n annotationCanvasMap: null, // TODO: Implement this\n div: layer,\n l10n: null, // TODO: Implement this\n page,\n viewport: clonedViewport,\n };\n const renderParameters = {\n annotations,\n annotationStorage: pdf.annotationStorage,\n div: layer,\n // See https://github.com/mozilla/pdf.js/issues/17029\n downloadManager: null,\n imageResourcesPath,\n linkService,\n page,\n renderForms,\n viewport: clonedViewport,\n };\n layer.innerHTML = '';\n try {\n new pdfjs.AnnotationLayer(annotationLayerParameters).render(renderParameters);\n // Intentional immediate callback\n onRenderSuccess();\n }\n catch (error) {\n onRenderError(error);\n }\n return () => {\n // TODO: Cancel running task?\n };\n }\n useEffect(renderAnnotationLayer, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [annotations, imageResourcesPath, linkService, page, renderForms, viewport]);\n return (React.createElement(\"div\", { className: clsx('react-pdf__Page__annotations', 'annotationLayer'), ref: layerElement }));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport PageContext from './PageContext.js';\nimport Message from './Message.js';\nimport PageCanvas from './Page/PageCanvas.js';\nimport PageSVG from './Page/PageSVG.js';\nimport TextLayer from './Page/TextLayer.js';\nimport AnnotationLayer from './Page/AnnotationLayer.js';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { eventProps, isClassName, isPageIndex, isPageNumber, isPdf, isRef, isRenderMode, isRotate, } from './shared/propTypes.js';\nconst defaultScale = 1;\n/**\n * Displays a page.\n *\n * Should be placed inside ``. Alternatively, it can have `pdf` prop passed, which can be obtained from ``'s `onLoadSuccess` callback function, however some advanced functions like linking between pages inside a document may not be working correctly.\n */\nconst Page = function Page(props) {\n const documentContext = useDocumentContext();\n invariant(documentContext, 'Unable to find Document context. Did you wrap in ?');\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { _className = 'react-pdf__Page', _enableRegisterUnregisterPage = true, canvasBackground, canvasRef, children, className, customRenderer: CustomRenderer, customTextRenderer, devicePixelRatio, error = 'Failed to load the page.', height, inputRef, loading = 'Loading page…', noData = 'No page specified.', onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, onGetTextError: onGetTextErrorProps, onGetTextSuccess: onGetTextSuccessProps, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, onRenderTextLayerError: onRenderTextLayerErrorProps, onRenderTextLayerSuccess: onRenderTextLayerSuccessProps, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, registerPage, renderAnnotationLayer: renderAnnotationLayerProps = true, renderForms = false, renderMode = 'canvas', renderTextLayer: renderTextLayerProps = true, rotate: rotateProps, scale: scaleProps = defaultScale, unregisterPage, width } = mergedProps, otherProps = __rest(mergedProps, [\"_className\", \"_enableRegisterUnregisterPage\", \"canvasBackground\", \"canvasRef\", \"children\", \"className\", \"customRenderer\", \"customTextRenderer\", \"devicePixelRatio\", \"error\", \"height\", \"inputRef\", \"loading\", \"noData\", \"onGetAnnotationsError\", \"onGetAnnotationsSuccess\", \"onGetStructTreeError\", \"onGetStructTreeSuccess\", \"onGetTextError\", \"onGetTextSuccess\", \"onLoadError\", \"onLoadSuccess\", \"onRenderAnnotationLayerError\", \"onRenderAnnotationLayerSuccess\", \"onRenderError\", \"onRenderSuccess\", \"onRenderTextLayerError\", \"onRenderTextLayerSuccess\", \"pageIndex\", \"pageNumber\", \"pdf\", \"registerPage\", \"renderAnnotationLayer\", \"renderForms\", \"renderMode\", \"renderTextLayer\", \"rotate\", \"scale\", \"unregisterPage\", \"width\"]);\n const [pageState, pageDispatch] = useResolver();\n const { value: page, error: pageError } = pageState;\n const pageElement = useRef(null);\n invariant(pdf, 'Attempted to load a page, but no document was specified.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null;\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n const rotate = rotateProps !== null && rotateProps !== void 0 ? rotateProps : (page ? page.rotate : null);\n const scale = useMemo(() => {\n if (!page) {\n return null;\n }\n // Be default, we'll render page at 100% * scale width.\n let pageScale = 1;\n // Passing scale explicitly null would cause the page not to render\n const scaleWithDefault = scaleProps !== null && scaleProps !== void 0 ? scaleProps : defaultScale;\n // If width/height is defined, calculate the scale of the page so it could be of desired width.\n if (width || height) {\n const viewport = page.getViewport({ scale: 1, rotation: rotate });\n if (width) {\n pageScale = width / viewport.width;\n }\n else if (height) {\n pageScale = height / viewport.height;\n }\n }\n return scaleWithDefault * pageScale;\n }, [height, page, rotate, scaleProps, width]);\n function hook() {\n return () => {\n if (!isProvided(pageIndex)) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (_enableRegisterUnregisterPage && unregisterPage) {\n unregisterPage(pageIndex);\n }\n };\n }\n useEffect(hook, [_enableRegisterUnregisterPage, pdf, pageIndex, unregisterPage]);\n /**\n * Called when a page is loaded successfully\n */\n function onLoadSuccess() {\n if (onLoadSuccessProps) {\n if (!page || !scale) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n onLoadSuccessProps(makePageCallback(page, scale));\n }\n if (_enableRegisterUnregisterPage && registerPage) {\n if (!isProvided(pageIndex) || !pageElement.current) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n registerPage(pageIndex, pageElement.current);\n }\n }\n /**\n * Called when a page failed to load\n */\n function onLoadError() {\n if (!pageError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pageError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pageError);\n }\n }\n function resetPage() {\n pageDispatch({ type: 'RESET' });\n }\n useEffect(resetPage, [pageDispatch, pdf, pageIndex]);\n function loadPage() {\n if (!pdf || !pageNumber) {\n return;\n }\n const cancellable = makeCancellable(pdf.getPage(pageNumber));\n const runningTask = cancellable;\n cancellable.promise\n .then((nextPage) => {\n pageDispatch({ type: 'RESOLVE', value: nextPage });\n })\n .catch((error) => {\n pageDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }\n useEffect(loadPage, [pageDispatch, pdf, pageIndex, pageNumber, registerPage]);\n useEffect(() => {\n if (page === undefined) {\n return;\n }\n if (page === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [page, scale]);\n const childContext = useMemo(() => \n // Technically there cannot be page without pageIndex, pageNumber, rotate and scale, but TypeScript doesn't know that\n page && isProvided(pageIndex) && pageNumber && isProvided(rotate) && isProvided(scale)\n ? {\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsError: onGetAnnotationsErrorProps,\n onGetAnnotationsSuccess: onGetAnnotationsSuccessProps,\n onGetStructTreeError: onGetStructTreeErrorProps,\n onGetStructTreeSuccess: onGetStructTreeSuccessProps,\n onGetTextError: onGetTextErrorProps,\n onGetTextSuccess: onGetTextSuccessProps,\n onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps,\n onRenderError: onRenderErrorProps,\n onRenderSuccess: onRenderSuccessProps,\n onRenderTextLayerError: onRenderTextLayerErrorProps,\n onRenderTextLayerSuccess: onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayer: renderTextLayerProps,\n rotate,\n scale,\n }\n : null, [\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsErrorProps,\n onGetAnnotationsSuccessProps,\n onGetStructTreeErrorProps,\n onGetStructTreeSuccessProps,\n onGetTextErrorProps,\n onGetTextSuccessProps,\n onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccessProps,\n onRenderErrorProps,\n onRenderSuccessProps,\n onRenderTextLayerErrorProps,\n onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayerProps,\n rotate,\n scale,\n ]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => page ? (scale ? makePageCallback(page, scale) : undefined) : page), [otherProps, page, scale]);\n const pageKey = `${pageIndex}@${scale}/${rotate}`;\n const pageKeyNoScale = `${pageIndex}/${rotate}`;\n function renderMainLayer() {\n switch (renderMode) {\n case 'custom': {\n invariant(CustomRenderer, `renderMode was set to \"custom\", but no customRenderer was passed.`);\n return React.createElement(CustomRenderer, { key: `${pageKey}_custom` });\n }\n case 'none':\n return null;\n case 'svg':\n return React.createElement(PageSVG, { key: `${pageKeyNoScale}_svg` });\n case 'canvas':\n default:\n return React.createElement(PageCanvas, { key: `${pageKey}_canvas`, canvasRef: canvasRef });\n }\n }\n function renderTextLayer() {\n if (!renderTextLayerProps) {\n return null;\n }\n return React.createElement(TextLayer, { key: `${pageKey}_text` });\n }\n function renderAnnotationLayer() {\n if (!renderAnnotationLayerProps) {\n return null;\n }\n /**\n * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n */\n return React.createElement(AnnotationLayer, { key: `${pageKey}_annotations` });\n }\n function renderChildren() {\n return (React.createElement(PageContext.Provider, { value: childContext },\n renderMainLayer(),\n renderTextLayer(),\n renderAnnotationLayer(),\n children));\n }\n function renderContent() {\n if (!pageNumber) {\n return React.createElement(Message, { type: \"no-data\" }, typeof noData === 'function' ? noData() : noData);\n }\n if (pdf === null || page === undefined || page === null) {\n return (React.createElement(Message, { type: \"loading\" }, typeof loading === 'function' ? loading() : loading));\n }\n if (pdf === false || page === false) {\n return React.createElement(Message, { type: \"error\" }, typeof error === 'function' ? error() : error);\n }\n return renderChildren();\n }\n return (React.createElement(\"div\", Object.assign({ className: clsx(_className, className), \"data-page-number\": pageNumber, ref: mergeRefs(inputRef, pageElement), style: {\n ['--scale-factor']: `${scale}`,\n backgroundColor: canvasBackground || 'white',\n position: 'relative',\n minWidth: 'min-content',\n minHeight: 'min-content',\n } }, eventProps), renderContent()));\n};\nconst isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nPage.propTypes = Object.assign(Object.assign({}, eventProps), { canvasBackground: PropTypes.string, canvasRef: isRef, children: PropTypes.node, className: isClassName, customRenderer: PropTypes.func, customTextRenderer: PropTypes.func, devicePixelRatio: PropTypes.number, error: isFunctionOrNode, height: PropTypes.number, imageResourcesPath: PropTypes.string, inputRef: isRef, loading: isFunctionOrNode, noData: isFunctionOrNode, onGetTextError: PropTypes.func, onGetTextSuccess: PropTypes.func, onLoadError: PropTypes.func, onLoadSuccess: PropTypes.func, onRenderError: PropTypes.func, onRenderSuccess: PropTypes.func, onRenderTextLayerError: PropTypes.func, onRenderTextLayerSuccess: PropTypes.func, pageIndex: isPageIndex, pageNumber: isPageNumber, pdf: isPdf, renderAnnotationLayer: PropTypes.bool, renderForms: PropTypes.bool, renderMode: isRenderMode, renderTextLayer: PropTypes.bool, rotate: isRotate, scale: PropTypes.number, width: PropTypes.number });\nexport default Page;\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport Page from './Page.js';\nimport { isProvided } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\n/**\n * Displays a thumbnail of a page. Does not render the annotation layer or the text layer. Does not register itself as a link target, so the user will not be scrolled to a Thumbnail component when clicked on an internal link (e.g. in Table of Contents). When clicked, attempts to navigate to the page clicked (similarly to a link in Outline).\n *\n * Should be placed inside ``. Alternatively, it can have `pdf` prop passed, which can be obtained from ``'s `onLoadSuccess` callback function.\n */\nconst Thumbnail = function Thumbnail(props) {\n const documentContext = useDocumentContext();\n invariant(documentContext, 'Unable to find Document context. Did you wrap in ?');\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { className, linkService, onItemClick, pageIndex: pageIndexProps, pageNumber: pageNumberProps, } = mergedProps;\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null;\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n function onClick(event) {\n event.preventDefault();\n if (!isProvided(pageIndex) || !pageNumber) {\n return;\n }\n if (onItemClick) {\n onItemClick({\n pageIndex,\n pageNumber,\n });\n }\n else {\n linkService.goToPage(pageNumber);\n }\n }\n const { className: classNameProps, onItemClick: onItemClickProps } = props, pageProps = __rest(props, [\"className\", \"onItemClick\"]);\n return (\n /* eslint-disable-next-line jsx-a11y/anchor-is-valid */\n React.createElement(\"a\", { className: clsx('react-pdf__Thumbnail', className), href: pageNumber ? '#' : undefined, onClick: onClick },\n React.createElement(Page, Object.assign({}, pageProps, { _className: \"react-pdf__Thumbnail__page\", _enableRegisterUnregisterPage: false, renderAnnotationLayer: false, renderTextLayer: false }))));\n};\nexport default Thumbnail;\n","import pdfjs from './pdfjs.js';\nimport Document from './Document.js';\nimport Outline from './Outline.js';\nimport Page from './Page.js';\nimport Thumbnail from './Thumbnail.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useOutlineContext from './shared/hooks/useOutlineContext.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { displayWorkerWarning } from './shared/utils.js';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.js';\nexport { pdfjs, Document, Outline, Page, Thumbnail, useDocumentContext, useOutlineContext, usePageContext, PasswordResponses, };\n"],"names":["root","factory","__unused_webpack_module","exports","assert","bytesToString","createValidAbsoluteUrl","getModificationDate","getUuid","getVerbosityLevel","info","isArrayBuffer","isArrayEqual","normalizeUnicode","objectFromMap","objectSize","setVerbosityLevel","shadow","string32","stringToBytes","stringToPDFString","stringToUTF8String","unreachable","utf8StringToString","warn","isNodeJS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","AnnotationMode","AnnotationEditorPrefix","AnnotationEditorType","AnnotationEditorParamsType","PermissionFlag","TextRenderingMode","ImageKind","AnnotationType","AnnotationReplyType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","DocumentActionEventType","PageActionEventType","VerbosityLevel","CMapCompressionType","OPS","PasswordResponses","verbosity","level","msg","cond","_isValidProtocol","url","baseUrl","options","dots","absoluteUrl","obj","prop","value","nonSerializable","BaseException","message","name","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytes","length","MAX_ARGUMENT_COUNT","strBuf","i","chunkEnd","chunk","str","map","key","isLittleEndian","buffer8","isEvalSupported","FeatureTest","_b","_a","hexNumbers","n","Util","r","g","b","transform","minMax","temp","m1","m2","p","m","xt","yt","d","p1","p2","p3","p4","transpose","a","c","first","second","sx","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","buffer","ex","ii","v","arr1","arr2","date","PromiseCapability","__privateAdd","_settled","resolve","reject","data","__privateSet","reason","__privateGet","NormalizeRegex","NormalizationMap","_","buf","AnnotationPrefix","src","task","docId","httpHeaders","withCredentials","password","rangeTransport","rangeChunkSize","worker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","canvasMaxAreaInBytes","disableFontFace","fontExtraProperties","enableXfa","ownerDocument","disableRange","disableStream","disableAutoFetch","pdfBug","useSystemFonts","useWorkerFetch","canvasFactory","filterFactory","styleElement","transportFactory","workerParams","fetchDocParams","transportParams","workerIdPromise","networkStreamPromise","networkStream","params","workerId","messageHandler","transport","source","val","_PDFDocumentLoadingTask","__privateWrapper","_docId","_c","initialData","progressiveDone","contentDispositionFilename","listener","begin","loaded","total","end","pdfInfo","js","jsArr","pageNumber","ref","id","keepLoadedFonts","pageIndex","pageInfo","_tryCleanup","_abortDelayedCleanup","_delayedCleanupTimeout","_pendingCleanup","scale","rotation","offsetX","offsetY","dontFlip","intent","intentArgs","canvasContext","viewport","annotationMode","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","__privateMethod","abortDelayedCleanup_fn","intentState","intentPrint","complete","error","internalRenderTask","tryCleanup_fn","renderTask","transparency","optionalContentConfig","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","xfa","readableStream","pump","reader","done","waitOn","resetStats","success","cacheKey","operatorListChunk","renderingIntent","annotationStorageSerializable","transfers","force","delay","curCacheKey","curIntentState","delayed","renderTasks","operatorList","_listeners","_deferred","transfer","event","require","pdfjsFilePath","otherUrl","base","other","wrapper","port","_workerPorts","workerSrc","terminateEarly","onWorkerError","sendTest","testObj","WorkerMessageHandler","workerHandler","cachedPort","loadingTask","_cacheSimpleMethod","_methodPromises","_pageCache","_pagePromises","_passwordCapability","isOpList","page","terminated","sink","evt","readyReason","headersCapability","fullReader","rangeReader","exception","updatePassword","type","exportedData","exportedError","inspectFont","font","imageData","pageProxy","width","height","cachedPromise","promise","cacheSimpleMethod_fn","results","_ensureObj","_objs","objId","callback","ensureObj_fn","_internalRenderTask","extraDelay","separateAnnots","_InternalRenderTask","objs","commonObjs","useRequestAnimationFrame","_canvasInUse","__w_pdfjs_require__","_util","_editor","_murmurhash","SerializableEmpty","AnnotationStorage","_setModified","_modified","_storage","defaultValue","modified","entry","setModified_fn","PrintAnnotationStorage","hash","context","hasBitmap","serialized","parent","_serializable","clone","_tools","_display_utils","_AnnotationEditor","parameters","_translate","_getBaseTranslation","_getRotationMatrix","_createResizers","_resizerPointerdown","_resizerPointermove","_setAltTextButtonState","_setUpDragSession","_altText","_altTextDecorative","_altTextButton","_altTextTooltip","_altTextTooltipTimeout","_keepAspectRatio","_resizersDiv","_boundFocusin","_boundFocusout","_hasBeenClicked","_isEditing","_isInEditMode","_isDraggable","_zIndex","pageWidth","pageHeight","pageX","pageY","editor","fakeEditor","FakeEditor","l10n","style","_type","_value","mime","item","target","x","y","tx","ty","translate_fn","parentWidth","parentHeight","bx","by","getBaseTranslation_fn","_rotatePoint","rotatePoint_fn","parentScale","scaledWidth","scaledHeight","widthPercent","heightPercent","altText","setAltTextButtonState_fn","decorative","isMac","setUpDragSession_fn","shiftX","shiftY","isForCopying","uiManager","createResizers_fn","aspectRatio","_borderLineWidth","angle","getRotationMatrix_fn","classes","div","resizerPointerdown_fn","boundResizerPointermove","resizerPointermove_fn","savedDraggable","pointerMoveOptions","savedX","savedY","savedWidth","savedHeight","savedParentCursor","savedCursor","pointerUpCallback","newX","newY","newWidth","newHeight","minWidth","minHeight","round","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","w","h","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","oldDiag","button","tooltip","DELAY_TO_SHOW_TOOLTIP","isSelected","pointerMoveCallback","e","AnnotationEditor","bindEvents","opacityToHex","element","names","opacity","IdManager","_id","_ImageManager","_get","_baseId","_cache","svg","ctx","image","file","lastModified","size","get_fn","rawData","response","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","ImageManager","CommandManager","maxSize","_commands","_locked","_maxSize","_position","cmd","undo","mustExec","overwriteIfSameType","keepUndo","save","next","KeyboardManager","callbacks","_serialize","keys","isMacKey","self","serialize_fn","bubbles","args","checker","_ColorManager","colors","color","rgb","RGB","ColorManager","_AnnotationEditorUIManager","container","viewer","altTextManager","eventBus","pdfDocument","_addFocusManager","_removeFocusManager","_addKeyboardManager","_removeKeyboardManager","_addCopyPasteListeners","_removeCopyPasteListeners","_dispatchUpdateStates","_dispatchUpdateUI","_enableAll","_disableAll","_addEditorToLayer","_isEmpty","_selectEditors","_activeEditor","_allEditors","_allLayers","_altTextManager","_annotationStorage","_commandManager","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_filterFactory","_idManager","_isEnabled","_isWaiting","_lastActiveElement","_mode","_selectedEditors","_pageColors","_boundBlur","_boundFocus","_boundCopy","_boundCut","_boundPaste","_boundKeydown","_boundOnEditingAction","_boundOnPageChanging","_boundOnScaleChanging","_boundOnRotationChanging","_previousStates","_translation","_translationTimeoutId","_container","_viewer","proto","arrowChecker","activeElement","small","big","removeKeyboardManager_fn","removeFocusManager_fn","layer","layerX","layerY","pagesRotation","lastEditor","lastActiveElement","addKeyboardManager_fn","addCopyPasteListeners_fn","removeCopyPasteListeners_fn","editors","clipboardData","editorType","newEditors","deserializedEditor","addEditorToLayer_fn","selectEditors_fn","isEditing","addFocusManager_fn","dispatchUpdateStates_fn","isEmpty_fn","types","dispatchUpdateUI_fn","mode","editId","disableAll_fn","enableAll_fn","mustWait","annotationElementId","ed","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","move","newPageIndex","savedPageIndex","AnnotationEditorUIManager","deprecated","getColorValues","getCurrentTransform","getCurrentTransformInverse","getFilenameFromUrl","getPdfFilenameFromUrl","getRGB","getXfaPageViewport","isDataScheme","isPdfFile","isValidFetchUrl","loadScript","noContextMenu","setLayerDimensions","_base_factory","SVG_NS","_PixelsPerInch","PixelsPerInch","DOMFilterFactory","_defs","_addGrayConversion","_createFilter","_appendFeFunc","_addTransferMapConversion","_getRGB","__cache","__defs","_document","_hcmFilter","_hcmKey","_hcmUrl","_hcmHighlightFilter","_hcmHighlightKey","_hcmHighlightUrl","maps","cache_get","tableR","tableG","tableB","mapR","mapG","mapB","bufferR","bufferG","bufferB","filter","createFilter_fn","addTransferMapConversion_fn","fgColor","bgColor","fgRGB","getRGB_fn","bgRGB","defs_get","table","addGrayConversion_fn","getSteps","start","arr","newFgColor","newBgColor","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","step","newStart","newStep","prev","k","keepHCM","feColorMatrix","appendFeFunc_fn","feComponentTransfer","func","feFunc","rTable","gTable","bTable","DOMCanvasFactory","canvas","fetchData","asTypedArray","request","DOMCMapReaderFactory","compressionType","DOMStandardFontDataFactory","DOMSVGFactory","PageViewport","viewBox","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","RenderingCancelledException","filename","onlyStripPath","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","StatTimer","outBuf","longest","protocol","removeScriptElement","script","pdfDateStringRegex","PDFDateString","input","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","xfaPage","colorRGB","span","computedColor","f","mustFlip","mustRotate","useRound","widthStr","heightStr","BaseFilterFactory","BaseCanvasFactory","canvasAndContext","BaseCMapReaderFactory","isCompressed","BaseStandardFontDataFactory","BaseSVGFactory","skipDimensions","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","FontLoader","_systemFonts","nativeFontFace","rule","styleSheet","loadedName","fontFace","hasFonts","supported","completeRequest","loadingRequests","otherRequest","testFont","int32","offset","spliceString","s","remove","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","FontFaceObject","translatedData","css","character","cmds","jsBuf","current","require$$0","NodeFilterFactory","NodeCanvasFactory","require$$1","NodeCMapReaderFactory","NodeStandardFontDataFactory","_pattern_helper","_image_utils","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","cp1x","cp1y","cp2x","cp2y","CachedCanvases","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","scaleX","scaleY","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","pos","elem","mask","count","sum","steps","path","p0","pp","CanvasExtraState","box","pathType","xStrokePad","yStrokePad","intersect","putBinaryImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","destPos","dest","thisChunkHeight","elemsInThisChunk","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","properties","property","resetCtxToDefault","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","layerOffsetX","layerOffsetY","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","chunkSize","row","chunkHeight","composeSMask","smask","layerBox","layerWidth","layerHeight","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics","canvasCtx","markedContentStack","_restoreInitialState","_drawFilter","fallback","savedFillStyle","transparentCanvas","executionStartIdx","continueCallback","stepper","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","fnId","depObjId","objsPool","restoreInitialState_fn","cache","drawFilter_fn","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","tmpCanvas","tmpCtx","fillColor","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","inverse","limit","dashArray","dashPhase","flatness","states","inSMaskMode","cacheId","scratchCanvas","dirtyBox","suspendedCtx","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","strokeColor","needRestore","paths","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","patternTransform","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","enabled","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","lineWidth","chars","glyph","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","IR","baseTransform","canvasGraphicsFactory","matrix","inv","bbox","group","currentCtx","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","canvasWidth","canvasHeight","skewX","skewY","positions","trans","images","bitmap","imgToPaint","tag","clipBox","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","CanvasGraphics","op","getShadingPattern","PathType","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","grad","colorStop","owner","ownerBBox","domMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","combinedScale","backgroundColor","cachedCanvases","boundsWidth","boundsHeight","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","PaintType","_TilingPattern","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","dimy","graphics","adjustedX0","adjustedY0","adjustedX1","adjustedY1","realOutputSize","bboxWidth","bboxHeight","cssColor","TilingPattern","convertBlackAndWhiteToRGBA","convertToRGBA","grayToRGBA","convertRGBToRGBA","nonBlackColor","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","max","len32","src32","s1","s2","s3","jj","GlobalWorkerOptions","CallbackKind","StreamKind","wrapReason","MessageHandler","sourceName","targetName","comObj","_createStreamSink","_processStreamMessage","_deleteStreamController","processStreamMessage_fn","callbackId","capability","action","cbSourceName","cbTargetName","result","createStreamSink_fn","actionName","handler","ah","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","streamSink","lastDesiredSize","streamController","deleteStreamController_fn","Metadata","parsedData","_metadataMap","_data","INTERNAL","OptionalContentGroup","_visible","internal","visible","OptionalContentConfig","_evaluateVisibilityExpression","_cachedGetHash","_groups","_initialHash","_order","on","off","evaluateVisibilityExpression_fn","array","operator","state","PDFDataTransportStream","pdfDataRangeTransport","found","_d","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","stream","requestCapability","_network_utils","createFetchOptions","headers","abortController","createHeaders","getArrayBuffer","PDFFetchStream","PDFFetchStreamReader","PDFFetchStreamRangeReader","getResponseHeader","allowRangeRequests","suggestedLength","createResponseStatusError","extractFilenameFromHeader","validateRangeRequestCapabilities","validateResponseStatus","_content_disposition","isHttp","returnValues","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","contentDispositionStr","match","iter","quot","part","parts","quotindex","extvalue","encodingend","charset","text","hex","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","NetworkManager","listeners","xhrId","pendingRequest","xhrStatus","rangeHeader","PDFNetworkStream","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","manager","fullRequestXhrId","fullRequestXhr","fileUriRegex","parseUrl","sourceUrl","require$$2","parsedUrl","PDFNodeStream","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","BaseRangeReader","createRequestOptions","handleResponse","http","require$$3","https","require$$4","fs","stat","SVG_DEFAULTS","XML_NS","XLINK_NS","createObjectURL","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","body","len","adler32","deflateSync","literals","deflateSyncUncompressed","output","maxBlockLength","deflateBlocks","idat","pi","adler","encode","kind","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","opListToTree","opList","opTree","opListElement","pf","pm","clipCount","maskCount","shadingCount","SVGGraphics","items","transformMatrix","svgElement","operatorIdMapping","opTreeElement","fn","lineWidthScale","textMatrix","strokeAlpha","fillAlpha","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","clipId","clipPath","clipElement","textRise","imgSrc","cliprect","imgEl","definitions","rootGroup","clipGroup","XfaText","walk","node","child","renderTextLayer","updateTextLayer","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","ascentCache","getCtx","getAscent","fontFamily","cachedAscent","metrics","ascent","descent","ratio","pixels","appendText","geom","styles","textDiv","textDivProperties","fontHeight","fontAscent","left","top","scaleFactorStr","divStyle","shouldScaleText","absScaleX","absScaleY","layout","prevFontSize","prevFontFamily","render","textDivs","TextLayerRenderTask","textContentSource","textContentItemsStr","styleCache","br","visibility","scaleFactor","mustRescale","_freetext","_ink","_stamp","_AnnotationEditorLayer","accessibilityManager","annotationLayer","_createNewEditor","_createAndAddNewEditor","_getCenterPoint","_cleanup","_accessibilityManager","_allowClick","_annotationLayer","_boundPointerup","_boundPointerdown","_editors","_hadPointerDown","_isCleaningUp","_isDisabling","_uiManager","editorTypes","cleanup_fn","isCommitting","createAndAddNewEditor_fn","annotationElementIds","editables","editable","hiddenAnnotationIds","getCenterPoint_fn","createNewEditor_fn","isCentered","AnnotationEditorLayer","_annotation_layer","_FreeTextEditor","_updateFontSize","_updateColor","_extractText","_setEditorDimensions","_setContent","_hasElementChanged","_cheatInitialRect","_boundEditorDivBlur","_boundEditorDivFocus","_boundEditorDivInput","_boundEditorDivKeydown","_color","_content","_editorDivId","_fontSize","_initialData","updateFontSize_fn","updateColor_fn","cheatInitialRect_fn","savedText","newText","extractText_fn","setText","setContent_fn","setEditorDimensions_fn","baseX","baseY","position","posX","posY","fontColor","textPosition","padding","hasElementChanged_fn","setFontsize","savedFontsize","savedColor","divs","currentLayer","savedDisplay","line","FreeTextEditor","_annotation_storage","_scripting_utils","_displayL10n_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","_hasBorder","titleObj","contentsObj","richText","horizontalRadius","verticalRadius","radius","borderColor","elementWidth","elementHeight","setColor","jsName","styleName","colorArray","display","hidden","actions","jsEvent","commonActions","storedData","detail","eventProxy","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","borderWidth","svgFactory","defs","rectWidth","rectHeight","popup","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","_setInternalLink","_bindSetOCGState","linkService","link","isBound","bindSetOCGState_fn","destination","setInternalLink_fn","attachment","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","isWin","elementData","baseName","eventName","valueGetter","getter","TEXT_ALIGNMENT","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","fieldFormattedValues","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","option","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","values","index","displayValue","selectChild","indices","elements","PopupElement","elementIds","modificationDate","parentRect","open","_keyDown","_toggle","_show","_hide","_dateTimePromise","_boundKeyDown","keyDown_fn","_boundHide","hide_fn","_boundShow","show_fn","_boundToggle","toggle_fn","_contentsObj","_elements","_parent","_parentRect","_pinned","_popup","_rect","_richText","_titleObj","_wasVisible","dateObject","view","baseColor","header","title","localized","contents","useParentRect","normalizedRect","HORIZONTAL_SPACE_AFTER_ANNOTATION","popupLeft","popupTop","dir","lines","content","lineSpan","_line","_square","square","_circle","circle","_polyline","coordinate","polyline","_polylines","inkList","_download","_trigger","trigger","download_fn","AnnotationLayer","_appendElement","_setAnnotationCanvasMap","_annotationCanvasMap","_editableAnnotations","annotations","popupToElements","elementParams","isPopupAnnotation","rendered","appendElement_fn","setAnnotationCanvasMap_fn","contentElement","firstChild","makeColorComp","scaleAndClamp","ColorConverters","G","components","getL10nFallback","DEFAULT_L10N_STRINGS","formatL10nValue","all","NullL10n","_xfa_text","XfaLayer","html","attributes","isHTMLAnchorElement","rootHtml","stack","rootDiv","childHtml","el","_InkEditor","_updateThickness","_updateOpacity","_getInitialBBox","_setStroke","_startDrawing","_draw","_endPath","_stopDrawing","_drawPoints","_makeBezierCurve","_generateBezierPoints","_redraw","_endDrawing","_createCanvas","_createObserver","_setCanvasDims","_setScaleFactor","_updateTransform","_serializePaths","_getBbox","_getPadding","_fitToContent","_baseHeight","_baseWidth","_boundCanvasPointermove","_boundCanvasPointerleave","_boundCanvasPointerup","_boundCanvasPointerdown","_currentPath2D","_disableEditing","_hasSomethingToDraw","_isCanvasInitialized","_observer","_realWidth","_realHeight","_requestFrameCallback","updateThickness_fn","updateOpacity_fn","createCanvas_fn","createObserver_fn","setCanvasDims_fn","fitToContent_fn","startDrawing_fn","draw_fn","endDrawing_fn","getInitialBBox_fn","redraw_fn","roundedWidth","roundedHeight","setScaleFactor_fn","bezier","_fromPDFCoordinates","fromPDFCoordinates_fn","p10","p11","p20","p21","p30","p31","path2D","_buildPath2D","buildPath2D_fn","getBbox_fn","serializePaths_fn","thickness","savedThickness","savedOpacity","parentRotation","setStroke_fn","drawPoints_fn","lastX","lastY","currentPath","makeBezierCurve_fn","endPath_fn","lastPoint","stopDrawing_fn","generateBezierPoints_fn","xy","lastPoints","prevX","prevY","bezierPoints","control1","control2","updateTransform_fn","entries","getPadding_fn","scaleFactorW","scaleFactorH","_toPDFCoordinates","toPDFCoordinates_fn","p40","p41","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","InkEditor","_StampEditor","_getBitmapFetched","_getBitmapDone","_getBitmap","_setDimensions","_scaleBitmap","_drawBitmap","_serializeBitmap","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_canvas","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","getBitmap_fn","bitmapUrl","bitmapId","isSvg","accessibilityData","serializeBitmap_fn","area","prevData","getBitmapFetched_fn","fromId","getBitmapDone_fn","MAX_RATIO","factor","drawBitmap_fn","setDimensions_fn","scaleBitmap_fn","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","toUrl","StampEditor","moduleId","cachedModule","module","_annotation_editor_layer","_worker_options","_api","_text_layer","pdfjsModule['default']","ReactPropTypesSecret","shim","props","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","propTypesModule","this","to","from","pack","l","ar","getArgs","eventProps","eventHandler","isCancelled","wrappedPromise","o","condition","provided","tar","foo","bar","ctor","createContext","children","pdfViewer","externalLinkRel","externalLinkTarget","explicitDest","destRef","newWindow","variable","dataURI","headersString","dataString","warning","runningTask","useReducer","PDFDataRangeTransport","pdfjs","isPageIndex","pdf","numPages","isPageNumber","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","rejected","__rest","forwardRef","Document","className","inputRef","imageResourcesPath","loading","noData","onItemClick","onLoadErrorProps","onLoadProgress","onLoadSuccessProps","onPassword","onSourceErrorProps","onSourceSuccessProps","renderMode","rotate","otherProps","sourceState","sourceDispatch","sourceError","pdfState","pdfDispatch","pdfError","useRef","pages","prevFile","prevOptions","useEffect","useImperativeHandle","onSourceSuccess","onSourceError","resetSource","findDocumentSource","useCallback","otherParams","fileByteString","cancellable","makeCancellable","nextSource","onLoadSuccess","onLoadError","resetDocument","loadDocument","documentInitParams","destroyable","nextPdf","setupLinkService","registerPage","unregisterPage","childContext","useMemo","renderChildren","renderContent","isFunctionOrNode","num","gen","currentValue","useContext","documentContext","outlineContext","mergedProps","getDestination","getPageIndex","getPageNumber","onClick","renderSubitems","subitems","subitem","subitemIndex","Outline","outlineState","outlineDispatch","outline","outlineError","resetOutline","loadOutline","nextOutline","renderOutline","itemIndex","inputRefs","_i","filteredInputRefs","firstRef","role","htmlRole","childAttributes","pageContext","onGetStructTreeErrorProps","onGetStructTreeSuccessProps","structTreeState","structTreeDispatch","structTree","structTreeError","customTextRenderer","resetAnnotations","loadStructTree","nextStructTree","_className","canvasBackground","devicePixelRatio","onRenderErrorProps","onRenderSuccessProps","renderForms","canvasRef","canvasElement","onRenderSuccess","onRenderError","renderViewport","drawPageOnCanvas","renderContext","cleanup","svgState","svgDispatch","svgError","resetSVG","renderSVG","nextSvg","drawPageOnContainer","onGetTextError","onGetTextSuccess","onRenderTextLayerError","onRenderTextLayerSuccess","textContentState","textContentDispatch","textContentError","layerElement","endElement","resetTextContent","loadTextContent","nextTextContent","onMouseDown","onMouseUp","layerChildren","useLayoutEffect","onGetAnnotationsErrorProps","onGetAnnotationsSuccessProps","onRenderAnnotationLayerErrorProps","onRenderAnnotationLayerSuccessProps","annotationsState","annotationsDispatch","annotationsError","loadAnnotations","nextAnnotations","renderAnnotationLayer","clonedViewport","annotationLayerParameters","renderParameters","Page","_enableRegisterUnregisterPage","CustomRenderer","onGetTextErrorProps","onGetTextSuccessProps","onRenderTextLayerErrorProps","onRenderTextLayerSuccessProps","pageIndexProps","pageNumberProps","renderAnnotationLayerProps","renderTextLayerProps","rotateProps","scaleProps","pageState","pageDispatch","pageError","pageElement","pageScale","scaleWithDefault","hook","resetPage","loadPage","nextPage","pageKey","pageKeyNoScale","renderMainLayer","Thumbnail","pageProps"],"mappings":"46BAkBA,IAAI,QAAU,UAAW,CAAA,EA2CzB,UAAiB,+TC7DjB,MAAe,sBAAA,CAAA,wOCsBd,SAA0CA,EAAMC,EAAS,CAExD,eAAiBD,EAAK,SAAWC,EAAO,CAOzC,GAAE,WAAY,KACE,IAAM,CAEb,IAAI,oBAAuB,CACrC,CAEO,CAACC,EAAyBC,IAAY,QAI7C,OAAO,eAAeA,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,eAAiBA,EAAQ,KAAOA,EAAQ,sBAAwBA,EAAQ,4BAA8BA,EAAQ,kBAAoBA,EAAQ,oBAAsBA,EAAQ,kBAAoBA,EAAQ,eAAiBA,EAAQ,kBAAoBA,EAAQ,kBAAoBA,EAAQ,oBAAsBA,EAAQ,IAAMA,EAAQ,oBAAsBA,EAAQ,wBAA0BA,EAAQ,YAAcA,EAAQ,oBAAsBA,EAAQ,oBAAsBA,EAAQ,UAAYA,EAAQ,gBAAkBA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,qBAAuBA,EAAQ,wBAA0BA,EAAQ,oBAAsBA,EAAQ,cAAgBA,EAAQ,gBAAkBA,EAAQ,eAAiBA,EAAQ,oBAAsBA,EAAQ,iBAAmBA,EAAQ,eAAiBA,EAAQ,eAAiBA,EAAQ,oBAAsBA,EAAQ,qBAAuBA,EAAQ,uBAAyBA,EAAQ,2BAA6BA,EAAQ,0BAA4BA,EAAQ,0BAA4BA,EAAQ,eAAiB,OACtiCA,EAAQ,OAASC,GACjBD,EAAQ,cAAgBE,EACxBF,EAAQ,uBAAyBG,GACjCH,EAAQ,oBAAsBI,GAC9BJ,EAAQ,QAAUK,GAClBL,EAAQ,kBAAoBM,EAC5BN,EAAQ,KAAOO,GACfP,EAAQ,cAAgBQ,GACxBR,EAAQ,aAAeS,GACvBT,EAAQ,SAAW,OACnBA,EAAQ,iBAAmBU,GAC3BV,EAAQ,cAAgBW,GACxBX,EAAQ,WAAaY,GACrBZ,EAAQ,kBAAoBa,EAC5Bb,EAAQ,OAASc,GACjBd,EAAQ,SAAWe,GACnBf,EAAQ,cAAgBgB,GACxBhB,EAAQ,kBAAoBiB,GAC5BjB,EAAQ,mBAAqBkB,GAC7BlB,EAAQ,YAAcmB,EACtBnB,EAAQ,mBAAqBoB,GAC7BpB,EAAQ,KAAOqB,GACf,MAAMC,EAAW,OAAO,SAAY,UAAY,QAAU,IAAO,oBAAsB,CAAC,QAAQ,SAAS,IAAM,EAAE,QAAQ,SAAS,UAAY,QAAQ,MAAQ,QAAQ,OAAS,WAC/KtB,EAAQ,SAAWsB,EACnB,MAAMC,EAAkB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACzCvB,EAAQ,gBAAkBuB,EAC1B,MAAMC,EAAuB,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,CAAC,EACtDxB,EAAQ,qBAAuBwB,EAC/B,MAAMC,EAA0B,IAChCzB,EAAQ,wBAA0ByB,EAClC,MAAMC,EAAc,KACpB1B,EAAQ,YAAc0B,EACtB,MAAMC,GAAsB,IAC5B3B,EAAQ,oBAAsB2B,GAC9B,MAAMC,EAAkBD,GAAsBD,EAC9C1B,EAAQ,gBAAkB4B,EAC1B,MAAMC,EAAsB,CAC1B,IAAK,EACL,QAAS,EACT,MAAO,EACP,KAAM,EACN,kBAAmB,GACnB,oBAAqB,GACrB,oBAAqB,GACrB,OAAQ,GACV,EACA7B,EAAQ,oBAAsB6B,EAC9B,MAAMC,EAAiB,CACrB,QAAS,EACT,OAAQ,EACR,aAAc,EACd,eAAgB,CAClB,EACA9B,EAAQ,eAAiB8B,EACzB,MAAMC,EAAyB,yBAC/B/B,EAAQ,uBAAyB+B,EACjC,MAAMC,EAAuB,CAC3B,QAAS,GACT,KAAM,EACN,SAAU,EACV,MAAO,GACP,IAAK,EACP,EACAhC,EAAQ,qBAAuBgC,EAC/B,MAAMC,EAA6B,CACjC,OAAQ,EACR,OAAQ,EACR,cAAe,GACf,eAAgB,GAChB,iBAAkB,GAClB,UAAW,GACX,cAAe,GACf,YAAa,EACf,EACAjC,EAAQ,2BAA6BiC,EACrC,MAAMC,EAAiB,CACrB,MAAO,EACP,gBAAiB,EACjB,KAAM,GACN,mBAAoB,GACpB,uBAAwB,IACxB,uBAAwB,IACxB,SAAU,KACV,mBAAoB,IACtB,EACAlC,EAAQ,eAAiBkC,EACzB,MAAMC,EAAoB,CACxB,KAAM,EACN,OAAQ,EACR,YAAa,EACb,UAAW,EACX,iBAAkB,EAClB,mBAAoB,EACpB,wBAAyB,EACzB,YAAa,EACb,iBAAkB,EAClB,iBAAkB,CACpB,EACAnC,EAAQ,kBAAoBmC,EAC5B,MAAMC,EAAY,CAChB,eAAgB,EAChB,UAAW,EACX,WAAY,CACd,EACApC,EAAQ,UAAYoC,EACpB,MAAMC,EAAiB,CACrB,KAAM,EACN,KAAM,EACN,SAAU,EACV,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,SAAU,EACV,UAAW,EACX,UAAW,GACX,SAAU,GACV,UAAW,GACX,MAAO,GACP,MAAO,GACP,IAAK,GACL,MAAO,GACP,eAAgB,GAChB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,OAAQ,GACR,YAAa,GACb,QAAS,GACT,UAAW,GACX,OAAQ,GACR,OAAQ,EACV,EACArC,EAAQ,eAAiBqC,EACzB,MAAMC,EAAsB,CAC1B,MAAO,QACP,MAAO,GACT,EACAtC,EAAQ,oBAAsBsC,EAC9B,MAAMC,EAAiB,CACrB,UAAW,EACX,OAAQ,EACR,MAAO,EACP,OAAQ,EACR,SAAU,GACV,OAAQ,GACR,SAAU,GACV,OAAQ,IACR,aAAc,IACd,eAAgB,GAClB,EACAvC,EAAQ,eAAiBuC,EACzB,MAAMC,EAAsB,CAC1B,SAAU,EACV,SAAU,EACV,SAAU,EACV,UAAW,KACX,SAAU,KACV,cAAe,MACf,MAAO,MACP,WAAY,MACZ,MAAO,OACP,KAAM,OACN,KAAM,OACN,WAAY,QACZ,YAAa,QACb,gBAAiB,QACjB,YAAa,QACb,KAAM,SACN,SAAU,SACV,eAAgB,SAChB,kBAAmB,QACrB,EACAxC,EAAQ,oBAAsBwC,EAC9B,MAAMC,EAA4B,CAChC,MAAO,EACP,OAAQ,EACR,QAAS,EACT,MAAO,EACP,UAAW,CACb,EACAzC,EAAQ,0BAA4ByC,EACpC,MAAMC,EAA4B,CAChC,EAAG,cACH,EAAG,aACH,EAAG,aACH,EAAG,WACH,GAAI,QACJ,GAAI,OACJ,GAAI,WACJ,GAAI,YACJ,GAAI,cACJ,GAAI,gBACJ,EAAG,YACH,EAAG,SACH,EAAG,WACH,EAAG,WACL,EACA1C,EAAQ,0BAA4B0C,EACpC,MAAMC,EAA0B,CAC9B,GAAI,YACJ,GAAI,WACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACN,EACA3C,EAAQ,wBAA0B2C,EAClC,MAAMC,EAAsB,CAC1B,EAAG,WACH,EAAG,WACL,EACA5C,EAAQ,oBAAsB4C,EAC9B,MAAMC,EAAiB,CACrB,OAAQ,EACR,SAAU,EACV,MAAO,CACT,EACA7C,EAAQ,eAAiB6C,EACzB,MAAMC,EAAsB,CAC1B,KAAM,EACN,OAAQ,CACV,EACA9C,EAAQ,oBAAsB8C,EAC9B,MAAMC,EAAM,CACV,WAAY,EACZ,aAAc,EACd,WAAY,EACZ,YAAa,EACb,cAAe,EACf,QAAS,EACT,mBAAoB,EACpB,YAAa,EACb,UAAW,EACX,KAAM,GACN,QAAS,GACT,UAAW,GACX,OAAQ,GACR,OAAQ,GACR,QAAS,GACT,SAAU,GACV,SAAU,GACV,UAAW,GACX,UAAW,GACX,OAAQ,GACR,YAAa,GACb,KAAM,GACN,OAAQ,GACR,WAAY,GACZ,aAAc,GACd,gBAAiB,GACjB,kBAAmB,GACnB,QAAS,GACT,KAAM,GACN,OAAQ,GACR,UAAW,GACX,QAAS,GACT,eAAgB,GAChB,eAAgB,GAChB,UAAW,GACX,WAAY,GACZ,QAAS,GACT,qBAAsB,GACtB,YAAa,GACb,SAAU,GACV,mBAAoB,GACpB,cAAe,GACf,SAAU,GACV,SAAU,GACV,eAAgB,GAChB,iBAAkB,GAClB,2BAA4B,GAC5B,aAAc,GACd,sBAAuB,GACvB,oBAAqB,GACrB,kBAAmB,GACnB,eAAgB,GAChB,gBAAiB,GACjB,aAAc,GACd,cAAe,GACf,cAAe,GACf,YAAa,GACb,kBAAmB,GACnB,gBAAiB,GACjB,mBAAoB,GACpB,iBAAkB,GAClB,YAAa,GACb,iBAAkB,GAClB,eAAgB,GAChB,eAAgB,GAChB,aAAc,GACd,UAAW,GACX,eAAgB,GAChB,mBAAoB,GACpB,wBAAyB,GACzB,iBAAkB,GAClB,YAAa,GACb,UAAW,GACX,sBAAuB,GACvB,oBAAqB,GACrB,WAAY,GACZ,SAAU,GACV,gBAAiB,GACjB,cAAe,GACf,sBAAuB,GACvB,2BAA4B,GAC5B,kBAAmB,GACnB,wBAAyB,GACzB,6BAA8B,GAC9B,wBAAyB,GACzB,4BAA6B,GAC7B,yBAA0B,GAC1B,cAAe,EACjB,EACA/C,EAAQ,IAAM+C,EACd,MAAMC,EAAoB,CACxB,cAAe,EACf,mBAAoB,CACtB,EACAhD,EAAQ,kBAAoBgD,EAC5B,IAAIC,EAAYJ,EAAe,SAC/B,SAAShC,EAAkBqC,GAAO,CAC5B,OAAO,UAAUA,EAAK,IACxBD,EAAYC,GAEf,CACD,SAAS5C,GAAoB,CAC3B,OAAO2C,CACR,CACD,SAAS1C,GAAK4C,GAAK,CACbF,GAAaJ,EAAe,OAC9B,QAAQ,IAAI,SAASM,EAAG,EAAE,CAE7B,CACD,SAAS9B,GAAK8B,GAAK,CACbF,GAAaJ,EAAe,UAC9B,QAAQ,IAAI,YAAYM,EAAG,EAAE,CAEhC,CACD,SAAShC,EAAYgC,GAAK,CACxB,MAAM,IAAI,MAAMA,EAAG,CACpB,CACD,SAASlD,GAAOmD,GAAMD,EAAK,CACpBC,IACHjC,EAAYgC,CAAG,CAElB,CACD,SAASE,GAAiBC,GAAK,CAC7B,OAAQA,IAAA,YAAAA,GAAK,SAAQ,CACnB,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,OACH,MAAO,GACT,QACE,MAAO,EACV,CACF,CACD,SAASnD,GAAuBmD,GAAKC,EAAU,KAAMC,EAAU,KAAM,CACnE,GAAI,CAACF,GACH,OAAO,KAET,GAAI,CACF,GAAIE,GAAW,OAAOF,IAAQ,SAAU,CACtC,GAAIE,EAAQ,oBAAsBF,GAAI,WAAW,MAAM,EAAG,CACxD,MAAMG,GAAOH,GAAI,MAAM,KAAK,GACxBG,IAAA,YAAAA,GAAM,SAAU,IAClBH,GAAM,UAAUA,EAAG,GAEtB,CACD,GAAIE,EAAQ,mBACV,GAAI,CACFF,GAAMpC,GAAmBoC,EAAG,CAC7B,MAAO,CAAE,CAEb,CACD,MAAMI,GAAcH,EAAU,IAAI,IAAID,GAAKC,CAAO,EAAI,IAAI,IAAID,EAAG,EACjE,GAAID,GAAiBK,EAAW,EAC9B,OAAOA,EAEV,MAAO,CAAE,CACV,OAAO,IACR,CACD,SAAS5C,GAAO6C,GAAKC,EAAMC,EAAOC,GAAkB,GAAO,CACzD,cAAO,eAAeH,GAAKC,EAAM,CAC/B,MAAAC,EACA,WAAY,CAACC,GACb,aAAc,GACd,SAAU,EACd,CAAG,EACMD,CACR,CACD,MAAME,EAAgB,UAAgC,CACpD,SAASA,EAAcC,EAASC,GAAM,CAChC,KAAK,cAAgBF,GACvB5C,EAAY,kCAAkC,EAEhD,KAAK,QAAU6C,EACf,KAAK,KAAOC,EACb,CACD,OAAAF,EAAc,UAAY,IAAI,MAC9BA,EAAc,YAAcA,EACrBA,CACT,IACA/D,EAAQ,cAAgB+D,EACxB,MAAMG,UAA0BH,CAAc,CAC5C,YAAYZ,EAAKgB,EAAM,CACrB,MAAMhB,EAAK,mBAAmB,EAC9B,KAAK,KAAOgB,CACb,CACF,CACDnE,EAAQ,kBAAoBkE,EAC5B,MAAME,UAA8BL,CAAc,CAChD,YAAYZ,EAAKkB,EAAS,CACxB,MAAMlB,EAAK,uBAAuB,EAClC,KAAK,QAAUkB,CAChB,CACF,CACDrE,EAAQ,sBAAwBoE,EAChC,MAAME,UAA4BP,CAAc,CAC9C,YAAYZ,EAAK,CACf,MAAMA,EAAK,qBAAqB,CACjC,CACF,CACDnD,EAAQ,oBAAsBsE,EAC9B,MAAMC,UAA4BR,CAAc,CAC9C,YAAYZ,EAAK,CACf,MAAMA,EAAK,qBAAqB,CACjC,CACF,CACDnD,EAAQ,oBAAsBuE,EAC9B,MAAMC,UAAoCT,CAAc,CACtD,YAAYZ,EAAKsB,EAAQ,CACvB,MAAMtB,EAAK,6BAA6B,EACxC,KAAK,OAASsB,CACf,CACF,CACDzE,EAAQ,4BAA8BwE,EACtC,MAAME,UAAoBX,CAAc,CACtC,YAAYZ,EAAK,CACf,MAAMA,EAAK,aAAa,CACzB,CACF,CACDnD,EAAQ,YAAc0E,EACtB,MAAMC,UAAuBZ,CAAc,CACzC,YAAYZ,EAAK,CACf,MAAMA,EAAK,gBAAgB,CAC5B,CACF,CACDnD,EAAQ,eAAiB2E,EACzB,SAASzE,EAAc0E,GAAO,EACxB,OAAOA,IAAU,WAAYA,IAAA,YAAAA,GAAO,UAAW,SACjDzD,EAAY,oCAAoC,EAElD,MAAM0D,EAASD,GAAM,OACfE,EAAqB,KAC3B,GAAID,EAASC,EACX,OAAO,OAAO,aAAa,MAAM,KAAMF,EAAK,EAE9C,MAAMG,GAAS,CAAA,EACf,QAASC,GAAI,EAAGA,GAAIH,EAAQG,IAAKF,EAAoB,CACnD,MAAMG,GAAW,KAAK,IAAID,GAAIF,EAAoBD,CAAM,EAClDK,GAAQN,GAAM,SAASI,GAAGC,EAAQ,EACxCF,GAAO,KAAK,OAAO,aAAa,MAAM,KAAMG,EAAK,CAAC,CACnD,CACD,OAAOH,GAAO,KAAK,EAAE,CACtB,CACD,SAAS/D,GAAcmE,GAAK,CACtB,OAAOA,IAAQ,UACjBhE,EAAY,oCAAoC,EAElD,MAAM0D,EAASM,GAAI,OACbP,EAAQ,IAAI,WAAWC,CAAM,EACnC,QAASG,GAAI,EAAGA,GAAIH,EAAQ,EAAEG,GAC5BJ,EAAMI,EAAC,EAAIG,GAAI,WAAWH,EAAC,EAAI,IAEjC,OAAOJ,CACR,CACD,SAAS7D,GAAS8C,GAAO,CACvB,OAAO,OAAO,aAAaA,IAAS,GAAK,IAAMA,IAAS,GAAK,IAAMA,IAAS,EAAI,IAAMA,GAAQ,GAAI,CACnG,CACD,SAASjD,GAAW+C,GAAK,CACvB,OAAO,OAAO,KAAKA,EAAG,EAAE,MACzB,CACD,SAAShD,GAAcyE,GAAK,CAC1B,MAAMzB,EAAM,OAAO,OAAO,IAAI,EAC9B,SAAW,CAAC0B,EAAKxB,EAAK,IAAKuB,GACzBzB,EAAI0B,CAAG,EAAIxB,GAEb,OAAOF,CACR,CACD,SAAS2B,IAAiB,CACxB,MAAMC,GAAU,IAAI,WAAW,CAAC,EAChC,OAAAA,GAAQ,CAAC,EAAI,EACE,IAAI,YAAYA,GAAQ,OAAQ,EAAG,CAAC,EACrC,CAAC,IAAM,CACtB,CACD,SAASC,IAAkB,CACzB,GAAI,CACF,WAAI,SAAS,EAAE,EACR,EACX,MAAU,CACN,MAAO,EACR,CACF,CACD,MAAMC,EAAY,CAChB,WAAW,gBAAiB,CAC1B,OAAO3E,GAAO,KAAM,iBAAkBwE,GAAgB,CAAA,CACvD,CACD,WAAW,iBAAkB,CAC3B,OAAOxE,GAAO,KAAM,kBAAmB0E,GAAiB,CAAA,CACzD,CACD,WAAW,4BAA6B,CACtC,OAAO1E,GAAO,KAAM,6BAA8B,OAAO,gBAAoB,GAAW,CACzF,CACD,WAAW,UAAW,CACpB,OAAI,OAAO,UAAc,IAChBA,GAAO,KAAM,WAAY,CAC9B,MAAO,GACP,MAAO,EACf,CAAO,EAEIA,GAAO,KAAM,WAAY,CAC9B,MAAO,UAAU,SAAS,SAAS,KAAK,EACxC,MAAO,UAAU,SAAS,SAAS,KAAK,CAC9C,CAAK,CACF,CACD,WAAW,qBAAsB,SAC/B,OAAOA,GAAO,KAAM,uBAAuB4E,GAAAC,EAAA,WAAW,MAAX,YAAAA,EAAgB,WAAhB,YAAAD,EAAA,KAAAC,EAA2B,2BAA2B,CAClG,CACF,CACD3F,EAAQ,YAAcyF,GACtB,MAAMG,GAAa,CAAC,GAAG,MAAM,GAAG,EAAE,KAAM,CAAA,EAAE,IAAIC,IAAKA,GAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAClF,MAAMC,EAAK,CACT,OAAO,aAAaC,EAAGC,EAAGC,GAAG,CAC3B,MAAO,IAAIL,GAAWG,CAAC,CAAC,GAAGH,GAAWI,CAAC,CAAC,GAAGJ,GAAWK,EAAC,CAAC,EACzD,CACD,OAAO,YAAYC,EAAWC,EAAQ,CACpC,IAAIC,GACAF,EAAU,CAAC,GACTA,EAAU,CAAC,EAAI,IACjBE,GAAOD,EAAO,CAAC,EACfA,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpBA,EAAO,CAAC,EAAIC,IAEdD,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,EACpBA,EAAU,CAAC,EAAI,IACjBE,GAAOD,EAAO,CAAC,EACfA,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpBA,EAAO,CAAC,EAAIC,IAEdD,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,IAExBE,GAAOD,EAAO,CAAC,EACfA,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpBA,EAAO,CAAC,EAAIC,GACZA,GAAOD,EAAO,CAAC,EACfA,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpBA,EAAO,CAAC,EAAIC,GACRF,EAAU,CAAC,EAAI,IACjBE,GAAOD,EAAO,CAAC,EACfA,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpBA,EAAO,CAAC,EAAIC,IAEdD,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,EACpBA,EAAU,CAAC,EAAI,IACjBE,GAAOD,EAAO,CAAC,EACfA,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpBA,EAAO,CAAC,EAAIC,IAEdD,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,GAE1BC,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,EACxBC,EAAO,CAAC,GAAKD,EAAU,CAAC,CACzB,CACD,OAAO,UAAUG,EAAIC,EAAI,CACvB,MAAO,CAACD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAGA,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,CAAC,CACjN,CACD,OAAO,eAAeE,EAAGC,EAAG,CAC1B,MAAMC,GAAKF,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAID,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAIA,EAAE,CAAC,EACpCE,GAAKH,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAID,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAIA,EAAE,CAAC,EAC1C,MAAO,CAACC,GAAIC,EAAE,CACf,CACD,OAAO,sBAAsBH,EAAGC,EAAG,CACjC,MAAMG,GAAIH,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAC5BC,IAAMF,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAID,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKG,GAC/DD,IAAM,CAACH,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAID,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKG,GACtE,MAAO,CAACF,GAAIC,EAAE,CACf,CACD,OAAO,2BAA2BX,EAAGS,EAAG,CACtC,MAAMI,GAAK,KAAK,eAAeb,EAAGS,CAAC,EAC7BK,GAAK,KAAK,eAAed,EAAE,MAAM,EAAG,CAAC,EAAGS,CAAC,EACzCM,GAAK,KAAK,eAAe,CAACf,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAAGS,CAAC,EACxCO,GAAK,KAAK,eAAe,CAAChB,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAAGS,CAAC,EAC9C,MAAO,CAAC,KAAK,IAAII,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,CAAC,EAAG,KAAK,IAAIH,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,CAAC,EAAG,KAAK,IAAIH,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,CAAC,EAAG,KAAK,IAAIH,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,EAAGC,GAAG,CAAC,CAAC,CAAC,CAC/J,CACD,OAAO,iBAAiBP,EAAG,CACzB,MAAMG,EAAIH,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAClC,MAAO,CAACA,EAAE,CAAC,EAAIG,EAAG,CAACH,EAAE,CAAC,EAAIG,EAAG,CAACH,EAAE,CAAC,EAAIG,EAAGH,EAAE,CAAC,EAAIG,GAAIH,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKG,GAAIH,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKG,CAAC,CACnH,CACD,OAAO,8BAA8BH,EAAG,CACtC,MAAMQ,EAAY,CAACR,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EACnCS,GAAIT,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAAIR,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAC5Cf,GAAIO,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAAIR,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAC5CE,GAAIV,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAAIR,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAC5CL,GAAIH,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAAIR,EAAE,CAAC,EAAIQ,EAAU,CAAC,EAC5CG,GAASF,GAAIN,IAAK,EAClBS,GAAS,KAAK,MAAMH,GAAIN,KAAM,EAAI,GAAKM,GAAIN,GAAIO,GAAIjB,GAAE,EAAI,EACzDoB,GAAKF,EAAQC,IAAU,EACvBE,GAAKH,EAAQC,IAAU,EAC7B,MAAO,CAAC,KAAK,KAAKC,EAAE,EAAG,KAAK,KAAKC,EAAE,CAAC,CACrC,CACD,OAAO,cAAcC,EAAM,CACzB,MAAMxB,EAAIwB,EAAK,MAAM,CAAC,EACtB,OAAIA,EAAK,CAAC,EAAIA,EAAK,CAAC,IAClBxB,EAAE,CAAC,EAAIwB,EAAK,CAAC,EACbxB,EAAE,CAAC,EAAIwB,EAAK,CAAC,GAEXA,EAAK,CAAC,EAAIA,EAAK,CAAC,IAClBxB,EAAE,CAAC,EAAIwB,EAAK,CAAC,EACbxB,EAAE,CAAC,EAAIwB,EAAK,CAAC,GAERxB,CACR,CACD,OAAO,UAAUyB,EAAOC,EAAO,CAC7B,MAAMC,GAAO,KAAK,IAAI,KAAK,IAAIF,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EAC1EE,GAAQ,KAAK,IAAI,KAAK,IAAIH,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EACjF,GAAIC,GAAOC,GACT,OAAO,KAET,MAAMC,GAAO,KAAK,IAAI,KAAK,IAAIJ,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EAC1EI,GAAQ,KAAK,IAAI,KAAK,IAAIL,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EACjF,OAAIG,GAAOC,GACF,KAEF,CAACH,GAAME,GAAMD,GAAOE,EAAK,CACjC,CACD,OAAO,kBAAkBC,EAAIC,EAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAIC,GAAI,CACvD,MAAMC,GAAU,CAAE,EAChBC,GAAS,CAAC,GAAI,CAAA,CAAE,EAClB,IAAItB,GAAGhB,GAAGiB,GAAGsB,GAAGC,GAAIC,GAAIC,EAAMC,EAC9B,QAAS5D,EAAI,EAAGA,EAAI,EAAG,EAAEA,EAAG,CAU1B,GATIA,IAAM,GACRiB,GAAI,EAAI6B,EAAK,GAAKE,GAAK,EAAIE,GAC3BjB,GAAI,GAAKa,EAAK,EAAIE,GAAK,EAAIE,GAAK,EAAIE,EACpClB,GAAI,EAAIc,GAAK,EAAIF,IAEjB7B,GAAI,EAAI8B,EAAK,GAAKE,GAAK,EAAIE,GAC3BlB,GAAI,GAAKc,EAAK,EAAIE,GAAK,EAAIE,GAAK,EAAIE,GACpCnB,GAAI,EAAIe,GAAK,EAAIF,GAEf,KAAK,IAAId,EAAC,EAAI,MAAO,CACvB,GAAI,KAAK,IAAIhB,EAAC,EAAI,MAChB,SAEFuC,GAAI,CAACtB,GAAIjB,GACL,EAAIuC,IAAKA,GAAI,GACfF,GAAQ,KAAKE,EAAC,EAEhB,QACD,CACDG,EAAO1C,GAAIA,GAAI,EAAIiB,GAAID,GACvB2B,EAAW,KAAK,KAAKD,CAAI,EACrB,EAAAA,EAAO,KAGXF,IAAM,CAACxC,GAAI2C,IAAa,EAAI3B,IACxB,EAAIwB,IAAMA,GAAK,GACjBH,GAAQ,KAAKG,EAAE,EAEjBC,IAAM,CAACzC,GAAI2C,IAAa,EAAI3B,IACxB,EAAIyB,IAAMA,GAAK,GACjBJ,GAAQ,KAAKI,EAAE,EAElB,CACD,IAAIG,EAAIP,GAAQ,OACdQ,EACF,MAAMC,EAAOF,EACb,KAAOA,KACLL,GAAIF,GAAQO,CAAC,EACbC,EAAK,EAAIN,GACTD,GAAO,CAAC,EAAEM,CAAC,EAAIC,EAAKA,EAAKA,EAAKhB,EAAK,EAAIgB,EAAKA,EAAKN,GAAIR,GAAK,EAAIc,EAAKN,GAAIA,GAAIN,GAAKM,GAAIA,GAAIA,GAAIJ,EAC5FG,GAAO,CAAC,EAAEM,CAAC,EAAIC,EAAKA,EAAKA,EAAKf,EAAK,EAAIe,EAAKA,EAAKN,GAAIP,GAAK,EAAIa,EAAKN,GAAIA,GAAIL,GAAKK,GAAIA,GAAIA,GAAIH,GAE9F,OAAAE,GAAO,CAAC,EAAEQ,CAAI,EAAIjB,EAClBS,GAAO,CAAC,EAAEQ,CAAI,EAAIhB,EAClBQ,GAAO,CAAC,EAAEQ,EAAO,CAAC,EAAIX,EACtBG,GAAO,CAAC,EAAEQ,EAAO,CAAC,EAAIV,GACtBE,GAAO,CAAC,EAAE,OAASA,GAAO,CAAC,EAAE,OAASQ,EAAO,EACtC,CAAC,KAAK,IAAI,GAAGR,GAAO,CAAC,CAAC,EAAG,KAAK,IAAI,GAAGA,GAAO,CAAC,CAAC,EAAG,KAAK,IAAI,GAAGA,GAAO,CAAC,CAAC,EAAG,KAAK,IAAI,GAAGA,GAAO,CAAC,CAAC,CAAC,CACvG,CACF,CACDvI,EAAQ,KAAO8F,GACf,MAAMkD,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,IAAM,EACvrB,SAAS/H,GAAkBkE,GAAK,CAC9B,GAAIA,GAAI,CAAC,GAAK,IAAQ,CACpB,IAAI8D,EAQJ,GAPI9D,GAAI,CAAC,IAAM,KAAUA,GAAI,CAAC,IAAM,IAClC8D,EAAW,WACF9D,GAAI,CAAC,IAAM,KAAUA,GAAI,CAAC,IAAM,IACzC8D,EAAW,WACF9D,GAAI,CAAC,IAAM,KAAUA,GAAI,CAAC,IAAM,KAAUA,GAAI,CAAC,IAAM,MAC9D8D,EAAW,SAETA,EACF,GAAI,CACF,MAAMC,GAAU,IAAI,YAAYD,EAAU,CACxC,MAAO,EACjB,CAAS,EACKE,GAASnI,GAAcmE,EAAG,EAChC,OAAO+D,GAAQ,OAAOC,EAAM,CAC7B,OAAQC,GAAI,CACX/H,GAAK,uBAAuB+H,EAAE,IAAI,CACnC,CAEJ,CACD,MAAMrE,EAAS,CAAA,EACf,QAASC,EAAI,EAAGqE,GAAKlE,GAAI,OAAQH,EAAIqE,GAAIrE,IAAK,CAC5C,MAAMb,GAAO6E,GAAwB7D,GAAI,WAAWH,CAAC,CAAC,EACtDD,EAAO,KAAKZ,GAAO,OAAO,aAAaA,EAAI,EAAIgB,GAAI,OAAOH,CAAC,CAAC,CAC7D,CACD,OAAOD,EAAO,KAAK,EAAE,CACtB,CACD,SAAS7D,GAAmBiE,GAAK,CAC/B,OAAO,mBAAmB,OAAOA,EAAG,CAAC,CACtC,CACD,SAAS/D,GAAmB+D,GAAK,CAC/B,OAAO,SAAS,mBAAmBA,EAAG,CAAC,CACxC,CACD,SAAS3E,GAAc8I,GAAG,CACxB,OAAO,OAAOA,IAAM,WAAYA,IAAA,YAAAA,GAAG,cAAe,MACnD,CACD,SAAS7I,GAAa8I,GAAMC,EAAM,CAChC,GAAID,GAAK,SAAWC,EAAK,OACvB,MAAO,GAET,QAASxE,EAAI,EAAGqE,GAAKE,GAAK,OAAQvE,EAAIqE,GAAIrE,IACxC,GAAIuE,GAAKvE,CAAC,IAAMwE,EAAKxE,CAAC,EACpB,MAAO,GAGX,MAAO,EACR,CACD,SAAS5E,GAAoBqJ,GAAO,IAAI,KAAQ,CAE9C,MADe,CAACA,GAAK,eAAgB,EAAC,SAAU,GAAGA,GAAK,YAAa,EAAG,GAAG,WAAW,SAAS,EAAG,GAAG,EAAGA,GAAK,aAAa,WAAW,SAAS,EAAG,GAAG,EAAGA,GAAK,YAAa,EAAC,SAAU,EAAC,SAAS,EAAG,GAAG,EAAGA,GAAK,cAAe,EAAC,SAAU,EAAC,SAAS,EAAG,GAAG,EAAGA,GAAK,cAAe,EAAC,SAAU,EAAC,SAAS,EAAG,GAAG,CAAC,EAC3R,KAAK,EAAE,CACtB,CACD,MAAMC,EAAkB,CAEtB,aAAc,CADdC,EAAA,KAAAC,GAAW,IAET,KAAK,QAAU,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC9C,KAAK,QAAUC,IAAQ,CACrBC,GAAA,KAAKJ,GAAW,IAChBC,EAAQE,EAAI,CACpB,EACM,KAAK,OAASE,IAAU,CACtBD,GAAA,KAAKJ,GAAW,IAChBE,EAAOG,EAAM,CACrB,CACA,CAAK,CACF,CACD,IAAI,SAAU,CACZ,OAAOC,EAAA,KAAKN,GACb,CACF,CAhBCA,GAAA,YAiBF5J,EAAQ,kBAAoB0J,GAC5B,IAAIS,GAAiB,KACjBC,GAAmB,KACvB,SAAS1J,GAAiByE,GAAK,CAC7B,OAAKgF,KACHA,GAAiB,2UACjBC,GAAmB,IAAI,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,CAAC,GAEnCjF,GAAI,WAAWgF,GAAgB,CAACE,EAAGzD,EAAIC,KACrCD,EAAKA,EAAG,UAAU,MAAM,EAAIwD,GAAiB,IAAIvD,EAAE,CAC3D,CACF,CACD,SAASxG,IAAU,CACjB,GAAI,OAAO,OAAW,KAAe,OAAO,2BAAQ,aAAe,WACjE,OAAO,OAAO,aAEhB,MAAMiK,GAAM,IAAI,WAAW,EAAE,EAC7B,GAAI,OAAO,OAAW,KAAe,OAAO,2BAAQ,kBAAoB,WACtE,OAAO,gBAAgBA,EAAG,MAE1B,SAAStF,EAAI,EAAGA,EAAI,GAAIA,IACtBsF,GAAItF,CAAC,EAAI,KAAK,MAAM,KAAK,OAAM,EAAK,GAAG,EAG3C,OAAO9E,EAAcoK,EAAG,CACzB,CACD,MAAMC,GAAmB,qBACzBvK,EAAQ,iBAAmBuK,EAEpB,EAEA,CAAC,wBAAyB,QAAS,sBAAwB,qDAIlE,OAAO,eAAe,QAAS,aAAe,CAC5C,MAAO,EACT,GACA,QAAQ,WAAa,QAAQ,cAAgB,QAAQ,UAAY,QAAQ,aAAe,QAAQ,iBAAmB,QAAQ,uBAAyB,QAAQ,sBAAwB,QAAQ,aAAe,QAAQ,+BAAiC,QAAQ,qBAAuB,QAAQ,qBAAuB,QAAQ,yBAA2B,OACrV,OAAO,eAAe,QAAS,cAAgB,CAC7C,WAAY,GACZ,IAAK,UAAY,CACf,OAAO,YAAY,WACpB,CACH,GACA,QAAQ,MAAQ,OAChB,QAAQ,YAAc,YACtB,QAAQ,QAAU,OAClB,IAAI,MAAQ,oBAAoB,CAAC,EAC7B,oBAAsB,oBAAoB,CAAC,EAC3C,eAAiB,oBAAoB,CAAC,EACtC,aAAe,oBAAoB,CAAC,EACpC,mBAAqB,oBAAoB,EAAE,EAC3C,QAAU,oBAAoB,EAAE,EAChC,gBAAkB,oBAAoB,EAAE,EACxC,iBAAmB,oBAAoB,EAAE,EACzC,UAAY,oBAAoB,EAAE,EAClC,yBAA2B,oBAAoB,EAAE,EACjD,kBAAoB,oBAAoB,EAAE,EAC1C,qBAAuB,oBAAoB,EAAE,EAC7C,gBAAkB,oBAAoB,EAAE,EACxC,oBAAsB,oBAAoB,EAAE,EAC5C,YAAc,oBAAoB,EAAE,EACpC,UAAY,oBAAoB,EAAE,EACtC,MAAM,yBAA2B,MAC3B,4BAA8B,IAC9B,wBAA0B,IAC1B,qBAAuB,MAAM,SAAW,mBAAmB,kBAAoB,eAAe,iBACpG,QAAQ,qBAAuB,qBAC/B,MAAM,yBAA2B,MAAM,SAAW,mBAAmB,sBAAwB,eAAe,qBAC5G,QAAQ,yBAA2B,yBACnC,MAAM,qBAAuB,MAAM,SAAW,mBAAmB,kBAAoB,eAAe,iBACpG,QAAQ,qBAAuB,qBAC/B,MAAM,+BAAiC,MAAM,SAAW,mBAAmB,4BAA8B,eAAe,2BACxH,QAAQ,+BAAiC,+BACzC,SAAS,YAAYC,EAAK,CAUxB,GATI,OAAOA,GAAQ,UAAYA,aAAe,IAC5CA,EAAM,CACJ,IAAKA,CACX,KACiB,MAAM,eAAeA,CAAG,IACrCA,EAAM,CACJ,KAAMA,CACZ,GAEM,OAAOA,GAAQ,SACjB,MAAM,IAAI,MAAM,0DAA0D,EAE5E,GAAI,CAACA,EAAI,KAAO,CAACA,EAAI,MAAQ,CAACA,EAAI,MAChC,MAAM,IAAI,MAAM,6DAA6D,EAE/E,MAAMC,EAAO,IAAI,uBACX,CACJ,MAAAC,CACD,EAAGD,EACEnH,EAAMkH,EAAI,IAAM,WAAWA,EAAI,GAAG,EAAI,KACtCT,EAAOS,EAAI,KAAO,YAAYA,EAAI,IAAI,EAAI,KAC1CG,EAAcH,EAAI,aAAe,KACjCI,EAAkBJ,EAAI,kBAAoB,GAC1CK,EAAWL,EAAI,UAAY,KAC3BM,GAAiBN,EAAI,iBAAiB,sBAAwBA,EAAI,MAAQ,KAC1EO,GAAiB,OAAO,UAAUP,EAAI,cAAc,GAAKA,EAAI,eAAiB,EAAIA,EAAI,eAAiB,yBAC7G,IAAIQ,EAASR,EAAI,kBAAkB,UAAYA,EAAI,OAAS,KAC5D,MAAMvH,GAAYuH,EAAI,UAChBS,GAAa,OAAOT,EAAI,YAAe,UAAY,IAAK,eAAe,cAAcA,EAAI,UAAU,EAAIA,EAAI,WAAa,KACxHU,GAAU,OAAOV,EAAI,SAAY,SAAWA,EAAI,QAAU,KAC1DW,GAAaX,EAAI,aAAe,GAChCY,EAAoBZ,EAAI,mBAAqB,yBAC7Ca,EAAsB,OAAOb,EAAI,qBAAwB,SAAWA,EAAI,oBAAsB,KAC9Fc,EAA0Bd,EAAI,yBAA2B,+BACzDe,EAAef,EAAI,eAAiB,GACpCgB,EAAe,OAAO,UAAUhB,EAAI,YAAY,GAAKA,EAAI,aAAe,GAAKA,EAAI,aAAe,GAChGhF,EAAkBgF,EAAI,kBAAoB,GAC1CiB,EAA6B,OAAOjB,EAAI,4BAA+B,UAAYA,EAAI,2BAA6B,CAAC,MAAM,SAC3HkB,EAAuB,OAAO,UAAUlB,EAAI,oBAAoB,EAAIA,EAAI,qBAAuB,GAC/FmB,EAAkB,OAAOnB,EAAI,iBAAoB,UAAYA,EAAI,gBAAkB,MAAM,SACzFoB,GAAsBpB,EAAI,sBAAwB,GAClDqB,GAAYrB,EAAI,YAAc,GAC9BsB,GAAgBtB,EAAI,eAAiB,WAAW,SAChDuB,GAAevB,EAAI,eAAiB,GACpCwB,GAAgBxB,EAAI,gBAAkB,GACtCyB,GAAmBzB,EAAI,mBAAqB,GAC5C0B,GAAS1B,EAAI,SAAW,GACxB3F,GAASiG,GAAiBA,GAAe,OAASN,EAAI,QAAU,IAChE2B,GAAiB,OAAO3B,EAAI,gBAAmB,UAAYA,EAAI,eAAiB,CAAC,MAAM,UAAY,CAACmB,EACpGS,GAAiB,OAAO5B,EAAI,gBAAmB,UAAYA,EAAI,eAAiBY,IAAsB,eAAe,sBAAwBE,IAA4B,eAAe,4BAA8BJ,IAAWG,MAA2B,eAAe,iBAAiBH,GAAS,SAAS,OAAO,MAAS,eAAe,iBAAiBG,EAAqB,SAAS,OAAO,EACnYgB,GAAgB7B,EAAI,eAAiB,IAAI,qBAAqB,CAClE,cAAAsB,EACJ,CAAG,EACKQ,GAAgB9B,EAAI,eAAiB,IAAI,qBAAqB,CAClE,MAAAE,EACA,cAAAoB,EACJ,CAAG,EACKS,GAAe,QACjB,MAAM,mBAAmBtJ,EAAS,EACtC,MAAMuJ,GAAmB,CACvB,cAAAH,GACA,cAAAC,EACJ,EAUE,GATKF,KACHI,GAAiB,kBAAoB,IAAIpB,EAAkB,CACzD,QAASF,GACT,aAAcC,EACpB,CAAK,EACDqB,GAAiB,wBAA0B,IAAIlB,EAAwB,CACrE,QAASD,CACf,CAAK,GAEC,CAACL,EAAQ,CACX,MAAMyB,GAAe,CACnB,UAAAxJ,GACA,KAAM,gBAAgB,oBAAoB,UAChD,EACI+H,EAASyB,GAAa,KAAO,UAAU,SAASA,EAAY,EAAI,IAAI,UAAUA,EAAY,EAC1FhC,EAAK,QAAUO,CAChB,CACD,MAAM0B,GAAiB,CACrB,MAAAhC,EACA,WAAY,WACZ,KAAAX,EACA,SAAAc,EACA,iBAAAoB,GACA,eAAAlB,GACA,OAAAlG,GACA,WAAAoG,GACA,UAAAY,GACA,iBAAkB,CAChB,aAAAL,EACA,gBAAAG,EACA,aAAAJ,EACA,gBAAA/F,EACA,2BAAAiG,EACA,qBAAAC,EACA,oBAAAE,GACA,eAAAO,GACA,QAASC,GAAiBlB,GAAU,KACpC,oBAAqBkB,GAAiBf,EAAsB,IAC7D,CACL,EACQsB,GAAkB,CACtB,aAAApB,EACA,gBAAA/F,EACA,gBAAAmG,EACA,oBAAAC,GACA,UAAAC,GACA,cAAAC,GACA,iBAAAG,GACA,OAAAC,GACA,aAAAK,EACJ,EACE,OAAAvB,EAAO,QAAQ,KAAK,UAAY,CAC9B,GAAIP,EAAK,UACP,MAAM,IAAI,MAAM,iBAAiB,EAEnC,MAAMmC,GAAkB,eAAe5B,EAAQ0B,EAAc,EACvDG,GAAuB,IAAI,QAAQ,SAAUhD,GAAS,CAC1D,IAAIiD,GACAhC,GACFgC,GAAgB,IAAI,kBAAkB,uBAAuB,CAC3D,OAAAjI,GACA,YAAaiG,GAAe,YAC5B,gBAAiBA,GAAe,gBAChC,2BAA4BA,GAAe,2BAC3C,aAAAiB,GACA,cAAAC,EACD,EAAElB,EAAc,EACPf,IAOV+C,IAN+BC,IACzB,MAAM,SACD,IAAI,oBAAoB,cAAcA,EAAM,KAE1C,eAAe,iBAAiBA,GAAO,GAAG,EAAI,IAAI,qBAAqB,eAAeA,EAAM,EAAI,IAAI,gBAAgB,iBAAiBA,EAAM,GAEjH,CACrC,IAAAzJ,EACA,OAAAuB,GACA,YAAA8F,EACA,gBAAAC,EACA,eAAAG,GACA,aAAAgB,GACA,cAAAC,EACV,CAAS,GAEHnC,GAAQiD,EAAa,CAC3B,CAAK,EACD,OAAO,QAAQ,IAAI,CAACF,GAAiBC,EAAoB,CAAC,EAAE,KAAK,SAAU,CAACG,GAAUF,EAAa,EAAG,CACpG,GAAIrC,EAAK,UACP,MAAM,IAAI,MAAM,iBAAiB,EAEnC,MAAMwC,GAAiB,IAAI,iBAAiB,eAAevC,EAAOsC,GAAUhC,EAAO,IAAI,EACjFkC,GAAY,IAAI,gBAAgBD,GAAgBxC,EAAMqC,GAAeH,GAAiBH,EAAgB,EAC5G/B,EAAK,WAAayC,GAClBD,GAAe,KAAK,QAAS,IAAI,CACvC,CAAK,CACF,CAAA,EAAE,MAAMxC,EAAK,YAAY,MAAM,EACzBA,CACR,CACD,eAAe,eAAeO,EAAQmC,EAAQ,CAC5C,GAAInC,EAAO,UACT,MAAM,IAAI,MAAM,sBAAsB,EAExC,MAAMgC,EAAW,MAAMhC,EAAO,eAAe,gBAAgB,gBAAiBmC,EAAQA,EAAO,KAAO,CAACA,EAAO,KAAK,MAAM,EAAI,IAAI,EAC/H,GAAInC,EAAO,UACT,MAAM,IAAI,MAAM,sBAAsB,EAExC,OAAOgC,CACR,CACD,SAAS,WAAWI,EAAK,CACvB,GAAIA,aAAe,IACjB,OAAOA,EAAI,KAEb,GAAI,CACF,OAAO,IAAI,IAAIA,EAAK,OAAO,QAAQ,EAAE,IACzC,MAAU,CACN,GAAI,MAAM,UAAY,OAAOA,GAAQ,SACnC,OAAOA,CAEV,CACD,MAAM,IAAI,MAAM,oFAAyF,CAC1G,CACD,SAAS,YAAYA,EAAK,CACxB,GAAI,MAAM,UAAY,OAAO,OAAW,KAAeA,aAAe,OACpE,MAAM,IAAI,MAAM,mEAAmE,EAErF,GAAIA,aAAe,YAAcA,EAAI,aAAeA,EAAI,OAAO,WAC7D,OAAOA,EAET,GAAI,OAAOA,GAAQ,SACjB,SAAW,MAAM,eAAeA,CAAG,EAErC,GAAI,OAAOA,GAAQ,UAAY,CAAC,MAAMA,GAAA,YAAAA,EAAK,MAAM,MAAS,MAAM,eAAeA,CAAG,EAChF,OAAO,IAAI,WAAWA,CAAG,EAE3B,MAAM,IAAI,MAAM,4GAAiH,CAClI,CACD,MAAMC,EAAN,MAAMA,CAAuB,CAE3B,aAAc,CACZ,KAAK,YAAc,IAAI,MAAM,kBAC7B,KAAK,WAAa,KAClB,KAAK,QAAU,KACf,KAAK,MAAQ,IAAIC,GAAAD,EAAuBE,GAAvB,GAA+B,GAChD,KAAK,UAAY,GACjB,KAAK,WAAa,KAClB,KAAK,WAAa,IACnB,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,YAAY,OACzB,CACD,MAAM,SAAU,WACd,KAAK,UAAY,GACjB,GAAI,EACE5H,EAAA,KAAK,UAAL,MAAAA,EAAc,OAChB,KAAK,QAAQ,gBAAkB,IAEjC,OAAMD,EAAA,KAAK,aAAL,YAAAA,EAAiB,UACxB,OAAQ0D,EAAI,CACX,MAAIoE,EAAA,KAAK,UAAL,MAAAA,EAAc,MAChB,OAAO,KAAK,QAAQ,gBAEhBpE,CACP,CACD,KAAK,WAAa,KACd,KAAK,UACP,KAAK,QAAQ,UACb,KAAK,QAAU,KAElB,CACF,EAhCQmE,EAAA,YAAP5D,EADI0D,EACGE,EAAS,GADlB,IAAM,uBAANF,EAkCA,QAAQ,uBAAyB,uBACjC,MAAM,qBAAsB,CAC1B,YAAYxI,EAAQ4I,EAAaC,EAAkB,GAAOC,EAA6B,KAAM,CAC3F,KAAK,OAAS9I,EACd,KAAK,YAAc4I,EACnB,KAAK,gBAAkBC,EACvB,KAAK,2BAA6BC,EAClC,KAAK,gBAAkB,GACvB,KAAK,mBAAqB,GAC1B,KAAK,0BAA4B,GACjC,KAAK,0BAA4B,GACjC,KAAK,iBAAmB,IAAI,MAAM,iBACnC,CACD,iBAAiBC,EAAU,CACzB,KAAK,gBAAgB,KAAKA,CAAQ,CACnC,CACD,oBAAoBA,EAAU,CAC5B,KAAK,mBAAmB,KAAKA,CAAQ,CACtC,CACD,2BAA2BA,EAAU,CACnC,KAAK,0BAA0B,KAAKA,CAAQ,CAC7C,CACD,2BAA2BA,EAAU,CACnC,KAAK,0BAA0B,KAAKA,CAAQ,CAC7C,CACD,YAAYC,EAAO3I,EAAO,CACxB,UAAW0I,KAAY,KAAK,gBAC1BA,EAASC,EAAO3I,CAAK,CAExB,CACD,eAAe4I,EAAQC,EAAO,CAC5B,KAAK,iBAAiB,QAAQ,KAAK,IAAM,CACvC,UAAWH,KAAY,KAAK,mBAC1BA,EAASE,EAAQC,CAAK,CAE9B,CAAK,CACF,CACD,sBAAsB7I,EAAO,CAC3B,KAAK,iBAAiB,QAAQ,KAAK,IAAM,CACvC,UAAW0I,KAAY,KAAK,0BAC1BA,EAAS1I,CAAK,CAEtB,CAAK,CACF,CACD,uBAAwB,CACtB,KAAK,iBAAiB,QAAQ,KAAK,IAAM,CACvC,UAAW0I,KAAY,KAAK,0BAC1BA,GAER,CAAK,CACF,CACD,gBAAiB,CACf,KAAK,iBAAiB,SACvB,CACD,iBAAiBC,EAAOG,EAAK,IACvB,MAAM,aAAa,wDAAwD,CAChF,CACD,OAAQ,CAAE,CACX,CACD,QAAQ,sBAAwB,sBAChC,MAAM,gBAAiB,CACrB,YAAYC,EAASf,EAAW,CAC9B,KAAK,SAAWe,EAChB,KAAK,WAAaf,EAClB,OAAO,eAAe,KAAM,gBAAiB,CAC3C,MAAO,QACD,eAAe,YAAY,uFAA4F,EACpH,KAAK,eAAe,KAAKgB,GAAM,CACpC,GAAI,CAACA,EACH,OAAOA,EAET,MAAMC,EAAQ,CAAA,EACd,UAAWlK,KAAQiK,EACjBC,EAAM,KAAK,GAAGD,EAAGjK,CAAI,CAAC,EAExB,OAAOkK,CACjB,CAAS,EAET,CAAK,CACF,CACD,IAAI,mBAAoB,CACtB,OAAO,KAAK,WAAW,iBACxB,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACxB,CACD,IAAI,UAAW,CACb,OAAO,KAAK,SAAS,QACtB,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,SAAS,YACtB,CACD,IAAI,WAAY,CACd,SAAW,MAAM,QAAQ,KAAM,YAAa,CAAC,CAAC,KAAK,WAAW,WAAW,CAC1E,CACD,IAAI,YAAa,CACf,OAAO,KAAK,WAAW,WACxB,CACD,QAAQC,EAAY,CAClB,OAAO,KAAK,WAAW,QAAQA,CAAU,CAC1C,CACD,aAAaC,EAAK,CAChB,OAAO,KAAK,WAAW,aAAaA,CAAG,CACxC,CACD,iBAAkB,CAChB,OAAO,KAAK,WAAW,iBACxB,CACD,eAAeC,EAAI,CACjB,OAAO,KAAK,WAAW,eAAeA,CAAE,CACzC,CACD,eAAgB,CACd,OAAO,KAAK,WAAW,eACxB,CACD,eAAgB,CACd,OAAO,KAAK,WAAW,eACxB,CACD,aAAc,CACZ,OAAO,KAAK,WAAW,aACxB,CACD,sBAAuB,CACrB,OAAO,KAAK,WAAW,sBACxB,CACD,eAAgB,CACd,OAAO,KAAK,WAAW,eACxB,CACD,gBAAiB,CACf,OAAO,KAAK,WAAW,gBACxB,CACD,cAAe,CACb,OAAO,KAAK,WAAW,iBACxB,CACD,YAAa,CACX,OAAO,KAAK,WAAW,YACxB,CACD,0BAA2B,CACzB,OAAO,KAAK,WAAW,0BACxB,CACD,gBAAiB,CACf,OAAO,KAAK,WAAW,gBACxB,CACD,aAAc,CACZ,OAAO,KAAK,WAAW,aACxB,CACD,aAAc,CACZ,OAAO,KAAK,WAAW,aACxB,CACD,SAAU,CACR,OAAO,KAAK,WAAW,SACxB,CACD,cAAe,CACb,OAAO,KAAK,WAAW,cACxB,CACD,iBAAkB,CAChB,OAAO,KAAK,WAAW,uBAAuB,OAC/C,CACD,QAAQC,EAAkB,GAAO,CAC/B,OAAO,KAAK,WAAW,aAAaA,GAAmB,KAAK,SAAS,CACtE,CACD,SAAU,CACR,OAAO,KAAK,YAAY,SACzB,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACxB,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,WAAW,WACxB,CACD,iBAAkB,CAChB,OAAO,KAAK,WAAW,iBACxB,CACD,cAAe,CACb,OAAO,KAAK,WAAW,cACxB,CACD,wBAAyB,CACvB,OAAO,KAAK,WAAW,wBACxB,CACF,CACD,QAAQ,iBAAmB,iBAC3B,MAAM,YAAa,CAGjB,YAAYC,EAAWC,EAAUvB,EAAWhB,EAAS,GAAO,CA2Q5DvC,EAAA,KAAA+E,GAyBA/E,EAAA,KAAAgF,GAtSAhF,EAAA,KAAAiF,EAAyB,MACzBjF,EAAA,KAAAkF,EAAkB,IAEhB,KAAK,WAAaL,EAClB,KAAK,UAAYC,EACjB,KAAK,WAAavB,EAClB,KAAK,OAAShB,EAAS,IAAI,eAAe,UAAc,KACxD,KAAK,QAAUA,EACf,KAAK,WAAagB,EAAU,WAC5B,KAAK,KAAO,IAAI,WAChB,KAAK,yBAA2B,GAChC,KAAK,cAAgB,IAAI,IACzB,KAAK,UAAY,EAClB,CACD,IAAI,YAAa,CACf,OAAO,KAAK,WAAa,CAC1B,CACD,IAAI,QAAS,CACX,OAAO,KAAK,UAAU,MACvB,CACD,IAAI,KAAM,CACR,OAAO,KAAK,UAAU,GACvB,CACD,IAAI,UAAW,CACb,OAAO,KAAK,UAAU,QACvB,CACD,IAAI,MAAO,CACT,OAAO,KAAK,UAAU,IACvB,CACD,YAAY,CACV,MAAA4B,EACA,SAAAC,EAAW,KAAK,OAChB,QAAAC,EAAU,EACV,QAAAC,EAAU,EACV,SAAAC,EAAW,EACZ,EAAG,GAAI,CACN,OAAO,IAAI,eAAe,aAAa,CACrC,QAAS,KAAK,KACd,MAAAJ,EACA,SAAAC,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,CACN,CAAK,CACF,CACD,eAAe,CACb,OAAAC,EAAS,SACV,EAAG,GAAI,CACN,MAAMC,EAAa,KAAK,WAAW,mBAAmBD,CAAM,EAC5D,OAAO,KAAK,WAAW,eAAe,KAAK,WAAYC,EAAW,eAAe,CAClF,CACD,cAAe,CACb,OAAO,KAAK,WAAW,iBAAiB,KAAK,UAAU,CACxD,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACxB,CACD,IAAI,WAAY,CACd,SAAW,MAAM,QAAQ,KAAM,YAAa,CAAC,CAAC,KAAK,WAAW,WAAW,CAC1E,CACD,MAAM,QAAS,OACb,QAAOzJ,EAAA,KAAK,WAAW,cAAhB,YAAAA,EAA6B,SAAS,KAAK,cAAe,IAClE,CACD,OAAO,CACL,cAAA0J,EACA,SAAAC,EACA,OAAAH,EAAS,UACT,eAAAI,EAAiB,MAAM,eAAe,OACtC,UAAArJ,EAAY,KACZ,WAAAsJ,EAAa,KACb,6BAAAC,EAA+B,KAC/B,oBAAAC,GAAsB,KACtB,WAAAC,GAAa,KACb,uBAAAC,EAAyB,IAC7B,EAAK,UACDjK,EAAA,KAAK,SAAL,MAAAA,EAAa,KAAK,WAClB,MAAMyJ,GAAa,KAAK,WAAW,mBAAmBD,EAAQI,EAAgBK,CAAsB,EACpG5F,GAAA,KAAK6E,EAAkB,IACvBgB,EAAA,KAAKlB,EAAAmB,IAAL,WACKL,IACHA,EAA+B,KAAK,WAAW,4BAEjD,IAAIM,GAAc,KAAK,cAAc,IAAIX,GAAW,QAAQ,EACvDW,KACHA,GAAc,OAAO,OAAO,IAAI,EAChC,KAAK,cAAc,IAAIX,GAAW,SAAUW,EAAW,GAErDA,GAAY,4BACd,aAAaA,GAAY,yBAAyB,EAClDA,GAAY,0BAA4B,MAE1C,MAAMC,GAAc,CAAC,EAAEZ,GAAW,gBAAkB,MAAM,oBAAoB,OACzEW,GAAY,yBACfA,GAAY,uBAAyB,IAAI,MAAM,kBAC/CA,GAAY,aAAe,CACzB,QAAS,CAAE,EACX,UAAW,CAAE,EACb,UAAW,GACX,eAAgB,IACxB,GACMrK,EAAA,KAAK,SAAL,MAAAA,EAAa,KAAK,gBAClB,KAAK,kBAAkB0J,EAAU,GAEnC,MAAMa,GAAWC,GAAS,SACxBH,GAAY,YAAY,OAAOI,CAAkB,GAC7C,KAAK,0BAA4BH,KACnChG,GAAA,KAAK6E,EAAkB,IAEzBgB,EAAA,KAAKnB,EAAA0B,IAAL,UAAiB,CAACJ,IACdE,GACFC,EAAmB,WAAW,OAAOD,CAAK,EAC1C,KAAK,mBAAmB,CACtB,YAAAH,GACA,OAAQG,aAAiB,MAAQA,EAAQ,IAAI,MAAMA,CAAK,CAClE,CAAS,GAEDC,EAAmB,WAAW,WAEhCxK,EAAA,KAAK,SAAL,MAAAA,EAAa,QAAQ,cACrBD,EAAA,KAAK,SAAL,MAAAA,EAAa,QAAQ,UAC3B,EACUyK,EAAqB,IAAI,mBAAmB,CAChD,SAAUF,GACV,OAAQ,CACN,cAAAZ,EACA,SAAAC,EACA,UAAApJ,EACA,WAAAsJ,CACD,EACD,KAAM,KAAK,KACX,WAAY,KAAK,WACjB,oBAAAE,GACA,aAAcK,GAAY,aAC1B,UAAW,KAAK,WAChB,cAAe,KAAK,WAAW,cAC/B,cAAe,KAAK,WAAW,cAC/B,yBAA0B,CAACC,GAC3B,OAAQ,KAAK,QACb,WAAAL,EACN,CAAK,GACAI,GAAY,cAAZA,GAAY,YAAgB,IAAI,MAAO,IAAII,CAAkB,EAC9D,MAAME,EAAaF,EAAmB,KACtC,eAAQ,IAAI,CAACJ,GAAY,uBAAuB,QAASN,CAA4B,CAAC,EAAE,KAAK,CAAC,CAACa,EAAcC,CAAqB,IAAM,OACtI,GAAI,KAAK,UAAW,CAClBN,KACA,MACD,EACDtK,EAAA,KAAK,SAAL,MAAAA,EAAa,KAAK,aAClBwK,EAAmB,mBAAmB,CACpC,aAAAG,EACA,sBAAAC,CACR,CAAO,EACDJ,EAAmB,oBAAmB,CAC5C,CAAK,EAAE,MAAMF,EAAQ,EACVI,CACR,CACD,gBAAgB,CACd,OAAAlB,EAAS,UACT,eAAAI,EAAiB,MAAM,eAAe,OACtC,uBAAAK,EAAyB,IAC1B,EAAG,GAAI,QACN,SAASY,GAAsB,CACzBT,EAAY,aAAa,YAC3BA,EAAY,qBAAqB,QAAQA,EAAY,YAAY,EACjEA,EAAY,YAAY,OAAOU,CAAU,EAE5C,CACD,MAAMrB,EAAa,KAAK,WAAW,mBAAmBD,EAAQI,EAAgBK,EAAwB,EAAI,EAC1G,IAAIG,EAAc,KAAK,cAAc,IAAIX,EAAW,QAAQ,EACvDW,IACHA,EAAc,OAAO,OAAO,IAAI,EAChC,KAAK,cAAc,IAAIX,EAAW,SAAUW,CAAW,GAEzD,IAAIU,EACJ,OAAKV,EAAY,uBACfU,EAAa,OAAO,OAAO,IAAI,EAC/BA,EAAW,oBAAsBD,EACjCT,EAAY,qBAAuB,IAAI,MAAM,mBAC5CA,EAAY,cAAZA,EAAY,YAAgB,IAAI,MAAO,IAAIU,CAAU,EACtDV,EAAY,aAAe,CACzB,QAAS,CAAE,EACX,UAAW,CAAE,EACb,UAAW,GACX,eAAgB,IACxB,GACMpK,GAAA,KAAK,SAAL,MAAAA,GAAa,KAAK,gBAClB,KAAK,kBAAkByJ,CAAU,GAE5BW,EAAY,qBAAqB,OACzC,CACD,kBAAkB,CAChB,qBAAAW,EAAuB,GACvB,qBAAAC,EAAuB,EACxB,EAAG,GAAI,CAEN,OAAO,KAAK,WAAW,eAAe,eAAe,iBAAkB,CACrE,UAAW,KAAK,WAChB,qBAAsBD,IAAyB,GAC/C,qBAAsBC,IAAyB,EACrD,EAAO,CACD,cAAe,IACf,KAAKC,EAAa,CAChB,OAAOA,EAAY,MAAM,MAC1B,CACP,CAAK,CACF,CACD,eAAe7D,EAAS,GAAI,CAC1B,GAAI,KAAK,WAAW,YAClB,OAAO,KAAK,SAAS,KAAK8D,GACjB,UAAU,QAAQ,YAAYA,CAAG,CACzC,EAEH,MAAMC,EAAiB,KAAK,kBAAkB/D,CAAM,EACpD,OAAO,IAAI,QAAQ,SAAUlD,EAASC,EAAQ,CAC5C,SAASiH,GAAO,CACdC,EAAO,OAAO,KAAK,SAAU,CAC3B,MAAAnN,GACA,KAAAoN,EACV,EAAW,CACD,GAAIA,GAAM,CACRpH,EAAQ+G,CAAW,EACnB,MACD,CACD,OAAO,OAAOA,EAAY,OAAQ/M,GAAM,MAAM,EAC9C+M,EAAY,MAAM,KAAK,GAAG/M,GAAM,KAAK,EACrCkN,GACD,EAAEjH,CAAM,CACV,CACD,MAAMkH,EAASF,EAAe,YACxBF,EAAc,CAClB,MAAO,CAAE,EACT,OAAQ,OAAO,OAAO,IAAI,CAClC,EACMG,GACN,CAAK,CACF,CACD,eAAgB,CACd,OAAO,KAAK,WAAW,cAAc,KAAK,UAAU,CACrD,CACD,UAAW,CACT,KAAK,UAAY,GACjB,MAAMG,EAAS,CAAA,EACf,UAAWnB,KAAe,KAAK,cAAc,OAAM,EAMjD,GALA,KAAK,mBAAmB,CACtB,YAAAA,EACA,OAAQ,IAAI,MAAM,qBAAqB,EACvC,MAAO,EACf,CAAO,EACG,CAAAA,EAAY,qBAGhB,UAAWI,KAAsBJ,EAAY,YAC3CmB,EAAO,KAAKf,EAAmB,SAAS,EACxCA,EAAmB,OAAM,EAG7B,YAAK,KAAK,QACVnG,GAAA,KAAK6E,EAAkB,IACvBgB,EAAA,KAAKlB,EAAAmB,IAAL,WACO,QAAQ,IAAIoB,CAAM,CAC1B,CACD,QAAQC,EAAa,GAAO,CAC1BnH,GAAA,KAAK6E,EAAkB,IACvB,MAAMuC,EAAUvB,EAAA,KAAKnB,EAAA0B,IAAL,UAAiB,IACjC,OAAIe,GAAcC,GAChB,KAAK,SAAL,KAAK,OAAW,IAAI,eAAe,WAE9BA,CACR,CAgCD,iBAAiBd,EAAce,EAAU,SACvC,MAAMtB,EAAc,KAAK,cAAc,IAAIsB,CAAQ,EAC9CtB,KAGLpK,EAAA,KAAK,SAAL,MAAAA,EAAa,QAAQ,iBACrBD,EAAAqK,EAAY,yBAAZ,MAAArK,EAAoC,QAAQ4K,GAC7C,CACD,iBAAiBgB,EAAmBvB,EAAa,CAC/C,QAAS/K,EAAI,EAAGqE,EAAKiI,EAAkB,OAAQtM,EAAIqE,EAAIrE,IACrD+K,EAAY,aAAa,QAAQ,KAAKuB,EAAkB,QAAQtM,CAAC,CAAC,EAClE+K,EAAY,aAAa,UAAU,KAAKuB,EAAkB,UAAUtM,CAAC,CAAC,EAExE+K,EAAY,aAAa,UAAYuB,EAAkB,UACvDvB,EAAY,aAAa,eAAiBuB,EAAkB,eAC5D,UAAWnB,KAAsBJ,EAAY,YAC3CI,EAAmB,oBAAmB,EAEpCmB,EAAkB,WACpBzB,EAAA,KAAKnB,EAAA0B,IAAL,UAAiB,GAEpB,CACD,kBAAkB,CAChB,gBAAAmB,EACA,SAAAF,EACA,8BAAAG,CACJ,EAAK,CACD,KAAM,CACJ,IAAApM,EACA,UAAAqM,CACD,EAAGD,EAOER,EANiB,KAAK,WAAW,eAAe,eAAe,kBAAmB,CACtF,UAAW,KAAK,WAChB,OAAQO,EACR,SAAAF,EACA,kBAAmBjM,CACpB,EAAEqM,CAAS,EACkB,YACxB1B,GAAc,KAAK,cAAc,IAAIsB,CAAQ,EACnDtB,GAAY,aAAeiB,EAC3B,MAAMD,GAAO,IAAM,CACjBC,EAAO,OAAO,KAAK,CAAC,CAClB,MAAAnN,EACA,KAAAoN,EACR,IAAY,CACJ,GAAIA,GAAM,CACRlB,GAAY,aAAe,KAC3B,MACD,CACG,KAAK,WAAW,YAGpB,KAAK,iBAAiBlM,EAAOkM,EAAW,EACxCgB,KACD,EAAE9G,GAAU,CAEX,GADA8F,GAAY,aAAe,KACvB,MAAK,WAAW,UAGpB,IAAIA,GAAY,aAAc,CAC5BA,GAAY,aAAa,UAAY,GACrC,UAAWI,MAAsBJ,GAAY,YAC3CI,GAAmB,oBAAmB,EAExCN,EAAA,KAAKnB,EAAA0B,IAAL,UAAiB,GAClB,CACD,GAAIL,GAAY,uBACdA,GAAY,uBAAuB,OAAO9F,CAAM,UACvC8F,GAAY,qBACrBA,GAAY,qBAAqB,OAAO9F,CAAM,MAE9C,OAAMA,EAEhB,CAAO,CACP,EACI8G,IACD,CACD,mBAAmB,CACjB,YAAAhB,EACA,OAAA9F,EACA,MAAAyH,EAAQ,EACZ,EAAK,CACD,GAAK3B,EAAY,aAOjB,IAJIA,EAAY,4BACd,aAAaA,EAAY,yBAAyB,EAClDA,EAAY,0BAA4B,MAEtC,CAAC2B,EAAO,CACV,GAAI3B,EAAY,YAAY,KAAO,EACjC,OAEF,GAAI9F,aAAkB,eAAe,4BAA6B,CAChE,IAAI0H,EAAQ,4BACR1H,EAAO,WAAa,GAAKA,EAAO,WAAa,MAC/C0H,GAAS1H,EAAO,YAElB8F,EAAY,0BAA4B,WAAW,IAAM,CACvDA,EAAY,0BAA4B,KACxC,KAAK,mBAAmB,CACtB,YAAAA,EACA,OAAA9F,EACA,MAAO,EACnB,CAAW,CACF,EAAE0H,CAAK,EACR,MACD,CACF,CAGD,GAFA5B,EAAY,aAAa,OAAO,IAAI,MAAM,eAAe9F,EAAO,OAAO,CAAC,EAAE,MAAM,IAAM,CAAE,CAAA,EACxF8F,EAAY,aAAe,KACvB,MAAK,WAAW,UAGpB,UAAW,CAAC6B,EAAaC,CAAc,IAAK,KAAK,cAC/C,GAAIA,IAAmB9B,EAAa,CAClC,KAAK,cAAc,OAAO6B,CAAW,EACrC,KACD,CAEH,KAAK,QAAO,GACb,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CACF,CAzaChD,EAAA,YACAC,EAAA,YA4QAH,EAAA,YAAA0B,GAAW,SAAC0B,EAAU,GAAO,CAE3B,GADAjC,EAAA,KAAKlB,EAAAmB,IAAL,WACI,CAAC5F,EAAA,KAAK2E,IAAmB,KAAK,UAChC,MAAO,GAET,GAAIiD,EACF,OAAA9H,GAAA,KAAK4E,EAAyB,WAAW,IAAM,CAC7C5E,GAAA,KAAK4E,EAAyB,MAC9BiB,EAAA,KAAKnB,EAAA0B,IAAL,UAAiB,GAClB,EAAE,uBAAuB,GACnB,GAET,SAAW,CACT,YAAA2B,EACA,aAAAC,CACN,IAAS,KAAK,cAAc,SACtB,GAAID,EAAY,KAAO,GAAK,CAACC,EAAa,UACxC,MAAO,GAGX,YAAK,cAAc,QACnB,KAAK,KAAK,QACVhI,GAAA,KAAK6E,EAAkB,IAChB,EACR,EACDF,EAAA,YAAAmB,GAAoB,UAAG,CACjB5F,EAAA,KAAK0E,KACP,aAAa1E,EAAA,KAAK0E,EAAsB,EACxC5E,GAAA,KAAK4E,EAAyB,MAEjC,EA+HH,QAAQ,aAAe,aACvB,MAAM,YAAa,CAAnB,cACEjF,EAAA,KAAAsI,EAAa,IAAI,KACjBtI,EAAA,KAAAuI,EAAY,QAAQ,WACpB,YAAYvO,EAAKwO,EAAU,CACzB,MAAMC,EAAQ,CACZ,KAAM,gBAAgBzO,EAAKwO,EAAW,CACpC,SAAAA,CACD,EAAG,IAAI,CACd,EACIjI,EAAA,KAAKgI,GAAU,KAAK,IAAM,CACxB,UAAWtE,KAAY1D,EAAA,KAAK+H,GAC1BrE,EAAS,KAAK,KAAMwE,CAAK,CAEjC,CAAK,CACF,CACD,iBAAiBnO,EAAM2J,EAAU,CAC/B1D,EAAA,KAAK+H,GAAW,IAAIrE,CAAQ,CAC7B,CACD,oBAAoB3J,EAAM2J,EAAU,CAClC1D,EAAA,KAAK+H,GAAW,OAAOrE,CAAQ,CAChC,CACD,WAAY,CACV1D,EAAA,KAAK+H,GAAW,OACjB,CACF,CAvBCA,EAAA,YACAC,EAAA,YAuBF,QAAQ,aAAe,aACvB,MAAM,cAAgB,CACpB,iBAAkB,GAClB,kBAAmB,KACnB,aAAc,CAChB,EACA,QAAQ,cAAgB,cACxB,CACE,GAAI,MAAM,UAAY,OAAOG,iBAAY,WACvC,cAAc,iBAAmB,GACjC,cAAc,kBAAoB,0BACzB,OAAO,UAAa,SAAU,CACvC,MAAMC,GAAgB3M,EAAA,+BAAU,gBAAV,YAAAA,EAAyB,IAC3C2M,IACF,cAAc,kBAAoBA,EAAc,QAAQ,4BAA6B,aAAa,EAErG,CACD,cAAc,aAAe,SAAU/O,EAASgP,EAAU,CACxD,IAAIC,EACJ,GAAI,CAEF,GADAA,EAAO,IAAI,IAAIjP,CAAO,EAClB,CAACiP,EAAK,QAAUA,EAAK,SAAW,OAClC,MAAO,EAEf,MAAY,CACN,MAAO,EACR,CACD,MAAMC,EAAQ,IAAI,IAAIF,EAAUC,CAAI,EACpC,OAAOA,EAAK,SAAWC,EAAM,MACjC,EACE,cAAc,iBAAmB,SAAUnP,EAAK,CAC9C,MAAMoP,EAAU,kBAAkBpP,CAAG,MACrC,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAACoP,CAAO,CAAC,CAAC,CAClD,CACC,CACD,MAAM,WAAN,MAAM,UAAU,CAEd,YAAY,CACV,KAAAzO,EAAO,KACP,KAAA0O,EAAO,KACP,UAAA1P,KAAgB,MAAM,mBAAoB,CAC3C,EAAG,GAAI,OAQN,GAPA,KAAK,KAAOgB,EACZ,KAAK,UAAY,GACjB,KAAK,UAAYhB,EACjB,KAAK,iBAAmB,IAAI,MAAM,kBAClC,KAAK,MAAQ,KACb,KAAK,WAAa,KAClB,KAAK,gBAAkB,KACnB0P,EAAM,CACR,IAAIhN,EAAAuE,EAAA,WAAU0I,KAAV,MAAAjN,EAAwB,IAAIgN,GAC9B,MAAM,IAAI,MAAM,8CAA8C,GAE/DzI,EAAA,WAAU0I,IAAV5I,GAAA,WAAU4I,EAAiB,IAAI,UAAW,IAAID,EAAM,IAAI,EACzD,KAAK,oBAAoBA,CAAI,EAC7B,MACD,CACD,KAAK,YAAW,CACjB,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,iBAAiB,OAC9B,CACD,IAAI,MAAO,CACT,OAAO,KAAK,KACb,CACD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,oBAAoBA,EAAM,CACxB,KAAK,MAAQA,EACb,KAAK,gBAAkB,IAAI,iBAAiB,eAAe,OAAQ,SAAUA,CAAI,EACjF,KAAK,gBAAgB,GAAG,QAAS,UAAY,CAAE,CAAA,EAC/C,KAAK,iBAAiB,UACtB,KAAK,gBAAgB,KAAK,YAAa,CACrC,UAAW,KAAK,SACtB,CAAK,CACF,CACD,aAAc,CACZ,GAAI,CAAC,cAAc,kBAAoB,CAAC,WAAU,gCAAiC,CACjF,GAAI,CACF,UAAAE,CACD,EAAG,WACJ,GAAI,CACG,cAAc,aAAa,OAAO,SAAS,KAAMA,CAAS,IAC7DA,EAAY,cAAc,iBAAiB,IAAI,IAAIA,EAAW,OAAO,QAAQ,EAAE,IAAI,GAErF,MAAM7H,EAAS,IAAI,OAAO6H,CAAS,EAC7B5F,EAAiB,IAAI,iBAAiB,eAAe,OAAQ,SAAUjC,CAAM,EAC7E8H,EAAiB,IAAM,CAC3B9H,EAAO,oBAAoB,QAAS+H,CAAa,EACjD9F,EAAe,QAAO,EACtBjC,EAAO,UAAS,EACZ,KAAK,UACP,KAAK,iBAAiB,OAAO,IAAI,MAAM,sBAAsB,CAAC,EAE9D,KAAK,iBAAgB,CAEjC,EACc+H,EAAgB,IAAM,CACrB,KAAK,YACRD,GAEZ,EACQ9H,EAAO,iBAAiB,QAAS+H,CAAa,EAC9C9F,EAAe,GAAG,OAAQlD,GAAQ,CAEhC,GADAiB,EAAO,oBAAoB,QAAS+H,CAAa,EAC7C,KAAK,UAAW,CAClBD,IACA,MACD,CACG/I,GACF,KAAK,gBAAkBkD,EACvB,KAAK,MAAQjC,EACb,KAAK,WAAaA,EAClB,KAAK,iBAAiB,UACtBiC,EAAe,KAAK,YAAa,CAC/B,UAAW,KAAK,SAC9B,CAAa,IAED,KAAK,iBAAgB,EACrBA,EAAe,QAAO,EACtBjC,EAAO,UAAS,EAE5B,CAAS,EACDiC,EAAe,GAAG,QAASlD,GAAQ,CAEjC,GADAiB,EAAO,oBAAoB,QAAS+H,CAAa,EAC7C,KAAK,UAAW,CAClBD,IACA,MACD,CACD,GAAI,CACFE,GACZ,MAAkB,CACN,KAAK,iBAAgB,CACtB,CACX,CAAS,EACD,MAAMA,EAAW,IAAM,CACrB,MAAMC,EAAU,IAAI,WACpBhG,EAAe,KAAK,OAAQgG,EAAS,CAACA,EAAQ,MAAM,CAAC,CAC/D,EACQD,IACA,MACR,MAAc,IACF,MAAM,MAAM,+BAA+B,CAChD,CACF,CACD,KAAK,iBAAgB,CACtB,CACD,kBAAmB,CACZ,cAAc,sBACb,MAAM,MAAM,yBAAyB,EACzC,cAAc,iBAAmB,IAEnC,WAAU,uBAAuB,KAAKE,GAAwB,CAC5D,GAAI,KAAK,UAAW,CAClB,KAAK,iBAAiB,OAAO,IAAI,MAAM,sBAAsB,CAAC,EAC9D,MACD,CACD,MAAMP,EAAO,IAAI,aACjB,KAAK,MAAQA,EACb,MAAMrE,EAAK,OAAO,cAAc,cAAc,GACxC6E,EAAgB,IAAI,iBAAiB,eAAe7E,EAAK,UAAWA,EAAIqE,CAAI,EAClFO,EAAqB,MAAMC,EAAeR,CAAI,EAC9C,MAAM1F,EAAiB,IAAI,iBAAiB,eAAeqB,EAAIA,EAAK,UAAWqE,CAAI,EACnF,KAAK,gBAAkB1F,EACvB,KAAK,iBAAiB,UACtBA,EAAe,KAAK,YAAa,CAC/B,UAAW,KAAK,SACxB,CAAO,CACP,CAAK,EAAE,MAAMhD,GAAU,CACjB,KAAK,iBAAiB,OAAO,IAAI,MAAM,mCAAmCA,EAAO,OAAO,IAAI,CAAC,CACnG,CAAK,CACF,CACD,SAAU,OACR,KAAK,UAAY,GACb,KAAK,aACP,KAAK,WAAW,YAChB,KAAK,WAAa,OAEpBtE,EAAAuE,EAAA,WAAU0I,KAAV,MAAAjN,EAAwB,OAAO,KAAK,OACpC,KAAK,MAAQ,KACT,KAAK,kBACP,KAAK,gBAAgB,UACrB,KAAK,gBAAkB,KAE1B,CACD,OAAO,SAASoH,EAAQ,OACtB,GAAI,EAACA,GAAA,MAAAA,EAAQ,MACX,MAAM,IAAI,MAAM,gDAAgD,EAElE,MAAMqG,GAAazN,EAAAuE,EAAA,KAAK0I,KAAL,YAAAjN,EAAmB,IAAIoH,EAAO,MACjD,GAAIqG,EAAY,CACd,GAAIA,EAAW,gBACb,MAAM,IAAI,MAAM,yHAA8H,EAEhJ,OAAOA,CACR,CACD,OAAO,IAAI,WAAUrG,CAAM,CAC5B,CACD,WAAW,WAAY,CACrB,GAAI,gBAAgB,oBAAoB,UACtC,OAAO,gBAAgB,oBAAoB,UAE7C,GAAI,cAAc,oBAAsB,KACtC,OAAK,MAAM,aACL,eAAe,YAAY,+CAA+C,EAEzE,cAAc,kBAEvB,MAAM,IAAI,MAAM,+CAA+C,CAChE,CACD,WAAW,iCAAkC,OAC3C,GAAI,CACF,QAAOpH,EAAA,WAAW,cAAX,YAAAA,EAAwB,uBAAwB,IAC7D,MAAY,CACN,OAAO,IACR,CACF,CACD,WAAW,wBAAyB,CAClC,MAAM,OAAS,SAAY,CACzB,MAAM,yBAA2B,KAAK,gCACtC,GAAI,yBACF,OAAO,yBAET,GAAI,MAAM,UAAY,OAAO0M,iBAAY,WAAY,CACnD,MAAM,OAAS,KAAK,SAAS,EAAE,KAAK,SAAS,EAC7C,OAAO,OAAO,oBACf,CACD,eAAU,eAAe,YAAY,KAAK,SAAS,EAC5C,OAAO,YAAY,oBAChC,EACI,SAAW,MAAM,QAAQ,KAAM,yBAA0B,OAAM,CAAE,CAClE,CACF,EArMQO,EAAA,YAAPjJ,EADI,WACGiJ,EAAP,QADF,IAAM,UAAN,WAuMA,QAAQ,UAAY,UACpB,MAAM,eAAgB,CAKpB,YAAY3F,EAAgBoG,EAAavG,EAAeC,EAAQjN,EAAS,CAqBzE6J,EAAA,KAAA2J,GAzBA3J,EAAA,KAAA4J,EAAkB,IAAI,KACtB5J,EAAA,KAAA6J,EAAa,IAAI,KACjB7J,EAAA,KAAA8J,EAAgB,IAAI,KACpB9J,EAAA,KAAA+J,EAAsB,MAEpB,KAAK,eAAiBzG,EACtB,KAAK,YAAcoG,EACnB,KAAK,WAAa,IAAI,WACtB,KAAK,WAAa,IAAI,aAAa,WAAW,CAC5C,cAAetG,EAAO,cACtB,aAAcA,EAAO,YAC3B,CAAK,EACD,KAAK,QAAUA,EACf,KAAK,cAAgBjN,EAAQ,cAC7B,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,kBAAoBA,EAAQ,kBACjC,KAAK,wBAA0BA,EAAQ,wBACvC,KAAK,UAAY,GACjB,KAAK,kBAAoB,KACzB,KAAK,eAAiBgN,EACtB,KAAK,YAAc,KACnB,KAAK,cAAgB,KACrB,KAAK,uBAAyB,IAAI,MAAM,kBACxC,KAAK,oBAAmB,CACzB,CAUD,IAAI,mBAAoB,CACtB,SAAW,MAAM,QAAQ,KAAM,oBAAqB,IAAI,oBAAoB,iBAAmB,CAChG,CACD,mBAAmBqC,EAAQI,EAAiB,MAAM,eAAe,OAAQK,EAAyB,KAAM+D,EAAW,GAAO,CACxH,IAAIpC,EAAkB,MAAM,oBAAoB,QAC5CC,EAAgC,oBAAoB,kBACxD,OAAQrC,EAAM,CACZ,IAAK,MACHoC,EAAkB,MAAM,oBAAoB,IAC5C,MACF,IAAK,UACH,MACF,IAAK,QACHA,EAAkB,MAAM,oBAAoB,MAC5C,MACF,WACM,MAAM,MAAM,wCAAwCpC,CAAM,EAAE,CACnE,CACD,OAAQI,EAAc,CACpB,KAAK,MAAM,eAAe,QACxBgC,GAAmB,MAAM,oBAAoB,oBAC7C,MACF,KAAK,MAAM,eAAe,OACxB,MACF,KAAK,MAAM,eAAe,aACxBA,GAAmB,MAAM,oBAAoB,kBAC7C,MACF,KAAK,MAAM,eAAe,eACxBA,GAAmB,MAAM,oBAAoB,oBAE7CC,GAD0BD,EAAkB,MAAM,oBAAoB,OAAS3B,aAAkC,oBAAoB,uBAAyBA,EAAyB,KAAK,mBAC1I,aAClD,MACF,WACM,MAAM,MAAM,gDAAgDL,CAAc,EAAE,CACnF,CACD,OAAIoE,IACFpC,GAAmB,MAAM,oBAAoB,QAExC,CACL,gBAAAA,EACA,SAAU,GAAGA,CAAe,IAAIC,EAA8B,IAAI,GAClE,8BAAAA,CACN,CACG,CACD,SAAU,OACR,GAAI,KAAK,kBACP,OAAO,KAAK,kBAAkB,QAEhC,KAAK,UAAY,GACjB,KAAK,kBAAoB,IAAI,MAAM,mBACnC7L,EAAAuE,EAAA,KAAKwJ,KAAL,MAAA/N,EAA0B,OAAO,IAAI,MAAM,iDAAiD,GAC5F,MAAMuL,EAAS,CAAA,EACf,UAAW0C,KAAQ1J,EAAA,KAAKsJ,GAAW,OAAM,EACvCtC,EAAO,KAAK0C,EAAK,SAAU,CAAA,EAE7B1J,EAAA,KAAKsJ,GAAW,QAChBtJ,EAAA,KAAKuJ,GAAc,QACf,KAAK,eAAe,mBAAmB,GACzC,KAAK,kBAAkB,gBAEzB,MAAMI,EAAa,KAAK,eAAe,gBAAgB,YAAa,IAAI,EACxE,OAAA3C,EAAO,KAAK2C,CAAU,EACtB,QAAQ,IAAI3C,CAAM,EAAE,KAAK,IAAM,OAC7B,KAAK,WAAW,QAChB,KAAK,WAAW,QAChBhH,EAAA,KAAKqJ,GAAgB,QACrB,KAAK,cAAc,WACnB5N,EAAA,KAAK,iBAAL,MAAAA,EAAqB,kBAAkB,IAAI,MAAM,eAAe,wBAAwB,GACpF,KAAK,iBACP,KAAK,eAAe,UACpB,KAAK,eAAiB,MAExB,KAAK,kBAAkB,SAC7B,EAAO,KAAK,kBAAkB,MAAM,EACzB,KAAK,kBAAkB,OAC/B,CACD,qBAAsB,CACpB,KAAM,CACJ,eAAAsH,EACA,YAAAoG,CACD,EAAG,KACJpG,EAAe,GAAG,YAAa,CAAClD,EAAM+J,IAAS,IACzC,MAAM,QAAQ,KAAK,eAAgB,iDAAiD,EACxF,KAAK,YAAc,KAAK,eAAe,cAAa,EACpD,KAAK,YAAY,WAAaC,GAAO,CACnC,KAAK,cAAgB,CACnB,OAAQA,EAAI,OACZ,MAAOA,EAAI,KACrB,CACA,EACMD,EAAK,OAAS,IAAM,CAClB,KAAK,YAAY,KAAM,EAAC,KAAK,SAAU,CACrC,MAAAjQ,EACA,KAAAoN,CACV,EAAW,CACD,GAAIA,EAAM,CACR6C,EAAK,MAAK,EACV,MACD,IACG,MAAM,QAAQjQ,aAAiB,YAAa,sCAAsC,EACtFiQ,EAAK,QAAQ,IAAI,WAAWjQ,CAAK,EAAG,EAAG,CAACA,CAAK,CAAC,CACxD,CAAS,EAAE,MAAMoG,GAAU,CACjB6J,EAAK,MAAM7J,CAAM,CAC3B,CAAS,CACT,EACM6J,EAAK,SAAW7J,GAAU,CACxB,KAAK,YAAY,OAAOA,CAAM,EAC9B6J,EAAK,MAAM,MAAME,GAAe,CAC9B,GAAI,MAAK,UAGT,MAAMA,CAChB,CAAS,CACT,CACA,CAAK,EACD/G,EAAe,GAAG,qBAAsBlD,GAAQ,CAC9C,MAAMkK,EAAoB,IAAI,MAAM,kBAC9BC,EAAa,KAAK,YACxB,OAAAA,EAAW,aAAa,KAAK,IAAM,QAC7B,CAACA,EAAW,sBAAwB,CAACA,EAAW,oBAC9C,KAAK,iBACPvO,EAAA0N,EAAY,aAAZ,MAAA1N,EAAA,KAAA0N,EAAyB,KAAK,gBAEhCa,EAAW,WAAaH,GAAO,SAC7BpO,GAAA0N,EAAY,aAAZ,MAAA1N,GAAA,KAAA0N,EAAyB,CACvB,OAAQU,EAAI,OACZ,MAAOA,EAAI,KACzB,EACA,GAEQE,EAAkB,QAAQ,CACxB,qBAAsBC,EAAW,qBACjC,iBAAkBA,EAAW,iBAC7B,cAAeA,EAAW,aACpC,CAAS,CACT,EAASD,EAAkB,MAAM,EACpBA,EAAkB,OAC/B,CAAK,EACDhH,EAAe,GAAG,iBAAkB,CAAClD,EAAM+J,IAAS,IAC9C,MAAM,QAAQ,KAAK,eAAgB,sDAAsD,EAC7F,MAAMK,EAAc,KAAK,eAAe,eAAepK,EAAK,MAAOA,EAAK,GAAG,EAC3E,GAAI,CAACoK,EAAa,CAChBL,EAAK,MAAK,EACV,MACD,CACDA,EAAK,OAAS,IAAM,CAClBK,EAAY,OAAO,KAAK,SAAU,CAChC,MAAAtQ,EACA,KAAAoN,CACV,EAAW,CACD,GAAIA,EAAM,CACR6C,EAAK,MAAK,EACV,MACD,IACG,MAAM,QAAQjQ,aAAiB,YAAa,2CAA2C,EAC3FiQ,EAAK,QAAQ,IAAI,WAAWjQ,CAAK,EAAG,EAAG,CAACA,CAAK,CAAC,CACxD,CAAS,EAAE,MAAMoG,GAAU,CACjB6J,EAAK,MAAM7J,CAAM,CAC3B,CAAS,CACT,EACM6J,EAAK,SAAW7J,GAAU,CACxBkK,EAAY,OAAOlK,CAAM,EACzB6J,EAAK,MAAM,MAAME,GAAe,CAC9B,GAAI,MAAK,UAGT,MAAMA,CAChB,CAAS,CACT,CACA,CAAK,EACD/G,EAAe,GAAG,SAAU,CAAC,CAC3B,QAAAgB,CACN,IAAU,CACJ,KAAK,UAAYA,EAAQ,SACzB,KAAK,YAAcA,EAAQ,WAC3B,OAAOA,EAAQ,WACfoF,EAAY,YAAY,QAAQ,IAAI,iBAAiBpF,EAAS,IAAI,CAAC,CACzE,CAAK,EACDhB,EAAe,GAAG,eAAgB,SAAU7D,EAAI,CAC9C,IAAIa,EACJ,OAAQb,EAAG,KAAI,CACb,IAAK,oBACHa,EAAS,IAAI,MAAM,kBAAkBb,EAAG,QAASA,EAAG,IAAI,EACxD,MACF,IAAK,sBACHa,EAAS,IAAI,MAAM,oBAAoBb,EAAG,OAAO,EACjD,MACF,IAAK,sBACHa,EAAS,IAAI,MAAM,oBAAoBb,EAAG,OAAO,EACjD,MACF,IAAK,8BACHa,EAAS,IAAI,MAAM,4BAA4Bb,EAAG,QAASA,EAAG,MAAM,EACpE,MACF,IAAK,wBACHa,EAAS,IAAI,MAAM,sBAAsBb,EAAG,QAASA,EAAG,OAAO,EAC/D,MACF,WACM,MAAM,aAAa,wCAAwC,CAClE,CACDiK,EAAY,YAAY,OAAOpJ,CAAM,CAC3C,CAAK,EACDgD,EAAe,GAAG,kBAAmBmH,GAAa,CAEhD,GADApK,GAAA,KAAK0J,EAAsB,IAAI,MAAM,mBACjCL,EAAY,WAAY,CAC1B,MAAMgB,EAAiBxJ,GAAY,CAC7BA,aAAoB,MACtBX,EAAA,KAAKwJ,GAAoB,OAAO7I,CAAQ,EAExCX,EAAA,KAAKwJ,GAAoB,QAAQ,CAC/B,SAAA7I,CACd,CAAa,CAEb,EACQ,GAAI,CACFwI,EAAY,WAAWgB,EAAgBD,EAAU,IAAI,CACtD,OAAQhL,EAAI,CACXc,EAAA,KAAKwJ,GAAoB,OAAOtK,CAAE,CACnC,CACT,MACQc,EAAA,KAAKwJ,GAAoB,OAAO,IAAI,MAAM,kBAAkBU,EAAU,QAASA,EAAU,IAAI,CAAC,EAEhG,OAAOlK,EAAA,KAAKwJ,GAAoB,OACtC,CAAK,EACDzG,EAAe,GAAG,aAAclD,GAAQ,QACtCpE,EAAA0N,EAAY,aAAZ,MAAA1N,EAAA,KAAA0N,EAAyB,CACvB,OAAQtJ,EAAK,OACb,MAAOA,EAAK,MACpB,GACM,KAAK,uBAAuB,QAAQA,CAAI,CAC9C,CAAK,EACDkD,EAAe,GAAG,kBAAmBlD,GAAQ,CAC3C,GAAI,KAAK,UACP,OAEWG,EAAA,KAAKsJ,GAAW,IAAIzJ,EAAK,SAAS,EAC1C,iBAAiBA,EAAK,aAAcA,EAAK,QAAQ,CAC5D,CAAK,EACDkD,EAAe,GAAG,YAAa,CAAC,CAACqB,EAAIgG,EAAMC,CAAY,IAAM,OAC3D,GAAI,MAAK,WAGL,MAAK,WAAW,IAAIjG,CAAE,EAG1B,OAAQgG,EAAI,CACV,IAAK,OACH,MAAMvH,EAAS,KAAK,QACpB,GAAI,UAAWwH,EAAc,CAC3B,MAAMC,EAAgBD,EAAa,SAC/B,MAAM,MAAM,8BAA8BC,CAAa,EAAE,EAC7D,KAAK,WAAW,QAAQlG,EAAIkG,CAAa,EACzC,KACD,CACD,MAAMC,GAAc1H,EAAO,UAAUpH,EAAA,WAAW,gBAAX,MAAAA,EAA0B,SAAU,CAAC+O,EAAMpR,KAAQ,WAAW,cAAc,UAAUoR,EAAMpR,EAAG,EAAI,KAClIoR,GAAO,IAAI,aAAa,eAAeH,EAAc,CACzD,gBAAiBxH,EAAO,gBACxB,gBAAiBA,EAAO,gBACxB,aAAcA,EAAO,aACrB,YAAA0H,EACZ,CAAW,EACD,KAAK,WAAW,KAAKC,EAAI,EAAE,MAAMzK,GACxBgD,EAAe,gBAAgB,eAAgB,CACpD,GAAAqB,CACd,CAAa,CACF,EAAE,QAAQ,IAAM,CACX,CAACvB,EAAO,qBAAuB2H,GAAK,OACtCA,GAAK,KAAO,MAEd,KAAK,WAAW,QAAQpG,EAAIoG,EAAI,CAC5C,CAAW,EACD,MACF,IAAK,WACL,IAAK,QACL,IAAK,UACH,KAAK,WAAW,QAAQpG,EAAIiG,CAAY,EACxC,MACF,QACE,MAAM,IAAI,MAAM,kCAAkCD,CAAI,EAAE,CAC3D,CACP,CAAK,EACDrH,EAAe,GAAG,MAAO,CAAC,CAACqB,EAAIE,EAAW8F,EAAMK,CAAS,IAAM,QAC7D,GAAI,KAAK,UACP,OAEF,MAAMC,EAAY1K,EAAA,KAAKsJ,GAAW,IAAIhF,CAAS,EAC/C,GAAI,CAAAoG,EAAU,KAAK,IAAItG,CAAE,EAGzB,OAAQgG,EAAI,CACV,IAAK,QAEH,GADAM,EAAU,KAAK,QAAQtG,EAAIqG,CAAS,EAChCA,EAAW,CACb,IAAI9P,GACJ,GAAI8P,EAAU,OAAQ,CACpB,KAAM,CACJ,MAAAE,EACA,OAAAC,EACD,EAAGH,EACJ9P,GAASgQ,EAAQC,GAAS,CACxC,MACcjQ,KAASc,GAAAgP,EAAU,OAAV,YAAAhP,GAAgB,SAAU,EAEjCd,GAAS,MAAM,0BACjB+P,EAAU,yBAA2B,GAExC,CACD,MACF,IAAK,UACHA,EAAU,KAAK,QAAQtG,EAAIqG,CAAS,EACpC,MACF,QACE,MAAM,IAAI,MAAM,2BAA2BL,CAAI,EAAE,CACpD,CACP,CAAK,EACDrH,EAAe,GAAG,cAAelD,GAAQ,OACnC,KAAK,YAGTpE,EAAA0N,EAAY,aAAZ,MAAA1N,EAAA,KAAA0N,EAAyB,CACvB,OAAQtJ,EAAK,OACb,MAAOA,EAAK,KACpB,EACA,CAAK,EACDkD,EAAe,GAAG,mBAAoBlD,GAChC,KAAK,UACA,QAAQ,OAAO,IAAI,MAAM,uBAAuB,CAAC,EAErD,KAAK,kBAGH,KAAK,kBAAkB,MAAMA,CAAI,EAF/B,QAAQ,OAAO,IAAI,MAAM,wEAAwE,CAAC,CAG5G,EACDkD,EAAe,GAAG,wBAAyBlD,GACrC,KAAK,UACA,QAAQ,OAAO,IAAI,MAAM,uBAAuB,CAAC,EAErD,KAAK,wBAGH,KAAK,wBAAwB,MAAMA,CAAI,EAFrC,QAAQ,OAAO,IAAI,MAAM,8EAA8E,CAAC,CAGlH,CACF,CACD,SAAU,CACR,OAAO,KAAK,eAAe,gBAAgB,UAAW,IAAI,CAC3D,CACD,cAAe,OACT,KAAK,kBAAkB,MAAQ,MAC7B,MAAM,MAAM,gGAAqG,EAEvH,KAAM,CACJ,IAAA3E,EACA,UAAAqM,CACN,EAAQ,KAAK,kBAAkB,aAC3B,OAAO,KAAK,eAAe,gBAAgB,eAAgB,CACzD,UAAW,CAAC,CAAC,KAAK,YAClB,SAAU,KAAK,UACf,kBAAmBrM,EACnB,WAAUO,EAAA,KAAK,cAAL,YAAAA,EAAkB,WAAY,IAC9C,EAAO8L,CAAS,EAAE,QAAQ,IAAM,CAC1B,KAAK,kBAAkB,eAC7B,CAAK,CACF,CACD,QAAQrD,EAAY,CAClB,GAAI,CAAC,OAAO,UAAUA,CAAU,GAAKA,GAAc,GAAKA,EAAa,KAAK,UACxE,OAAO,QAAQ,OAAO,IAAI,MAAM,uBAAuB,CAAC,EAE1D,MAAMI,EAAYJ,EAAa,EAC7B2G,EAAgB7K,EAAA,KAAKuJ,GAAc,IAAIjF,CAAS,EAClD,GAAIuG,EACF,OAAOA,EAET,MAAMC,EAAU,KAAK,eAAe,gBAAgB,UAAW,CAC7D,UAAAxG,CACN,CAAK,EAAE,KAAKC,GAAY,CAClB,GAAI,KAAK,UACP,MAAM,IAAI,MAAM,qBAAqB,EAEvC,MAAMmF,EAAO,IAAI,aAAapF,EAAWC,EAAU,KAAM,KAAK,QAAQ,MAAM,EAC5E,OAAAvE,EAAA,KAAKsJ,GAAW,IAAIhF,EAAWoF,CAAI,EAC5BA,CACb,CAAK,EACD,OAAA1J,EAAA,KAAKuJ,GAAc,IAAIjF,EAAWwG,CAAO,EAClCA,CACR,CACD,aAAa3G,EAAK,CAChB,OAAI,OAAOA,GAAQ,UAAYA,IAAQ,MAAQ,CAAC,OAAO,UAAUA,EAAI,GAAG,GAAKA,EAAI,IAAM,GAAK,CAAC,OAAO,UAAUA,EAAI,GAAG,GAAKA,EAAI,IAAM,EAC3H,QAAQ,OAAO,IAAI,MAAM,4BAA4B,CAAC,EAExD,KAAK,eAAe,gBAAgB,eAAgB,CACzD,IAAKA,EAAI,IACT,IAAKA,EAAI,GACf,CAAK,CACF,CACD,eAAeG,EAAWW,EAAQ,CAChC,OAAO,KAAK,eAAe,gBAAgB,iBAAkB,CAC3D,UAAAX,EACA,OAAAW,CACN,CAAK,CACF,CACD,iBAAkB,CAChB,OAAOU,EAAA,KAAKyD,EAAA2B,IAAL,UAAwB,kBAChC,CACD,cAAe,CACb,OAAOpF,EAAA,KAAKyD,EAAA2B,IAAL,UAAwB,eAChC,CACD,wBAAyB,CACvB,OAAO,KAAK,eAAe,gBAAgB,yBAA0B,IAAI,CAC1E,CACD,iBAAkB,CAChB,OAAO,KAAK,eAAe,gBAAgB,kBAAmB,IAAI,CACnE,CACD,eAAe3G,EAAI,CACjB,OAAI,OAAOA,GAAO,SACT,QAAQ,OAAO,IAAI,MAAM,8BAA8B,CAAC,EAE1D,KAAK,eAAe,gBAAgB,iBAAkB,CAC3D,GAAAA,CACN,CAAK,CACF,CACD,eAAgB,CACd,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,IAAI,CACjE,CACD,eAAgB,CACd,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,IAAI,CACjE,CACD,aAAc,CACZ,OAAO,KAAK,eAAe,gBAAgB,cAAe,IAAI,CAC/D,CACD,sBAAuB,CACrB,OAAO,KAAK,eAAe,gBAAgB,uBAAwB,IAAI,CACxE,CACD,eAAgB,CACd,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,IAAI,CACjE,CACD,gBAAiB,CACf,OAAO,KAAK,eAAe,gBAAgB,iBAAkB,IAAI,CAClE,CACD,iBAAkB,CAChB,OAAOuB,EAAA,KAAKyD,EAAA2B,IAAL,UAAwB,kBAChC,CACD,iBAAiBzG,EAAW,CAC1B,OAAO,KAAK,eAAe,gBAAgB,mBAAoB,CAC7D,UAAAA,CACN,CAAK,CACF,CACD,cAAcA,EAAW,CACvB,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,CAC1D,UAAAA,CACN,CAAK,CACF,CACD,YAAa,CACX,OAAO,KAAK,eAAe,gBAAgB,aAAc,IAAI,CAC9D,CACD,0BAA2B,CACzB,OAAO,KAAK,eAAe,gBAAgB,2BAA4B,IAAI,EAAE,KAAK0G,GACzE,IAAI,yBAAyB,sBAAsBA,CAAO,CAClE,CACF,CACD,gBAAiB,CACf,OAAO,KAAK,eAAe,gBAAgB,iBAAkB,IAAI,CAClE,CACD,aAAc,CACZ,MAAMjR,EAAO,cACX8Q,EAAgB7K,EAAA,KAAKqJ,GAAgB,IAAItP,CAAI,EAC/C,GAAI8Q,EACF,OAAOA,EAET,MAAMC,EAAU,KAAK,eAAe,gBAAgB/Q,EAAM,IAAI,EAAE,KAAKiR,GAAW,SAC9E,MAAO,CACL,KAAMA,EAAQ,CAAC,EACf,SAAUA,EAAQ,CAAC,EAAI,IAAI,UAAU,SAASA,EAAQ,CAAC,CAAC,EAAI,KAC5D,6BAA4BvP,EAAA,KAAK,cAAL,YAAAA,EAAkB,WAAY,KAC1D,gBAAeD,EAAA,KAAK,cAAL,YAAAA,EAAkB,gBAAiB,IAC1D,CACA,CAAK,EACD,OAAAwE,EAAA,KAAKqJ,GAAgB,IAAItP,EAAM+Q,CAAO,EAC/BA,CACR,CACD,aAAc,CACZ,OAAO,KAAK,eAAe,gBAAgB,cAAe,IAAI,CAC/D,CACD,MAAM,aAAazG,EAAkB,GAAO,CAC1C,GAAI,MAAK,UAGT,OAAM,KAAK,eAAe,gBAAgB,UAAW,IAAI,EACzD,UAAWqF,KAAQ1J,EAAA,KAAKsJ,GAAW,OAAM,EAEvC,GAAI,CADsBI,EAAK,UAE7B,MAAM,IAAI,MAAM,sBAAsBA,EAAK,UAAU,0BAA0B,EAGnF,KAAK,WAAW,QACXrF,GACH,KAAK,WAAW,QAElBrE,EAAA,KAAKqJ,GAAgB,QACrB,KAAK,cAAc,QAAQ,EAAI,EAChC,CACD,IAAI,eAAgB,CAClB,KAAM,CACJ,iBAAAtH,EACA,UAAAJ,CACN,EAAQ,KAAK,QACT,SAAW,MAAM,QAAQ,KAAM,gBAAiB,CAC9C,iBAAAI,EACA,UAAAJ,CACN,CAAK,CACF,CACF,CA/hBC0H,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YAsBAJ,EAAA,YAAA2B,GAAkB,SAAChR,EAAM8F,EAAO,KAAM,CACpC,MAAMgL,EAAgB7K,EAAA,KAAKqJ,GAAgB,IAAItP,CAAI,EACnD,GAAI8Q,EACF,OAAOA,EAET,MAAMC,EAAU,KAAK,eAAe,gBAAgB/Q,EAAM8F,CAAI,EAC9D,OAAAG,EAAA,KAAKqJ,GAAgB,IAAItP,EAAM+Q,CAAO,EAC/BA,CACR,EA+fH,MAAM,UAAW,CAAjB,cAEErL,EAAA,KAAAwL,GADAxL,EAAA,KAAAyL,EAAQ,OAAO,OAAO,IAAI,GAO1B,IAAIC,EAAOC,EAAW,KAAM,CAC1B,GAAIA,EAAU,CACZ,MAAM3R,EAAMkM,EAAA,KAAKsF,EAAAI,IAAL,UAAgBF,GAC5B,OAAA1R,EAAI,WAAW,QAAQ,KAAK,IAAM2R,EAAS3R,EAAI,IAAI,CAAC,EAC7C,IACR,CACD,MAAMA,EAAMuG,EAAA,KAAKkL,GAAMC,CAAK,EAC5B,GAAI,EAAC1R,GAAA,MAAAA,EAAK,WAAW,SACnB,MAAM,IAAI,MAAM,6CAA6C0R,CAAK,GAAG,EAEvE,OAAO1R,EAAI,IACZ,CACD,IAAI0R,EAAO,CACT,MAAM1R,EAAMuG,EAAA,KAAKkL,GAAMC,CAAK,EAC5B,OAAO1R,GAAA,YAAAA,EAAK,WAAW,UAAW,EACnC,CACD,QAAQ0R,EAAOtL,EAAO,KAAM,CAC1B,MAAMpG,EAAMkM,EAAA,KAAKsF,EAAAI,IAAL,UAAgBF,GAC5B1R,EAAI,KAAOoG,EACXpG,EAAI,WAAW,SAChB,CACD,OAAQ,OACN,UAAW0R,KAASnL,EAAA,KAAKkL,GAAO,CAC9B,KAAM,CACJ,KAAArL,CACR,EAAUG,EAAA,KAAKkL,GAAMC,CAAK,GACpB1P,EAAAoE,GAAA,YAAAA,EAAM,SAAN,MAAApE,EAAc,OACf,CACDqE,GAAA,KAAKoL,EAAQ,OAAO,OAAO,IAAI,EAChC,CACF,CArCCA,EAAA,YACAD,EAAA,YAAAI,GAAU,SAACF,EAAO,OAChB,OAAO1P,EAAAuE,EAAA,KAAKkL,IAALC,KAAA1P,EAAA0P,GAAsB,CAC3B,WAAY,IAAI,MAAM,kBACtB,KAAM,IACZ,EACG,EAgCH,MAAM,UAAW,CAEf,YAAYlF,EAAoB,CADhCxG,EAAA,KAAA6L,EAAsB,MAEpBxL,GAAA,KAAKwL,EAAsBrF,GAC3B,KAAK,WAAa,IACnB,CACD,IAAI,SAAU,CACZ,OAAOjG,EAAA,KAAKsL,GAAoB,WAAW,OAC5C,CACD,OAAOC,EAAa,EAAG,CACrBvL,EAAA,KAAKsL,GAAoB,OAAO,KAAMC,CAAU,CACjD,CACD,IAAI,gBAAiB,CACnB,KAAM,CACJ,eAAAC,CACN,EAAQxL,EAAA,KAAKsL,GAAoB,aAC7B,GAAI,CAACE,EACH,MAAO,GAET,KAAM,CACJ,oBAAAhG,CACN,EAAQxF,EAAA,KAAKsL,GACT,OAAOE,EAAe,MAAQA,EAAe,SAAUhG,GAAA,YAAAA,EAAqB,MAAO,CACpF,CACF,CAvBC8F,EAAA,YAwBF,QAAQ,WAAa,WACrB,MAAMG,EAAN,MAAMA,CAAmB,CAEvB,YAAY,CACV,SAAAL,EACA,OAAAvI,EACA,KAAA6I,EACA,WAAAC,EACA,oBAAAnG,EACA,aAAAsC,EACA,UAAAxD,EACA,cAAAnC,GACA,cAAAC,GACA,yBAAAwJ,EAA2B,GAC3B,OAAA5J,GAAS,GACT,WAAAyD,GAAa,IACjB,EAAK,CACD,KAAK,SAAW2F,EAChB,KAAK,OAASvI,EACd,KAAK,KAAO6I,EACZ,KAAK,WAAaC,EAClB,KAAK,oBAAsBnG,EAC3B,KAAK,gBAAkB,KACvB,KAAK,aAAesC,EACpB,KAAK,WAAaxD,EAClB,KAAK,cAAgBnC,GACrB,KAAK,cAAgBC,GACrB,KAAK,QAAUJ,GACf,KAAK,WAAayD,GAClB,KAAK,QAAU,GACf,KAAK,sBAAwB,KAC7B,KAAK,cAAgB,GACrB,KAAK,0BAA4BmG,IAA6B,IAAQ,OAAO,OAAW,IACxF,KAAK,UAAY,GACjB,KAAK,WAAa,IAAI,MAAM,kBAC5B,KAAK,KAAO,IAAI,WAAW,IAAI,EAC/B,KAAK,aAAe,KAAK,OAAO,KAAK,IAAI,EACzC,KAAK,eAAiB,KAAK,UAAU,KAAK,IAAI,EAC9C,KAAK,mBAAqB,KAAK,cAAc,KAAK,IAAI,EACtD,KAAK,WAAa,KAAK,MAAM,KAAK,IAAI,EACtC,KAAK,QAAU/I,EAAO,cAAc,MACrC,CACD,IAAI,WAAY,CACd,OAAO,KAAK,WAAW,QAAQ,MAAM,UAAY,CAAE,CAAA,CACpD,CACD,mBAAmB,CACjB,aAAAuD,EAAe,GACf,sBAAAC,CACJ,EAAK,UACD,GAAI,KAAK,UACP,OAEF,GAAI,KAAK,QAAS,CAChB,GAAIrG,EAAAyL,EAAmBI,GAAa,IAAI,KAAK,OAAO,EAClD,MAAM,IAAI,MAAM,iJAA2J,EAE7K7L,EAAAyL,EAAmBI,GAAa,IAAI,KAAK,OAAO,CACjD,CACG,KAAK,WAAWpQ,EAAA,WAAW,iBAAX,MAAAA,EAA2B,WAC7C,KAAK,QAAU,WAAW,eAAe,OAAO,KAAK,UAAU,EAC/D,KAAK,QAAQ,KAAK,KAAK,YAAY,EACnC,KAAK,QAAQ,eAAiB,KAAK,QAAQ,kBAAiB,GAE9D,KAAM,CACJ,cAAA0J,EACA,SAAAC,EACA,UAAApJ,EACA,WAAAsJ,CACN,EAAQ,KAAK,OACT,KAAK,IAAM,IAAI,QAAQ,eAAeH,EAAe,KAAK,WAAY,KAAK,KAAM,KAAK,cAAe,KAAK,cAAe,CACvH,sBAAAkB,CACD,EAAE,KAAK,oBAAqB,KAAK,UAAU,EAC5C,KAAK,IAAI,aAAa,CACpB,UAAArK,EACA,SAAAoJ,EACA,aAAAgB,EACA,WAAAd,CACN,CAAK,EACD,KAAK,gBAAkB,EACvB,KAAK,cAAgB,IACrB9J,GAAA,KAAK,wBAAL,MAAAA,GAAA,UACD,CACD,OAAOwK,EAAQ,KAAMuF,EAAa,EAAG,OACnC,KAAK,QAAU,GACf,KAAK,UAAY,IACjB9P,EAAA,KAAK,MAAL,MAAAA,EAAU,aACVuE,EAAAyL,EAAmBI,GAAa,OAAO,KAAK,OAAO,EACnD,KAAK,SAAS7F,GAAS,IAAI,eAAe,4BAA4B,6BAA6B,KAAK,WAAa,CAAC,GAAIuF,CAAU,CAAC,CACtI,CACD,qBAAsB,OACpB,GAAI,CAAC,KAAK,cAAe,CACvB,KAAK,wBAAL,KAAK,sBAA0B,KAAK,gBACpC,MACD,EACD9P,EAAA,KAAK,UAAL,MAAAA,EAAc,mBAAmB,KAAK,cAClC,MAAK,SAGT,KAAK,UAAS,CACf,CACD,WAAY,CACV,KAAK,QAAU,GACX,MAAK,YAGL,KAAK,KAAK,WACZ,KAAK,KAAK,WAAW,KAAK,kBAAkB,EAE5C,KAAK,cAAa,EAErB,CACD,eAAgB,CACV,KAAK,0BACP,OAAO,sBAAsB,IAAM,CACjC,KAAK,WAAY,EAAC,MAAM,KAAK,YAAY,CACjD,CAAO,EAED,QAAQ,UAAU,KAAK,KAAK,UAAU,EAAE,MAAM,KAAK,YAAY,CAElE,CACD,MAAM,OAAQ,CACR,KAAK,YAGT,KAAK,gBAAkB,KAAK,IAAI,oBAAoB,KAAK,aAAc,KAAK,gBAAiB,KAAK,eAAgB,KAAK,OAAO,EAC1H,KAAK,kBAAoB,KAAK,aAAa,UAAU,SACvD,KAAK,QAAU,GACX,KAAK,aAAa,YACpB,KAAK,IAAI,aACTuE,EAAAyL,EAAmBI,GAAa,OAAO,KAAK,OAAO,EACnD,KAAK,SAAQ,IAGlB,CACF,EApIQA,EAAA,YAAPpM,EADIgM,EACGI,EAAe,IAAI,SAD5B,IAAM,mBAANJ,EAsIA,MAAM,QAAU,WAChB,QAAQ,QAAU,QAClB,MAAM,MAAQ,YACd,QAAQ,MAAQ,KAET,EAEA,CAAC5V,EAAyBC,EAASgW,IAAwB,gBAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,kBAAoBA,EAAQ,uBAAyBA,EAAQ,kBAAoB,OACzF,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BE,EAAUF,EAAoB,CAAC,EAC/BG,EAAcH,EAAoB,CAAC,EACvC,MAAMI,EAAoB,OAAO,OAAO,CACtC,IAAK,KACL,KAAM,GACN,UAAW,MACb,CAAC,EACDpW,EAAQ,kBAAoBoW,EAC5B,MAAMC,EAAkB,CAGtB,aAAc,CAgEd1M,EAAA,KAAA2M,GAlEA3M,EAAA,KAAA4M,EAAY,IACZ5M,EAAA,KAAA6M,EAAW,IAAI,KAEb,KAAK,cAAgB,KACrB,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,IAC3B,CACD,SAASnR,EAAKoR,EAAc,CAC1B,MAAM5S,EAAQqG,EAAA,KAAKsM,GAAS,IAAInR,CAAG,EACnC,OAAIxB,IAAU,OACL4S,EAEF,OAAO,OAAOA,EAAc5S,CAAK,CACzC,CACD,YAAYwB,EAAK,CACf,OAAO6E,EAAA,KAAKsM,GAAS,IAAInR,CAAG,CAC7B,CACD,OAAOA,EAAK,CAKV,GAJA6E,EAAA,KAAKsM,GAAS,OAAOnR,CAAG,EACpB6E,EAAA,KAAKsM,GAAS,OAAS,GACzB,KAAK,cAAa,EAEhB,OAAO,KAAK,oBAAuB,WAAY,CACjD,UAAW3S,KAASqG,EAAA,KAAKsM,GAAS,OAAM,EACtC,GAAI3S,aAAiBqS,EAAQ,iBAC3B,OAGJ,KAAK,mBAAmB,IAAI,CAC7B,CACF,CACD,SAAS7Q,EAAKxB,EAAO,CACnB,MAAMF,EAAMuG,EAAA,KAAKsM,GAAS,IAAInR,CAAG,EACjC,IAAIqR,EAAW,GACf,GAAI/S,IAAQ,OACV,SAAW,CAACgT,EAAOvJ,CAAG,IAAK,OAAO,QAAQvJ,CAAK,EACzCF,EAAIgT,CAAK,IAAMvJ,IACjBsJ,EAAW,GACX/S,EAAIgT,CAAK,EAAIvJ,QAIjBsJ,EAAW,GACXxM,EAAA,KAAKsM,GAAS,IAAInR,EAAKxB,CAAK,EAE1B6S,GACF7G,EAAA,KAAKyG,EAAAM,IAAL,WAEE/S,aAAiBqS,EAAQ,kBAAoB,OAAO,KAAK,oBAAuB,YAClF,KAAK,mBAAmBrS,EAAM,YAAY,KAAK,CAElD,CACD,IAAIwB,EAAK,CACP,OAAO6E,EAAA,KAAKsM,GAAS,IAAInR,CAAG,CAC7B,CACD,QAAS,CACP,OAAO6E,EAAA,KAAKsM,GAAS,KAAO,KAAQP,EAAM,eAAe/L,EAAA,KAAKsM,EAAQ,EAAI,IAC3E,CACD,OAAO7S,EAAK,CACV,SAAW,CAAC0B,EAAK+H,CAAG,IAAK,OAAO,QAAQzJ,CAAG,EACzC,KAAK,SAAS0B,EAAK+H,CAAG,CAEzB,CACD,IAAI,MAAO,CACT,OAAOlD,EAAA,KAAKsM,GAAS,IACtB,CASD,eAAgB,CACVtM,EAAA,KAAKqM,KACPvM,GAAA,KAAKuM,EAAY,IACb,OAAO,KAAK,iBAAoB,YAClC,KAAK,gBAAe,EAGzB,CACD,IAAI,OAAQ,CACV,OAAO,IAAIM,EAAuB,IAAI,CACvC,CACD,IAAI,cAAe,CACjB,GAAI3M,EAAA,KAAKsM,GAAS,OAAS,EACzB,OAAOJ,EAET,MAAMhR,EAAM,IAAI,IACd0R,EAAO,IAAIX,EAAY,eACvB1E,EAAY,CAAA,EACRsF,EAAU,OAAO,OAAO,IAAI,EAClC,IAAIC,EAAY,GAChB,SAAW,CAAC3R,EAAK+H,CAAG,IAAKlD,EAAA,KAAKsM,GAAU,CACtC,MAAMS,EAAa7J,aAAe8I,EAAQ,iBAAmB9I,EAAI,UAAU,GAAO2J,CAAO,EAAI3J,EACzF6J,IACF7R,EAAI,IAAIC,EAAK4R,CAAU,EACvBH,EAAK,OAAO,GAAGzR,CAAG,IAAI,KAAK,UAAU4R,CAAU,CAAC,EAAE,EAClDD,MAAc,CAAC,CAACC,EAAW,QAE9B,CACD,GAAID,EACF,UAAWnT,KAASuB,EAAI,SAClBvB,EAAM,QACR4N,EAAU,KAAK5N,EAAM,MAAM,EAIjC,OAAOuB,EAAI,KAAO,EAAI,CACpB,IAAAA,EACA,KAAM0R,EAAK,UAAW,EACtB,UAAArF,CACD,EAAG2E,CACL,CACF,CAnHCG,EAAA,YACAC,EAAA,YAiEAF,EAAA,YAAAM,GAAY,UAAG,CACR1M,EAAA,KAAKqM,KACRvM,GAAA,KAAKuM,EAAY,IACb,OAAO,KAAK,eAAkB,YAChC,KAAK,cAAa,EAGvB,EA2CHvW,EAAQ,kBAAoBqW,GAC5B,MAAMQ,UAA+BR,EAAkB,CAErD,YAAYa,EAAQ,CAClB,QAFFvN,EAAA,KAAAwN,EAAA,QAGE,KAAM,CACJ,IAAA/R,EACA,KAAA0R,EACA,UAAArF,CACN,EAAQyF,EAAO,aACLE,EAAQ,gBAAgBhS,EAAKqM,EAAY,CAC7C,SAAUA,CACX,EAAG,IAAI,EACRzH,GAAA,KAAKmN,EAAgB,CACnB,IAAKC,EACL,KAAAN,EACA,UAAArF,CACN,EACG,CACD,IAAI,OAAQ,IACNwE,EAAM,aAAa,8CAA8C,CACtE,CACD,IAAI,cAAe,CACjB,OAAO/L,EAAA,KAAKiN,EACb,CACF,CAvBCA,EAAA,YAwBFnX,EAAQ,uBAAyB6W,CAE1B,EAEA,CAAC9W,EAAyBC,EAASgW,IAAwB,iFAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,iBAAmB,OAC3B,IAAIqX,EAASrB,EAAoB,CAAC,EAC9BC,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EAC1C,MAAMuB,EAAN,MAAMA,CAAiB,CAuBrB,YAAYC,EAAY,CA0KxB7N,EAAA,KAAA8N,GA0CA9N,EAAA,KAAA+N,GA8EA/N,EAAA,KAAAgO,GAiEAhO,EAAA,KAAAiO,GAmBAjO,EAAA,KAAAkO,IA8DAlO,EAAA,KAAAmO,GAqHAnO,EAAA,KAAMoO,IAmGNpO,EAAA,KAAAqO,IAlqBArO,EAAA,KAAAsO,EAAW,IACXtO,EAAA,KAAAuO,EAAqB,IACrBvO,EAAA,KAAAwO,EAAiB,MACjBxO,EAAA,KAAAyO,EAAkB,MAClBzO,EAAA,KAAA0O,EAAyB,MACzB1O,EAAA,KAAA2O,EAAmB,IACnB3O,EAAA,KAAA4O,EAAe,MACf5O,EAAA,KAAA6O,EAAgB,KAAK,QAAQ,KAAK,IAAI,GACtC7O,EAAA,KAAA8O,EAAiB,KAAK,SAAS,KAAK,IAAI,GACxC9O,EAAA,KAAA+O,EAAkB,IAClB/O,EAAA,KAAAgP,EAAa,IACbhP,EAAA,KAAAiP,EAAgB,IAChB,qBAAkB,OAAO,OAAO,IAAI,EACpC,gBAAa,KACb,yBAAsB,GACtB,kBAAe,KACfjP,EAAA,KAAAkP,EAAe,IACflP,EAAA,KAAAmP,EAAUvB,EAAiB,WAMrB,KAAK,cAAgBA,MACnBtB,EAAM,aAAa,qCAAqC,EAE9D,KAAK,OAASuB,EAAW,OACzB,KAAK,GAAKA,EAAW,GACrB,KAAK,MAAQ,KAAK,OAAS,KAC3B,KAAK,UAAYA,EAAW,OAAO,UACnC,KAAK,KAAOA,EAAW,KACvB,KAAK,IAAM,KACX,KAAK,WAAaA,EAAW,UAC7B,KAAK,oBAAsB,KAC3B,KAAK,qBAAuB,GAC5B,KAAK,gBAAgB,WAAaA,EAAW,WAC7C,KAAK,oBAAsB,KAC3B,KAAM,CACJ,SAAAzI,EACA,QAAS,CACP,UAAAgK,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,CACD,CACP,EAAQ,KAAK,OAAO,SAChB,KAAK,SAAWnK,EAChB,KAAK,cAAgB,IAAMA,EAAW,KAAK,WAAW,eAAe,UAAY,IACjF,KAAK,eAAiB,CAACgK,EAAWC,CAAU,EAC5C,KAAK,gBAAkB,CAACC,EAAOC,CAAK,EACpC,KAAM,CAACrE,GAAOC,EAAM,EAAI,KAAK,iBAC7B,KAAK,EAAI0C,EAAW,EAAI3C,GACxB,KAAK,EAAI2C,EAAW,EAAI1C,GACxB,KAAK,gBAAkB,GACvB,KAAK,QAAU,EAChB,CACD,IAAI,YAAa,CACf,OAAO,OAAO,eAAe,IAAI,EAAE,YAAY,KAChD,CACD,WAAW,mBAAoB,CAC7B,SAAWmB,EAAM,QAAQ,KAAM,oBAAqB,KAAK,cAAc,WAAW,YAAY,CAAC,CAChG,CACD,OAAO,wBAAwBkD,EAAQ,CACrC,MAAMC,EAAa,IAAIC,GAAW,CAChC,GAAIF,EAAO,OAAO,UAAW,EAC7B,OAAQA,EAAO,OACf,UAAWA,EAAO,UACxB,CAAK,EACDC,EAAW,oBAAsBD,EAAO,oBACxCC,EAAW,QAAU,GACrBA,EAAW,WAAW,uBAAuBA,CAAU,CACxD,CACD,OAAO,WAAWE,EAAM9V,EAAU,KAAM,CAEtC,GADA+T,EAAiB,eAAjBA,EAAiB,aAAiB,IAAI,IAAI,CAAC,+BAAgC,oCAAqC,oCAAoC,EAAE,IAAIpS,GAAO,CAACA,EAAKmU,EAAK,IAAInU,CAAG,CAAC,CAAC,CAAC,GAClL3B,GAAA,MAAAA,EAAS,QACX,UAAW2B,KAAO3B,EAAQ,QACxB+T,EAAiB,aAAa,IAAIpS,EAAKmU,EAAK,IAAInU,CAAG,CAAC,EAGxD,GAAIoS,EAAiB,mBAAqB,GACxC,OAEF,MAAMgC,EAAQ,iBAAiB,SAAS,eAAe,EACvDhC,EAAiB,iBAAmB,WAAWgC,EAAM,iBAAiB,iBAAiB,CAAC,GAAK,CAC9F,CACD,OAAO,oBAAoBC,EAAOC,EAAQ,CAAE,CAC5C,WAAW,2BAA4B,CACrC,MAAO,EACR,CACD,OAAO,yBAAyBC,EAAM,CACpC,MAAO,EACR,CACD,OAAO,MAAMC,EAAMzC,EAAQ,IACrBjB,EAAM,aAAa,iBAAiB,CACzC,CACD,IAAI,oBAAqB,CACvB,MAAO,EACR,CACD,IAAI,cAAe,CACjB,OAAO/L,EAAA,KAAK2O,EACb,CACD,IAAI,aAAahV,EAAO,OACtBmG,GAAA,KAAK6O,EAAehV,IACpB8B,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,OAAO,YAAa9B,EACzC,CACD,QAAS,CACP,KAAM,CAACkV,EAAWC,CAAU,EAAI,KAAK,eACrC,OAAQ,KAAK,eAAc,CACzB,IAAK,IACH,KAAK,GAAK,KAAK,OAASA,GAAcD,EAAY,GAClD,KAAK,GAAK,KAAK,MAAQA,GAAaC,EAAa,GACjD,MACF,IAAK,KACH,KAAK,GAAK,KAAK,MAAQ,EACvB,KAAK,GAAK,KAAK,OAAS,EACxB,MACF,IAAK,KACH,KAAK,GAAK,KAAK,OAASA,GAAcD,EAAY,GAClD,KAAK,GAAK,KAAK,MAAQA,GAAaC,EAAa,GACjD,MACF,QACE,KAAK,GAAK,KAAK,MAAQ,EACvB,KAAK,GAAK,KAAK,OAAS,EACxB,KACH,CACD,KAAK,kBAAiB,CACvB,CACD,YAAYjM,EAAQ,CAClB,KAAK,WAAW,YAAYA,CAAM,CACnC,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,WAAW,YACxB,CACD,iBAAkB,CAChB,KAAK,IAAI,MAAM,OAAS,CACzB,CACD,iBAAkB,CAChB,KAAK,IAAI,MAAM,OAAS7C,EAAA,KAAK4O,EAC9B,CACD,UAAU5B,EAAQ,CACZA,IAAW,OACb,KAAK,UAAYA,EAAO,UACxB,KAAK,eAAiBA,EAAO,gBAE/B,KAAK,OAASA,CACf,CACD,QAAQ9E,EAAO,CACR,KAAK,sBAGLlI,EAAA,KAAKwO,GAGR1O,GAAA,KAAK0O,EAAkB,IAFvB,KAAK,OAAO,YAAY,IAAI,EAI/B,CACD,SAAStG,EAAO,OAId,GAHI,CAAC,KAAK,qBAGN,CAAC,KAAK,gBACR,OAEF,MAAMwH,EAASxH,EAAM,cACjBwH,GAAA,MAAAA,EAAQ,QAAQ,IAAI,KAAK,EAAE,MAG/BxH,EAAM,eAAc,GACfzM,EAAA,KAAK,SAAL,MAAAA,EAAa,qBAChB,KAAK,eAAc,EAEtB,CACD,gBAAiB,CACX,KAAK,UACP,KAAK,OAAM,EAEX,KAAK,OAAM,CAEd,CACD,QAAS,CACP,KAAK,uBAAsB,CAC5B,CACD,wBAAyB,CACvB,KAAK,WAAW,uBAAuB,IAAI,CAC5C,CACD,MAAMkU,EAAGC,EAAGC,EAAIC,EAAI,CAClB,KAAM,CAACnF,EAAOC,CAAM,EAAI,KAAK,iBAC7B,CAACiF,EAAIC,CAAE,EAAI,KAAK,wBAAwBD,EAAIC,CAAE,EAC9C,KAAK,GAAKH,EAAIE,GAAMlF,EACpB,KAAK,GAAKiF,EAAIE,GAAMlF,EACpB,KAAK,kBAAiB,CACvB,CAOD,UAAU+E,EAAGC,EAAG,CACdjK,EAAA,KAAK4H,EAAAwC,IAAL,UAAgB,KAAK,iBAAkBJ,EAAGC,EAC3C,CACD,gBAAgBD,EAAGC,EAAG,CACpBjK,EAAA,KAAK4H,EAAAwC,IAAL,UAAgB,KAAK,eAAgBJ,EAAGC,GACxC,KAAK,IAAI,eAAe,CACtB,MAAO,SACb,CAAK,CACF,CACD,KAAKC,EAAIC,EAAI,CACX,KAAM,CAACE,EAAaC,CAAY,EAAI,KAAK,iBAGzC,GAFA,KAAK,GAAKJ,EAAKG,EACf,KAAK,GAAKF,EAAKG,EACX,KAAK,SAAW,KAAK,EAAI,GAAK,KAAK,EAAI,GAAK,KAAK,EAAI,GAAK,KAAK,EAAI,GAAI,CACzE,KAAM,CACJ,EAAAN,GACA,EAAAC,EACR,EAAU,KAAK,IAAI,wBACT,KAAK,OAAO,cAAc,KAAMD,GAAGC,EAAC,IACtC,KAAK,GAAK,KAAK,MAAM,KAAK,CAAC,EAC3B,KAAK,GAAK,KAAK,MAAM,KAAK,CAAC,EAE9B,CACD,GAAI,CACF,EAAAD,EACA,EAAAC,CACD,EAAG,KACJ,KAAM,CAACM,GAAIC,EAAE,EAAIxK,EAAA,KAAK6H,EAAA4C,IAAL,WACjBT,GAAKO,GACLN,GAAKO,GACL,KAAK,IAAI,MAAM,KAAO,IAAI,IAAMR,GAAG,QAAQ,CAAC,CAAC,IAC7C,KAAK,IAAI,MAAM,IAAM,IAAI,IAAMC,GAAG,QAAQ,CAAC,CAAC,IAC5C,KAAK,IAAI,eAAe,CACtB,MAAO,SACb,CAAK,CACF,CAmBD,mBAAoB,CAClB,KAAM,CAACf,EAAWC,CAAU,EAAI,KAAK,eACrC,GAAI,CACF,EAAAa,EACA,EAAAC,EACA,MAAAjF,EACA,OAAAC,CACD,EAAG,KAKJ,OAJAD,GAASkE,EACTjE,GAAUkE,EACVa,GAAKd,EACLe,GAAKd,EACG,KAAK,SAAQ,CACnB,IAAK,GACHa,EAAI,KAAK,IAAI,EAAG,KAAK,IAAId,EAAYlE,EAAOgF,CAAC,CAAC,EAC9CC,EAAI,KAAK,IAAI,EAAG,KAAK,IAAId,EAAalE,EAAQgF,CAAC,CAAC,EAChD,MACF,IAAK,IACHD,EAAI,KAAK,IAAI,EAAG,KAAK,IAAId,EAAYjE,EAAQ+E,CAAC,CAAC,EAC/CC,EAAI,KAAK,IAAId,EAAY,KAAK,IAAInE,EAAOiF,CAAC,CAAC,EAC3C,MACF,IAAK,KACHD,EAAI,KAAK,IAAId,EAAW,KAAK,IAAIlE,EAAOgF,CAAC,CAAC,EAC1CC,EAAI,KAAK,IAAId,EAAY,KAAK,IAAIlE,EAAQgF,CAAC,CAAC,EAC5C,MACF,IAAK,KACHD,EAAI,KAAK,IAAId,EAAW,KAAK,IAAIjE,EAAQ+E,CAAC,CAAC,EAC3CC,EAAI,KAAK,IAAI,EAAG,KAAK,IAAId,EAAanE,EAAOiF,CAAC,CAAC,EAC/C,KACH,CACD,KAAK,EAAID,GAAKd,EACd,KAAK,EAAIe,GAAKd,EACd,KAAM,CAACoB,GAAIC,EAAE,EAAIxK,EAAA,KAAK6H,EAAA4C,IAAL,WACjBT,GAAKO,GACLN,GAAKO,GACL,KAAM,CACJ,MAAAd,EACN,EAAQ,KAAK,IACTA,GAAM,KAAO,IAAI,IAAMM,GAAG,QAAQ,CAAC,CAAC,IACpCN,GAAM,IAAM,IAAI,IAAMO,GAAG,QAAQ,CAAC,CAAC,IACnC,KAAK,UAAS,CACf,CAaD,wBAAwBD,EAAGC,EAAG,OAC5B,OAAOjK,EAAAlK,EAAA4R,EAAiBgD,EAAAC,IAAjB,KAAA7U,EAA8BkU,EAAGC,EAAG,KAAK,eACjD,CACD,wBAAwBD,EAAGC,EAAG,OAC5B,OAAOjK,EAAAlK,EAAA4R,EAAiBgD,EAAAC,IAAjB,KAAA7U,EAA8BkU,EAAGC,EAAG,IAAM,KAAK,eACvD,CAmBD,IAAI,aAAc,CAChB,OAAO,KAAK,WAAW,eAAe,SACvC,CACD,IAAI,gBAAiB,CACnB,OAAQ,KAAK,WAAW,eAAe,SAAW,KAAK,cAAgB,GACxE,CACD,IAAI,kBAAmB,CACrB,KAAM,CACJ,YAAAW,EACA,eAAgB,CAAC1B,EAAWC,CAAU,CACvC,EAAG,KACE0B,EAAc3B,EAAY0B,EAC1BE,EAAe3B,EAAayB,EAClC,OAAOxE,EAAM,YAAY,oBAAsB,CAAC,KAAK,MAAMyE,CAAW,EAAG,KAAK,MAAMC,CAAY,CAAC,EAAI,CAACD,EAAaC,CAAY,CAChI,CACD,QAAQ9F,EAAOC,EAAQ,OACrB,KAAM,CAACoF,EAAaC,CAAY,EAAI,KAAK,iBACzC,KAAK,IAAI,MAAM,MAAQ,IAAI,IAAMtF,EAAQqF,GAAa,QAAQ,CAAC,CAAC,IAC3DhQ,EAAA,KAAKoO,KACR,KAAK,IAAI,MAAM,OAAS,IAAI,IAAMxD,EAASqF,GAAc,QAAQ,CAAC,CAAC,MAErExU,EAAAuE,EAAA,KAAKiO,KAAL,MAAAxS,EAAqB,UAAU,OAAO,QAASkP,EAAQ0C,EAAiB,mBAAqBzC,EAASyC,EAAiB,kBACxH,CACD,SAAU,CACR,KAAM,CACJ,MAAAgC,CACN,EAAQ,KAAK,IACH,CACJ,OAAAzE,EACA,MAAAD,CACD,EAAG0E,EACEqB,EAAe/F,EAAM,SAAS,GAAG,EACjCgG,EAAgB,CAAC3Q,EAAA,KAAKoO,IAAoBxD,EAAO,SAAS,GAAG,EACnE,GAAI8F,GAAgBC,EAClB,OAEF,KAAM,CAACX,EAAaC,EAAY,EAAI,KAAK,iBACpCS,IACHrB,EAAM,MAAQ,IAAI,IAAM,WAAW1E,CAAK,EAAIqF,GAAa,QAAQ,CAAC,CAAC,KAEjE,CAAChQ,EAAA,KAAKoO,IAAoB,CAACuC,IAC7BtB,EAAM,OAAS,IAAI,IAAM,WAAWzE,CAAM,EAAIqF,IAAc,QAAQ,CAAC,CAAC,IAEzE,CACD,uBAAwB,CACtB,MAAO,CAAC,EAAG,CAAC,CACb,CAwKD,MAAM,kBAAmB,CACvB,GAAIjQ,EAAA,KAAKiO,GACP,OAEF,MAAM2C,EAAU9Q,GAAA,KAAKmO,EAAiB,SAAS,cAAc,QAAQ,GACrE2C,EAAQ,UAAY,UACpB,MAAM3X,EAAM,MAAMoU,EAAiB,aAAa,IAAI,8BAA8B,EAClFuD,EAAQ,YAAc3X,EACtB2X,EAAQ,aAAa,aAAc3X,CAAG,EACtC2X,EAAQ,SAAW,IACnBA,EAAQ,iBAAiB,cAAexD,EAAe,aAAa,EACpEwD,EAAQ,iBAAiB,cAAe1I,GAASA,EAAM,gBAAe,CAAE,EACxE0I,EAAQ,iBAAiB,QAAS1I,GAAS,CACzCA,EAAM,eAAc,EACpB,KAAK,WAAW,YAAY,IAAI,CACtC,EAAO,CACD,QAAS,EACf,CAAK,EACD0I,EAAQ,iBAAiB,UAAW1I,GAAS,CACvCA,EAAM,SAAW0I,GAAW1I,EAAM,MAAQ,UAC5CA,EAAM,eAAc,EACpB,KAAK,WAAW,YAAY,IAAI,EAExC,CAAK,EACDvC,EAAA,KAAKkI,GAAAgD,IAAL,WACA,KAAK,IAAI,OAAOD,CAAO,EAClBvD,EAAiB,oBAEpBA,EAAiB,kBAAoB,KAAK,IAAI,IAAK,KAAK,MAAMuD,EAAQ,sBAAqB,EAAG,MAAS,GAAkB,CAAC,EAE7H,CAkDD,qBAAsB,CACpB,OAAO,KAAK,IAAI,uBACjB,CACD,IAAI,aAAc,CAChB,MAAO,CACL,QAAS5Q,EAAA,KAAK+N,GACd,WAAY/N,EAAA,KAAKgO,EACvB,CACG,CACD,IAAI,YAAY,CACd,QAAA4C,EACA,WAAAE,CACJ,EAAK,CACG9Q,EAAA,KAAK+N,KAAa6C,GAAW5Q,EAAA,KAAKgO,KAAuB8C,IAG7DhR,GAAA,KAAKiO,EAAW6C,GAChB9Q,GAAA,KAAKkO,EAAqB8C,GAC1BnL,EAAA,KAAKkI,GAAAgD,IAAL,WACD,CACD,QAAS,CACP,KAAK,IAAM,SAAS,cAAc,KAAK,EACvC,KAAK,IAAI,aAAa,wBAAyB,IAAM,KAAK,UAAY,GAAG,EACzE,KAAK,IAAI,UAAY,KAAK,KAC1B,KAAK,IAAI,aAAa,KAAM,KAAK,EAAE,EACnC,KAAK,IAAI,aAAa,WAAY,CAAC,EACnC,KAAK,gBAAe,EACpB,KAAK,IAAI,iBAAiB,UAAW7Q,EAAA,KAAKsO,EAAa,EACvD,KAAK,IAAI,iBAAiB,WAAYtO,EAAA,KAAKuO,EAAc,EACzD,KAAM,CAACyB,EAAaC,CAAY,EAAI,KAAK,iBACrC,KAAK,eAAiB,MAAQ,IAChC,KAAK,IAAI,MAAM,SAAW,IAAI,IAAMA,EAAeD,GAAa,QAAQ,CAAC,CAAC,IAC1E,KAAK,IAAI,MAAM,UAAY,IAAI,IAAMA,EAAcC,GAAc,QAAQ,CAAC,CAAC,KAE7E,KAAM,CAACJ,EAAIC,CAAE,EAAI,KAAK,sBAAqB,EAC3C,YAAK,UAAUD,EAAIC,CAAE,KACjB3C,EAAO,YAAY,KAAM,KAAK,IAAK,CAAC,aAAa,CAAC,EAC/C,KAAK,GACb,CACD,YAAYjF,EAAO,CACjB,KAAM,CACJ,MAAA6I,CACN,EAAQhF,EAAM,YAAY,SACtB,GAAI7D,EAAM,SAAW,GAAKA,EAAM,SAAW6I,EAAO,CAChD7I,EAAM,eAAc,EACpB,MACD,CACDpI,GAAA,KAAK0O,EAAkB,IACvB7I,EAAA,KAAKmI,GAAAkD,IAAL,UAAuB9I,EACxB,CAwCD,WAAY,QACVzM,EAAA,KAAK,SAAL,MAAAA,EAAa,gBAAgB,KAC9B,CACD,sBAAsBuR,EAAQ2C,EAAGC,EAAG,CAClC5C,EAAO,aAAa,IAAI,EACxB,KAAK,EAAI2C,EACT,KAAK,EAAIC,EACT,KAAK,kBAAiB,CACvB,CACD,QAAQC,EAAIC,EAAI,CACd,MAAMlL,EAAQ,KAAK,YACb,CAACiK,EAAWC,CAAU,EAAI,KAAK,eAC/B,CAACC,EAAOC,EAAK,EAAI,KAAK,gBACtBiC,GAASpB,EAAKjL,EACdsM,GAASpB,EAAKlL,EACd+K,GAAI,KAAK,EAAId,EACbe,GAAI,KAAK,EAAId,EACbnE,GAAQ,KAAK,MAAQkE,EACrBjE,GAAS,KAAK,OAASkE,EAC7B,OAAQ,KAAK,SAAQ,CACnB,IAAK,GACH,MAAO,CAACa,GAAIsB,GAASlC,EAAOD,EAAac,GAAIsB,GAAStG,GAASoE,GAAOW,GAAIsB,GAAStG,GAAQoE,EAAOD,EAAac,GAAIsB,GAASlC,EAAK,EACnI,IAAK,IACH,MAAO,CAACW,GAAIuB,GAASnC,EAAOD,EAAac,GAAIqB,GAASjC,GAAOW,GAAIuB,GAAStG,GAASmE,EAAOD,EAAac,GAAIqB,GAAStG,GAAQqE,EAAK,EACnI,IAAK,KACH,MAAO,CAACW,GAAIsB,GAAStG,GAAQoE,EAAOD,EAAac,GAAIsB,GAASlC,GAAOW,GAAIsB,GAASlC,EAAOD,EAAac,GAAIsB,GAAStG,GAASoE,EAAK,EACnI,IAAK,KACH,MAAO,CAACW,GAAIuB,GAAStG,GAASmE,EAAOD,EAAac,GAAIqB,GAAStG,GAAQqE,GAAOW,GAAIuB,GAASnC,EAAOD,EAAac,GAAIqB,GAASjC,EAAK,EACnI,QACE,MAAM,IAAI,MAAM,kBAAkB,CACrC,CACF,CACD,uBAAuB3R,EAAMyR,EAAY,CACvC,KAAM,CAAChR,EAAIC,EAAIC,EAAIC,CAAE,EAAIZ,EACnBsN,GAAQ3M,EAAKF,EACb8M,GAAS3M,EAAKF,EACpB,OAAQ,KAAK,SAAQ,CACnB,IAAK,GACH,MAAO,CAACD,EAAIgR,EAAa7Q,EAAI0M,GAAOC,EAAM,EAC5C,IAAK,IACH,MAAO,CAAC9M,EAAIgR,EAAa/Q,EAAI6M,GAAQD,EAAK,EAC5C,IAAK,KACH,MAAO,CAAC3M,EAAI8Q,EAAa/Q,EAAI4M,GAAOC,EAAM,EAC5C,IAAK,KACH,MAAO,CAAC5M,EAAI8Q,EAAa7Q,EAAI2M,GAAQD,EAAK,EAC5C,QACE,MAAM,IAAI,MAAM,kBAAkB,CACrC,CACF,CACD,WAAY,CAAE,CACd,SAAU,CACR,MAAO,EACR,CACD,gBAAiB,CACf7K,GAAA,KAAK4O,EAAgB,GACtB,CACD,iBAAkB,CAChB5O,GAAA,KAAK4O,EAAgB,GACtB,CACD,cAAe,CACb,OAAO1O,EAAA,KAAK0O,EACb,CACD,yBAA0B,CACxB,MAAO,EACR,CACD,kBAAmB,CACjB,OAAO,KAAK,KAAO,CAAC,KAAK,eAC1B,CACD,SAAU,UACRjT,EAAA,KAAK,MAAL,MAAAA,EAAU,iBAAiB,UAAWuE,EAAA,KAAKsO,KAC3C9S,EAAA,KAAK,MAAL,MAAAA,EAAU,iBAAiB,WAAYwE,EAAA,KAAKuO,GAC7C,CACD,UAAU4C,EAAe,GAAOtE,EAAU,KAAM,IAC1Cd,EAAM,aAAa,gCAAgC,CACxD,CACD,OAAO,YAAYlM,EAAMmN,EAAQoE,EAAW,CAC1C,MAAMnC,EAAS,IAAI,KAAK,UAAU,YAAY,CAC5C,OAAAjC,EACA,GAAIA,EAAO,UAAW,EACtB,UAAAoE,CACN,CAAK,EACDnC,EAAO,SAAWpP,EAAK,SACvB,KAAM,CAACgP,EAAWC,CAAU,EAAIG,EAAO,eACjC,CAACU,GAAGC,GAAGjF,GAAOC,EAAM,EAAIqE,EAAO,uBAAuBpP,EAAK,KAAMiP,CAAU,EACjF,OAAAG,EAAO,EAAIU,GAAId,EACfI,EAAO,EAAIW,GAAId,EACfG,EAAO,MAAQtE,GAAQkE,EACvBI,EAAO,OAASrE,GAASkE,EAClBG,CACR,CACD,QAAS,OACP,KAAK,IAAI,oBAAoB,UAAWjP,EAAA,KAAKsO,EAAa,EAC1D,KAAK,IAAI,oBAAoB,WAAYtO,EAAA,KAAKuO,EAAc,EACvD,KAAK,WACR,KAAK,OAAM,EAET,KAAK,OACP,KAAK,OAAO,OAAO,IAAI,EAEvB,KAAK,WAAW,aAAa,IAAI,GAEnC9S,EAAAuE,EAAA,KAAKiO,KAAL,MAAAxS,EAAqB,SACrBqE,GAAA,KAAKmO,EAAiB,MACtBnO,GAAA,KAAKoO,EAAkB,KACxB,CACD,IAAI,aAAc,CAChB,MAAO,EACR,CACD,eAAgB,CACV,KAAK,cACPvI,EAAA,KAAK+H,EAAA2D,IAAL,WACArR,EAAA,KAAKqO,GAAa,UAAU,OAAO,QAAQ,EAE9C,CACD,QAAS,OACP,KAAK,cAAa,GAClB5S,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,IAAI,iBACzB,CACD,UAAW,YACTA,EAAAuE,EAAA,KAAKqO,KAAL,MAAA5S,EAAmB,UAAU,IAAI,WACjCD,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,OAAO,mBACvB8H,EAAA,KAAK,MAAL,MAAAA,EAAU,SAAS,SAAS,gBAC9B,KAAK,WAAW,aAAa,IAAI,MAAK,CAEzC,CACD,aAAa8G,EAAMzQ,EAAO,CAAE,CAC5B,gBAAiB,CACXqG,EAAA,KAAKiO,KACPjO,EAAA,KAAKiO,GAAe,OAAS,GAEhC,CACD,eAAgB,CACVjO,EAAA,KAAKiO,KACPjO,EAAA,KAAKiO,GAAe,OAAS,GAEhC,CACD,iBAAkB,CAAE,CACpB,IAAI,YAAa,CACf,OAAO,KAAK,GACb,CACD,IAAI,WAAY,CACd,OAAOjO,EAAA,KAAKyO,EACb,CACD,IAAI,UAAU9U,EAAO,CACnBmG,GAAA,KAAK2O,EAAa9U,GACb,KAAK,SAGNA,GACF,KAAK,OAAO,YAAY,IAAI,EAC5B,KAAK,OAAO,gBAAgB,IAAI,GAEhC,KAAK,OAAO,gBAAgB,IAAI,EAEnC,CACD,eAAegR,EAAOC,EAAQ,CAC5B9K,GAAA,KAAKsO,EAAmB,IACxB,MAAMkD,EAAc3G,EAAQC,EACtB,CACJ,MAAAyE,CACN,EAAQ,KAAK,IACTA,EAAM,YAAciC,EACpBjC,EAAM,OAAS,MAChB,CACD,WAAW,UAAW,CACpB,MAAO,GACR,CACF,EAh3BCtB,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YAKAC,EAAA,YACAC,EAAA,YA+KArB,EAAA,YAAAwC,GAAU,SAAC,CAACpF,EAAOC,CAAM,EAAG+E,EAAGC,EAAG,CAChC,CAACD,EAAGC,CAAC,EAAI,KAAK,wBAAwBD,EAAGC,CAAC,EAC1C,KAAK,GAAKD,EAAIhF,EACd,KAAK,GAAKiF,EAAIhF,EACd,KAAK,kBAAiB,CACvB,EAqCD4C,EAAA,YAAA4C,GAAmB,UAAG,CACpB,KAAM,CAACJ,EAAaC,CAAY,EAAI,KAAK,iBACnC,CACJ,iBAAAsB,CACD,EAAGlE,EACEsC,EAAI4B,EAAmBvB,EACvBJ,EAAI2B,EAAmBtB,EAC7B,OAAQ,KAAK,SAAQ,CACnB,IAAK,IACH,MAAO,CAAC,CAACN,EAAGC,CAAC,EACf,IAAK,KACH,MAAO,CAACD,EAAGC,CAAC,EACd,IAAK,KACH,MAAO,CAACD,EAAG,CAACC,CAAC,EACf,QACE,MAAO,CAAC,CAACD,EAAG,CAACC,CAAC,CACjB,CACF,EA2CMS,EAAA,YAAAC,GAAY,SAACX,EAAGC,EAAG4B,EAAO,CAC/B,OAAQA,EAAK,CACX,IAAK,IACH,MAAO,CAAC5B,EAAG,CAACD,CAAC,EACf,IAAK,KACH,MAAO,CAAC,CAACA,EAAG,CAACC,CAAC,EAChB,IAAK,KACH,MAAO,CAAC,CAACA,EAAGD,CAAC,EACf,QACE,MAAO,CAACA,EAAGC,CAAC,CACf,CACF,EAODnC,EAAA,YAAAgE,GAAkB,SAAC5M,EAAU,CAC3B,OAAQA,EAAQ,CACd,IAAK,IACH,CACE,KAAM,CAACgK,EAAWC,CAAU,EAAI,KAAK,eACrC,MAAO,CAAC,EAAG,CAACD,EAAYC,EAAYA,EAAaD,EAAW,CAAC,CAC9D,CACH,IAAK,KACH,MAAO,CAAC,GAAI,EAAG,EAAG,EAAE,EACtB,IAAK,KACH,CACE,KAAM,CAACA,EAAWC,CAAU,EAAI,KAAK,eACrC,MAAO,CAAC,EAAGD,EAAYC,EAAY,CAACA,EAAaD,EAAW,CAAC,CAC9D,CACH,QACE,MAAO,CAAC,EAAG,EAAG,EAAG,CAAC,CACrB,CACF,EAgDDnB,EAAA,YAAA2D,GAAe,UAAG,CAChB,GAAIrR,EAAA,KAAKqO,GACP,OAEFvO,GAAA,KAAKuO,EAAe,SAAS,cAAc,KAAK,GAChDrO,EAAA,KAAKqO,GAAa,UAAU,IAAI,UAAU,EAC1C,MAAMqD,EAAU,CAAC,UAAW,WAAY,cAAe,YAAY,EAC9D,KAAK,sBACRA,EAAQ,KAAK,YAAa,cAAe,eAAgB,YAAY,EAEvE,UAAW3X,KAAQ2X,EAAS,CAC1B,MAAMC,EAAM,SAAS,cAAc,KAAK,EACxC3R,EAAA,KAAKqO,GAAa,OAAOsD,CAAG,EAC5BA,EAAI,UAAU,IAAI,UAAW5X,CAAI,EACjC4X,EAAI,iBAAiB,cAAehM,EAAA,KAAKgI,GAAAiE,IAAoB,KAAK,KAAM7X,CAAI,CAAC,EAC7E4X,EAAI,iBAAiB,cAAevE,EAAe,aAAa,CACjE,CACD,KAAK,IAAI,QAAQpN,EAAA,KAAKqO,EAAY,CACnC,EACDV,GAAA,YAAAiE,GAAmB,SAAC7X,EAAMmO,EAAO,CAC/BA,EAAM,eAAc,EACpB,KAAM,CACJ,MAAA6I,CACN,EAAQhF,EAAM,YAAY,SACtB,GAAI7D,EAAM,SAAW,GAAKA,EAAM,SAAW6I,EACzC,OAEF,MAAMc,EAA0BlM,EAAA,KAAKiI,EAAAkE,IAAoB,KAAK,KAAM/X,CAAI,EAClEgY,EAAiB,KAAK,aAC5B,KAAK,aAAe,GACpB,MAAMC,EAAqB,CACzB,QAAS,GACT,QAAS,EACf,EACI,OAAO,iBAAiB,cAAeH,EAAyBG,CAAkB,EAClF,MAAMC,GAAS,KAAK,EACdC,GAAS,KAAK,EACdC,GAAa,KAAK,MAClBC,GAAc,KAAK,OACnBC,GAAoB,KAAK,OAAO,IAAI,MAAM,OAC1CC,GAAc,KAAK,IAAI,MAAM,OACnC,KAAK,IAAI,MAAM,OAAS,KAAK,OAAO,IAAI,MAAM,OAAS,OAAO,iBAAiBpK,EAAM,MAAM,EAAE,OAC7F,MAAMqK,GAAoB,IAAM,CAC9B,KAAK,aAAeR,EACpB,OAAO,oBAAoB,YAAaQ,EAAiB,EACzD,OAAO,oBAAoB,OAAQA,EAAiB,EACpD,OAAO,oBAAoB,cAAeV,EAAyBG,CAAkB,EACrF,KAAK,OAAO,IAAI,MAAM,OAASK,GAC/B,KAAK,IAAI,MAAM,OAASC,GACxB,MAAME,GAAO,KAAK,EACZC,GAAO,KAAK,EACZC,GAAW,KAAK,MAChBC,GAAY,KAAK,OACnBH,KAASP,IAAUQ,KAASP,IAAUQ,KAAaP,IAAcQ,KAAcP,IAGnF,KAAK,YAAY,CACf,IAAK,IAAM,CACT,KAAK,MAAQM,GACb,KAAK,OAASC,GACd,KAAK,EAAIH,GACT,KAAK,EAAIC,GACT,KAAM,CAACzC,GAAaC,EAAY,EAAI,KAAK,iBACzC,KAAK,QAAQD,GAAc0C,GAAUzC,GAAe0C,EAAS,EAC7D,KAAK,kBAAiB,CACvB,EACD,KAAM,IAAM,CACV,KAAK,MAAQR,GACb,KAAK,OAASC,GACd,KAAK,EAAIH,GACT,KAAK,EAAIC,GACT,KAAM,CAAClC,GAAaC,EAAY,EAAI,KAAK,iBACzC,KAAK,QAAQD,GAAcmC,GAAYlC,GAAemC,EAAW,EACjE,KAAK,kBAAiB,CACvB,EACD,SAAU,EAClB,CAAO,CACP,EACI,OAAO,iBAAiB,YAAaG,EAAiB,EACtD,OAAO,iBAAiB,OAAQA,EAAiB,CAClD,EACD3E,EAAA,YAAAkE,GAAmB,SAAC/X,EAAMmO,EAAO,CAC/B,KAAM,CAAC8H,EAAaC,CAAY,EAAI,KAAK,iBACnCgC,EAAS,KAAK,EACdC,EAAS,KAAK,EACdC,GAAa,KAAK,MAClBC,GAAc,KAAK,OACnBQ,GAAWvF,EAAiB,SAAW2C,EACvC6C,GAAYxF,EAAiB,SAAW4C,EACxC6C,GAAQnD,IAAK,KAAK,MAAMA,GAAI,GAAK,EAAI,IACrCoD,GAAiBpN,EAAA,KAAK8H,EAAAgE,IAAL,UAAwB,KAAK,UAC9CuB,GAAS,CAACrD,GAAGC,KAAM,CAACmD,GAAe,CAAC,EAAIpD,GAAIoD,GAAe,CAAC,EAAInD,GAAGmD,GAAe,CAAC,EAAIpD,GAAIoD,GAAe,CAAC,EAAInD,EAAC,EAChHqD,GAAoBtN,EAAA,KAAK8H,EAAAgE,IAAL,UAAwB,IAAM,KAAK,UACvDyB,GAAY,CAACvD,GAAGC,KAAM,CAACqD,GAAkB,CAAC,EAAItD,GAAIsD,GAAkB,CAAC,EAAIrD,GAAGqD,GAAkB,CAAC,EAAItD,GAAIsD,GAAkB,CAAC,EAAIrD,EAAC,EACrI,IAAIuD,GACAC,GACAC,GAAa,GACbC,GAAe,GACnB,OAAQvZ,EAAI,CACV,IAAK,UACHsZ,GAAa,GACbF,GAAW,CAACI,GAAGC,KAAM,CAAC,EAAG,CAAC,EAC1BJ,GAAc,CAACG,GAAGC,KAAM,CAACD,GAAGC,EAAC,EAC7B,MACF,IAAK,YACHL,GAAW,CAACI,GAAGC,KAAM,CAACD,GAAI,EAAG,CAAC,EAC9BH,GAAc,CAACG,GAAGC,KAAM,CAACD,GAAI,EAAGC,EAAC,EACjC,MACF,IAAK,WACHH,GAAa,GACbF,GAAW,CAACI,GAAGC,KAAM,CAACD,GAAG,CAAC,EAC1BH,GAAc,CAACG,GAAGC,KAAM,CAAC,EAAGA,EAAC,EAC7B,MACF,IAAK,cACHF,GAAe,GACfH,GAAW,CAACI,GAAGC,KAAM,CAACD,GAAGC,GAAI,CAAC,EAC9BJ,GAAc,CAACG,GAAGC,KAAM,CAAC,EAAGA,GAAI,CAAC,EACjC,MACF,IAAK,cACHH,GAAa,GACbF,GAAW,CAACI,GAAGC,KAAM,CAACD,GAAGC,EAAC,EAC1BJ,GAAc,CAACG,GAAGC,KAAM,CAAC,EAAG,CAAC,EAC7B,MACF,IAAK,eACHL,GAAW,CAACI,GAAGC,KAAM,CAACD,GAAI,EAAGC,EAAC,EAC9BJ,GAAc,CAACG,GAAGC,KAAM,CAACD,GAAI,EAAG,CAAC,EACjC,MACF,IAAK,aACHF,GAAa,GACbF,GAAW,CAACI,GAAGC,KAAM,CAAC,EAAGA,EAAC,EAC1BJ,GAAc,CAACG,GAAGC,KAAM,CAACD,GAAG,CAAC,EAC7B,MACF,IAAK,aACHD,GAAe,GACfH,GAAW,CAACI,GAAGC,KAAM,CAAC,EAAGA,GAAI,CAAC,EAC9BJ,GAAc,CAACG,GAAGC,KAAM,CAACD,GAAGC,GAAI,CAAC,EACjC,KACH,CACD,MAAMC,GAAQN,GAAShB,GAAYC,EAAW,EACxCsB,GAAgBN,GAAYjB,GAAYC,EAAW,EACzD,IAAIuB,GAAsBX,GAAO,GAAGU,EAAa,EACjD,MAAME,GAAYd,GAAMb,EAAS0B,GAAoB,CAAC,CAAC,EACjDE,GAAYf,GAAMZ,EAASyB,GAAoB,CAAC,CAAC,EACvD,IAAIG,GAAS,EACTC,GAAS,EACT,CAACC,GAAQC,EAAM,EAAI,KAAK,wBAAwB/L,EAAM,UAAWA,EAAM,SAAS,EAEpF,GADA,CAAC8L,GAAQC,EAAM,EAAIf,GAAUc,GAAShE,EAAaiE,GAAShE,CAAY,EACpEoD,GAAY,CACd,MAAMa,GAAU,KAAK,MAAM/B,GAAYC,EAAW,EAClD0B,GAASC,GAAS,KAAK,IAAI,KAAK,IAAI,KAAK,MAAML,GAAc,CAAC,EAAID,GAAM,CAAC,EAAIO,GAAQN,GAAc,CAAC,EAAID,GAAM,CAAC,EAAIQ,EAAM,EAAIC,GAAS,EAAI/B,GAAY,EAAIC,EAAW,EAAGQ,GAAWT,GAAYU,GAAYT,EAAW,CACvN,MAAUkB,GACTQ,GAAS,KAAK,IAAIlB,GAAU,KAAK,IAAI,EAAG,KAAK,IAAIc,GAAc,CAAC,EAAID,GAAM,CAAC,EAAIO,EAAM,CAAC,CAAC,EAAI7B,GAE3F4B,GAAS,KAAK,IAAIlB,GAAW,KAAK,IAAI,EAAG,KAAK,IAAIa,GAAc,CAAC,EAAID,GAAM,CAAC,EAAIQ,EAAM,CAAC,CAAC,EAAI7B,GAE9F,MAAMM,GAAWI,GAAMX,GAAa2B,EAAM,EACpCnB,GAAYG,GAAMV,GAAc2B,EAAM,EAC5CJ,GAAsBX,GAAO,GAAGI,GAAYV,GAAUC,EAAS,CAAC,EAChE,MAAMH,EAAOoB,GAAYD,GAAoB,CAAC,EACxClB,EAAOoB,GAAYF,GAAoB,CAAC,EAC9C,KAAK,MAAQjB,GACb,KAAK,OAASC,GACd,KAAK,EAAIH,EACT,KAAK,EAAIC,EACT,KAAK,QAAQzC,EAAc0C,GAAUzC,EAAe0C,EAAS,EAC7D,KAAK,kBAAiB,CACvB,EAgCK9E,GAAA,YAAAgD,GAAsB,gBAAG,OAC7B,MAAMsD,EAASnU,EAAA,KAAKiO,GACpB,GAAI,CAACkG,EACH,OAEF,GAAI,CAACnU,EAAA,KAAK+N,IAAY,CAAC/N,EAAA,KAAKgO,GAAoB,CAC9CmG,EAAO,UAAU,OAAO,MAAM,GAC9B1Y,EAAAuE,EAAA,KAAKkO,KAAL,MAAAzS,EAAsB,SACtB,MACD,CACD4R,EAAiB,aAAa,IAAI,mCAAmC,EAAE,KAAKpU,GAAO,CACjFkb,EAAO,aAAa,aAAclb,CAAG,CAC3C,CAAK,EACD,IAAImb,EAAUpU,EAAA,KAAKkO,GACnB,GAAI,CAACkG,EAAS,CACZtU,GAAA,KAAKoO,EAAkBkG,EAAU,SAAS,cAAc,MAAM,GAC9DA,EAAQ,UAAY,UACpBA,EAAQ,aAAa,OAAQ,SAAS,EACtC,MAAMhQ,EAAKgQ,EAAQ,GAAK,oBAAoB,KAAK,EAAE,GACnDD,EAAO,aAAa,mBAAoB/P,CAAE,EAC1C,MAAMiQ,EAAwB,IAC9BF,EAAO,iBAAiB,aAAc,IAAM,CAC1CrU,GAAA,KAAKqO,EAAyB,WAAW,IAAM,CAC7CrO,GAAA,KAAKqO,EAAyB,MAC9BnO,EAAA,KAAKkO,GAAgB,UAAU,IAAI,MAAM,EACzC,KAAK,WAAW,UAAU,SAAS,kBAAmB,CACpD,OAAQ,KACR,QAAS,CACP,KAAM,UACN,QAAS,KAAK,WACd,KAAM,CACJ,OAAQ,kBACT,CACF,CACb,CAAW,CACF,EAAEmG,CAAqB,EAChC,CAAO,EACDF,EAAO,iBAAiB,aAAc,IAAM,OAC1C,aAAanU,EAAA,KAAKmO,EAAsB,EACxCrO,GAAA,KAAKqO,EAAyB,OAC9B1S,EAAAuE,EAAA,KAAKkO,KAAL,MAAAzS,EAAsB,UAAU,OAAO,OAC/C,CAAO,CACF,CACD0Y,EAAO,UAAU,IAAI,MAAM,EAC3BC,EAAQ,UAAYpU,EAAA,KAAKgO,GAAqB,MAAMX,EAAiB,aAAa,IAAI,oCAAoC,EAAIrN,EAAA,KAAK+N,GAC9HqG,EAAQ,YACXD,EAAO,OAAOC,CAAO,CAExB,EAmDDtG,GAAA,YAAAkD,GAAiB,SAAC9I,EAAO,CACvB,GAAI,CAAC,KAAK,aACR,OAEF,MAAMoM,EAAa,KAAK,WAAW,WAAW,IAAI,EAClD,KAAK,WAAW,mBAChB,IAAItC,EAAoBuC,EACpBD,IACFtC,EAAqB,CACnB,QAAS,GACT,QAAS,EACjB,EACMuC,EAAsBC,GAAK,CACzB,KAAM,CAAC3E,GAAIC,EAAE,EAAI,KAAK,wBAAwB0E,EAAE,UAAWA,EAAE,SAAS,EACtE,KAAK,WAAW,oBAAoB3E,GAAIC,EAAE,CAClD,EACM,OAAO,iBAAiB,cAAeyE,EAAqBvC,CAAkB,GAEhF,MAAMO,EAAoB,IAAM,CAO9B,GANA,OAAO,oBAAoB,YAAaA,CAAiB,EACzD,OAAO,oBAAoB,OAAQA,CAAiB,EAChD+B,GACF,OAAO,oBAAoB,cAAeC,EAAqBvC,CAAkB,EAEnFlS,GAAA,KAAK0O,EAAkB,IACnB,CAAC,KAAK,WAAW,iBAAkB,CACrC,KAAM,CACJ,MAAAuC,CACV,EAAYhF,EAAM,YAAY,SAClB7D,EAAM,SAAW,CAAC6I,GAAS7I,EAAM,UAAYA,EAAM,SAAW6I,EAChE,KAAK,OAAO,eAAe,IAAI,EAE/B,KAAK,OAAO,YAAY,IAAI,CAE/B,CACP,EACI,OAAO,iBAAiB,YAAawB,CAAiB,EACtD,OAAO,iBAAiB,OAAQA,CAAiB,CAClD,EAlaD9S,EAvSI4N,EAuSGgD,GAvSHhD,EAmBG,iBAAmB,GAnBtBA,EAoBG,cAAgB,IAAIF,EAAO,aApB9BE,EAqBG,QAAU,EArBbA,EAsBG,kBAAoB,EAtB7B,IAAMoH,EAANpH,EAk3BAvX,EAAQ,iBAAmB2e,EAC3B,MAAMtF,WAAmBsF,CAAiB,CACxC,YAAY5R,EAAQ,CAClB,MAAMA,CAAM,EACZ,KAAK,oBAAsBA,EAAO,oBAClC,KAAK,QAAU,EAChB,CACD,WAAY,CACV,MAAO,CACL,GAAI,KAAK,oBACT,QAAS,GACT,UAAW,KAAK,SACtB,CACG,CACF,CAEM,EAEA,CAAChN,EAAyBC,EAASgW,IAAwB,mMAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,gBAAkBA,EAAQ,eAAiBA,EAAQ,aAAeA,EAAQ,0BAA4B,OAC9GA,EAAQ,WAAa4e,EACrB5e,EAAQ,aAAe6e,EACvB,IAAI5I,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EAC1C,SAAS4I,EAAWjb,EAAKmb,EAASC,EAAO,CACvC,UAAW9a,KAAQ8a,EACjBD,EAAQ,iBAAiB7a,EAAMN,EAAIM,CAAI,EAAE,KAAKN,CAAG,CAAC,CAErD,CACD,SAASkb,EAAaG,EAAS,CAC7B,OAAO,KAAK,MAAM,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,IAAMA,CAAO,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAC1F,CACD,MAAMC,EAAU,CAAhB,cACEtV,EAAA,KAAAuV,EAAM,GACN,OAAQ,CACN,MAAO,GAAGjJ,EAAM,sBAAsB,GAAG3I,GAAA,KAAK4R,GAAL,GAAU,EACpD,CACF,CAJCA,EAAA,YAKF,MAAMC,EAAN,MAAMA,CAAa,CAAnB,cAgBExV,EAAA,KAAMyV,GAfNzV,EAAA,KAAA0V,KAAcpJ,EAAM,YACpBtM,EAAA,KAAAuV,EAAM,GACNvV,EAAA,KAAA2V,EAAS,MACT,WAAW,qBAAsB,CAC/B,MAAMC,EAAM,uKAENC,EADS,IAAI,gBAAgB,EAAG,CAAC,EACpB,WAAW,IAAI,EAC5BC,EAAQ,IAAI,MAClBA,EAAM,IAAMF,EACZ,MAAMvK,EAAUyK,EAAM,OAAQ,EAAC,KAAK,KAClCD,EAAI,UAAUC,EAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpC,IAAI,YAAYD,EAAI,aAAa,EAAG,EAAG,EAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,IAAM,EACzE,EACD,SAAWvJ,EAAM,QAAQ,KAAM,sBAAuBjB,CAAO,CAC9D,CA6DD,MAAM,YAAY0K,EAAM,CACtB,KAAM,CACJ,aAAAC,EACA,KAAA1b,EACA,KAAA2b,EACA,KAAAtL,CACD,EAAGoL,EACJ,OAAO7P,EAAA,KAAKuP,EAAAS,IAAL,UAAU,GAAGF,CAAY,IAAI1b,CAAI,IAAI2b,CAAI,IAAItL,CAAI,GAAIoL,EAC7D,CACD,MAAM,WAAWpc,EAAK,CACpB,OAAOuM,EAAA,KAAKuP,EAAAS,IAAL,UAAUvc,EAAKA,EACvB,CACD,MAAM,UAAUgL,EAAI,CAClBpE,EAAA,KAAKoV,IAALtV,GAAA,KAAKsV,EAAW,IAAI,KACpB,MAAMvV,EAAOG,EAAA,KAAKoV,GAAO,IAAIhR,CAAE,EAC/B,OAAKvE,EAGDA,EAAK,QACPA,EAAK,YAAc,EACZA,GAELA,EAAK,KACA,KAAK,YAAYA,EAAK,IAAI,EAE5B,KAAK,WAAWA,EAAK,GAAG,EATtB,IAUV,CACD,UAAUuE,EAAI,CACZ,MAAMvE,EAAOG,EAAA,KAAKoV,GAAO,IAAIhR,CAAE,EAC/B,OAAKvE,GAAA,MAAAA,EAAM,MAGJA,EAAK,OAFH,IAGV,CACD,SAASuE,EAAI,CACXpE,EAAA,KAAKoV,IAALtV,GAAA,KAAKsV,EAAW,IAAI,KACpB,MAAMvV,EAAOG,EAAA,KAAKoV,GAAO,IAAIhR,CAAE,EAC1BvE,IAGLA,EAAK,YAAc,EACfA,EAAK,aAAe,IAGxBA,EAAK,OAAS,MACf,CACD,UAAUuE,EAAI,CACZ,OAAOA,EAAG,WAAW,SAASpE,EAAA,KAAKmV,EAAO,GAAG,CAC9C,CACF,EA5HCA,EAAA,YACAH,EAAA,YACAI,EAAA,YAaMF,EAAA,YAAAS,GAAI,eAACxa,EAAKya,EAAS,CACvB5V,EAAA,KAAKoV,IAALtV,GAAA,KAAKsV,EAAW,IAAI,KACpB,IAAIvV,EAAOG,EAAA,KAAKoV,GAAO,IAAIja,CAAG,EAC9B,GAAI0E,IAAS,KACX,OAAO,KAET,GAAIA,GAAA,MAAAA,EAAM,OACR,OAAAA,EAAK,YAAc,EACZA,EAET,GAAI,CACFA,MAAS,CACP,OAAQ,KACR,GAAI,SAASG,EAAA,KAAKmV,EAAO,IAAI/R,GAAA,KAAK4R,GAAL,GAAU,GACvC,WAAY,EACZ,MAAO,EACf,GACM,IAAIO,EACJ,GAAI,OAAOK,GAAY,SAAU,CAC/B/V,EAAK,IAAM+V,EACX,MAAMC,EAAW,MAAM,MAAMD,CAAO,EACpC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAMA,EAAS,UAAU,EAErCN,EAAQ,MAAMM,EAAS,MAC/B,MACQN,EAAQ1V,EAAK,KAAO+V,EAEtB,GAAIL,EAAM,OAAS,gBAAiB,CAClC,MAAMO,EAA+Bb,EAAa,oBAC5Cc,GAAa,IAAI,WACjBC,GAAe,IAAI,MACnBC,GAAe,IAAI,QAAQ,CAACtW,GAASC,KAAW,CACpDoW,GAAa,OAAS,IAAM,CAC1BnW,EAAK,OAASmW,GACdnW,EAAK,MAAQ,GACbF,IACZ,EACUoW,GAAW,OAAS,SAAY,CAC9B,MAAM3c,GAAMyG,EAAK,OAASkW,GAAW,OACrCC,GAAa,IAAO,MAAMF,EAAgC,GAAG1c,EAAG,sCAAwCA,EACpH,EACU4c,GAAa,QAAUD,GAAW,QAAUnW,EACtD,CAAS,EACDmW,GAAW,cAAcR,CAAK,EAC9B,MAAMU,EACd,MACQpW,EAAK,OAAS,MAAM,kBAAkB0V,CAAK,EAE7C1V,EAAK,WAAa,CACnB,OAAQ2U,EAAG,CACV,QAAQ,MAAMA,CAAC,EACf3U,EAAO,IACR,CACD,OAAAG,EAAA,KAAKoV,GAAO,IAAIja,EAAK0E,CAAI,EACrBA,GACFG,EAAA,KAAKoV,GAAO,IAAIvV,EAAK,GAAIA,CAAI,EAExBA,CACR,EA3EH,IAAMqW,EAANjB,EA8HA,MAAMkB,CAAe,CAKnB,YAAYC,EAAU,IAAK,CAJ3B3W,EAAA,KAAA4W,EAAY,CAAA,GACZ5W,EAAA,KAAA6W,EAAU,IACV7W,EAAA,KAAA8W,EAAA,QACA9W,EAAA,KAAA+W,EAAY,IAEV1W,GAAA,KAAKyW,EAAWH,EACjB,CACD,IAAI,CACF,IAAAK,EACA,KAAAC,EACA,SAAAC,EACA,KAAAvM,EAAO,IACP,oBAAAwM,EAAsB,GACtB,SAAAC,GAAW,EACf,EAAK,CAID,GAHIF,GACFF,IAEEzW,EAAA,KAAKsW,GACP,OAEF,MAAMQ,GAAO,CACX,IAAAL,EACA,KAAAC,EACA,KAAAtM,CACN,EACI,GAAIpK,EAAA,KAAKwW,KAAc,GAAI,CACrBxW,EAAA,KAAKqW,GAAU,OAAS,IAC1BrW,EAAA,KAAKqW,GAAU,OAAS,GAE1BvW,GAAA,KAAK0W,EAAY,GACjBxW,EAAA,KAAKqW,GAAU,KAAKS,EAAI,EACxB,MACD,CACD,GAAIF,GAAuB5W,EAAA,KAAKqW,GAAUrW,EAAA,KAAKwW,EAAS,EAAE,OAASpM,EAAM,CACnEyM,KACFC,GAAK,KAAO9W,EAAA,KAAKqW,GAAUrW,EAAA,KAAKwW,EAAS,EAAE,MAE7CxW,EAAA,KAAKqW,GAAUrW,EAAA,KAAKwW,EAAS,EAAIM,GACjC,MACD,CACD,MAAMC,GAAO/W,EAAA,KAAKwW,GAAY,EAC1BO,KAAS/W,EAAA,KAAKuW,GAChBvW,EAAA,KAAKqW,GAAU,OAAO,EAAG,CAAC,GAE1BvW,GAAA,KAAK0W,EAAYO,IACbA,GAAO/W,EAAA,KAAKqW,GAAU,QACxBrW,EAAA,KAAKqW,GAAU,OAAOU,EAAI,GAG9B/W,EAAA,KAAKqW,GAAU,KAAKS,EAAI,CACzB,CACD,MAAO,CACD9W,EAAA,KAAKwW,KAAc,KAGvB1W,GAAA,KAAKwW,EAAU,IACftW,EAAA,KAAKqW,GAAUrW,EAAA,KAAKwW,EAAS,EAAE,KAAI,EACnC1W,GAAA,KAAKwW,EAAU,IACfxW,GAAA,KAAK0W,EAALxW,EAAA,KAAKwW,GAAa,GACnB,CACD,MAAO,CACDxW,EAAA,KAAKwW,GAAYxW,EAAA,KAAKqW,GAAU,OAAS,IAC3CvW,GAAA,KAAK0W,EAALxW,EAAA,KAAKwW,GAAa,GAClB1W,GAAA,KAAKwW,EAAU,IACftW,EAAA,KAAKqW,GAAUrW,EAAA,KAAKwW,EAAS,EAAE,IAAG,EAClC1W,GAAA,KAAKwW,EAAU,IAElB,CACD,oBAAqB,CACnB,OAAOtW,EAAA,KAAKwW,KAAc,EAC3B,CACD,oBAAqB,CACnB,OAAOxW,EAAA,KAAKwW,GAAYxW,EAAA,KAAKqW,GAAU,OAAS,CACjD,CACD,SAAU,CACRvW,GAAA,KAAKuW,EAAY,KAClB,CACF,CA9ECA,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YA4EF1gB,EAAQ,eAAiBqgB,EACzB,MAAMa,CAAgB,CACpB,YAAYC,EAAW,CA0BvBxX,EAAA,KAAAyX,GAzBE,KAAK,OAAS,GACd,KAAK,UAAY,IAAI,IACrB,KAAK,QAAU,IAAI,IACnB,KAAM,CACJ,MAAAnG,CACN,EAAQhF,EAAM,YAAY,SACtB,SAAW,CAACoL,EAAM/L,EAAU9R,EAAU,CAAA,CAAE,IAAK2d,EAC3C,UAAW9b,MAAOgc,EAAM,CACtB,MAAMC,GAAWjc,GAAI,WAAW,MAAM,EAClC4V,GAASqG,IACX,KAAK,UAAU,IAAIjc,GAAI,MAAM,CAAC,EAAG,CAC/B,SAAAiQ,EACA,QAAA9R,CACZ,CAAW,EACD,KAAK,QAAQ,IAAI6B,GAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,GAC7B,CAAC4V,GAAS,CAACqG,KACpB,KAAK,UAAU,IAAIjc,GAAK,CACtB,SAAAiQ,EACA,QAAA9R,CACZ,CAAW,EACD,KAAK,QAAQ,IAAI6B,GAAI,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAEzC,CAEJ,CAmBD,KAAKkc,EAAMnP,EAAO,CAChB,GAAI,CAAC,KAAK,QAAQ,IAAIA,EAAM,GAAG,EAC7B,OAEF,MAAM7R,EAAO,KAAK,UAAU,IAAIsP,EAAA,KAAKuR,EAAAI,IAAL,UAAgBpP,EAAM,EACtD,GAAI,CAAC7R,EACH,OAEF,KAAM,CACJ,SAAA+U,EACA,QAAS,CACP,QAAAmM,EAAU,GACV,KAAAC,GAAO,CAAE,EACT,QAAAC,GAAU,IACX,CACF,EAAGphB,EACAohB,IAAW,CAACA,GAAQJ,EAAMnP,CAAK,IAGnCkD,EAAS,KAAKiM,EAAM,GAAGG,EAAI,EAAC,EACvBD,IACHrP,EAAM,gBAAe,EACrBA,EAAM,eAAc,GAEvB,CACF,CA3CCgP,EAAA,YAAAI,GAAU,SAACpP,EAAO,CACZA,EAAM,QACR,KAAK,OAAO,KAAK,KAAK,EAEpBA,EAAM,SACR,KAAK,OAAO,KAAK,MAAM,EAErBA,EAAM,SACR,KAAK,OAAO,KAAK,MAAM,EAErBA,EAAM,UACR,KAAK,OAAO,KAAK,OAAO,EAE1B,KAAK,OAAO,KAAKA,EAAM,GAAG,EAC1B,MAAMjN,EAAM,KAAK,OAAO,KAAK,GAAG,EAChC,YAAK,OAAO,OAAS,EACdA,CACR,EA2BHnF,EAAQ,gBAAkBkhB,EAC1B,MAAMU,EAAN,MAAMA,CAAa,CAEjB,IAAI,SAAU,CACZ,MAAMC,EAAS,IAAI,IAAI,CAAC,CAAC,aAAc,IAAI,EAAG,CAAC,SAAU,IAAI,CAAC,CAAC,EAC/D,SAAIvK,EAAe,gBAAgBuK,CAAM,KAC9B5L,EAAM,QAAQ,KAAM,UAAW4L,CAAM,CACjD,CACD,QAAQC,EAAO,CACb,MAAMC,KAAUzK,EAAe,QAAQwK,CAAK,EAC5C,GAAI,CAAC,OAAO,WAAW,yBAAyB,EAAE,QAChD,OAAOC,EAET,SAAW,CAAC9d,EAAM+d,CAAG,IAAK,KAAK,QAC7B,GAAIA,EAAI,MAAM,CAACnI,EAAG7U,KAAM6U,IAAMkI,EAAI/c,EAAC,CAAC,EAClC,OAAO4c,EAAa,eAAe,IAAI3d,CAAI,EAG/C,OAAO8d,CACR,CACD,WAAW9d,EAAM,CACf,MAAM8d,EAAM,KAAK,QAAQ,IAAI9d,CAAI,EACjC,OAAK8d,EAGE9L,EAAM,KAAK,aAAa,GAAG8L,CAAG,EAF5B9d,CAGV,CACF,EA1BK2d,EACG,eAAiB,IAAI,IAAI,CAAC,CAAC,aAAc,CAAC,EAAG,EAAG,CAAC,CAAC,EAAG,CAAC,SAAU,CAAC,IAAK,IAAK,GAAG,CAAC,CAAC,CAAC,EAD1F,IAAMK,EAANL,EA2BA5hB,EAAQ,aAAeiiB,EACvB,MAAMC,GAAN,MAAMA,EAA0B,CA+E9B,YAAYC,EAAWC,EAAQC,EAAgBC,EAAUC,EAAa5S,GAAY,CA+FlFhG,EAAA,KAAA6Y,IAIA7Y,EAAA,KAAA8Y,IAgCA9Y,EAAA,KAAA+Y,IAKA/Y,EAAA,KAAAgZ,IAKAhZ,EAAA,KAAAiZ,IAKAjZ,EAAA,KAAAkZ,IAsGAlZ,EAAA,KAAAmZ,GASAnZ,EAAA,KAAAoZ,IA6HApZ,EAAA,KAAAqZ,IAQArZ,EAAA,KAAAsZ,IA0CAtZ,EAAA,KAAAuZ,IAoFAvZ,EAAA,KAAAwZ,IAuCAxZ,EAAA,KAAAyZ,IAznBAzZ,EAAA,KAAA0Z,EAAgB,MAChB1Z,EAAA,KAAA2Z,EAAc,IAAI,KAClB3Z,EAAA,KAAA4Z,EAAa,IAAI,KACjB5Z,EAAA,KAAA6Z,EAAkB,MAClB7Z,EAAA,KAAA8Z,EAAqB,MACrB9Z,EAAA,KAAA+Z,GAAkB,IAAIrD,GACtB1W,EAAA,KAAAga,GAAoB,GACpBha,EAAA,KAAAia,EAAgC,IAAI,KACpCja,EAAA,KAAAka,GAAmB,MACnBla,EAAA,KAAAma,GAAe,MACfna,EAAA,KAAAoa,GAAoB,IAAI,KACxBpa,EAAA,KAAAqa,GAAiB,MACjBra,EAAA,KAAAsa,EAAa,IAAIhF,IACjBtV,EAAA,KAAAua,EAAa,IACbva,EAAA,KAAAwa,EAAa,IACbxa,EAAA,KAAAya,EAAqB,MACrBza,EAAA,KAAA0a,EAAQpO,EAAM,qBAAqB,MACnCtM,EAAA,KAAA2a,EAAmB,IAAI,KACvB3a,EAAA,KAAA4a,EAAc,MACd5a,EAAA,KAAA6a,EAAa,KAAK,KAAK,KAAK,IAAI,GAChC7a,EAAA,KAAA8a,EAAc,KAAK,MAAM,KAAK,IAAI,GAClC9a,EAAA,KAAA+a,GAAa,KAAK,KAAK,KAAK,IAAI,GAChC/a,EAAA,KAAAgb,GAAY,KAAK,IAAI,KAAK,IAAI,GAC9Bhb,EAAA,KAAAib,GAAc,KAAK,MAAM,KAAK,IAAI,GAClCjb,EAAA,KAAAkb,GAAgB,KAAK,QAAQ,KAAK,IAAI,GACtClb,EAAA,KAAAmb,GAAwB,KAAK,gBAAgB,KAAK,IAAI,GACtDnb,EAAA,KAAAob,GAAuB,KAAK,eAAe,KAAK,IAAI,GACpDpb,EAAA,KAAAqb,GAAwB,KAAK,gBAAgB,KAAK,IAAI,GACtDrb,EAAA,KAAAsb,GAA2B,KAAK,mBAAmB,KAAK,IAAI,GAC5Dtb,EAAA,KAAAub,GAAkB,CAChB,UAAW,GACX,QAAS,GACT,mBAAoB,GACpB,mBAAoB,GACpB,kBAAmB,EACvB,GACEvb,EAAA,KAAAwb,GAAe,CAAC,EAAG,CAAC,GACpBxb,EAAA,KAAAyb,GAAwB,MACxBzb,EAAA,KAAA0b,GAAa,MACb1b,EAAA,KAAA2b,GAAU,MAwCRtb,GAAA,KAAKqb,GAAalD,GAClBnY,GAAA,KAAKsb,GAAUlD,GACfpY,GAAA,KAAKwZ,EAAkBnB,GACvB,KAAK,UAAYC,EACjB,KAAK,UAAU,IAAI,gBAAiBpY,EAAA,KAAK4a,GAAqB,EAC9D,KAAK,UAAU,IAAI,eAAgB5a,EAAA,KAAK6a,GAAoB,EAC5D,KAAK,UAAU,IAAI,gBAAiB7a,EAAA,KAAK8a,GAAqB,EAC9D,KAAK,UAAU,IAAI,mBAAoB9a,EAAA,KAAK+a,GAAwB,EACpEjb,GAAA,KAAKyZ,EAAqBlB,EAAY,mBACtCvY,GAAA,KAAKga,GAAiBzB,EAAY,eAClCvY,GAAA,KAAKua,EAAc5U,IACnB,KAAK,eAAiB,CACpB,UAAW2H,EAAe,cAAc,iBACxC,SAAU,CAChB,CACG,CApDD,WAAW,kBAAmB,CAC5B,MAAMiO,EAAQrD,GAA0B,UAClCsD,EAAejE,GAAQ,CAC3B,KAAM,CACJ,cAAAkE,EACD,EAAG,SACJ,OAAOA,IAAiBvb,EAAAqX,EAAK8D,IAAW,SAASI,EAAa,GAAKlE,EAAK,uBAC9E,EACUmE,EAAQ,KAAK,gBACbC,EAAM,KAAK,cACjB,SAAW1P,EAAM,QAAQ,KAAM,mBAAoB,IAAIiL,EAAgB,CAAC,CAAC,CAAC,SAAU,YAAY,EAAGqE,EAAM,SAAS,EAAG,CAAC,CAAC,SAAU,YAAY,EAAGA,EAAM,IAAI,EAAG,CAAC,CAAC,SAAU,eAAgB,mBAAoB,eAAgB,kBAAkB,EAAGA,EAAM,IAAI,EAAG,CAAC,CAAC,YAAa,gBAAiB,iBAAkB,kBAAmB,gBAAiB,oBAAqB,qBAAsB,SAAU,cAAe,eAAgB,YAAY,EAAGA,EAAM,MAAM,EAAG,CAAC,CAAC,SAAU,YAAY,EAAGA,EAAM,WAAW,EAAG,CAAC,CAAC,YAAa,eAAe,EAAGA,EAAM,yBAA0B,CACrjB,KAAM,CAAC,CAACG,EAAO,CAAC,EAChB,QAASF,CACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,yBAA0B,CAC9E,KAAM,CAAC,CAACI,EAAK,CAAC,EACd,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,aAAc,gBAAgB,EAAGD,EAAM,yBAA0B,CACrE,KAAM,CAACG,EAAO,CAAC,EACf,QAASF,CACf,CAAK,EAAG,CAAC,CAAC,kBAAmB,sBAAsB,EAAGD,EAAM,yBAA0B,CAChF,KAAM,CAACI,EAAK,CAAC,EACb,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,UAAW,aAAa,EAAGD,EAAM,yBAA0B,CAC/D,KAAM,CAAC,EAAG,CAACG,CAAK,EAChB,QAASF,CACf,CAAK,EAAG,CAAC,CAAC,eAAgB,mBAAmB,EAAGD,EAAM,yBAA0B,CAC1E,KAAM,CAAC,EAAG,CAACI,CAAG,EACd,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,YAAa,eAAe,EAAGD,EAAM,yBAA0B,CACnE,KAAM,CAAC,EAAGG,CAAK,EACf,QAASF,CACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,yBAA0B,CAC9E,KAAM,CAAC,EAAGI,CAAG,EACb,QAASH,CACf,CAAK,CAAC,CAAC,CAAC,CACL,CAkBD,SAAU,CACR3V,EAAA,KAAK8S,GAAAiD,IAAL,WACA/V,EAAA,KAAK4S,GAAAoD,IAAL,WACA,KAAK,UAAU,KAAK,gBAAiB3b,EAAA,KAAK4a,GAAqB,EAC/D,KAAK,UAAU,KAAK,eAAgB5a,EAAA,KAAK6a,GAAoB,EAC7D,KAAK,UAAU,KAAK,gBAAiB7a,EAAA,KAAK8a,GAAqB,EAC/D,KAAK,UAAU,KAAK,mBAAoB9a,EAAA,KAAK+a,GAAwB,EACrE,UAAWa,KAAS5b,EAAA,KAAKqZ,GAAW,OAAM,EACxCuC,EAAM,QAAO,EAEf5b,EAAA,KAAKqZ,GAAW,QAChBrZ,EAAA,KAAKoZ,GAAY,QACjBpZ,EAAA,KAAK6Z,IAAkB,QACvB/Z,GAAA,KAAKqZ,EAAgB,MACrBnZ,EAAA,KAAKoa,GAAiB,QACtBpa,EAAA,KAAKwZ,IAAgB,UACrBxZ,EAAA,KAAKsZ,GAAgB,SACtB,CACD,IAAI,WAAY,CACd,SAAWvN,EAAM,QAAQ,KAAM,YAAa/L,EAAA,KAAKqa,GAAcra,EAAA,KAAK8Z,IAAe,aAAa9Z,EAAA,KAAKqa,GAAY,WAAYra,EAAA,KAAKqa,GAAY,UAAU,EAAI,MAAM,CACnK,CACD,IAAI,WAAY,CACd,SAAWtO,EAAM,QAAQ,KAAM,YAAa,iBAAiB/L,EAAA,KAAKmb,GAAU,EAAE,SAAS,CACxF,CACD,YAAYlM,EAAQ,QAClBxT,EAAAuE,EAAA,KAAKsZ,KAAL,MAAA7d,EAAsB,YAAY,KAAMwT,EACzC,CACD,eAAe,CACb,WAAA/K,CACJ,EAAK,CACDpE,GAAA,KAAK2Z,GAAoBvV,EAAa,EACvC,CACD,oBAAqB,CACnBlE,EAAA,KAAKmb,IAAW,OACjB,CACD,WAAWxL,EAAGC,EAAG,CACf,UAAWgM,KAAS5b,EAAA,KAAKqZ,GAAW,OAAM,EAAI,CAC5C,KAAM,CACJ,EAAGwC,EACH,EAAGC,EACH,MAAAnR,GACA,OAAAC,EACR,EAAUgR,EAAM,IAAI,wBACd,GAAIjM,GAAKkM,GAAUlM,GAAKkM,EAASlR,IAASiF,GAAKkM,GAAUlM,GAAKkM,EAASlR,GACrE,OAAOgR,CAEV,CACD,OAAO,IACR,CACD,kBAAkBjiB,EAAQ,GAAO,CAC/BqG,EAAA,KAAKob,IAAQ,UAAU,OAAO,eAAgBzhB,CAAK,CACpD,CACD,iBAAiBsV,EAAQ,CACvBjP,EAAA,KAAK6Z,IAAkB,IAAI5K,CAAM,CAClC,CACD,oBAAoBA,EAAQ,CAC1BjP,EAAA,KAAK6Z,IAAkB,OAAO5K,CAAM,CACrC,CACD,gBAAgB,CACd,MAAArK,CACJ,EAAK,CACD,KAAK,eAAc,EACnB,KAAK,eAAe,UAAYA,EAAQwI,EAAe,cAAc,iBACrE,UAAW6B,KAAUjP,EAAA,KAAK6Z,IACxB5K,EAAO,gBAAe,CAEzB,CACD,mBAAmB,CACjB,cAAA8M,CACJ,EAAK,CACD,KAAK,eAAc,EACnB,KAAK,eAAe,SAAWA,CAChC,CACD,uBAAuB9M,EAAQ,CACzB,CAACA,EAAO,QAAS,GAAIjP,EAAA,KAAKuZ,IAAsB,CAACvZ,EAAA,KAAKuZ,GAAmB,IAAItK,EAAO,EAAE,GACxFjP,EAAA,KAAKuZ,GAAmB,SAAStK,EAAO,GAAIA,CAAM,CAErD,CASD,MAAO,CACL,GAAI,CAAC,KAAK,aACR,OAEF,KAAM,CACJ,cAAAsM,CACD,EAAG,SACJ,UAAWtM,KAAUjP,EAAA,KAAKoa,GACxB,GAAInL,EAAO,IAAI,SAASsM,CAAa,EAAG,CACtCzb,GAAA,KAAKoa,EAAqB,CAACjL,EAAQsM,CAAa,GAChDtM,EAAO,oBAAsB,GAC7B,KACD,CAEJ,CACD,OAAQ,CACN,GAAI,CAACjP,EAAA,KAAKka,GACR,OAEF,KAAM,CAAC8B,EAAYC,CAAiB,EAAIjc,EAAA,KAAKka,GAC7Cpa,GAAA,KAAKoa,EAAqB,MAC1B+B,EAAkB,iBAAiB,UAAW,IAAM,CAClDD,EAAW,oBAAsB,EACvC,EAAO,CACD,KAAM,EACZ,CAAK,EACDC,EAAkB,MAAK,CACxB,CAqBD,kBAAmB,CACjBtW,EAAA,KAAK6S,GAAA0D,IAAL,WACAvW,EAAA,KAAK+S,GAAAyD,IAAL,UACD,CACD,qBAAsB,CACpBxW,EAAA,KAAK8S,GAAAiD,IAAL,WACA/V,EAAA,KAAKgT,GAAAyD,IAAL,UACD,CACD,KAAKlU,EAAO,OAGV,GAFAA,EAAM,eAAc,GACpBzM,EAAAuE,EAAA,KAAKmZ,KAAL,MAAA1d,EAAoB,iBAChB,CAAC,KAAK,aACR,OAEF,MAAM4gB,EAAU,CAAA,EAChB,UAAWpN,KAAUjP,EAAA,KAAKoa,GAAkB,CAC1C,MAAMrN,EAAakC,EAAO,UAAU,EAAI,EACpClC,GACFsP,EAAQ,KAAKtP,CAAU,CAE1B,CACGsP,EAAQ,SAAW,GAGvBnU,EAAM,cAAc,QAAQ,oBAAqB,KAAK,UAAUmU,CAAO,CAAC,CACzE,CACD,IAAInU,EAAO,CACT,KAAK,KAAKA,CAAK,EACf,KAAK,OAAM,CACZ,CACD,MAAMA,EAAO,CACXA,EAAM,eAAc,EACpB,KAAM,CACJ,cAAAoU,CACD,EAAGpU,EACJ,UAAWuH,KAAQ6M,EAAc,MAC/B,UAAWC,MAAcvc,EAAA,KAAK4Z,IAC5B,GAAI2C,GAAW,yBAAyB9M,EAAK,IAAI,EAAG,CAClD8M,GAAW,MAAM9M,EAAM,KAAK,YAAY,EACxC,MACD,CAGL,IAAI5P,EAAOyc,EAAc,QAAQ,mBAAmB,EACpD,GAAI,CAACzc,EACH,OAEF,GAAI,CACFA,EAAO,KAAK,MAAMA,CAAI,CACvB,OAAQX,EAAI,IACP6M,EAAM,MAAM,WAAW7M,EAAG,OAAO,IAAI,EACzC,MACD,CACD,GAAI,CAAC,MAAM,QAAQW,CAAI,EACrB,OAEF,KAAK,YAAW,EAChB,MAAM+b,EAAQ,KAAK,aACnB,GAAI,CACF,MAAMY,EAAa,CAAA,EACnB,UAAWvN,MAAUpP,EAAM,CACzB,MAAM4c,GAAqBb,EAAM,YAAY3M,EAAM,EACnD,GAAI,CAACwN,GACH,OAEFD,EAAW,KAAKC,EAAkB,CACnC,CACD,MAAMhG,GAAM,IAAM,CAChB,UAAWxH,MAAUuN,EACnB7W,EAAA,KAAKqT,GAAA0D,IAAL,UAAuBzN,IAEzBtJ,EAAA,KAAKuT,GAAAyD,IAAL,UAAoBH,EAC5B,EACY9F,GAAO,IAAM,CACjB,UAAWzH,MAAUuN,EACnBvN,GAAO,OAAM,CAEvB,EACM,KAAK,YAAY,CACf,IAAAwH,GACA,KAAAC,GACA,SAAU,EAClB,CAAO,CACF,OAAQxX,EAAI,IACP6M,EAAM,MAAM,WAAW7M,EAAG,OAAO,IAAI,CAC1C,CACF,CACD,QAAQgJ,EAAO,QACRzM,EAAA,KAAK,UAAW,IAAhB,MAAAA,EAAkB,2BACrBuc,GAA0B,iBAAiB,KAAK,KAAM9P,CAAK,CAE9D,CACD,gBAAgB/N,EAAS,CACnB,CAAC,OAAQ,OAAQ,SAAU,WAAW,EAAE,SAASA,EAAQ,IAAI,GAC/D,KAAKA,EAAQ,IAAI,GAEpB,CAgBD,gBAAgByiB,EAAW,CACrBA,GACFjX,EAAA,KAAK2S,GAAAuE,IAAL,WACAlX,EAAA,KAAK6S,GAAA0D,IAAL,WACAvW,EAAA,KAAK+S,GAAAyD,IAAL,WACAxW,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,UAAW9c,EAAA,KAAKma,KAAUpO,EAAM,qBAAqB,KACrD,QAASpG,EAAA,KAAKsT,GAAA8D,IAAL,WACT,mBAAoB/c,EAAA,KAAKwZ,IAAgB,mBAAoB,EAC7D,mBAAoBxZ,EAAA,KAAKwZ,IAAgB,mBAAoB,EAC7D,kBAAmB,EAC3B,KAEM7T,EAAA,KAAK4S,GAAAoD,IAAL,WACAhW,EAAA,KAAK8S,GAAAiD,IAAL,WACA/V,EAAA,KAAKgT,GAAAyD,IAAL,WACAzW,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,UAAW,EACnB,GACM,KAAK,kBAAkB,EAAK,EAE/B,CACD,oBAAoBE,EAAO,CACzB,GAAI,CAAAhd,EAAA,KAAK4Z,IAGT,CAAA9Z,GAAA,KAAK8Z,GAAeoD,GACpB,UAAWT,KAAcvc,EAAA,KAAK4Z,IAC5BjU,EAAA,KAAKkT,GAAAoE,IAAL,UAAuBV,EAAW,2BAErC,CACD,OAAQ,CACN,OAAOvc,EAAA,KAAK+Z,GAAW,OACxB,CACD,IAAI,cAAe,CACjB,OAAO/Z,EAAA,KAAKqZ,GAAW,IAAIrZ,EAAA,KAAKyZ,GAAiB,CAClD,CACD,SAASnV,EAAW,CAClB,OAAOtE,EAAA,KAAKqZ,GAAW,IAAI/U,CAAS,CACrC,CACD,IAAI,kBAAmB,CACrB,OAAOtE,EAAA,KAAKyZ,GACb,CACD,SAASmC,EAAO,CACd5b,EAAA,KAAKqZ,GAAW,IAAIuC,EAAM,UAAWA,CAAK,EACtC5b,EAAA,KAAKga,GACP4B,EAAM,OAAM,EAEZA,EAAM,QAAO,CAEhB,CACD,YAAYA,EAAO,CACjB5b,EAAA,KAAKqZ,GAAW,OAAOuC,EAAM,SAAS,CACvC,CACD,WAAWsB,EAAMC,EAAS,KAAM,CAC9B,GAAInd,EAAA,KAAKma,KAAU+C,EAInB,IADApd,GAAA,KAAKqa,EAAQ+C,GACTA,IAASnR,EAAM,qBAAqB,KAAM,CAC5C,KAAK,gBAAgB,EAAK,EAC1BpG,EAAA,KAAKoT,GAAAqE,IAAL,WACA,MACD,CACD,KAAK,gBAAgB,EAAI,EACzBzX,EAAA,KAAKmT,GAAAuE,IAAL,WACA,KAAK,YAAW,EAChB,UAAWzB,KAAS5b,EAAA,KAAKqZ,GAAW,OAAM,EACxCuC,EAAM,WAAWsB,CAAI,EAEvB,GAAKC,GAGL,UAAWlO,KAAUjP,EAAA,KAAKoZ,GAAY,OAAM,EAC1C,GAAInK,EAAO,sBAAwBkO,EAAQ,CACzC,KAAK,YAAYlO,CAAM,EACvBA,EAAO,gBAAe,EACtB,KACD,GAEJ,CACD,cAAciO,EAAM,CACdA,IAASld,EAAA,KAAKma,IAGlB,KAAK,UAAU,SAAS,6BAA8B,CACpD,OAAQ,KACR,KAAA+C,CACN,CAAK,CACF,CACD,aAAa9S,EAAMzQ,EAAO,CACxB,GAAKqG,EAAA,KAAK4Z,IAGV,IAAIxP,IAAS2B,EAAM,2BAA2B,OAAQ,CACpD,KAAK,aAAa,aAAa3B,CAAI,EACnC,MACD,CACD,UAAW6E,KAAUjP,EAAA,KAAKoa,GACxBnL,EAAO,aAAa7E,EAAMzQ,CAAK,EAEjC,UAAW4iB,KAAcvc,EAAA,KAAK4Z,IAC5B2C,EAAW,oBAAoBnS,EAAMzQ,CAAK,EAE7C,CACD,cAAc2jB,EAAW,GAAO,CAC9B,GAAItd,EAAA,KAAKia,KAAeqD,EAGxB,CAAAxd,GAAA,KAAKma,EAAaqD,GAClB,UAAW1B,KAAS5b,EAAA,KAAKqZ,GAAW,OAAM,EACpCiE,EACF1B,EAAM,aAAY,EAElBA,EAAM,YAAW,EAEnBA,EAAM,IAAI,UAAU,OAAO,UAAW0B,CAAQ,EAEjD,CAkBD,WAAWhZ,EAAW,CACpB,MAAM+X,EAAU,CAAA,EAChB,UAAWpN,KAAUjP,EAAA,KAAKoZ,GAAY,OAAM,EACtCnK,EAAO,YAAc3K,GACvB+X,EAAQ,KAAKpN,CAAM,EAGvB,OAAOoN,CACR,CACD,UAAUjY,EAAI,CACZ,OAAOpE,EAAA,KAAKoZ,GAAY,IAAIhV,CAAE,CAC/B,CACD,UAAU6K,EAAQ,CAChBjP,EAAA,KAAKoZ,GAAY,IAAInK,EAAO,GAAIA,CAAM,CACvC,CACD,aAAaA,EAAQ,OACnBjP,EAAA,KAAKoZ,GAAY,OAAOnK,EAAO,EAAE,EACjC,KAAK,SAASA,CAAM,GAChB,CAACA,EAAO,qBAAuB,CAACjP,EAAA,KAAK0Z,GAA8B,IAAIzK,EAAO,mBAAmB,MACnGxT,EAAAuE,EAAA,KAAKuZ,KAAL,MAAA9d,EAAyB,OAAOwT,EAAO,IAE1C,CACD,4BAA4BA,EAAQ,CAClCjP,EAAA,KAAK0Z,GAA8B,IAAIzK,EAAO,mBAAmB,EACjEA,EAAO,QAAU,EAClB,CACD,2BAA2BsO,EAAqB,CAC9C,OAAOvd,EAAA,KAAK0Z,GAA8B,IAAI6D,CAAmB,CAClE,CACD,+BAA+BtO,EAAQ,CACrCjP,EAAA,KAAK0Z,GAA8B,OAAOzK,EAAO,mBAAmB,EACpEA,EAAO,QAAU,EAClB,CASD,gBAAgBA,EAAQ,CAClBjP,EAAA,KAAKmZ,KAAkBlK,IAG3BnP,GAAA,KAAKqZ,EAAgBlK,GACjBA,GACFtJ,EAAA,KAAKkT,GAAAoE,IAAL,UAAuBhO,EAAO,oBAEjC,CACD,eAAeA,EAAQ,CACrB,GAAIjP,EAAA,KAAKoa,GAAiB,IAAInL,CAAM,EAAG,CACrCjP,EAAA,KAAKoa,GAAiB,OAAOnL,CAAM,EACnCA,EAAO,SAAQ,EACftJ,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,kBAAmB,KAAK,YAChC,GACM,MACD,CACD9c,EAAA,KAAKoa,GAAiB,IAAInL,CAAM,EAChCA,EAAO,OAAM,EACbtJ,EAAA,KAAKkT,GAAAoE,IAAL,UAAuBhO,EAAO,oBAC9BtJ,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,kBAAmB,EACzB,EACG,CACD,YAAY7N,EAAQ,CAClB,UAAWuO,KAAMxd,EAAA,KAAKoa,GAChBoD,IAAOvO,GACTuO,EAAG,SAAQ,EAGfxd,EAAA,KAAKoa,GAAiB,QACtBpa,EAAA,KAAKoa,GAAiB,IAAInL,CAAM,EAChCA,EAAO,OAAM,EACbtJ,EAAA,KAAKkT,GAAAoE,IAAL,UAAuBhO,EAAO,oBAC9BtJ,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,kBAAmB,EACzB,EACG,CACD,WAAW7N,EAAQ,CACjB,OAAOjP,EAAA,KAAKoa,GAAiB,IAAInL,CAAM,CACxC,CACD,SAASA,EAAQ,CACfA,EAAO,SAAQ,EACfjP,EAAA,KAAKoa,GAAiB,OAAOnL,CAAM,EACnCtJ,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,kBAAmB,KAAK,YAC9B,EACG,CACD,IAAI,cAAe,CACjB,OAAO9c,EAAA,KAAKoa,GAAiB,OAAS,CACvC,CACD,MAAO,CACLpa,EAAA,KAAKwZ,IAAgB,OACrB7T,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,mBAAoB9c,EAAA,KAAKwZ,IAAgB,mBAAoB,EAC7D,mBAAoB,GACpB,QAAS7T,EAAA,KAAKsT,GAAA8D,IAAL,UACf,EACG,CACD,MAAO,CACL/c,EAAA,KAAKwZ,IAAgB,OACrB7T,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,mBAAoB,GACpB,mBAAoB9c,EAAA,KAAKwZ,IAAgB,mBAAoB,EAC7D,QAAS7T,EAAA,KAAKsT,GAAA8D,IAAL,UACf,EACG,CACD,YAAYla,EAAQ,CAClB7C,EAAA,KAAKwZ,IAAgB,IAAI3W,CAAM,EAC/B8C,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,mBAAoB,GACpB,mBAAoB,GACpB,QAASnX,EAAA,KAAKsT,GAAA8D,IAAL,UACf,EACG,CAYD,QAAS,CAEP,GADA,KAAK,eAAc,EACf,CAAC,KAAK,aACR,OAEF,MAAMV,EAAU,CAAC,GAAGrc,EAAA,KAAKoa,EAAgB,EACnC3D,EAAM,IAAM,CAChB,UAAWxH,KAAUoN,EACnBpN,EAAO,OAAM,CAErB,EACUyH,EAAO,IAAM,CACjB,UAAWzH,KAAUoN,EACnB1W,EAAA,KAAKqT,GAAA0D,IAAL,UAAuBzN,EAE/B,EACI,KAAK,YAAY,CACf,IAAAwH,EACA,KAAAC,EACA,SAAU,EAChB,CAAK,CACF,CACD,gBAAiB,QACfjb,EAAAuE,EAAA,KAAKmZ,KAAL,MAAA1d,EAAoB,gBACrB,CACD,uBAAwB,CACtB,OAAOuE,EAAA,KAAKmZ,IAAiB,KAAK,YACnC,CAcD,WAAY,CACV,UAAWlK,KAAUjP,EAAA,KAAKoa,GACxBnL,EAAO,OAAM,EAEftJ,EAAA,KAAKuT,GAAAyD,IAAL,UAAoB3c,EAAA,KAAKoZ,GAAY,OAAQ,EAC9C,CACD,aAAc,CACZ,GAAIpZ,EAAA,KAAKmZ,GAAe,CACtBnZ,EAAA,KAAKmZ,GAAc,iBACnB,MACD,CACD,GAAK,KAAK,aAGV,WAAWlK,KAAUjP,EAAA,KAAKoa,GACxBnL,EAAO,SAAQ,EAEjBjP,EAAA,KAAKoa,GAAiB,QACtBzU,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,kBAAmB,EACzB,GACG,CACD,yBAAyBnN,EAAGC,EAAG6N,EAAW,GAAO,CAI/C,GAHKA,GACH,KAAK,eAAc,EAEjB,CAAC,KAAK,aACR,OAEFzd,EAAA,KAAKib,IAAa,CAAC,GAAKtL,EACxB3P,EAAA,KAAKib,IAAa,CAAC,GAAKrL,EACxB,KAAM,CAAC8N,EAAQC,CAAM,EAAI3d,EAAA,KAAKib,IACxBoB,GAAU,CAAC,GAAGrc,EAAA,KAAKoa,EAAgB,EACnCwD,GAAe,IACjB5d,EAAA,KAAKkb,KACP,aAAalb,EAAA,KAAKkb,GAAqB,EAEzCpb,GAAA,KAAKob,GAAwB,WAAW,IAAM,CAC5Cpb,GAAA,KAAKob,GAAwB,MAC7Blb,EAAA,KAAKib,IAAa,CAAC,EAAIjb,EAAA,KAAKib,IAAa,CAAC,EAAI,EAC9C,KAAK,YAAY,CACf,IAAK,IAAM,CACT,UAAWhM,MAAUoN,GACfrc,EAAA,KAAKoZ,GAAY,IAAInK,GAAO,EAAE,GAChCA,GAAO,gBAAgByO,EAAQC,CAAM,CAG1C,EACD,KAAM,IAAM,CACV,UAAW1O,MAAUoN,GACfrc,EAAA,KAAKoZ,GAAY,IAAInK,GAAO,EAAE,GAChCA,GAAO,gBAAgB,CAACyO,EAAQ,CAACC,CAAM,CAG5C,EACD,SAAU,EAClB,CAAO,CACF,EAAEC,EAAY,GACf,UAAW3O,MAAUoN,GACnBpN,GAAO,gBAAgBU,EAAGC,CAAC,CAE9B,CACD,kBAAmB,CACjB,GAAK,KAAK,aAGV,MAAK,kBAAkB,EAAI,EAC3B9P,GAAA,KAAK6Z,GAAmB,IAAI,KAC5B,UAAW1K,KAAUjP,EAAA,KAAKoa,GACxBpa,EAAA,KAAK2Z,IAAiB,IAAI1K,EAAQ,CAChC,OAAQA,EAAO,EACf,OAAQA,EAAO,EACf,eAAgBA,EAAO,UACvB,KAAM,EACN,KAAM,EACN,aAAc,EACtB,CAAO,EAEJ,CACD,gBAAiB,CACf,GAAI,CAACjP,EAAA,KAAK2Z,IACR,MAAO,GAET,KAAK,kBAAkB,EAAK,EAC5B,MAAMze,EAAM8E,EAAA,KAAK2Z,IACjB7Z,GAAA,KAAK6Z,GAAmB,MACxB,IAAIkE,EAAyB,GAC7B,SAAW,CAAC,CACV,EAAAlO,EACA,EAAAC,EACA,UAAAtL,EACN,EAAO3K,EAAK,IAAKuB,EACXvB,GAAM,KAAOgW,EACbhW,GAAM,KAAOiW,EACbjW,GAAM,aAAe2K,GACrBuZ,MAA2BlO,IAAMhW,GAAM,QAAUiW,IAAMjW,GAAM,QAAU2K,KAAc3K,GAAM,gBAE7F,GAAI,CAACkkB,EACH,MAAO,GAET,MAAMC,EAAO,CAAC7O,EAAQU,EAAGC,GAAGtL,KAAc,CACxC,GAAItE,EAAA,KAAKoZ,GAAY,IAAInK,EAAO,EAAE,EAAG,CACnC,MAAMjC,GAAShN,EAAA,KAAKqZ,GAAW,IAAI/U,EAAS,EACxC0I,GACFiC,EAAO,sBAAsBjC,GAAQ2C,EAAGC,EAAC,GAEzCX,EAAO,UAAY3K,GACnB2K,EAAO,EAAIU,EACXV,EAAO,EAAIW,GAEd,CACP,EACI,YAAK,YAAY,CACf,IAAK,IAAM,CACT,SAAW,CAACX,EAAQ,CAClB,KAAAuD,EACA,KAAAC,GACA,aAAAsL,EACD,CAAA,IAAK7iB,EACJ4iB,EAAK7O,EAAQuD,EAAMC,GAAMsL,EAAY,CAExC,EACD,KAAM,IAAM,CACV,SAAW,CAAC9O,EAAQ,CAClB,OAAAgD,EACA,OAAAC,GACA,eAAA8L,EACD,CAAA,IAAK9iB,EACJ4iB,EAAK7O,EAAQgD,EAAQC,GAAQ8L,EAAc,CAE9C,EACD,SAAU,EAChB,CAAK,EACM,EACR,CACD,oBAAoBnO,EAAIC,EAAI,CAC1B,GAAK9P,EAAA,KAAK2Z,IAGV,UAAW1K,KAAUjP,EAAA,KAAK2Z,IAAiB,KAAI,EAC7C1K,EAAO,KAAKY,EAAIC,CAAE,CAErB,CACD,QAAQb,EAAQ,CACd,GAAIA,EAAO,SAAW,KAAM,CAC1B,MAAMjC,EAAS,KAAK,SAASiC,EAAO,SAAS,EACzCjC,GACFA,EAAO,aAAaiC,CAAM,EAC1BjC,EAAO,aAAaiC,CAAM,IAE1B,KAAK,UAAUA,CAAM,EACrB,KAAK,uBAAuBA,CAAM,EAClCA,EAAO,QAAO,EAEtB,MACMA,EAAO,OAAO,aAAaA,CAAM,CAEpC,CACD,SAASA,EAAQ,CACf,OAAOjP,EAAA,KAAKmZ,KAAkBlK,CAC/B,CACD,WAAY,CACV,OAAOjP,EAAA,KAAKmZ,EACb,CACD,SAAU,CACR,OAAOnZ,EAAA,KAAKma,EACb,CACD,IAAI,cAAe,CACjB,SAAWpO,EAAM,QAAQ,KAAM,eAAgB,IAAImK,CAAc,CAClE,CACF,EAhzBCiD,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,GAAA,YACAC,GAAA,YACAC,EAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAOAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAsIA9C,GAAA,YAAAuE,GAAgB,UAAG,CACjB,OAAO,iBAAiB,QAAS7c,EAAA,KAAKua,EAAW,EACjD,OAAO,iBAAiB,OAAQva,EAAA,KAAKsa,EAAU,CAChD,EACD/B,GAAA,YAAAoD,GAAmB,UAAG,CACpB,OAAO,oBAAoB,QAAS3b,EAAA,KAAKua,EAAW,EACpD,OAAO,oBAAoB,OAAQva,EAAA,KAAKsa,EAAU,CACnD,EA6BD9B,GAAA,YAAA0D,GAAmB,UAAG,CACpB,OAAO,iBAAiB,UAAWlc,EAAA,KAAK2a,IAAe,CACrD,QAAS,EACf,CAAK,CACF,EACDlC,GAAA,YAAAiD,GAAsB,UAAG,CACvB,OAAO,oBAAoB,UAAW1b,EAAA,KAAK2a,IAAe,CACxD,QAAS,EACf,CAAK,CACF,EACDjC,GAAA,YAAAyD,GAAsB,UAAG,CACvB,SAAS,iBAAiB,OAAQnc,EAAA,KAAKwa,GAAU,EACjD,SAAS,iBAAiB,MAAOxa,EAAA,KAAKya,GAAS,EAC/C,SAAS,iBAAiB,QAASza,EAAA,KAAK0a,GAAW,CACpD,EACD/B,GAAA,YAAAyD,GAAyB,UAAG,CAC1B,SAAS,oBAAoB,OAAQpc,EAAA,KAAKwa,GAAU,EACpD,SAAS,oBAAoB,MAAOxa,EAAA,KAAKya,GAAS,EAClD,SAAS,oBAAoB,QAASza,EAAA,KAAK0a,GAAW,CACvD,EAkGD9B,EAAA,YAAAkE,GAAqB,SAAC3iB,EAAS,CACV,OAAO,QAAQA,CAAO,EAAE,KAAK,CAAC,CAACgB,EAAKxB,CAAK,IAAMqG,EAAA,KAAKgb,IAAgB7f,CAAG,IAAMxB,CAAK,GAEnG,KAAK,UAAU,SAAS,gCAAiC,CACvD,OAAQ,KACR,QAAS,OAAO,OAAOqG,EAAA,KAAKgb,IAAiB7gB,CAAO,CAC5D,CAAO,CAEJ,EACD0e,GAAA,YAAAoE,GAAiB,SAAC9iB,EAAS,CACzB,KAAK,UAAU,SAAS,gCAAiC,CACvD,OAAQ,KACR,QAAAA,CACN,CAAK,CACF,EAwHD2e,GAAA,YAAAuE,GAAU,UAAG,CACX,GAAI,CAACrd,EAAA,KAAKga,GAAY,CACpBla,GAAA,KAAKka,EAAa,IAClB,UAAW4B,KAAS5b,EAAA,KAAKqZ,GAAW,OAAM,EACxCuC,EAAM,OAAM,CAEf,CACF,EACD7C,GAAA,YAAAqE,GAAW,UAAG,CAEZ,GADA,KAAK,YAAW,EACZpd,EAAA,KAAKga,GAAY,CACnBla,GAAA,KAAKka,EAAa,IAClB,UAAW4B,KAAS5b,EAAA,KAAKqZ,GAAW,OAAM,EACxCuC,EAAM,QAAO,CAEhB,CACF,EAkCD5C,GAAA,YAAA0D,GAAiB,SAACzN,EAAQ,CACxB,MAAM2M,EAAQ5b,EAAA,KAAKqZ,GAAW,IAAIpK,EAAO,SAAS,EAC9C2M,EACFA,EAAM,aAAa3M,CAAM,EAEzB,KAAK,UAAUA,CAAM,CAExB,EA6EDgK,GAAA,YAAA8D,GAAQ,UAAG,CACT,GAAI/c,EAAA,KAAKoZ,GAAY,OAAS,EAC5B,MAAO,GAET,GAAIpZ,EAAA,KAAKoZ,GAAY,OAAS,EAC5B,UAAWnK,KAAUjP,EAAA,KAAKoZ,GAAY,OAAM,EAC1C,OAAOnK,EAAO,UAGlB,MAAO,EACR,EA6BDiK,GAAA,YAAAyD,GAAc,SAACN,EAAS,CACtBrc,EAAA,KAAKoa,GAAiB,QACtB,UAAWnL,KAAUoN,EACfpN,EAAO,YAGXjP,EAAA,KAAKoa,GAAiB,IAAInL,CAAM,EAChCA,EAAO,OAAM,GAEftJ,EAAA,KAAKiT,EAAAkE,IAAL,UAA2B,CACzB,kBAAmB,EACzB,EACG,EAtoBG9E,GAyCG,gBAAkB,EAzCrBA,GA0CG,cAAgB,GA1CzB,IAAMiG,EAANjG,GAkzBAliB,EAAQ,0BAA4BmoB,CAE7B,EAEA,CAACpoB,EAAyBC,EAASgW,IAAwB,wEAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,UAAYA,EAAQ,4BAA8BA,EAAQ,cAAgBA,EAAQ,aAAeA,EAAQ,cAAgBA,EAAQ,2BAA6BA,EAAQ,cAAgBA,EAAQ,iBAAmBA,EAAQ,iBAAmBA,EAAQ,qBAAuB,OACnRA,EAAQ,WAAaooB,EACrBpoB,EAAQ,eAAiBqoB,EACzBroB,EAAQ,oBAAsBsoB,EAC9BtoB,EAAQ,2BAA6BuoB,EACrCvoB,EAAQ,mBAAqBwoB,EAC7BxoB,EAAQ,sBAAwByoB,EAChCzoB,EAAQ,OAAS0oB,EACjB1oB,EAAQ,mBAAqB2oB,EAC7B3oB,EAAQ,aAAe4oB,EACvB5oB,EAAQ,UAAY6oB,EACpB7oB,EAAQ,gBAAkB8oB,EAC1B9oB,EAAQ,WAAa+oB,EACrB/oB,EAAQ,cAAgBgpB,EACxBhpB,EAAQ,mBAAqBipB,EAC7B,IAAIC,EAAgBlT,EAAoB,CAAC,EACrCC,EAAQD,EAAoB,CAAC,EACjC,MAAMmT,EAAS,6BACTC,GAAN,MAAMA,EAAc,CAInB,EAJKA,GACG,IAAM,GADTA,GAEG,IAAM,GAFTA,GAGG,iBAAmBA,GAAK,IAAMA,GAAK,IAH5C,IAAMC,EAAND,GAKAppB,EAAQ,cAAgBqpB,EACxB,MAAMC,WAAyBJ,EAAc,iBAAkB,CAY7D,YAAY,CACV,MAAAxe,GACA,cAAAoB,GAAgB,WAAW,QAC5B,EAAG,GAAI,CACN,QAIFnC,EAAA,KAAI2V,GAGJ3V,EAAA,KAAI4f,GAuKJ5f,EAAA,KAAA6f,IAMA7f,EAAA,KAAA8f,IAOA9f,EAAA,KAAA+f,IAMA/f,EAAA,KAAAggB,IAOAhgB,EAAA,KAAAigB,IAvNAjgB,EAAA,KAAAkgB,GAAA,QACAlgB,EAAA,KAAAmgB,EAAA,QACAngB,EAAA,KAAA4D,GAAA,QACA5D,EAAA,KAAAogB,GAAA,QACApgB,EAAA,KAAAqgB,GAAA,QACArgB,EAAA,KAAAsgB,GAAA,QACAtgB,EAAA,KAAAugB,EAAA,QACAvgB,EAAA,KAAAwgB,EAAA,QACAxgB,EAAA,KAAAygB,EAAA,QACAzgB,EAAA,KAAA0gB,EAAA,QACA1gB,EAAA,KAAAuV,EAAM,GAMJlV,GAAA,KAAKuD,GAAS7C,IACdV,GAAA,KAAK+f,GAAYje,GAClB,CA0BD,UAAUwe,GAAM,CACd,GAAI,CAACA,GACH,MAAO,OAET,IAAIzmB,GAAQqG,EAAA,KAAKoV,EAAAiL,IAAO,IAAID,EAAI,EAChC,GAAIzmB,GACF,OAAOA,GAET,IAAI2mB,GAAQC,GAAQC,GAAQrlB,GAC5B,GAAIilB,GAAK,SAAW,EAAG,CACrB,MAAMK,GAAOL,GAAK,CAAC,EACbnhB,GAAS,IAAI,MAAM,GAAG,EAC5B,QAASnE,GAAI,EAAGA,GAAI,IAAKA,KACvBmE,GAAOnE,EAAC,EAAI2lB,GAAK3lB,EAAC,EAAI,IAExBK,GAAMmlB,GAASC,GAASC,GAASvhB,GAAO,KAAK,GAAG,CACtD,KAAW,CACL,KAAM,CAACwhB,GAAMC,GAAMC,EAAI,EAAIP,GACrBQ,EAAU,IAAI,MAAM,GAAG,EACvBC,EAAU,IAAI,MAAM,GAAG,EACvBC,GAAU,IAAI,MAAM,GAAG,EAC7B,QAAShmB,GAAI,EAAGA,GAAI,IAAKA,KACvB8lB,EAAQ9lB,EAAC,EAAI2lB,GAAK3lB,EAAC,EAAI,IACvB+lB,EAAQ/lB,EAAC,EAAI4lB,GAAK5lB,EAAC,EAAI,IACvBgmB,GAAQhmB,EAAC,EAAI6lB,GAAK7lB,EAAC,EAAI,IAEzBwlB,GAASM,EAAQ,KAAK,GAAG,EACzBL,GAASM,EAAQ,KAAK,GAAG,EACzBL,GAASM,GAAQ,KAAK,GAAG,EACzB3lB,GAAM,GAAGmlB,EAAM,GAAGC,EAAM,GAAGC,EAAM,EAClC,CAED,GADA7mB,GAAQqG,EAAA,KAAKoV,EAAAiL,IAAO,IAAIllB,EAAG,EACvBxB,GACF,OAAAqG,EAAA,KAAKoV,EAAAiL,IAAO,IAAID,GAAMzmB,EAAK,EACpBA,GAET,MAAMyK,GAAK,KAAKpE,EAAA,KAAKqD,GAAM,iBAAiBD,GAAA,KAAK4R,GAAL,GAAU,GAChD5b,GAAM,QAAQgL,EAAE,IACtBpE,EAAA,KAAKoV,EAAAiL,IAAO,IAAID,GAAMhnB,EAAG,EACzB4G,EAAA,KAAKoV,EAAAiL,IAAO,IAAIllB,GAAK/B,EAAG,EACxB,MAAM2nB,GAASpb,EAAA,KAAK4Z,GAAAyB,IAAL,UAAmB5c,IAClC,OAAAuB,EAAA,KAAK8Z,GAAAwB,IAAL,UAA+BX,GAAQC,GAAQC,GAAQO,IAChD3nB,EACR,CACD,aAAa8nB,GAASC,GAAS,QAC7B,MAAMhmB,GAAM,GAAG+lB,EAAO,IAAIC,EAAO,GACjC,GAAInhB,EAAA,KAAK+f,MAAY5kB,GACnB,OAAO6E,EAAA,KAAKggB,GAKd,GAHAlgB,GAAA,KAAKigB,GAAU5kB,IACf2E,GAAA,KAAKkgB,EAAU,SACfvkB,GAAAuE,EAAA,KAAK8f,MAAL,MAAArkB,GAAiB,SACb,CAACylB,IAAW,CAACC,GACf,OAAOnhB,EAAA,KAAKggB,GAEd,MAAMoB,GAAQzb,EAAA,KAAK+Z,GAAA2B,IAAL,UAAaH,IAC3BA,GAAUnV,EAAM,KAAK,aAAa,GAAGqV,EAAK,EAC1C,MAAME,GAAQ3b,EAAA,KAAK+Z,GAAA2B,IAAL,UAAaF,IAG3B,GAFAA,GAAUpV,EAAM,KAAK,aAAa,GAAGuV,EAAK,EAC1CthB,EAAA,KAAKqf,EAAAkC,IAAM,MAAM,MAAQ,GACrBL,KAAY,WAAaC,KAAY,WAAaD,KAAYC,GAChE,OAAOnhB,EAAA,KAAKggB,GAEd,MAAM9kB,GAAM,IAAI,MAAM,GAAG,EACzB,QAASJ,GAAI,EAAGA,IAAK,IAAKA,KAAK,CAC7B,MAAM6U,EAAI7U,GAAI,IACdI,GAAIJ,EAAC,EAAI6U,GAAK,OAAUA,EAAI,QAAUA,EAAI,MAAS,QAAU,GAC9D,CACD,MAAM6R,GAAQtmB,GAAI,KAAK,GAAG,EACpBkJ,GAAK,KAAKpE,EAAA,KAAKqD,GAAM,cACrB0d,GAASjhB,GAAA,KAAKmgB,EAAsBta,EAAA,KAAK4Z,GAAAyB,IAAL,UAAmB5c,KAC7DuB,EAAA,KAAK8Z,GAAAwB,IAAL,UAA+BO,GAAOA,GAAOA,GAAOT,IACpDpb,EAAA,KAAK2Z,GAAAmC,IAAL,UAAwBV,IACxB,MAAMW,GAAW,CAAC1kB,GAAGrB,IAAM,CACzB,MAAMgmB,EAAQP,GAAMpkB,EAAC,EAAI,IACnB8G,GAAMwd,GAAMtkB,EAAC,EAAI,IACjB4kB,GAAM,IAAI,MAAMjmB,EAAI,CAAC,EAC3B,QAASb,GAAI,EAAGA,IAAKa,EAAGb,KACtB8mB,GAAI9mB,EAAC,EAAI6mB,EAAQ7mB,GAAIa,GAAKmI,GAAM6d,GAElC,OAAOC,GAAI,KAAK,GAAG,CACzB,EACI,OAAAjc,EAAA,KAAK8Z,GAAAwB,IAAL,UAA+BS,GAAS,EAAG,CAAC,EAAGA,GAAS,EAAG,CAAC,EAAGA,GAAS,EAAG,CAAC,EAAGX,IAC/EjhB,GAAA,KAAKkgB,EAAU,QAAQ5b,EAAE,KAClBpE,EAAA,KAAKggB,EACb,CACD,sBAAsBkB,GAASC,GAASU,GAAYC,GAAY,QAC9D,MAAM3mB,GAAM,GAAG+lB,EAAO,IAAIC,EAAO,IAAIU,EAAU,IAAIC,EAAU,GAC7D,GAAI9hB,EAAA,KAAKkgB,KAAqB/kB,GAC5B,OAAO6E,EAAA,KAAKmgB,GAKd,GAHArgB,GAAA,KAAKogB,EAAmB/kB,IACxB2E,GAAA,KAAKqgB,EAAmB,SACxB1kB,GAAAuE,EAAA,KAAKigB,KAAL,MAAAxkB,GAA0B,SACtB,CAACylB,IAAW,CAACC,GACf,OAAOnhB,EAAA,KAAKmgB,GAEd,KAAM,CAACiB,GAAOE,EAAK,EAAI,CAACJ,GAASC,EAAO,EAAE,IAAIxb,EAAA,KAAK+Z,GAAA2B,IAAQ,KAAK,IAAI,CAAC,EACrE,IAAIU,GAAS,KAAK,MAAM,MAASX,GAAM,CAAC,EAAI,MAASA,GAAM,CAAC,EAAI,MAASA,GAAM,CAAC,CAAC,EAC7EY,GAAS,KAAK,MAAM,MAASV,GAAM,CAAC,EAAI,MAASA,GAAM,CAAC,EAAI,MAASA,GAAM,CAAC,CAAC,EAC7E,CAACW,GAAUC,EAAQ,EAAI,CAACL,GAAYC,EAAU,EAAE,IAAInc,EAAA,KAAK+Z,GAAA2B,IAAQ,KAAK,IAAI,CAAC,EAC3EW,GAASD,KACX,CAACA,GAAQC,GAAQC,GAAUC,EAAQ,EAAI,CAACF,GAAQD,GAAQG,GAAUD,EAAQ,GAE5EjiB,EAAA,KAAKqf,EAAAkC,IAAM,MAAM,MAAQ,GACzB,MAAMG,GAAW,CAACS,GAAIC,GAAIzmB,KAAM,CAC9B,MAAMimB,EAAM,IAAI,MAAM,GAAG,EACnBS,IAAQL,GAASD,IAAUpmB,GAC3B2mB,GAAWH,GAAK,IAChBI,IAAWH,GAAKD,KAAO,IAAMxmB,IACnC,IAAI6mB,GAAO,EACX,QAAS1nB,GAAI,EAAGA,IAAKa,GAAGb,KAAK,CAC3B,MAAM2nB,GAAI,KAAK,MAAMV,GAASjnB,GAAIunB,EAAI,EAChC1oB,GAAQ2oB,GAAWxnB,GAAIynB,GAC7B,QAAS5jB,GAAI6jB,GAAM7jB,IAAK8jB,GAAG9jB,KACzBijB,EAAIjjB,EAAC,EAAIhF,GAEX6oB,GAAOC,GAAI,CACZ,CACD,QAAS3nB,GAAI0nB,GAAM1nB,GAAI,IAAKA,KAC1B8mB,EAAI9mB,EAAC,EAAI8mB,EAAIY,GAAO,CAAC,EAEvB,OAAOZ,EAAI,KAAK,GAAG,CACzB,EACUxd,EAAK,KAAKpE,EAAA,KAAKqD,GAAM,wBACrB0d,EAASjhB,GAAA,KAAKmgB,EAAsBta,EAAA,KAAK4Z,GAAAyB,IAAL,UAAmB5c,IAC7D,OAAAuB,EAAA,KAAK2Z,GAAAmC,IAAL,UAAwBV,GACxBpb,EAAA,KAAK8Z,GAAAwB,IAAL,UAA+BS,GAASO,GAAS,CAAC,EAAGC,GAAS,CAAC,EAAG,CAAC,EAAGR,GAASO,GAAS,CAAC,EAAGC,GAAS,CAAC,EAAG,CAAC,EAAGR,GAASO,GAAS,CAAC,EAAGC,GAAS,CAAC,EAAG,CAAC,EAAGnB,GACpJjhB,GAAA,KAAKqgB,EAAmB,QAAQ/b,CAAE,KAC3BpE,EAAA,KAAKmgB,EACb,CACD,QAAQuC,GAAU,GAAO,CACnBA,KAAY1iB,EAAA,KAAKggB,IAAWhgB,EAAA,KAAKmgB,MAGjCngB,EAAA,KAAK4f,KACP5f,EAAA,KAAK4f,GAAO,WAAW,WAAW,OAAM,EACxC9f,GAAA,KAAK8f,EAAS,OAEZ5f,EAAA,KAAK2f,MACP3f,EAAA,KAAK2f,IAAQ,QACb7f,GAAA,KAAK6f,GAAU,OAEjB7f,GAAA,KAAKkV,EAAM,GACZ,CA+BF,CA3NC2K,GAAA,YACAC,EAAA,YACAvc,GAAA,YACAwc,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAnL,EAAA,YASII,EAAA,YAAAiL,GAAM,UAAG,CACX,OAAOrgB,EAAA,KAAK2f,KAAL7f,GAAA,KAAK6f,GAAY,IAAI,IAC7B,EACGN,EAAA,YAAAkC,GAAK,UAAG,CACV,GAAI,CAACvhB,EAAA,KAAK4f,GAAQ,CAChB,MAAMjO,GAAM3R,EAAA,KAAK6f,IAAU,cAAc,KAAK,EACxC,CACJ,MAAAxQ,EACD,EAAGsC,GACJtC,GAAM,WAAa,SACnBA,GAAM,QAAU,SAChBA,GAAM,MAAQA,GAAM,OAAS,EAC7BA,GAAM,SAAW,WACjBA,GAAM,IAAMA,GAAM,KAAO,EACzBA,GAAM,OAAS,GACf,MAAMgG,GAAMrV,EAAA,KAAK6f,IAAU,gBAAgBZ,EAAQ,KAAK,EACxD5J,GAAI,aAAa,QAAS,CAAC,EAC3BA,GAAI,aAAa,SAAU,CAAC,EAC5BvV,GAAA,KAAK8f,EAAS5f,EAAA,KAAK6f,IAAU,gBAAgBZ,EAAQ,MAAM,GAC3DtN,GAAI,OAAO0D,EAAG,EACdA,GAAI,OAAOrV,EAAA,KAAK4f,EAAM,EACtB5f,EAAA,KAAK6f,IAAU,KAAK,OAAOlO,EAAG,CAC/B,CACD,OAAO3R,EAAA,KAAK4f,EACb,EAkJDN,GAAA,YAAAmC,GAAkB,SAACV,GAAQ,CACzB,MAAM4B,GAAgB3iB,EAAA,KAAK6f,IAAU,gBAAgBZ,EAAQ,eAAe,EAC5E0D,GAAc,aAAa,OAAQ,QAAQ,EAC3CA,GAAc,aAAa,SAAU,sFAAsF,EAC3H5B,GAAO,OAAO4B,EAAa,CAC5B,EACDpD,GAAA,YAAAyB,GAAa,SAAC5c,GAAI,CAChB,MAAM2c,GAAS/gB,EAAA,KAAK6f,IAAU,gBAAgBZ,EAAQ,QAAQ,EAC9D,OAAA8B,GAAO,aAAa,8BAA+B,MAAM,EACzDA,GAAO,aAAa,KAAM3c,EAAE,EAC5BpE,EAAA,KAAKqf,EAAAkC,IAAM,OAAOR,EAAM,EACjBA,EACR,EACDvB,GAAA,YAAAoD,GAAa,SAACC,GAAqBC,GAAMtB,GAAO,CAC9C,MAAMuB,GAAS/iB,EAAA,KAAK6f,IAAU,gBAAgBZ,EAAQ6D,EAAI,EAC1DC,GAAO,aAAa,OAAQ,UAAU,EACtCA,GAAO,aAAa,cAAevB,EAAK,EACxCqB,GAAoB,OAAOE,EAAM,CAClC,EACDtD,GAAA,YAAAwB,GAAyB,SAAC+B,GAAQC,GAAQC,GAAQnC,GAAQ,CACxD,MAAM8B,GAAsB7iB,EAAA,KAAK6f,IAAU,gBAAgBZ,EAAQ,qBAAqB,EACxF8B,GAAO,OAAO8B,EAAmB,EACjCld,EAAA,KAAK6Z,GAAAoD,IAAL,UAAmBC,GAAqB,UAAWG,IACnDrd,EAAA,KAAK6Z,GAAAoD,IAAL,UAAmBC,GAAqB,UAAWI,IACnDtd,EAAA,KAAK6Z,GAAAoD,IAAL,UAAmBC,GAAqB,UAAWK,GACpD,EACDxD,GAAA,YAAA2B,GAAO,SAACzJ,GAAO,CACb,OAAA5X,EAAA,KAAKqf,EAAAkC,IAAM,MAAM,MAAQ3J,GAClB4G,EAAO,iBAAiBxe,EAAA,KAAKqf,EAAAkC,GAAK,EAAE,iBAAiB,OAAO,CAAC,CACrE,EAEHzrB,EAAQ,iBAAmBspB,GAC3B,MAAM+D,UAAyBnE,EAAc,iBAAkB,CAC7D,YAAY,CACV,cAAApd,GAAgB,WAAW,QAC5B,EAAG,GAAI,CACN,QACA,KAAK,UAAYA,EAClB,CACD,cAAc+I,GAAOC,GAAQ,CAC3B,MAAMwY,GAAS,KAAK,UAAU,cAAc,QAAQ,EACpD,OAAAA,GAAO,MAAQzY,GACfyY,GAAO,OAASxY,GACTwY,EACR,CACF,CACDttB,EAAQ,iBAAmBqtB,EAC3B,eAAeE,EAAUjqB,GAAKkqB,GAAe,GAAO,CAClD,GAAI1E,EAAgBxlB,GAAK,SAAS,OAAO,EAAG,CAC1C,MAAMyc,GAAW,MAAM,MAAMzc,EAAG,EAChC,GAAI,CAACyc,GAAS,GACZ,MAAM,IAAI,MAAMA,GAAS,UAAU,EAErC,OAAOyN,GAAe,IAAI,WAAW,MAAMzN,GAAS,YAAa,CAAA,KAAQ9J,EAAM,eAAe,MAAM8J,GAAS,KAAM,CAAA,CACpH,CACD,OAAO,IAAI,QAAQ,CAAClW,GAASC,KAAW,CACtC,MAAM2jB,GAAU,IAAI,eACpBA,GAAQ,KAAK,MAAOnqB,GAAK,EAAI,EACzBkqB,KACFC,GAAQ,aAAe,eAEzBA,GAAQ,mBAAqB,IAAM,CACjC,GAAIA,GAAQ,aAAe,eAAe,KAG1C,IAAIA,GAAQ,SAAW,KAAOA,GAAQ,SAAW,EAAG,CAClD,IAAI1jB,GAMJ,GALIyjB,IAAgBC,GAAQ,SAC1B1jB,GAAO,IAAI,WAAW0jB,GAAQ,QAAQ,EAC7B,CAACD,IAAgBC,GAAQ,eAClC1jB,MAAWkM,EAAM,eAAewX,GAAQ,YAAY,GAElD1jB,GAAM,CACRF,GAAQE,EAAI,EACZ,MACD,CACF,CACDD,GAAO,IAAI,MAAM2jB,GAAQ,UAAU,CAAC,EAC1C,EACIA,GAAQ,KAAK,IAAI,CACrB,CAAG,CACF,CACD,MAAMC,UAA6BxE,EAAc,qBAAsB,CACrE,WAAW5lB,GAAKqqB,GAAiB,CAC/B,OAAOJ,EAAUjqB,GAAK,KAAK,YAAY,EAAE,KAAKyG,KACrC,CACL,SAAUA,GACV,gBAAA4jB,EACR,EACK,CACF,CACF,CACD3tB,EAAQ,qBAAuB0tB,EAC/B,MAAME,UAAmC1E,EAAc,2BAA4B,CACjF,WAAW5lB,GAAK,CACd,OAAOiqB,EAAUjqB,GAAK,EAAI,CAC3B,CACF,CACDtD,EAAQ,2BAA6B4tB,EACrC,MAAMC,UAAsB3E,EAAc,cAAe,CACvD,WAAW5U,GAAM,CACf,OAAO,SAAS,gBAAgB6U,EAAQ7U,EAAI,CAC7C,CACF,CACDtU,EAAQ,cAAgB6tB,EACxB,MAAMC,CAAa,CACjB,YAAY,CACV,QAAAC,GACA,MAAAjf,GACA,SAAAC,GACA,QAAAC,GAAU,EACV,QAAAC,GAAU,EACV,SAAAC,GAAW,EACf,EAAK,CACD,KAAK,QAAU6e,GACf,KAAK,MAAQjf,GACb,KAAK,SAAWC,GAChB,KAAK,QAAUC,GACf,KAAK,QAAUC,GACf,MAAM+e,IAAWD,GAAQ,CAAC,EAAIA,GAAQ,CAAC,GAAK,EACtCE,IAAWF,GAAQ,CAAC,EAAIA,GAAQ,CAAC,GAAK,EAC5C,IAAIG,GAASC,GAASC,GAASC,GAK/B,OAJAtf,IAAY,IACRA,GAAW,IACbA,IAAY,KAENA,GAAQ,CACd,IAAK,KACHmf,GAAU,GACVC,GAAU,EACVC,GAAU,EACVC,GAAU,EACV,MACF,IAAK,IACHH,GAAU,EACVC,GAAU,EACVC,GAAU,EACVC,GAAU,EACV,MACF,IAAK,KACHH,GAAU,EACVC,GAAU,GACVC,GAAU,GACVC,GAAU,EACV,MACF,IAAK,GACHH,GAAU,EACVC,GAAU,EACVC,GAAU,EACVC,GAAU,GACV,MACF,QACE,MAAM,IAAI,MAAM,mEAAmE,CACtF,CACGnf,KACFkf,GAAU,CAACA,GACXC,GAAU,CAACA,IAEb,IAAIC,GAAeC,EACf1Z,EAAOC,GACPoZ,KAAY,GACdI,GAAgB,KAAK,IAAIL,GAAUF,GAAQ,CAAC,CAAC,EAAIjf,GAAQE,GACzDuf,EAAgB,KAAK,IAAIP,GAAUD,GAAQ,CAAC,CAAC,EAAIjf,GAAQG,GACzD4F,GAASkZ,GAAQ,CAAC,EAAIA,GAAQ,CAAC,GAAKjf,GACpCgG,IAAUiZ,GAAQ,CAAC,EAAIA,GAAQ,CAAC,GAAKjf,KAErCwf,GAAgB,KAAK,IAAIN,GAAUD,GAAQ,CAAC,CAAC,EAAIjf,GAAQE,GACzDuf,EAAgB,KAAK,IAAIN,GAAUF,GAAQ,CAAC,CAAC,EAAIjf,GAAQG,GACzD4F,GAASkZ,GAAQ,CAAC,EAAIA,GAAQ,CAAC,GAAKjf,GACpCgG,IAAUiZ,GAAQ,CAAC,EAAIA,GAAQ,CAAC,GAAKjf,IAEvC,KAAK,UAAY,CAACof,GAAUpf,GAAOqf,GAAUrf,GAAOsf,GAAUtf,GAAOuf,GAAUvf,GAAOwf,GAAgBJ,GAAUpf,GAAQkf,GAAUI,GAAUtf,GAAQmf,GAASM,EAAgBJ,GAAUrf,GAAQkf,GAAUK,GAAUvf,GAAQmf,EAAO,EAClO,KAAK,MAAQpZ,EACb,KAAK,OAASC,EACf,CACD,IAAI,SAAU,CACZ,KAAM,CACJ,QAAAiZ,EACD,EAAG,KACJ,SAAW9X,EAAM,QAAQ,KAAM,UAAW,CACxC,UAAW8X,GAAQ,CAAC,EAAIA,GAAQ,CAAC,EACjC,WAAYA,GAAQ,CAAC,EAAIA,GAAQ,CAAC,EAClC,MAAOA,GAAQ,CAAC,EAChB,MAAOA,GAAQ,CAAC,CACtB,CAAK,CACF,CACD,MAAM,CACJ,MAAAjf,GAAQ,KAAK,MACb,SAAAC,GAAW,KAAK,SAChB,QAAAC,GAAU,KAAK,QACf,QAAAC,GAAU,KAAK,QACf,SAAAC,GAAW,EACZ,EAAG,GAAI,CACN,OAAO,IAAI4e,EAAa,CACtB,QAAS,KAAK,QAAQ,MAAO,EAC7B,MAAAhf,GACA,SAAAC,GACA,QAAAC,GACA,QAAAC,GACA,SAAAC,EACN,CAAK,CACF,CACD,uBAAuB2K,GAAGC,GAAG,CAC3B,OAAO7D,EAAM,KAAK,eAAe,CAAC4D,GAAGC,EAAC,EAAG,KAAK,SAAS,CACxD,CACD,2BAA2BvS,GAAM,CAC/B,MAAMinB,GAAUvY,EAAM,KAAK,eAAe,CAAC1O,GAAK,CAAC,EAAGA,GAAK,CAAC,CAAC,EAAG,KAAK,SAAS,EACtEknB,GAAcxY,EAAM,KAAK,eAAe,CAAC1O,GAAK,CAAC,EAAGA,GAAK,CAAC,CAAC,EAAG,KAAK,SAAS,EAChF,MAAO,CAACinB,GAAQ,CAAC,EAAGA,GAAQ,CAAC,EAAGC,GAAY,CAAC,EAAGA,GAAY,CAAC,CAAC,CAC/D,CACD,kBAAkB5U,GAAGC,GAAG,CACtB,OAAO7D,EAAM,KAAK,sBAAsB,CAAC4D,GAAGC,EAAC,EAAG,KAAK,SAAS,CAC/D,CACF,CACD9Z,EAAQ,aAAe8tB,EACvB,MAAMY,UAAoCzY,EAAM,aAAc,CAC5D,YAAY9S,GAAKsS,GAAa,EAAG,CAC/B,MAAMtS,GAAK,6BAA6B,EACxC,KAAK,WAAasS,EACnB,CACF,CACDzV,EAAQ,4BAA8B0uB,EACtC,SAAS9F,EAAatlB,GAAK,CACzB,MAAM+F,GAAK/F,GAAI,OACf,IAAI0B,GAAI,EACR,KAAOA,GAAIqE,IAAM/F,GAAI0B,EAAC,EAAE,KAAM,IAAK,IACjCA,KAEF,OAAO1B,GAAI,UAAU0B,GAAGA,GAAI,CAAC,EAAE,YAAa,IAAK,OAClD,CACD,SAAS6jB,EAAU8F,GAAU,CAC3B,OAAO,OAAOA,IAAa,UAAY,UAAU,KAAKA,EAAQ,CAC/D,CACD,SAASnG,EAAmBllB,GAAKsrB,GAAgB,GAAO,CACtD,OAAKA,KACH,CAACtrB,EAAG,EAAIA,GAAI,MAAM,OAAQ,CAAC,GAEtBA,GAAI,UAAUA,GAAI,YAAY,GAAG,EAAI,CAAC,CAC9C,CACD,SAASmlB,EAAsBnlB,GAAKurB,GAAkB,eAAgB,CACpE,GAAI,OAAOvrB,IAAQ,SACjB,OAAOurB,GAET,GAAIjG,EAAatlB,EAAG,EAClB,SAAI2S,EAAM,MAAM,oEAAoE,EAC7E4Y,GAET,MAAMC,GAAQ,sDACRC,GAAa,gCACbC,GAAWF,GAAM,KAAKxrB,EAAG,EAC/B,IAAI2rB,GAAoBF,GAAW,KAAKC,GAAS,CAAC,CAAC,GAAKD,GAAW,KAAKC,GAAS,CAAC,CAAC,GAAKD,GAAW,KAAKC,GAAS,CAAC,CAAC,EACnH,GAAIC,KACFA,GAAoBA,GAAkB,CAAC,EACnCA,GAAkB,SAAS,GAAG,GAChC,GAAI,CACFA,GAAoBF,GAAW,KAAK,mBAAmBE,EAAiB,CAAC,EAAE,CAAC,CAC7E,MAAO,CAAE,CAGd,OAAOA,IAAqBJ,EAC7B,CACD,MAAMK,CAAU,CAAhB,cACE,aAAU,OAAO,OAAO,IAAI,EAC5B,WAAQ,CAAA,EACR,KAAKjrB,GAAM,CACLA,MAAQ,KAAK,YACXgS,EAAM,MAAM,gCAAgChS,EAAI,EAAE,EAExD,KAAK,QAAQA,EAAI,EAAI,KAAK,IAAG,CAC9B,CACD,QAAQA,GAAM,CACNA,MAAQ,KAAK,YACbgS,EAAM,MAAM,kCAAkChS,EAAI,EAAE,EAE1D,KAAK,MAAM,KAAK,CACd,KAAAA,GACA,MAAO,KAAK,QAAQA,EAAI,EACxB,IAAK,KAAK,IAAK,CACrB,CAAK,EACD,OAAO,KAAK,QAAQA,EAAI,CACzB,CACD,UAAW,CACT,MAAMkrB,GAAS,CAAA,EACf,IAAIC,GAAU,EACd,SAAW,CACT,KAAAnrB,EACN,IAAS,KAAK,MACRmrB,GAAU,KAAK,IAAInrB,GAAK,OAAQmrB,EAAO,EAEzC,SAAW,CACT,KAAAnrB,GACA,MAAA4nB,GACA,IAAA7d,EACN,IAAS,KAAK,MACRmhB,GAAO,KAAK,GAAGlrB,GAAK,OAAOmrB,EAAO,CAAC,IAAIphB,GAAM6d,EAAK;AAAA,CAAM,EAE1D,OAAOsD,GAAO,KAAK,EAAE,CACtB,CACF,CACDnvB,EAAQ,UAAYkvB,EACpB,SAASpG,EAAgBxlB,GAAKC,GAAS,CACrC,GAAI,CACF,KAAM,CACJ,SAAA8rB,EACN,EAAQ9rB,GAAU,IAAI,IAAID,GAAKC,EAAO,EAAI,IAAI,IAAID,EAAG,EACjD,OAAO+rB,KAAa,SAAWA,KAAa,QAChD,MAAU,CACN,MAAO,EACR,CACF,CACD,SAASrG,EAActK,GAAG,CACxBA,GAAE,eAAc,CACjB,CACD,SAASqK,EAAWve,GAAK8kB,GAAsB,GAAO,CACpD,OAAO,IAAI,QAAQ,CAACzlB,GAASC,KAAW,CACtC,MAAMylB,GAAS,SAAS,cAAc,QAAQ,EAC9CA,GAAO,IAAM/kB,GACb+kB,GAAO,OAAS,SAAUxb,GAAK,CACzBub,IACFC,GAAO,OAAM,EAEf1lB,GAAQkK,EAAG,CACjB,EACIwb,GAAO,QAAU,UAAY,CAC3BzlB,GAAO,IAAI,MAAM,0BAA0BylB,GAAO,GAAG,EAAE,CAAC,CAC9D,GACK,SAAS,MAAQ,SAAS,iBAAiB,OAAOA,EAAM,CAC7D,CAAG,CACF,CACD,SAASnH,EAAW/jB,GAAS,CAC3B,QAAQ,IAAI,yBAA2BA,EAAO,CAC/C,CACD,IAAImrB,EACJ,MAAMC,CAAc,CAClB,OAAO,aAAaC,GAAO,CACzB,GAAI,CAACA,IAAS,OAAOA,IAAU,SAC7B,OAAO,KAETF,MAAuB,IAAI,OAAO,0FAAiJ,GACnL,MAAMG,GAAUH,EAAmB,KAAKE,EAAK,EAC7C,GAAI,CAACC,GACH,OAAO,KAET,MAAMC,GAAO,SAASD,GAAQ,CAAC,EAAG,EAAE,EACpC,IAAIE,GAAQ,SAASF,GAAQ,CAAC,EAAG,EAAE,EACnCE,GAAQA,IAAS,GAAKA,IAAS,GAAKA,GAAQ,EAAI,EAChD,IAAIC,GAAM,SAASH,GAAQ,CAAC,EAAG,EAAE,EACjCG,GAAMA,IAAO,GAAKA,IAAO,GAAKA,GAAM,EACpC,IAAIC,GAAO,SAASJ,GAAQ,CAAC,EAAG,EAAE,EAClCI,GAAOA,IAAQ,GAAKA,IAAQ,GAAKA,GAAO,EACxC,IAAIC,GAAS,SAASL,GAAQ,CAAC,EAAG,EAAE,EACpCK,GAASA,IAAU,GAAKA,IAAU,GAAKA,GAAS,EAChD,IAAI5oB,GAAS,SAASuoB,GAAQ,CAAC,EAAG,EAAE,EACpCvoB,GAASA,IAAU,GAAKA,IAAU,GAAKA,GAAS,EAChD,MAAM6oB,GAAwBN,GAAQ,CAAC,GAAK,IAC5C,IAAIO,GAAa,SAASP,GAAQ,CAAC,EAAG,EAAE,EACxCO,GAAaA,IAAc,GAAKA,IAAc,GAAKA,GAAa,EAChE,IAAIC,GAAe,SAASR,GAAQ,CAAC,EAAG,EAAE,GAAK,EAC/C,OAAAQ,GAAeA,IAAgB,GAAKA,IAAgB,GAAKA,GAAe,EACpEF,KAA0B,KAC5BF,IAAQG,GACRF,IAAUG,IACDF,KAA0B,MACnCF,IAAQG,GACRF,IAAUG,IAEL,IAAI,KAAK,KAAK,IAAIP,GAAMC,GAAOC,GAAKC,GAAMC,GAAQ5oB,EAAM,CAAC,CACjE,CACF,CACDpH,EAAQ,cAAgByvB,EACxB,SAAS9G,EAAmByH,GAAS,CACnC,MAAAthB,GAAQ,EACR,SAAAC,GAAW,CACb,EAAG,CACD,KAAM,CACJ,MAAA8F,GACA,OAAAC,EACJ,EAAMsb,GAAQ,WAAW,MACjBrC,GAAU,CAAC,EAAG,EAAG,SAASlZ,EAAK,EAAG,SAASC,EAAM,CAAC,EACxD,OAAO,IAAIgZ,EAAa,CACtB,QAAAC,GACA,MAAAjf,GACA,SAAAC,EACJ,CAAG,CACF,CACD,SAAS2Z,EAAO5G,GAAO,CACrB,GAAIA,GAAM,WAAW,GAAG,EAAG,CACzB,MAAMuO,GAAW,SAASvO,GAAM,MAAM,CAAC,EAAG,EAAE,EAC5C,MAAO,EAAEuO,GAAW,WAAa,IAAKA,GAAW,QAAa,EAAGA,GAAW,GAAQ,CACrF,CACD,OAAIvO,GAAM,WAAW,MAAM,EAClBA,GAAM,MAAM,EAAG,EAAE,EAAE,MAAM,GAAG,EAAE,IAAIjI,IAAK,SAASA,EAAC,CAAC,EAEvDiI,GAAM,WAAW,OAAO,EACnBA,GAAM,MAAM,EAAG,EAAE,EAAE,MAAM,GAAG,EAAE,IAAIjI,IAAK,SAASA,EAAC,CAAC,EAAE,MAAM,EAAG,CAAC,MAEnE5D,EAAM,MAAM,8BAA8B6L,EAAK,GAAG,EAC/C,CAAC,EAAG,EAAG,CAAC,EAChB,CACD,SAASuG,EAAexG,GAAQ,CAC9B,MAAMyO,GAAO,SAAS,cAAc,MAAM,EAC1CA,GAAK,MAAM,WAAa,SACxB,SAAS,KAAK,OAAOA,EAAI,EACzB,UAAWrsB,MAAQ4d,GAAO,OAAQ,CAChCyO,GAAK,MAAM,MAAQrsB,GACnB,MAAMssB,GAAgB,OAAO,iBAAiBD,EAAI,EAAE,MACpDzO,GAAO,IAAI5d,GAAMykB,EAAO6H,EAAa,CAAC,CACvC,CACDD,GAAK,OAAM,CACZ,CACD,SAAShI,EAAoB9I,GAAK,CAChC,KAAM,CACJ,EAAAvY,GACA,EAAAhB,GACA,EAAAiB,GACA,EAAAP,GACA,EAAA+X,GACA,EAAA8R,EACJ,EAAMhR,GAAI,eACR,MAAO,CAACvY,GAAGhB,GAAGiB,GAAGP,GAAG+X,GAAG8R,EAAC,CACzB,CACD,SAASjI,EAA2B/I,GAAK,CACvC,KAAM,CACJ,EAAAvY,GACA,EAAAhB,GACA,EAAAiB,GACA,EAAAP,GACA,EAAA+X,GACA,EAAA8R,EACD,EAAGhR,GAAI,eAAe,aACvB,MAAO,CAACvY,GAAGhB,GAAGiB,GAAGP,GAAG+X,GAAG8R,EAAC,CACzB,CACD,SAASvH,EAAmBpN,GAAKvM,GAAUmhB,GAAW,GAAOC,GAAa,GAAM,CAC9E,GAAIphB,cAAoBwe,EAAc,CACpC,KAAM,CACJ,UAAA/U,GACA,WAAAC,EACN,EAAQ1J,GAAS,QACP,CACJ,MAAAiK,EACD,EAAGsC,GACE8U,GAAW1a,EAAM,YAAY,oBAC7BwH,GAAI,yBAAyB1E,EAAS,KAC1C2E,GAAI,yBAAyB1E,EAAU,KACnC4X,GAAWD,GAAW,SAASlT,EAAC,SAAW,QAAQA,EAAC,IACxDoT,GAAYF,GAAW,SAASjT,EAAC,SAAW,QAAQA,EAAC,IACnD,CAAC+S,IAAYnhB,GAAS,SAAW,MAAQ,GAC3CiK,GAAM,MAAQqX,GACdrX,GAAM,OAASsX,KAEftX,GAAM,MAAQsX,GACdtX,GAAM,OAASqX,GAElB,CACGF,IACF7U,GAAI,aAAa,qBAAsBvM,GAAS,QAAQ,CAE3D,CAEM,EAEA,CAACvP,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,4BAA8BA,EAAQ,eAAiBA,EAAQ,kBAAoBA,EAAQ,kBAAoBA,EAAQ,sBAAwB,OACvJ,IAAIiW,EAAQD,EAAoB,CAAC,EACjC,MAAM8a,CAAkB,CACtB,aAAc,CACR,KAAK,cAAgBA,MACnB7a,EAAM,aAAa,sCAAsC,CAEhE,CACD,UAAUqU,EAAM,CACd,MAAO,MACR,CACD,aAAac,EAASC,EAAS,CAC7B,MAAO,MACR,CACD,sBAAsBD,EAASC,EAASU,EAAYC,EAAY,CAC9D,MAAO,MACR,CACD,QAAQY,EAAU,GAAO,CAAE,CAC5B,CACD5sB,EAAQ,kBAAoB8wB,EAC5B,MAAMC,CAAkB,CACtB,aAAc,CACR,KAAK,cAAgBA,MACnB9a,EAAM,aAAa,sCAAsC,CAEhE,CACD,OAAOpB,EAAOC,EAAQ,CACpB,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAI,MAAM,qBAAqB,EAEvC,MAAMwY,EAAS,KAAK,cAAczY,EAAOC,CAAM,EAC/C,MAAO,CACL,OAAAwY,EACA,QAASA,EAAO,WAAW,IAAI,CACrC,CACG,CACD,MAAM0D,EAAkBnc,EAAOC,EAAQ,CACrC,GAAI,CAACkc,EAAiB,OACpB,MAAM,IAAI,MAAM,yBAAyB,EAE3C,GAAInc,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAI,MAAM,qBAAqB,EAEvCkc,EAAiB,OAAO,MAAQnc,EAChCmc,EAAiB,OAAO,OAASlc,CAClC,CACD,QAAQkc,EAAkB,CACxB,GAAI,CAACA,EAAiB,OACpB,MAAM,IAAI,MAAM,yBAAyB,EAE3CA,EAAiB,OAAO,MAAQ,EAChCA,EAAiB,OAAO,OAAS,EACjCA,EAAiB,OAAS,KAC1BA,EAAiB,QAAU,IAC5B,CACD,cAAcnc,EAAOC,EAAQ,IACvBmB,EAAM,aAAa,yCAAyC,CACjE,CACF,CACDjW,EAAQ,kBAAoB+wB,EAC5B,MAAME,CAAsB,CAC1B,YAAY,CACV,QAAA1tB,EAAU,KACV,aAAA2tB,EAAe,EACnB,EAAK,CACG,KAAK,cAAgBD,MACnBhb,EAAM,aAAa,0CAA0C,EAEnE,KAAK,QAAU1S,EACf,KAAK,aAAe2tB,CACrB,CACD,MAAM,MAAM,CACV,KAAAjtB,CACJ,EAAK,CACD,GAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,yHAA8H,EAEhJ,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,8BAA8B,EAEhD,MAAMX,EAAM,KAAK,QAAUW,GAAQ,KAAK,aAAe,SAAW,IAC5D0pB,EAAkB,KAAK,aAAe1X,EAAM,oBAAoB,OAASA,EAAM,oBAAoB,KACzG,OAAO,KAAK,WAAW3S,EAAKqqB,CAAe,EAAE,MAAM1jB,GAAU,CAC3D,MAAM,IAAI,MAAM,kBAAkB,KAAK,aAAe,UAAY,EAAE,YAAY3G,CAAG,EAAE,CAC3F,CAAK,CACF,CACD,WAAWA,EAAKqqB,EAAiB,IAC3B1X,EAAM,aAAa,sCAAsC,CAC9D,CACF,CACDjW,EAAQ,sBAAwBixB,EAChC,MAAME,EAA4B,CAChC,YAAY,CACV,QAAA5tB,EAAU,IACd,EAAK,CACG,KAAK,cAAgB4tB,OACnBlb,EAAM,aAAa,gDAAgD,EAEzE,KAAK,QAAU1S,CAChB,CACD,MAAM,MAAM,CACV,SAAAorB,CACJ,EAAK,CACD,GAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,2HAAgI,EAElJ,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,kCAAkC,EAEpD,MAAMrrB,EAAM,GAAG,KAAK,OAAO,GAAGqrB,CAAQ,GACtC,OAAO,KAAK,WAAWrrB,CAAG,EAAE,MAAM2G,GAAU,CAC1C,MAAM,IAAI,MAAM,gCAAgC3G,CAAG,EAAE,CAC3D,CAAK,CACF,CACD,WAAWA,EAAK,IACV2S,EAAM,aAAa,sCAAsC,CAC9D,CACF,CACDjW,EAAQ,4BAA8BmxB,GACtC,MAAMC,CAAe,CACnB,aAAc,CACR,KAAK,cAAgBA,MACnBnb,EAAM,aAAa,mCAAmC,CAE7D,CACD,OAAOpB,EAAOC,EAAQuc,EAAiB,GAAO,CAC5C,GAAIxc,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAI,MAAM,wBAAwB,EAE1C,MAAMyK,EAAM,KAAK,WAAW,SAAS,EACrC,OAAAA,EAAI,aAAa,UAAW,KAAK,EAC5B8R,IACH9R,EAAI,aAAa,QAAS,GAAG1K,CAAK,IAAI,EACtC0K,EAAI,aAAa,SAAU,GAAGzK,CAAM,IAAI,GAE1CyK,EAAI,aAAa,sBAAuB,MAAM,EAC9CA,EAAI,aAAa,UAAW,OAAO1K,CAAK,IAAIC,CAAM,EAAE,EAC7CyK,CACR,CACD,cAAcjL,EAAM,CAClB,GAAI,OAAOA,GAAS,SAClB,MAAM,IAAI,MAAM,0BAA0B,EAE5C,OAAO,KAAK,WAAWA,CAAI,CAC5B,CACD,WAAWA,EAAM,IACX2B,EAAM,aAAa,sCAAsC,CAC9D,CACF,CACDjW,EAAQ,eAAiBoxB,CAElB,EAEA,CAACrxB,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,eAAiB,OACzB,IAAIiW,EAAQD,EAAoB,CAAC,EACjC,MAAMsb,EAAO,WACPC,EAAY,WACZC,EAAW,MACjB,MAAMC,EAAe,CACnB,YAAYC,EAAM,CAChB,KAAK,GAAKA,EAAOA,EAAO,WAAaJ,EACrC,KAAK,GAAKI,EAAOA,EAAO,WAAaJ,CACtC,CACD,OAAO5B,EAAO,CACZ,IAAI3lB,EAAMlF,EACV,GAAI,OAAO6qB,GAAU,SAAU,CAC7B3lB,EAAO,IAAI,WAAW2lB,EAAM,OAAS,CAAC,EACtC7qB,EAAS,EACT,QAASG,EAAI,EAAGqE,EAAKqmB,EAAM,OAAQ1qB,EAAIqE,EAAIrE,IAAK,CAC9C,MAAMb,EAAOurB,EAAM,WAAW1qB,CAAC,EAC3Bb,GAAQ,IACV4F,EAAKlF,GAAQ,EAAIV,GAEjB4F,EAAKlF,GAAQ,EAAIV,IAAS,EAC1B4F,EAAKlF,GAAQ,EAAIV,EAAO,IAE3B,CACF,YAAc8R,EAAM,eAAeyZ,CAAK,EACvC3lB,EAAO2lB,EAAM,QACb7qB,EAASkF,EAAK,eAEd,OAAM,IAAI,MAAM,8EAAmF,EAErG,MAAM4nB,EAAc9sB,GAAU,EACxB+sB,EAAa/sB,EAAS8sB,EAAc,EACpCE,EAAa,IAAI,YAAY9nB,EAAK,OAAQ,EAAG4nB,CAAW,EAC9D,IAAIG,EAAK,EACPC,EAAK,EACHC,EAAK,KAAK,GACZC,EAAK,KAAK,GACZ,MAAMC,EAAK,WACTC,EAAK,UACDC,EAASF,EAAKV,EAClBa,EAASF,EAAKX,EAChB,QAASxsB,EAAI,EAAGA,EAAI2sB,EAAa3sB,IAC3BA,EAAI,GACN8sB,EAAKD,EAAW7sB,CAAC,EACjB8sB,EAAKA,EAAKI,EAAKX,EAAYO,EAAKM,EAASZ,EACzCM,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKK,EAAKZ,EAAYO,EAAKO,EAASb,EACzCQ,GAAMF,EACNE,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAK,EAAI,aAEdD,EAAKF,EAAW7sB,CAAC,EACjB+sB,EAAKA,EAAKG,EAAKX,EAAYQ,EAAKK,EAASZ,EACzCO,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKI,EAAKZ,EAAYQ,EAAKM,EAASb,EACzCS,GAAMF,EACNE,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAK,EAAI,YAIlB,OADAH,EAAK,EACGF,EAAU,CAChB,IAAK,GACHE,GAAM/nB,EAAK4nB,EAAc,EAAI,CAAC,GAAK,GACrC,IAAK,GACHG,GAAM/nB,EAAK4nB,EAAc,EAAI,CAAC,GAAK,EACrC,IAAK,GACHG,GAAM/nB,EAAK4nB,EAAc,CAAC,EAC1BG,EAAKA,EAAKI,EAAKX,EAAYO,EAAKM,EAASZ,EACzCM,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKK,EAAKZ,EAAYO,EAAKO,EAASb,EACrCG,EAAc,EAChBK,GAAMF,EAENG,GAAMH,CAEX,CACD,KAAK,GAAKE,EACV,KAAK,GAAKC,CACX,CACD,WAAY,CACV,IAAID,EAAK,KAAK,GACZC,EAAK,KAAK,GACZ,OAAAD,GAAMC,IAAO,EACbD,EAAKA,EAAK,WAAaT,EAAYS,EAAK,MAASR,EACjDS,EAAKA,EAAK,WAAaV,IAAcU,GAAM,GAAKD,IAAO,IAAM,WAAaT,KAAe,GACzFS,GAAMC,IAAO,EACbD,EAAKA,EAAK,UAAaT,EAAYS,EAAK,MAASR,EACjDS,EAAKA,EAAK,WAAaV,IAAcU,GAAM,GAAKD,IAAO,IAAM,WAAaT,KAAe,GACzFS,GAAMC,IAAO,GACLD,IAAO,GAAG,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,GAAKC,IAAO,GAAG,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAC1F,CACF,CACDjyB,EAAQ,eAAiByxB,EAElB,EAEA,CAAC1xB,EAAyBC,EAASgW,IAAwB,OAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,WAAaA,EAAQ,eAAiB,OAC9C,IAAIiW,EAAQD,EAAoB,CAAC,EACjC,MAAMsc,CAAW,CAEf,YAAY,CACV,cAAAxmB,EAAgB,WAAW,SAC3B,aAAAS,EAAe,IACnB,EAAK,CAJH5C,EAAA,KAAA4oB,EAAe,IAAI,KAKjB,KAAK,UAAYzmB,EACjB,KAAK,gBAAkB,IAAI,IAC3B,KAAK,aAAe,KACpB,KAAK,gBAAkB,GACvB,KAAK,eAAiB,CACvB,CACD,kBAAkB0mB,EAAgB,CAChC,KAAK,gBAAgB,IAAIA,CAAc,EACvC,KAAK,UAAU,MAAM,IAAIA,CAAc,CACxC,CACD,qBAAqBA,EAAgB,CACnC,KAAK,gBAAgB,OAAOA,CAAc,EAC1C,KAAK,UAAU,MAAM,OAAOA,CAAc,CAC3C,CACD,WAAWC,EAAM,CACV,KAAK,eACR,KAAK,aAAe,KAAK,UAAU,cAAc,OAAO,EACxD,KAAK,UAAU,gBAAgB,qBAAqB,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,YAAY,GAEzF,MAAMC,EAAa,KAAK,aAAa,MACrCA,EAAW,WAAWD,EAAMC,EAAW,SAAS,MAAM,CACvD,CACD,OAAQ,CACN,UAAWF,KAAkB,KAAK,gBAChC,KAAK,UAAU,MAAM,OAAOA,CAAc,EAE5C,KAAK,gBAAgB,QACrBtoB,EAAA,KAAKqoB,GAAa,QACd,KAAK,eACP,KAAK,aAAa,SAClB,KAAK,aAAe,KAEvB,CACD,MAAM,eAAehyB,EAAM,CACzB,GAAI,GAACA,GAAQ2J,EAAA,KAAKqoB,GAAa,IAAIhyB,EAAK,UAAU,GAIlD,OADI0V,EAAM,QAAQ,CAAC,KAAK,gBAAiB,mEAAmE,EACxG,KAAK,0BAA2B,CAClC,KAAM,CACJ,WAAA0c,EACA,IAAAnoB,EACA,MAAA+O,CACD,EAAGhZ,EACEqyB,EAAW,IAAI,SAASD,EAAYnoB,EAAK+O,CAAK,EACpD,KAAK,kBAAkBqZ,CAAQ,EAC/B,GAAI,CACF,MAAMA,EAAS,OACf1oB,EAAA,KAAKqoB,GAAa,IAAII,CAAU,CACxC,MAAc,IACF1c,EAAM,MAAM,4BAA4B1V,EAAK,YAAY,sDAAsD,EACnH,KAAK,qBAAqBqyB,CAAQ,CACnC,CACD,MACD,IACG3c,EAAM,aAAa,+DAA+D,EACvF,CACD,MAAM,KAAKvB,EAAM,CACf,GAAIA,EAAK,UAAYA,EAAK,aAAe,CAACA,EAAK,eAC7C,OAGF,GADAA,EAAK,SAAW,GACZA,EAAK,eAAgB,CACvB,MAAM,KAAK,eAAeA,EAAK,cAAc,EAC7C,MACD,CACD,GAAI,KAAK,0BAA2B,CAClC,MAAM8d,EAAiB9d,EAAK,uBAC5B,GAAI8d,EAAgB,CAClB,KAAK,kBAAkBA,CAAc,EACrC,GAAI,CACF,MAAMA,EAAe,MACtB,OAAQppB,EAAI,CACX,QAAI6M,EAAM,MAAM,wBAAwBuc,EAAe,MAAM,OAAOppB,CAAE,IAAI,EAC1EsL,EAAK,gBAAkB,GACjBtL,CACP,CACF,CACD,MACD,CACD,MAAMqpB,EAAO/d,EAAK,qBAClB,GAAI+d,EAAM,CAER,GADA,KAAK,WAAWA,CAAI,EAChB,KAAK,2BACP,OAEF,MAAM,IAAI,QAAQ5oB,GAAW,CAC3B,MAAM4jB,EAAU,KAAK,sBAAsB5jB,CAAO,EAClD,KAAK,sBAAsB6K,EAAM+Y,CAAO,CAChD,CAAO,CACF,CACF,CACD,IAAI,2BAA4B,OAC9B,MAAMoF,EAAW,CAAC,GAACltB,EAAA,KAAK,YAAL,MAAAA,EAAgB,OACnC,SAAWsQ,EAAM,QAAQ,KAAM,4BAA6B4c,CAAQ,CACrE,CACD,IAAI,4BAA6B,CAC/B,IAAIC,EAAY,GAChB,OAAI7c,EAAM,UAEC,OAAO,UAAc,KAAe,iCAAiC,KAAK,UAAU,SAAS,KACtG6c,EAAY,OAEH7c,EAAM,QAAQ,KAAM,6BAA8B6c,CAAS,CACvE,CACD,sBAAsBxd,EAAU,CAC9B,SAASyd,GAAkB,CAGzB,OAFI9c,EAAM,QAAQ,CAACwX,EAAQ,KAAM,2CAA2C,EAC5EA,EAAQ,KAAO,GACRuF,EAAgB,OAAS,GAAKA,EAAgB,CAAC,EAAE,MAAM,CAC5D,MAAMC,EAAeD,EAAgB,QACrC,WAAWC,EAAa,SAAU,CAAC,CACpC,CACF,CACD,KAAM,CACJ,gBAAAD,CACD,EAAG,KACEvF,EAAU,CACd,KAAM,GACN,SAAUsF,EACV,SAAAzd,CACN,EACI,OAAA0d,EAAgB,KAAKvF,CAAO,EACrBA,CACR,CACD,IAAI,eAAgB,CAClB,MAAMyF,EAAW,KAAK,09CAAmkD,EACzlD,SAAWjd,EAAM,QAAQ,KAAM,gBAAiBid,CAAQ,CACzD,CACD,sBAAsBxe,EAAM+Y,EAAS,CACnC,SAAS0F,EAAMppB,EAAMqpB,EAAQ,CAC3B,OAAOrpB,EAAK,WAAWqpB,CAAM,GAAK,GAAKrpB,EAAK,WAAWqpB,EAAS,CAAC,GAAK,GAAKrpB,EAAK,WAAWqpB,EAAS,CAAC,GAAK,EAAIrpB,EAAK,WAAWqpB,EAAS,CAAC,EAAI,GAC7I,CACD,SAASC,EAAaC,EAAGF,EAAQG,EAAQC,EAAQ,CAC/C,MAAMC,EAASH,EAAE,UAAU,EAAGF,CAAM,EAC9BM,GAASJ,EAAE,UAAUF,EAASG,CAAM,EAC1C,OAAOE,EAASD,EAASE,EAC1B,CACD,IAAI1uB,EAAGqE,EACP,MAAMikB,EAAS,KAAK,UAAU,cAAc,QAAQ,EACpDA,EAAO,MAAQ,EACfA,EAAO,OAAS,EAChB,MAAM9N,EAAM8N,EAAO,WAAW,IAAI,EAClC,IAAIqG,EAAS,EACb,SAASC,EAAY3vB,EAAMqR,EAAU,CACnC,GAAI,EAAEqe,EAAS,GAAI,IACb1d,EAAM,MAAM,8BAA8B,EAC9CX,IACA,MACD,CAID,GAHAkK,EAAI,KAAO,QAAUvb,EACrBub,EAAI,SAAS,IAAK,EAAG,EAAE,EACLA,EAAI,aAAa,EAAG,EAAG,EAAG,CAAC,EAC/B,KAAK,CAAC,EAAI,EAAG,CACzBlK,IACA,MACD,CACD,WAAWse,EAAY,KAAK,KAAM3vB,EAAMqR,CAAQ,CAAC,CAClD,CACD,MAAMue,EAAiB,KAAK,KAAK,IAAK,CAAA,GAAG,KAAK,gBAAgB,GAC9D,IAAI9pB,EAAO,KAAK,cAEhBA,EAAOspB,EAAatpB,EADG,IACmB8pB,EAAe,OAAQA,CAAc,EAC/E,MAAMC,EAAsB,GACtBC,EAAa,WACnB,IAAIC,EAAWb,EAAMppB,EAAM+pB,CAAmB,EAC9C,IAAK9uB,EAAI,EAAGqE,EAAKwqB,EAAe,OAAS,EAAG7uB,EAAIqE,EAAIrE,GAAK,EACvDgvB,EAAWA,EAAWD,EAAaZ,EAAMU,EAAgB7uB,CAAC,EAAI,EAE5DA,EAAI6uB,EAAe,SACrBG,EAAWA,EAAWD,EAAaZ,EAAMU,EAAiB,MAAO7uB,CAAC,EAAI,GAExE+E,EAAOspB,EAAatpB,EAAM+pB,EAAqB,KAAO7d,EAAM,UAAU+d,CAAQ,CAAC,EAC/E,MAAM1wB,EAAM,iCAAiC,KAAKyG,CAAI,CAAC,KACjD0oB,EAAO,4BAA4BoB,CAAc,SAASvwB,CAAG,IACnE,KAAK,WAAWmvB,CAAI,EACpB,MAAM5W,EAAM,KAAK,UAAU,cAAc,KAAK,EAC9CA,EAAI,MAAM,WAAa,SACvBA,EAAI,MAAM,MAAQA,EAAI,MAAM,OAAS,OACrCA,EAAI,MAAM,SAAW,WACrBA,EAAI,MAAM,IAAMA,EAAI,MAAM,KAAO,MACjC,UAAW5X,IAAQ,CAACyQ,EAAK,WAAYmf,CAAc,EAAG,CACpD,MAAMvD,EAAO,KAAK,UAAU,cAAc,MAAM,EAChDA,EAAK,YAAc,KACnBA,EAAK,MAAM,WAAarsB,EACxB4X,EAAI,OAAOyU,CAAI,CAChB,CACD,KAAK,UAAU,KAAK,OAAOzU,CAAG,EAC9B+X,EAAYC,EAAgB,IAAM,CAChChY,EAAI,OAAM,EACV4R,EAAQ,SAAQ,CACtB,CAAK,CACF,CACF,CAtMC8E,EAAA,YAuMFvyB,EAAQ,WAAasyB,EACrB,MAAM2B,CAAe,CACnB,YAAYC,EAAgB,CAC1B,gBAAA1uB,EAAkB,GAClB,gBAAAmG,EAAkB,GAClB,aAAAJ,EAAe,GACf,YAAAkJ,EAAc,IAClB,EAAK,CACD,KAAK,eAAiB,OAAO,OAAO,IAAI,EACxC,UAAWzP,KAAKkvB,EACd,KAAKlvB,CAAC,EAAIkvB,EAAelvB,CAAC,EAE5B,KAAK,gBAAkBQ,IAAoB,GAC3C,KAAK,gBAAkBmG,IAAoB,GAC3C,KAAK,aAAeJ,IAAiB,GACrC,KAAK,aAAekJ,CACrB,CACD,sBAAuB,OACrB,GAAI,CAAC,KAAK,MAAQ,KAAK,gBACrB,OAAO,KAET,IAAI+d,EACJ,GAAI,CAAC,KAAK,YACRA,EAAiB,IAAI,SAAS,KAAK,WAAY,KAAK,KAAM,CAAA,CAAE,MACvD,CACL,MAAM2B,EAAM,CACV,OAAQ,KAAK,YAAY,UACjC,EACU,KAAK,YAAY,cACnBA,EAAI,MAAQ,WAAW,KAAK,YAAY,WAAW,OAErD3B,EAAiB,IAAI,SAAS,KAAK,YAAY,WAAY,KAAK,KAAM2B,CAAG,CAC1E,CACD,OAAAxuB,EAAA,KAAK,eAAL,MAAAA,EAAA,UAAoB,MACb6sB,CACR,CACD,oBAAqB,OACnB,GAAI,CAAC,KAAK,MAAQ,KAAK,gBACrB,OAAO,KAET,MAAMzoB,KAAWkM,EAAM,eAAe,KAAK,IAAI,EACzC3S,EAAM,YAAY,KAAK,QAAQ,WAAW,KAAKyG,CAAI,CAAC,KAC1D,IAAI0oB,EACJ,GAAI,CAAC,KAAK,YACRA,EAAO,4BAA4B,KAAK,UAAU,SAASnvB,CAAG,QACzD,CACL,IAAI6wB,EAAM,gBAAgB,KAAK,YAAY,UAAU,IACjD,KAAK,YAAY,cACnBA,GAAO,uBAAuB,KAAK,YAAY,WAAW,QAE5D1B,EAAO,4BAA4B,KAAK,YAAY,UAAU,KAAK0B,CAAG,OAAO7wB,CAAG,GACjF,CACD,OAAAqC,EAAA,KAAK,eAAL,MAAAA,EAAA,UAAoB,KAAMrC,GACnBmvB,CACR,CACD,iBAAiB7c,EAAMwe,EAAW,CAChC,GAAI,KAAK,eAAeA,CAAS,IAAM,OACrC,OAAO,KAAK,eAAeA,CAAS,EAEtC,IAAIC,EACJ,GAAI,CACFA,EAAOze,EAAK,IAAI,KAAK,WAAa,SAAWwe,CAAS,CACvD,OAAQhrB,EAAI,CACX,GAAI,CAAC,KAAK,aACR,MAAMA,EAER,SAAI6M,EAAM,MAAM,2CAA2C7M,CAAE,IAAI,EAC1D,KAAK,eAAegrB,CAAS,EAAI,SAAUltB,EAAG0Y,EAAM,EAC5D,CACD,GAAI,KAAK,iBAAmB3J,EAAM,YAAY,gBAAiB,CAC7D,MAAMqe,EAAQ,CAAA,EACd,UAAWC,KAAWF,EAAM,CAC1B,MAAM3S,EAAO6S,EAAQ,OAAS,OAAYA,EAAQ,KAAK,KAAK,GAAG,EAAI,GACnED,EAAM,KAAK,KAAMC,EAAQ,IAAK,IAAK7S,EAAM;AAAA,CAAM,CAChD,CACD,OAAO,KAAK,eAAe0S,CAAS,EAAI,IAAI,SAAS,IAAK,OAAQE,EAAM,KAAK,EAAE,CAAC,CACjF,CACD,OAAO,KAAK,eAAeF,CAAS,EAAI,SAAUltB,EAAG0Y,EAAM,CACzD,UAAW2U,KAAWF,EAChBE,EAAQ,MAAQ,UAClBA,EAAQ,KAAO,CAAC3U,EAAM,CAACA,CAAI,GAE7B1Y,EAAEqtB,EAAQ,GAAG,EAAE,MAAMrtB,EAAGqtB,EAAQ,IAAI,CAE5C,CACG,CACF,CACDv0B,EAAQ,eAAiBi0B,CAElB,EAEA,CAACl0B,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,4BAA8BA,EAAQ,kBAAoBA,EAAQ,kBAAoBA,EAAQ,sBAAwB,OAC9H,IAAIkpB,EAAgBlT,EAAoB,CAAC,EAC7BA,EAAoB,CAAC,EAGjC,MAAMuX,EAAY,SAAUjqB,EAAK,CAC/B,OAAO,IAAI,QAAQ,CAACuG,EAASC,IAAW,CAC3B0qB,WACR,SAASlxB,EAAK,CAAC4M,EAAOnG,IAAS,CAChC,GAAImG,GAAS,CAACnG,EAAM,CAClBD,EAAO,IAAI,MAAMoG,CAAK,CAAC,EACvB,MACD,CACDrG,EAAQ,IAAI,WAAWE,CAAI,CAAC,CAClC,CAAK,CACL,CAAG,CACH,EACA,MAAM0qB,UAA0BvL,EAAc,iBAAkB,CAAE,CAClElpB,EAAQ,kBAAoBy0B,EAC5B,MAAMC,UAA0BxL,EAAc,iBAAkB,CAC9D,cAAcrU,EAAOC,EAAQ,CAE3B,OADe6f,WACD,aAAa9f,EAAOC,CAAM,CACzC,CACF,CACD9U,EAAQ,kBAAoB00B,EAC5B,MAAME,WAA8B1L,EAAc,qBAAsB,CACtE,WAAW5lB,EAAKqqB,EAAiB,CAC/B,OAAOJ,EAAUjqB,CAAG,EAAE,KAAKyG,IAClB,CACL,SAAUA,EACV,gBAAA4jB,CACR,EACK,CACF,CACF,CACD3tB,EAAQ,sBAAwB40B,GAChC,MAAMC,UAAoC3L,EAAc,2BAA4B,CAClF,WAAW5lB,EAAK,CACd,OAAOiqB,EAAUjqB,CAAG,CACrB,CACF,CACDtD,EAAQ,4BAA8B60B,CAE/B,EAEA,CAAC90B,EAAyBC,EAASgW,IAAwB,gBAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,eAAiB,OACzB,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EACtC8e,EAAkB9e,EAAoB,EAAE,EACxC+e,EAAe/e,EAAoB,EAAE,EACzC,MAAMgf,GAAgB,GAChBC,EAAgB,IAChBC,EAAiB,KACjBC,EAAiB,GACjBC,EAAkB,GAClBC,EAAsB,IACtBC,EAAoB,GAC1B,SAASC,EAAwB/V,EAAKgW,EAAS,CAC7C,GAAIhW,EAAI,iBACN,MAAM,IAAI,MAAM,2CAA2C,EAE7DA,EAAI,eAAiBA,EAAI,KACzBA,EAAI,kBAAoBA,EAAI,QAC5BA,EAAI,iBAAmBA,EAAI,OAC3BA,EAAI,gBAAkBA,EAAI,MAC1BA,EAAI,oBAAsBA,EAAI,UAC9BA,EAAI,oBAAsBA,EAAI,UAC9BA,EAAI,uBAAyBA,EAAI,aACjCA,EAAI,yBAA2BA,EAAI,eACnCA,EAAI,eAAiBA,EAAI,KACzBA,EAAI,iBAAmBA,EAAI,OAC3BA,EAAI,iBAAmBA,EAAI,OAC3BA,EAAI,wBAA0BA,EAAI,cAClCA,EAAI,eAAiBA,EAAI,KACzBA,EAAI,oBAAsBA,EAAI,UAC9BA,EAAI,oBAAsBA,EAAI,UAC9BA,EAAI,iBAAmB,IAAM,CAC3BA,EAAI,KAAOA,EAAI,eACfA,EAAI,QAAUA,EAAI,kBAClBA,EAAI,OAASA,EAAI,iBACjBA,EAAI,MAAQA,EAAI,gBAChBA,EAAI,UAAYA,EAAI,oBACpBA,EAAI,UAAYA,EAAI,oBACpBA,EAAI,aAAeA,EAAI,uBACvBA,EAAI,eAAiBA,EAAI,yBACzBA,EAAI,KAAOA,EAAI,eACfA,EAAI,OAASA,EAAI,iBACjBA,EAAI,OAASA,EAAI,iBACjBA,EAAI,cAAgBA,EAAI,wBACxBA,EAAI,KAAOA,EAAI,eACfA,EAAI,UAAYA,EAAI,oBACpBA,EAAI,UAAYA,EAAI,oBACpB,OAAOA,EAAI,gBACf,EACEA,EAAI,KAAO,UAAmB,CAC5BgW,EAAQ,KAAI,EACZ,KAAK,eAAc,CACvB,EACEhW,EAAI,QAAU,UAAsB,CAClCgW,EAAQ,QAAO,EACf,KAAK,kBAAiB,CAC1B,EACEhW,EAAI,UAAY,SAAsB3F,EAAGC,EAAG,CAC1C0b,EAAQ,UAAU3b,EAAGC,CAAC,EACtB,KAAK,oBAAoBD,EAAGC,CAAC,CACjC,EACE0F,EAAI,MAAQ,SAAkB3F,EAAGC,EAAG,CAClC0b,EAAQ,MAAM3b,EAAGC,CAAC,EAClB,KAAK,gBAAgBD,EAAGC,CAAC,CAC7B,EACE0F,EAAI,UAAY,SAAsB,EAAGvZ,EAAGiB,EAAGP,EAAG+X,EAAG8R,EAAG,CACtDgF,EAAQ,UAAU,EAAGvvB,EAAGiB,EAAGP,EAAG+X,EAAG8R,CAAC,EAClC,KAAK,oBAAoB,EAAGvqB,EAAGiB,EAAGP,EAAG+X,EAAG8R,CAAC,CAC7C,EACEhR,EAAI,aAAe,SAAyB,EAAGvZ,EAAGiB,EAAGP,EAAG+X,EAAG8R,EAAG,CAC5DgF,EAAQ,aAAa,EAAGvvB,EAAGiB,EAAGP,EAAG+X,EAAG8R,CAAC,EACrC,KAAK,uBAAuB,EAAGvqB,EAAGiB,EAAGP,EAAG+X,EAAG8R,CAAC,CAChD,EACEhR,EAAI,eAAiB,UAA6B,CAChDgW,EAAQ,eAAc,EACtB,KAAK,yBAAwB,CACjC,EACEhW,EAAI,OAAS,SAAmB9D,EAAO,CACrC8Z,EAAQ,OAAO9Z,CAAK,EACpB,KAAK,iBAAiBA,CAAK,CAC/B,EACE8D,EAAI,KAAO,SAAmBiT,EAAM,CAClC+C,EAAQ,KAAK/C,CAAI,EACjB,KAAK,eAAeA,CAAI,CAC5B,EACEjT,EAAI,OAAS,SAAU3F,EAAGC,EAAG,CAC3B0b,EAAQ,OAAO3b,EAAGC,CAAC,EACnB,KAAK,iBAAiBD,EAAGC,CAAC,CAC9B,EACE0F,EAAI,OAAS,SAAU3F,EAAGC,EAAG,CAC3B0b,EAAQ,OAAO3b,EAAGC,CAAC,EACnB,KAAK,iBAAiBD,EAAGC,CAAC,CAC9B,EACE0F,EAAI,cAAgB,SAAUiW,EAAMC,EAAMC,EAAMC,EAAM/b,EAAGC,EAAG,CAC1D0b,EAAQ,cAAcC,EAAMC,EAAMC,EAAMC,EAAM/b,EAAGC,CAAC,EAClD,KAAK,wBAAwB2b,EAAMC,EAAMC,EAAMC,EAAM/b,EAAGC,CAAC,CAC7D,EACE0F,EAAI,KAAO,SAAU3F,EAAGC,EAAGjF,EAAOC,EAAQ,CACxC0gB,EAAQ,KAAK3b,EAAGC,EAAGjF,EAAOC,CAAM,EAChC,KAAK,eAAe+E,EAAGC,EAAGjF,EAAOC,CAAM,CAC3C,EACE0K,EAAI,UAAY,UAAY,CAC1BgW,EAAQ,UAAS,EACjB,KAAK,oBAAmB,CAC5B,EACEhW,EAAI,UAAY,UAAY,CAC1BgW,EAAQ,UAAS,EACjB,KAAK,oBAAmB,CAC5B,CACC,CACD,MAAMK,CAAe,CACnB,YAAYxpB,EAAe,CACzB,KAAK,cAAgBA,EACrB,KAAK,MAAQ,OAAO,OAAO,IAAI,CAChC,CACD,UAAUiC,EAAIuG,EAAOC,EAAQ,CAC3B,IAAIghB,EACJ,OAAI,KAAK,MAAMxnB,CAAE,IAAM,QACrBwnB,EAAc,KAAK,MAAMxnB,CAAE,EAC3B,KAAK,cAAc,MAAMwnB,EAAajhB,EAAOC,CAAM,IAEnDghB,EAAc,KAAK,cAAc,OAAOjhB,EAAOC,CAAM,EACrD,KAAK,MAAMxG,CAAE,EAAIwnB,GAEZA,CACR,CACD,OAAOxnB,EAAI,CACT,OAAO,KAAK,MAAMA,CAAE,CACrB,CACD,OAAQ,CACN,UAAWA,KAAM,KAAK,MAAO,CAC3B,MAAMwnB,EAAc,KAAK,MAAMxnB,CAAE,EACjC,KAAK,cAAc,QAAQwnB,CAAW,EACtC,OAAO,KAAK,MAAMxnB,CAAE,CACrB,CACF,CACF,CACD,SAASynB,EAAyBvW,EAAKwW,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,GAAO,CACjG,KAAM,CAACvvB,GAAGhB,GAAGiB,GAAGP,GAAGoT,GAAIC,EAAE,KAAQ1C,EAAe,qBAAqBkI,CAAG,EACxE,GAAIvZ,KAAM,GAAKiB,KAAM,EAAG,CACtB,MAAMuvB,GAAMJ,EAAQpvB,GAAI8S,GAClB2c,GAAO,KAAK,MAAMD,EAAG,EACrBE,GAAML,EAAQ3vB,GAAIqT,GAClB4c,GAAO,KAAK,MAAMD,EAAG,EACrBE,IAAOR,EAAQE,GAAStvB,GAAI8S,GAC5B+c,GAAS,KAAK,IAAI,KAAK,MAAMD,EAAG,EAAIH,EAAI,GAAK,EAC7CK,IAAOT,EAAQE,IAAS7vB,GAAIqT,GAC5Bgd,GAAU,KAAK,IAAI,KAAK,MAAMD,EAAG,EAAIH,EAAI,GAAK,EACpD,OAAApX,EAAI,aAAa,KAAK,KAAKvY,EAAC,EAAG,EAAG,EAAG,KAAK,KAAKN,EAAC,EAAG+vB,GAAME,EAAI,EAC7DpX,EAAI,UAAUwW,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGU,GAAQE,EAAO,EACnExX,EAAI,aAAavY,GAAGhB,GAAGiB,GAAGP,GAAGoT,GAAIC,EAAE,EAC5B,CAAC8c,GAAQE,EAAO,CACxB,CACD,GAAI/vB,KAAM,GAAKN,KAAM,EAAG,CACtB,MAAM8vB,GAAMH,EAAQpvB,GAAI6S,GAClB2c,GAAO,KAAK,MAAMD,EAAG,EACrBE,GAAMN,EAAQpwB,GAAI+T,GAClB4c,GAAO,KAAK,MAAMD,EAAG,EACrBE,IAAOP,EAAQE,IAAStvB,GAAI6S,GAC5B+c,GAAS,KAAK,IAAI,KAAK,MAAMD,EAAG,EAAIH,EAAI,GAAK,EAC7CK,IAAOV,EAAQE,GAAStwB,GAAI+T,GAC5Bgd,GAAU,KAAK,IAAI,KAAK,MAAMD,EAAG,EAAIH,EAAI,GAAK,EACpD,OAAApX,EAAI,aAAa,EAAG,KAAK,KAAKvZ,EAAC,EAAG,KAAK,KAAKiB,EAAC,EAAG,EAAGwvB,GAAME,EAAI,EAC7DpX,EAAI,UAAUwW,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGY,GAASF,EAAM,EACnEtX,EAAI,aAAavY,GAAGhB,GAAGiB,GAAGP,GAAGoT,GAAIC,EAAE,EAC5B,CAACgd,GAASF,EAAM,CACxB,CACDtX,EAAI,UAAUwW,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,EAAK,EACxE,MAAMS,GAAS,KAAK,MAAMhwB,GAAGhB,EAAC,EACxBixB,GAAS,KAAK,MAAMhwB,GAAGP,EAAC,EAC9B,MAAO,CAACswB,GAASV,EAAOW,GAASV,EAAK,CACvC,CACD,SAASW,EAAkBC,EAAS,CAClC,KAAM,CACJ,MAAAviB,EACA,OAAAC,CACD,EAAGsiB,EACJ,GAAIviB,EAAQwgB,GAAuBvgB,EAASugB,EAC1C,OAAO,KAET,MAAMgC,EAAyB,IACzBC,EAAc,IAAI,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,EAC9EC,EAAS1iB,EAAQ,EACvB,IAAI2iB,EAAS,IAAI,WAAWD,GAAUziB,EAAS,EAAE,EAC7C9P,EAAG6D,EAAG4uB,GACV,MAAMC,GAAW7iB,EAAQ,EAAI,GAC7B,IAAI9K,GAAO,IAAI,WAAW2tB,GAAW5iB,CAAM,EACzC6iB,GAAM,EACR,UAAWC,MAAQR,EAAQ,KAAM,CAC/B,IAAIS,GAAO,IACX,KAAOA,GAAO,GACZ9tB,GAAK4tB,IAAK,EAAIC,GAAOC,GAAO,EAAI,IAChCA,KAAS,CAEZ,CACD,IAAIC,GAAQ,EAMZ,IALAH,GAAM,EACF5tB,GAAK4tB,EAAG,IAAM,IAChBH,EAAO,CAAC,EAAI,EACZ,EAAEM,IAECjvB,EAAI,EAAGA,EAAIgM,EAAOhM,IACjBkB,GAAK4tB,EAAG,IAAM5tB,GAAK4tB,GAAM,CAAC,IAC5BH,EAAO3uB,CAAC,EAAIkB,GAAK4tB,EAAG,EAAI,EAAI,EAC5B,EAAEG,IAEJH,KAMF,IAJI5tB,GAAK4tB,EAAG,IAAM,IAChBH,EAAO3uB,CAAC,EAAI,EACZ,EAAEivB,IAEC9yB,EAAI,EAAGA,EAAI8P,EAAQ9P,IAAK,CAC3B2yB,GAAM3yB,EAAI0yB,GACVD,GAAKzyB,EAAIuyB,EACLxtB,GAAK4tB,GAAMD,EAAQ,IAAM3tB,GAAK4tB,EAAG,IACnCH,EAAOC,EAAE,EAAI1tB,GAAK4tB,EAAG,EAAI,EAAI,EAC7B,EAAEG,IAEJ,IAAIC,IAAOhuB,GAAK4tB,EAAG,EAAI,EAAI,IAAM5tB,GAAK4tB,GAAMD,EAAQ,EAAI,EAAI,GAC5D,IAAK7uB,EAAI,EAAGA,EAAIgM,EAAOhM,IACrBkvB,IAAOA,IAAO,IAAMhuB,GAAK4tB,GAAM,CAAC,EAAI,EAAI,IAAM5tB,GAAK4tB,GAAMD,GAAW,CAAC,EAAI,EAAI,GACzEJ,EAAYS,EAAG,IACjBP,EAAOC,GAAK5uB,CAAC,EAAIyuB,EAAYS,EAAG,EAChC,EAAED,IAEJH,KAMF,GAJI5tB,GAAK4tB,GAAMD,EAAQ,IAAM3tB,GAAK4tB,EAAG,IACnCH,EAAOC,GAAK5uB,CAAC,EAAIkB,GAAK4tB,EAAG,EAAI,EAAI,EACjC,EAAEG,IAEAA,GAAQT,EACV,OAAO,IAEV,CAOD,IANAM,GAAMD,IAAY5iB,EAAS,GAC3B2iB,GAAKzyB,EAAIuyB,EACLxtB,GAAK4tB,EAAG,IAAM,IAChBH,EAAOC,EAAE,EAAI,EACb,EAAEK,IAECjvB,EAAI,EAAGA,EAAIgM,EAAOhM,IACjBkB,GAAK4tB,EAAG,IAAM5tB,GAAK4tB,GAAM,CAAC,IAC5BH,EAAOC,GAAK5uB,CAAC,EAAIkB,GAAK4tB,EAAG,EAAI,EAAI,EACjC,EAAEG,IAEJH,KAMF,GAJI5tB,GAAK4tB,EAAG,IAAM,IAChBH,EAAOC,GAAK5uB,CAAC,EAAI,EACjB,EAAEivB,IAEAA,GAAQT,EACV,OAAO,KAET,MAAMW,GAAQ,IAAI,WAAW,CAAC,EAAGT,EAAQ,GAAI,EAAG,CAACA,EAAQ,EAAG,EAAG,EAAG,CAAC,CAAC,EAC9DU,GAAO,IAAI,OACjB,IAAKjzB,EAAI,EAAG8yB,IAAS9yB,GAAK8P,EAAQ9P,IAAK,CACrC,IAAIuB,GAAIvB,EAAIuyB,EACZ,MAAMvpB,GAAMzH,GAAIsO,EAChB,KAAOtO,GAAIyH,IAAO,CAACwpB,EAAOjxB,EAAC,GACzBA,KAEF,GAAIA,KAAMyH,GACR,SAEFiqB,GAAK,OAAO1xB,GAAIgxB,EAAQvyB,CAAC,EACzB,MAAMkzB,GAAK3xB,GACX,IAAI+N,GAAOkjB,EAAOjxB,EAAC,EACnB,EAAG,CACD,MAAMgmB,GAAOyL,GAAM1jB,EAAI,EACvB,GACE/N,IAAKgmB,SACE,CAACiL,EAAOjxB,EAAC,GAClB,MAAM4xB,GAAKX,EAAOjxB,EAAC,EACf4xB,KAAO,GAAKA,KAAO,IACrB7jB,GAAO6jB,GACPX,EAAOjxB,EAAC,EAAI,IAEZ+N,GAAO6jB,GAAK,GAAO7jB,IAAQ,EAC3BkjB,EAAOjxB,EAAC,GAAK+N,IAAQ,EAAIA,IAAQ,GAEnC2jB,GAAK,OAAO1xB,GAAIgxB,EAAQhxB,GAAIgxB,EAAS,CAAC,EACjCC,EAAOjxB,EAAC,GACX,EAAEuxB,EAEV,OAAaI,KAAO3xB,IAChB,EAAEvB,CACH,CACD,OAAA+E,GAAO,KACPytB,EAAS,KACW,SAAUtwB,GAAG,CAC/BA,GAAE,KAAI,EACNA,GAAE,MAAM,EAAI2N,EAAO,GAAKC,CAAM,EAC9B5N,GAAE,UAAU,EAAG,CAAC4N,CAAM,EACtB5N,GAAE,KAAK+wB,EAAI,EACX/wB,GAAE,UAAS,EACXA,GAAE,QAAO,CACb,CAEC,CACD,MAAMkxB,CAAiB,CACrB,YAAYvjB,EAAOC,EAAQ,CACzB,KAAK,aAAe,GACpB,KAAK,SAAW,EAChB,KAAK,cAAgB,EACrB,KAAK,WAAamB,EAAM,gBACxB,KAAK,gBAAkB,EACvB,KAAK,WAAaA,EAAM,qBACxB,KAAK,QAAU,EACf,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,YAAc,EACnB,KAAK,YAAc,EACnB,KAAK,WAAa,EAClB,KAAK,kBAAoBA,EAAM,kBAAkB,KACjD,KAAK,SAAW,EAChB,KAAK,UAAY,UACjB,KAAK,YAAc,UACnB,KAAK,YAAc,GACnB,KAAK,UAAY,EACjB,KAAK,YAAc,EACnB,KAAK,UAAY,EACjB,KAAK,YAAc,KACnB,KAAK,aAAe,OACpB,KAAK,uBAAuB,CAAC,EAAG,EAAGpB,EAAOC,CAAM,CAAC,CAClD,CACD,OAAQ,CACN,MAAMsC,EAAQ,OAAO,OAAO,IAAI,EAChC,OAAAA,EAAM,QAAU,KAAK,QAAQ,MAAK,EAC3BA,CACR,CACD,gBAAgByC,EAAGC,EAAG,CACpB,KAAK,EAAID,EACT,KAAK,EAAIC,CACV,CACD,iBAAiB5T,EAAW2T,EAAGC,EAAG,CAChC,CAACD,EAAGC,CAAC,EAAI7D,EAAM,KAAK,eAAe,CAAC4D,EAAGC,CAAC,EAAG5T,CAAS,EACpD,KAAK,KAAO,KAAK,IAAI,KAAK,KAAM2T,CAAC,EACjC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMC,CAAC,EACjC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMD,CAAC,EACjC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMC,CAAC,CAClC,CACD,iBAAiB5T,EAAWqB,EAAM,CAChC,MAAMX,EAAKqP,EAAM,KAAK,eAAe1O,EAAMrB,CAAS,EAC9CW,EAAKoP,EAAM,KAAK,eAAe1O,EAAK,MAAM,CAAC,EAAGrB,CAAS,EAC7D,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMU,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,EAC5C,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMD,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,EAC5C,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMD,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,EAC5C,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMD,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,CAC7C,CACD,wBAAwBX,EAAWC,EAAQ,CACzC8P,EAAM,KAAK,YAAY/P,EAAWC,CAAM,EACxC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMA,EAAO,CAAC,CAAC,EACzC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMA,EAAO,CAAC,CAAC,EACzC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMA,EAAO,CAAC,CAAC,EACzC,KAAK,KAAO,KAAK,IAAI,KAAK,KAAMA,EAAO,CAAC,CAAC,CAC1C,CACD,sBAAsBD,EAAW4B,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIlC,GAAQ,CACvE,MAAMkyB,GAAMpiB,EAAM,KAAK,kBAAkBnO,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAE,EACvE,GAAIlC,GAAQ,CACVA,GAAO,CAAC,EAAI,KAAK,IAAIA,GAAO,CAAC,EAAGkyB,GAAI,CAAC,EAAGA,GAAI,CAAC,CAAC,EAC9ClyB,GAAO,CAAC,EAAI,KAAK,IAAIA,GAAO,CAAC,EAAGkyB,GAAI,CAAC,EAAGA,GAAI,CAAC,CAAC,EAC9ClyB,GAAO,CAAC,EAAI,KAAK,IAAIA,GAAO,CAAC,EAAGkyB,GAAI,CAAC,EAAGA,GAAI,CAAC,CAAC,EAC9ClyB,GAAO,CAAC,EAAI,KAAK,IAAIA,GAAO,CAAC,EAAGkyB,GAAI,CAAC,EAAGA,GAAI,CAAC,CAAC,EAC9C,MACD,CACD,KAAK,iBAAiBnyB,EAAWmyB,EAAG,CACrC,CACD,mBAAmBC,EAAWxD,EAAgB,SAAS,KAAM5uB,EAAY,KAAM,CAC7E,MAAMmyB,EAAM,CAAC,KAAK,KAAM,KAAK,KAAM,KAAK,KAAM,KAAK,IAAI,EACvD,GAAIC,IAAaxD,EAAgB,SAAS,OAAQ,CAC3C5uB,MACC+P,EAAM,aAAa,6CAA6C,EAEtE,MAAMnH,EAAQmH,EAAM,KAAK,8BAA8B/P,CAAS,EAC1DqyB,EAAazpB,EAAM,CAAC,EAAI,KAAK,UAAY,EACzC0pB,EAAa1pB,EAAM,CAAC,EAAI,KAAK,UAAY,EAC/CupB,EAAI,CAAC,GAAKE,EACVF,EAAI,CAAC,GAAKG,EACVH,EAAI,CAAC,GAAKE,EACVF,EAAI,CAAC,GAAKG,CACX,CACD,OAAOH,CACR,CACD,oBAAqB,CACnB,MAAMI,EAAYxiB,EAAM,KAAK,UAAU,KAAK,QAAS,KAAK,mBAAkB,CAAE,EAC9E,KAAK,uBAAuBwiB,GAAa,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,CACtD,CACD,aAAc,CACZ,OAAO,KAAK,OAAS,GACtB,CACD,uBAAuBJ,EAAK,CAC1B,KAAK,QAAUA,EACf,KAAK,KAAO,IACZ,KAAK,KAAO,IACZ,KAAK,KAAO,EACZ,KAAK,KAAO,CACb,CACD,0BAA0BC,EAAWxD,EAAgB,SAAS,KAAM5uB,EAAY,KAAM,CACpF,OAAO+P,EAAM,KAAK,UAAU,KAAK,QAAS,KAAK,mBAAmBqiB,EAAUpyB,CAAS,CAAC,CACvF,CACF,CACD,SAASwyB,EAAmBlZ,EAAK4X,EAAS,CACxC,GAAI,OAAO,UAAc,KAAeA,aAAmB,UAAW,CACpE5X,EAAI,aAAa4X,EAAS,EAAG,CAAC,EAC9B,MACD,CACD,MAAMtiB,EAASsiB,EAAQ,OACrBviB,EAAQuiB,EAAQ,MACZuB,EAAqB7jB,EAASwgB,EAC9BsD,GAAc9jB,EAAS6jB,GAAsBrD,EAC7CuD,EAAcF,IAAuB,EAAIC,EAAaA,EAAa,EACnEE,EAAetZ,EAAI,gBAAgB3K,EAAOygB,CAAiB,EACjE,IAAIyD,EAAS,EACXC,GACF,MAAMxuB,GAAM4sB,EAAQ,KACd6B,GAAOH,EAAa,KAC1B,IAAI9zB,GAAG6D,GAAGqwB,GAAiBC,GAC3B,GAAI/B,EAAQ,OAASnhB,EAAM,UAAU,eAAgB,CACnD,MAAMmjB,GAAY5uB,GAAI,WAChB6uB,GAAS,IAAI,YAAYJ,GAAK,OAAQ,EAAGA,GAAK,YAAc,CAAC,EAC7DK,GAAmBD,GAAO,OAC1BE,GAAc1kB,EAAQ,GAAK,EAC3B2kB,GAAQ,WACRC,GAAQxjB,EAAM,YAAY,eAAiB,WAAa,IAC9D,IAAKjR,GAAI,EAAGA,GAAI6zB,EAAa7zB,KAAK,CAGhC,IAFAk0B,GAAkBl0B,GAAI4zB,EAAatD,EAAoBqD,EACvDK,GAAU,EACLnwB,GAAI,EAAGA,GAAIqwB,GAAiBrwB,KAAK,CACpC,MAAM6wB,GAAUN,GAAYL,EAC5B,IAAIpM,GAAI,EACR,MAAMgN,GAAOD,GAAUH,GAAc1kB,EAAQ6kB,GAAU,EAAI,EACrDE,GAAeD,GAAO,GAC5B,IAAI9B,GAAO,EACPgC,GAAU,EACd,KAAOlN,GAAIiN,GAAcjN,IAAK,EAC5BkN,GAAUrvB,GAAIuuB,GAAQ,EACtBM,GAAOL,IAAS,EAAIa,GAAU,IAAML,GAAQC,GAC5CJ,GAAOL,IAAS,EAAIa,GAAU,GAAKL,GAAQC,GAC3CJ,GAAOL,IAAS,EAAIa,GAAU,GAAKL,GAAQC,GAC3CJ,GAAOL,IAAS,EAAIa,GAAU,GAAKL,GAAQC,GAC3CJ,GAAOL,IAAS,EAAIa,GAAU,EAAIL,GAAQC,GAC1CJ,GAAOL,IAAS,EAAIa,GAAU,EAAIL,GAAQC,GAC1CJ,GAAOL,IAAS,EAAIa,GAAU,EAAIL,GAAQC,GAC1CJ,GAAOL,IAAS,EAAIa,GAAU,EAAIL,GAAQC,GAE5C,KAAO9M,GAAIgN,GAAMhN,KACXkL,KAAS,IACXgC,GAAUrvB,GAAIuuB,GAAQ,EACtBlB,GAAO,KAETwB,GAAOL,IAAS,EAAIa,GAAUhC,GAAO2B,GAAQC,GAC7C5B,KAAS,CAEZ,CACD,KAAOmB,GAAUM,IACfD,GAAOL,IAAS,EAAI,EAEtBxZ,EAAI,aAAasZ,EAAc,EAAG9zB,GAAIswB,CAAiB,CACxD,CACF,SAAU8B,EAAQ,OAASnhB,EAAM,UAAU,WAAY,CAGtD,IAFApN,GAAI,EACJswB,GAAmBtkB,EAAQygB,EAAoB,EAC1CtwB,GAAI,EAAGA,GAAI4zB,EAAY5zB,KAC1Bi0B,GAAK,IAAIzuB,GAAI,SAASuuB,EAAQA,EAASI,EAAgB,CAAC,EACxDJ,GAAUI,GACV3Z,EAAI,aAAasZ,EAAc,EAAGjwB,EAAC,EACnCA,IAAKysB,EAEHtwB,GAAI6zB,IACNM,GAAmBtkB,EAAQ8jB,EAAqB,EAChDM,GAAK,IAAIzuB,GAAI,SAASuuB,EAAQA,EAASI,EAAgB,CAAC,EACxD3Z,EAAI,aAAasZ,EAAc,EAAGjwB,EAAC,EAEtC,SAAUuuB,EAAQ,OAASnhB,EAAM,UAAU,UAG1C,IAFAijB,GAAkB5D,EAClB6D,GAAmBtkB,EAAQqkB,GACtBl0B,GAAI,EAAGA,GAAI6zB,EAAa7zB,KAAK,CAMhC,IALIA,IAAK4zB,IACPM,GAAkBP,EAClBQ,GAAmBtkB,EAAQqkB,IAE7BF,GAAU,EACLnwB,GAAIswB,GAAkBtwB,MACzBowB,GAAKD,IAAS,EAAIxuB,GAAIuuB,GAAQ,EAC9BE,GAAKD,IAAS,EAAIxuB,GAAIuuB,GAAQ,EAC9BE,GAAKD,IAAS,EAAIxuB,GAAIuuB,GAAQ,EAC9BE,GAAKD,IAAS,EAAI,IAEpBxZ,EAAI,aAAasZ,EAAc,EAAG9zB,GAAIswB,CAAiB,CACxD,KAED,OAAM,IAAI,MAAM,mBAAmB8B,EAAQ,IAAI,EAAE,CAEpD,CACD,SAAS0C,EAAmBta,EAAK4X,EAAS,CACxC,GAAIA,EAAQ,OAAQ,CAClB5X,EAAI,UAAU4X,EAAQ,OAAQ,EAAG,CAAC,EAClC,MACD,CACD,MAAMtiB,EAASsiB,EAAQ,OACrBviB,EAAQuiB,EAAQ,MACZuB,EAAqB7jB,EAASwgB,EAC9BsD,GAAc9jB,EAAS6jB,GAAsBrD,EAC7CuD,EAAcF,IAAuB,EAAIC,EAAaA,EAAa,EACnEE,EAAetZ,EAAI,gBAAgB3K,EAAOygB,CAAiB,EACjE,IAAIyD,EAAS,EACb,MAAMvuB,GAAM4sB,EAAQ,KACd6B,GAAOH,EAAa,KAC1B,QAAS9zB,GAAI,EAAGA,GAAI6zB,EAAa7zB,KAAK,CACpC,MAAMk0B,GAAkBl0B,GAAI4zB,EAAatD,EAAoBqD,GAC5D,CACC,OAAAI,CACN,KAAYhE,EAAa,4BAA4B,CAC/C,IAAAvqB,GACA,OAAAuuB,EACA,KAAAE,GACA,MAAApkB,EACA,OAAQqkB,GACR,cAAe,CACrB,CAAK,GACD1Z,EAAI,aAAasZ,EAAc,EAAG9zB,GAAIswB,CAAiB,CACxD,CACF,CACD,SAASyE,EAAaC,EAAWxE,EAAS,CACxC,MAAMyE,EAAa,CAAC,cAAe,YAAa,WAAY,cAAe,YAAa,UAAW,WAAY,aAAc,2BAA4B,OAAQ,QAAQ,EACzK,UAAWC,KAAYD,EACjBD,EAAUE,CAAQ,IAAM,SAC1B1E,EAAQ0E,CAAQ,EAAIF,EAAUE,CAAQ,GAGtCF,EAAU,cAAgB,SAC5BxE,EAAQ,YAAYwE,EAAU,YAAa,CAAA,EAC3CxE,EAAQ,eAAiBwE,EAAU,eAEtC,CACD,SAASG,EAAkB3a,EAAK,CAc9B,GAbAA,EAAI,YAAcA,EAAI,UAAY,UAClCA,EAAI,SAAW,UACfA,EAAI,YAAc,EAClBA,EAAI,UAAY,EAChBA,EAAI,QAAU,OACdA,EAAI,SAAW,QACfA,EAAI,WAAa,GACjBA,EAAI,yBAA2B,cAC/BA,EAAI,KAAO,kBACPA,EAAI,cAAgB,SACtBA,EAAI,YAAY,CAAA,CAAE,EAClBA,EAAI,eAAiB,GAEnB,CAACvJ,EAAM,SAAU,CACnB,KAAM,CACJ,OAAAgV,CACD,EAAGzL,EACAyL,IAAW,QAAUA,IAAW,KAClCzL,EAAI,OAAS,OAEhB,CACF,CACD,SAAS4a,EAAqBx1B,EAAOy1B,EAAIC,EAAIC,EAAI,CAC/C,MAAM11B,EAASD,EAAM,OACrB,QAASI,EAAI,EAAGA,EAAIH,EAAQG,GAAK,EAAG,CAClC,MAAMw1B,EAAQ51B,EAAMI,CAAC,EACrB,GAAIw1B,IAAU,EACZ51B,EAAMI,EAAI,CAAC,EAAIq1B,EACfz1B,EAAMI,EAAI,CAAC,EAAIs1B,EACf11B,EAAMI,EAAI,CAAC,EAAIu1B,UACNC,EAAQ,IAAK,CACtB,MAAMC,EAAS,IAAMD,EACrB51B,EAAMI,EAAI,CAAC,EAAIJ,EAAMI,EAAI,CAAC,EAAIw1B,EAAQH,EAAKI,GAAU,EACrD71B,EAAMI,EAAI,CAAC,EAAIJ,EAAMI,EAAI,CAAC,EAAIw1B,EAAQF,EAAKG,GAAU,EACrD71B,EAAMI,EAAI,CAAC,EAAIJ,EAAMI,EAAI,CAAC,EAAIw1B,EAAQD,EAAKE,GAAU,CACtD,CACF,CACF,CACD,SAASC,EAAkBC,EAAUC,EAAWC,EAAa,CAC3D,MAAMh2B,EAAS81B,EAAS,OAClB7rB,EAAQ,EAAI,IAClB,QAAS9J,EAAI,EAAGA,EAAIH,EAAQG,GAAK,EAAG,CAClC,MAAMw1B,EAAQK,EAAcA,EAAYF,EAAS31B,CAAC,CAAC,EAAI21B,EAAS31B,CAAC,EACjE41B,EAAU51B,CAAC,EAAI41B,EAAU51B,CAAC,EAAIw1B,EAAQ1rB,EAAQ,CAC/C,CACF,CACD,SAASgsB,EAAuBH,EAAUC,EAAWC,EAAa,CAChE,MAAMh2B,EAAS81B,EAAS,OACxB,QAAS31B,EAAI,EAAGA,EAAIH,EAAQG,GAAK,EAAG,CAClC,MAAM8U,EAAI6gB,EAAS31B,EAAI,CAAC,EAAI,GAAK21B,EAAS31B,EAAI,CAAC,EAAI,IAAM21B,EAAS31B,EAAI,CAAC,EAAI,GAC3E41B,EAAU51B,CAAC,EAAI61B,EAAcD,EAAU51B,CAAC,EAAI61B,EAAY/gB,GAAK,CAAC,GAAK,EAAI8gB,EAAU51B,CAAC,EAAI8U,GAAK,EAC5F,CACF,CACD,SAASihB,EAAoBC,EAASC,EAAUpmB,EAAOC,EAAQomB,EAASC,EAAUN,EAAaO,EAAcC,EAAcC,GAAaC,GAAa,CACnJ,MAAMC,GAAc,CAAC,CAACL,EAChBd,GAAKmB,GAAcL,EAAS,CAAC,EAAI,EACjCb,GAAKkB,GAAcL,EAAS,CAAC,EAAI,EACjCZ,GAAKiB,GAAcL,EAAS,CAAC,EAAI,EACjCM,GAAYP,IAAY,aAAeJ,EAAyBJ,EAEhEgB,GAAY,KAAK,IAAI5mB,EAAQ,KAAK,KADd,QACuCD,CAAK,CAAC,EACvE,QAAS8mB,GAAM,EAAGA,GAAM7mB,EAAQ6mB,IAAOD,GAAW,CAChD,MAAME,GAAc,KAAK,IAAIF,GAAW5mB,EAAS6mB,EAAG,EAC9ChB,GAAWK,EAAQ,aAAaI,EAAeE,GAAaK,IAAON,EAAeE,IAAc1mB,EAAO+mB,EAAW,EAClHhB,GAAYK,EAAS,aAAaG,EAAcO,GAAMN,EAAcxmB,EAAO+mB,EAAW,EACxFJ,IACFpB,EAAqBO,GAAS,KAAMN,GAAIC,GAAIC,EAAE,EAEhDkB,GAAUd,GAAS,KAAMC,GAAU,KAAMC,CAAW,EACpDI,EAAS,aAAaL,GAAWQ,EAAcO,GAAMN,CAAY,CAClE,CACF,CACD,SAASQ,EAAarc,EAAKsc,EAAOb,EAAUc,EAAU,CACpD,MAAMX,EAAeW,EAAS,CAAC,EACzBV,EAAeU,EAAS,CAAC,EACzBC,EAAaD,EAAS,CAAC,EAAIX,EAC3Ba,EAAcF,EAAS,CAAC,EAAIV,EAC9BW,IAAe,GAAKC,IAAgB,IAGxClB,EAAoBe,EAAM,QAASb,EAAUe,EAAYC,EAAaH,EAAM,QAASA,EAAM,SAAUA,EAAM,YAAaV,EAAcC,EAAcS,EAAM,QAASA,EAAM,OAAO,EAChLtc,EAAI,KAAI,EACRA,EAAI,YAAc,EAClBA,EAAI,yBAA2B,cAC/BA,EAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjCA,EAAI,UAAUyb,EAAS,OAAQ,EAAG,CAAC,EACnCzb,EAAI,QAAO,EACZ,CACD,SAAS0c,EAAyBh2B,EAAWi2B,EAAa,CACxD,MAAMrtB,EAAQmH,EAAM,KAAK,8BAA8B/P,CAAS,EAChE4I,EAAM,CAAC,EAAI,KAAK,OAAOA,EAAM,CAAC,CAAC,EAC/BA,EAAM,CAAC,EAAI,KAAK,OAAOA,EAAM,CAAC,CAAC,EAC/B,MAAMstB,EAAc,KAAK,QAAQ,WAAW,kBAAoB,GAAK9kB,EAAe,cAAc,gBAAgB,EAClH,OAAI6kB,IAAgB,OACXA,EACErtB,EAAM,CAAC,GAAKstB,GAAettB,EAAM,CAAC,GAAKstB,CAInD,CACD,MAAMC,EAAkB,CAAC,OAAQ,QAAS,QAAQ,EAC5CC,EAAmB,CAAC,QAAS,QAAS,OAAO,EAC7CC,EAAc,CAAA,EACdC,GAAU,CAAA,EACVC,GAAN,MAAMA,EAAe,CACnB,YAAYC,EAAW7mB,EAAYD,EAAMvJ,EAAeC,EAAe,CACrE,sBAAAiE,EACA,mBAAAosB,EAAqB,IACzB,EAAKjtB,EAAqBC,GAAY,CAoHpChG,EAAA,KAAAizB,GA6BAjzB,EAAA,KAAAkzB,IAhJE,KAAK,IAAMH,EACX,KAAK,QAAU,IAAItE,EAAiB,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EACjF,KAAK,WAAa,GAClB,KAAK,YAAc,KACnB,KAAK,cAAgB,GACrB,KAAK,IAAM,KACX,KAAK,MAAQ,KACb,KAAK,WAAaviB,EAClB,KAAK,KAAOD,EACZ,KAAK,cAAgBvJ,EACrB,KAAK,cAAgBC,EACrB,KAAK,WAAa,GAClB,KAAK,gBAAkB,KACvB,KAAK,cAAgB,KACrB,KAAK,mBAAqB,GAC1B,KAAK,WAAa,EAClB,KAAK,WAAa,GAClB,KAAK,aAAe,EACpB,KAAK,UAAY,KACjB,KAAK,aAAe,KACpB,KAAK,eAAiB,GACtB,KAAK,mBAAqBqwB,GAAsB,GAChD,KAAK,sBAAwBpsB,EAC7B,KAAK,eAAiB,IAAIslB,EAAe,KAAK,aAAa,EAC3D,KAAK,eAAiB,IAAI,IAC1B,KAAK,oBAAsBnmB,EAC3B,KAAK,cAAgB,EACrB,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,WAAaC,GAClB,KAAK,wBAA0B,CAAC,GAAI,CAAC,EACrC,KAAK,2BAA6B,KAClC,KAAK,kBAAoB,IAAI,GAC9B,CACD,UAAU5F,EAAM+yB,EAAW,KAAM,CAC/B,OAAI,OAAO/yB,GAAS,SACXA,EAAK,WAAW,IAAI,EAAI,KAAK,WAAW,IAAIA,CAAI,EAAI,KAAK,KAAK,IAAIA,CAAI,EAExE+yB,CACR,CACD,aAAa,CACX,UAAA52B,EACA,SAAAoJ,EACA,aAAAgB,EAAe,GACf,WAAAd,EAAa,IACjB,EAAK,CACD,MAAMqF,EAAQ,KAAK,IAAI,OAAO,MACxBC,EAAS,KAAK,IAAI,OAAO,OACzBioB,EAAiB,KAAK,IAAI,UAIhC,GAHA,KAAK,IAAI,UAAYvtB,GAAc,UACnC,KAAK,IAAI,SAAS,EAAG,EAAGqF,EAAOC,CAAM,EACrC,KAAK,IAAI,UAAYioB,EACjBzsB,EAAc,CAChB,MAAM0sB,EAAoB,KAAK,eAAe,UAAU,cAAenoB,EAAOC,CAAM,EACpF,KAAK,aAAe,KAAK,IACzB,KAAK,kBAAoBkoB,EAAkB,OAC3C,KAAK,IAAMA,EAAkB,QAC7B,KAAK,IAAI,OACT,KAAK,IAAI,UAAU,MAAO1lB,EAAe,qBAAqB,KAAK,YAAY,CAAC,CACjF,CACD,KAAK,IAAI,OACT6iB,EAAkB,KAAK,GAAG,EACtBj0B,IACF,KAAK,IAAI,UAAU,GAAGA,CAAS,EAC/B,KAAK,aAAeA,EAAU,CAAC,EAC/B,KAAK,aAAeA,EAAU,CAAC,GAEjC,KAAK,IAAI,UAAU,GAAGoJ,EAAS,SAAS,EACxC,KAAK,cAAgBA,EAAS,MAC9B,KAAK,iBAAoBgI,EAAe,qBAAqB,KAAK,GAAG,CACtE,CACD,oBAAoBtF,EAAcirB,EAAmBC,EAAkBC,EAAS,CAC9E,MAAMC,EAAYprB,EAAa,UACzBqrB,EAAUrrB,EAAa,QAC7B,IAAIhN,EAAIi4B,GAAqB,EAC7B,MAAMK,EAAeF,EAAU,OAC/B,GAAIE,IAAiBt4B,EACnB,OAAOA,EAET,MAAMu4B,GAAkBD,EAAet4B,EAAIowB,GAAmB,OAAO8H,GAAqB,WACpFM,GAAUD,GAAkB,KAAK,IAAK,EAAGpI,EAAiB,EAChE,IAAI6C,GAAQ,EACZ,MAAMniB,GAAa,KAAK,WAClBD,GAAO,KAAK,KAClB,IAAI6nB,GACJ,OAAa,CACX,GAAIN,IAAY,QAAan4B,IAAMm4B,EAAQ,eACzC,OAAAA,EAAQ,QAAQn4B,EAAGk4B,CAAgB,EAC5Bl4B,EAGT,GADAy4B,GAAOJ,EAAQr4B,CAAC,EACZy4B,KAASxnB,EAAM,IAAI,WACrB,KAAKwnB,EAAI,EAAE,MAAM,KAAML,EAAUp4B,CAAC,CAAC,MAEnC,WAAW04B,MAAYN,EAAUp4B,CAAC,EAAG,CACnC,MAAM24B,GAAWD,GAAS,WAAW,IAAI,EAAI7nB,GAAaD,GAC1D,GAAI,CAAC+nB,GAAS,IAAID,EAAQ,EACxB,OAAAC,GAAS,IAAID,GAAUR,CAAgB,EAChCl4B,CAEV,CAGH,GADAA,IACIA,IAAMs4B,EACR,OAAOt4B,EAET,GAAIu4B,IAAmB,EAAEvF,GAAQ5C,EAAiB,CAChD,GAAI,KAAK,IAAK,EAAGoI,GACf,OAAAN,IACOl4B,EAETgzB,GAAQ,CACT,CACF,CACF,CAeD,YAAa,CACXnoB,EAAA,KAAK+sB,EAAAgB,IAAL,WACA,KAAK,eAAe,QACpB,KAAK,eAAe,QACpB,UAAWC,KAAS,KAAK,kBAAkB,OAAM,EAAI,CACnD,UAAWvQ,KAAUuQ,EAAM,SACrB,OAAO,kBAAsB,KAAevQ,aAAkB,oBAChEA,EAAO,MAAQA,EAAO,OAAS,GAGnCuQ,EAAM,MAAK,CACZ,CACD,KAAK,kBAAkB,QACvBhuB,EAAA,KAAKgtB,GAAAiB,IAAL,UACD,CAYD,YAAYC,EAAKC,EAAkB,CACjC,MAAMnpB,EAAQkpB,EAAI,MACZjpB,EAASipB,EAAI,OACnB,IAAIE,EAAa,KAAK,IAAI,KAAK,MAAMD,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAG,CAAC,EAC7EE,EAAc,KAAK,IAAI,KAAK,MAAMF,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAG,CAAC,EAC9EG,EAAatpB,EACfupB,EAActpB,EACZupB,GAAc,YACdC,GAAWC,GACf,KAAON,EAAa,GAAKE,EAAa,GAAKD,EAAc,GAAKE,EAAc,GAAG,CAC7E,IAAIxhB,GAAWuhB,EACbthB,GAAYuhB,EACVH,EAAa,GAAKE,EAAa,IACjCvhB,GAAWuhB,GAAc,MAAQ,KAAK,MAAMA,EAAa,CAAC,EAAI,GAAK,EAAI,KAAK,KAAKA,EAAa,CAAC,EAC/FF,GAAcE,EAAavhB,IAEzBshB,EAAc,GAAKE,EAAc,IACnCvhB,GAAYuhB,GAAe,MAAQ,KAAK,MAAMA,EAAc,CAAC,EAAI,GAAK,EAAI,KAAK,KAAKA,CAAW,EAAI,EACnGF,GAAeE,EAAcvhB,IAE/ByhB,GAAY,KAAK,eAAe,UAAUD,GAAazhB,GAAUC,EAAS,EAC1E0hB,GAASD,GAAU,QACnBC,GAAO,UAAU,EAAG,EAAG3hB,GAAUC,EAAS,EAC1C0hB,GAAO,UAAUR,EAAK,EAAG,EAAGI,EAAYC,EAAa,EAAG,EAAGxhB,GAAUC,EAAS,EAC9EkhB,EAAMO,GAAU,OAChBH,EAAavhB,GACbwhB,EAAcvhB,GACdwhB,GAAcA,KAAgB,YAAc,YAAc,WAC3D,CACD,MAAO,CACL,IAAAN,EACA,WAAAI,EACA,YAAAC,CACN,CACG,CACD,kBAAkBL,EAAK,CACrB,MAAMve,EAAM,KAAK,IACX,CACJ,MAAA3K,EACA,OAAAC,CACD,EAAGipB,EACES,EAAY,KAAK,QAAQ,UACzBC,EAAgB,KAAK,QAAQ,YAC7BC,KAAuBpnB,EAAe,qBAAqBkI,CAAG,EACpE,IAAIqe,EAAOxsB,GAAUstB,GAAQC,GAC7B,IAAKb,EAAI,QAAUA,EAAI,OAASA,EAAI,MAAQ,EAAG,CAC7C,MAAMc,GAAUd,EAAI,QAAUA,EAAI,KAAK,OACvC1sB,GAAW,KAAK,UAAUotB,EAAgBC,EAAmB,CAACA,EAAiB,MAAM,EAAG,CAAC,EAAGF,CAAS,CAAC,EACtGX,EAAQ,KAAK,kBAAkB,IAAIgB,EAAO,EACrChB,IACHA,EAAQ,IAAI,IACZ,KAAK,kBAAkB,IAAIgB,GAAShB,CAAK,GAE3C,MAAMiB,GAAcjB,EAAM,IAAIxsB,EAAQ,EACtC,GAAIytB,IAAe,CAACL,EAAe,CACjC,MAAMzvB,GAAU,KAAK,MAAM,KAAK,IAAI0vB,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAIA,EAAiB,CAAC,CAAC,EAC7FzvB,GAAU,KAAK,MAAM,KAAK,IAAIyvB,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAIA,EAAiB,CAAC,CAAC,EACnG,MAAO,CACL,OAAQI,GACR,QAAA9vB,GACA,QAAAC,EACV,CACO,CACD0vB,GAASG,EACV,CACIH,KACHC,GAAa,KAAK,eAAe,UAAU,aAAc/pB,EAAOC,CAAM,EACtEglB,EAAmB8E,GAAW,QAASb,CAAG,GAE5C,IAAIgB,GAAe9oB,EAAM,KAAK,UAAUyoB,EAAkB,CAAC,EAAI7pB,EAAO,EAAG,EAAG,GAAKC,EAAQ,EAAG,CAAC,CAAC,EAC9FiqB,GAAe9oB,EAAM,KAAK,UAAU8oB,GAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAACjqB,CAAM,CAAC,EAC1E,MAAMkqB,GAAQ/oB,EAAM,KAAK,eAAe,CAAC,EAAG,CAAC,EAAG8oB,EAAY,EACtDE,GAAQhpB,EAAM,KAAK,eAAe,CAACpB,EAAOC,CAAM,EAAGiqB,EAAY,EAC/Dx3B,GAAO0O,EAAM,KAAK,cAAc,CAAC+oB,GAAM,CAAC,EAAGA,GAAM,CAAC,EAAGC,GAAM,CAAC,EAAGA,GAAM,CAAC,CAAC,CAAC,EACxEC,GAAa,KAAK,MAAM33B,GAAK,CAAC,EAAIA,GAAK,CAAC,CAAC,GAAK,EAC9C43B,GAAc,KAAK,MAAM53B,GAAK,CAAC,EAAIA,GAAK,CAAC,CAAC,GAAK,EAC/C63B,GAAa,KAAK,eAAe,UAAU,aAAcF,GAAYC,EAAW,EAChFE,GAAUD,GAAW,QACrBpwB,GAAU,KAAK,IAAIgwB,GAAM,CAAC,EAAGC,GAAM,CAAC,CAAC,EACrChwB,GAAU,KAAK,IAAI+vB,GAAM,CAAC,EAAGC,GAAM,CAAC,CAAC,EAC3CI,GAAQ,UAAU,CAACrwB,GAAS,CAACC,EAAO,EACpCowB,GAAQ,UAAU,GAAGN,EAAY,EAC5BJ,KACHA,GAAS,KAAK,YAAYC,GAAW,UAAYtnB,EAAe,4BAA4B+nB,EAAO,CAAC,EACpGV,GAASA,GAAO,IACZd,GAASY,GACXZ,EAAM,IAAIxsB,GAAUstB,EAAM,GAG9BU,GAAQ,sBAAwBnD,KAA6B5kB,EAAe,qBAAqB+nB,EAAO,EAAGtB,EAAI,WAAW,EAC1HhI,EAAyBsJ,GAASV,GAAQ,EAAG,EAAGA,GAAO,MAAOA,GAAO,OAAQ,EAAG,EAAG9pB,EAAOC,CAAM,EAChGuqB,GAAQ,yBAA2B,YACnC,MAAMC,GAAUrpB,EAAM,KAAK,aAAcqB,EAAe,4BAA4B+nB,EAAO,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,CAACrwB,GAAS,CAACC,EAAO,CAAC,EAC9H,OAAAowB,GAAQ,UAAYZ,EAAgBD,EAAU,WAAWhf,EAAK,KAAM8f,GAASxK,EAAgB,SAAS,IAAI,EAAI0J,EAC9Ga,GAAQ,SAAS,EAAG,EAAGxqB,EAAOC,CAAM,EAChC+oB,GAAS,CAACY,IACZ,KAAK,eAAe,OAAO,YAAY,EACvCZ,EAAM,IAAIxsB,GAAU+tB,GAAW,MAAM,GAEhC,CACL,OAAQA,GAAW,OACnB,QAAS,KAAK,MAAMpwB,EAAO,EAC3B,QAAS,KAAK,MAAMC,EAAO,CACjC,CACG,CACD,aAAa4F,EAAO,CACdA,IAAU,KAAK,QAAQ,YACzB,KAAK,wBAAwB,CAAC,EAAI,IAEpC,KAAK,QAAQ,UAAYA,EACzB,KAAK,IAAI,UAAYA,CACtB,CACD,WAAW0E,EAAO,CAChB,KAAK,IAAI,QAAU8iB,EAAgB9iB,CAAK,CACzC,CACD,YAAYA,EAAO,CACjB,KAAK,IAAI,SAAW+iB,EAAiB/iB,CAAK,CAC3C,CACD,cAAcgmB,EAAO,CACnB,KAAK,IAAI,WAAaA,CACvB,CACD,QAAQC,EAAWC,EAAW,CAC5B,MAAMjgB,EAAM,KAAK,IACbA,EAAI,cAAgB,SACtBA,EAAI,YAAYggB,CAAS,EACzBhgB,EAAI,eAAiBigB,EAExB,CACD,mBAAmBtwB,EAAQ,CAAE,CAC7B,YAAYuwB,EAAU,CAAE,CACxB,UAAUC,EAAQ,CAChB,SAAW,CAACt6B,EAAKxB,CAAK,IAAK87B,EACzB,OAAQt6B,EAAG,CACT,IAAK,KACH,KAAK,aAAaxB,CAAK,EACvB,MACF,IAAK,KACH,KAAK,WAAWA,CAAK,EACrB,MACF,IAAK,KACH,KAAK,YAAYA,CAAK,EACtB,MACF,IAAK,KACH,KAAK,cAAcA,CAAK,EACxB,MACF,IAAK,IACH,KAAK,QAAQA,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAC/B,MACF,IAAK,KACH,KAAK,mBAAmBA,CAAK,EAC7B,MACF,IAAK,KACH,KAAK,YAAYA,CAAK,EACtB,MACF,IAAK,OACH,KAAK,QAAQA,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAC/B,MACF,IAAK,KACH,KAAK,QAAQ,YAAcA,EAC3B,MACF,IAAK,KACH,KAAK,QAAQ,UAAYA,EACzB,KAAK,IAAI,YAAcA,EACvB,MACF,IAAK,KACH,KAAK,IAAI,yBAA2BA,EACpC,MACF,IAAK,QACH,KAAK,QAAQ,YAAcA,EAAQ,KAAK,UAAY,KACpD,KAAK,UAAY,KACjB,KAAK,gBAAe,EACpB,MACF,IAAK,KACH,KAAK,IAAI,OAAS,KAAK,QAAQ,aAAe,KAAK,cAAc,UAAUA,CAAK,EAChF,KACH,CAEJ,CACD,IAAI,aAAc,CAChB,MAAO,CAAC,CAAC,KAAK,YACf,CACD,iBAAkB,CAChB,MAAM+7B,EAAc,KAAK,YACrB,KAAK,QAAQ,aAAe,CAACA,EAC/B,KAAK,eAAc,EACV,CAAC,KAAK,QAAQ,aAAeA,GACtC,KAAK,aAAY,CAEpB,CACD,gBAAiB,CACf,GAAI,KAAK,YACP,MAAM,IAAI,MAAM,mDAAmD,EAErE,MAAMV,EAAa,KAAK,IAAI,OAAO,MAC7BC,EAAc,KAAK,IAAI,OAAO,OAC9BU,EAAU,eAAiB,KAAK,WAChCC,EAAgB,KAAK,eAAe,UAAUD,EAASX,EAAYC,CAAW,EACpF,KAAK,aAAe,KAAK,IACzB,KAAK,IAAMW,EAAc,QACzB,MAAMtgB,EAAM,KAAK,IACjBA,EAAI,aAAa,MAAOlI,EAAe,qBAAqB,KAAK,YAAY,CAAC,EAC9EyiB,EAAa,KAAK,aAAcva,CAAG,EACnC+V,EAAwB/V,EAAK,KAAK,YAAY,EAC9C,KAAK,UAAU,CAAC,CAAC,KAAM,aAAa,EAAG,CAAC,KAAM,CAAC,EAAG,CAAC,KAAM,CAAC,CAAC,CAAC,CAC7D,CACD,cAAe,CACb,GAAI,CAAC,KAAK,YACR,MAAM,IAAI,MAAM,6CAA6C,EAE/D,KAAK,IAAI,mBACTua,EAAa,KAAK,IAAK,KAAK,YAAY,EACxC,KAAK,IAAM,KAAK,aAChB,KAAK,aAAe,IACrB,CACD,QAAQgG,EAAU,CAChB,GAAI,CAAC,KAAK,QAAQ,YAChB,OAEGA,GAGHA,EAAS,CAAC,EAAI,KAAK,MAAMA,EAAS,CAAC,CAAC,EACpCA,EAAS,CAAC,EAAI,KAAK,MAAMA,EAAS,CAAC,CAAC,EACpCA,EAAS,CAAC,EAAI,KAAK,KAAKA,EAAS,CAAC,CAAC,EACnCA,EAAS,CAAC,EAAI,KAAK,KAAKA,EAAS,CAAC,CAAC,GALnCA,EAAW,CAAC,EAAG,EAAG,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EAOjE,MAAMjE,EAAQ,KAAK,QAAQ,YACrBkE,EAAe,KAAK,aAC1BnE,EAAamE,EAAclE,EAAO,KAAK,IAAKiE,CAAQ,EACpD,KAAK,IAAI,OACT,KAAK,IAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtC,KAAK,IAAI,UAAU,EAAG,EAAG,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EACtE,KAAK,IAAI,SACV,CACD,MAAO,CACD,KAAK,aACPhG,EAAa,KAAK,IAAK,KAAK,YAAY,EACxC,KAAK,aAAa,QAElB,KAAK,IAAI,OAEX,MAAMkG,EAAM,KAAK,QACjB,KAAK,WAAW,KAAKA,CAAG,EACxB,KAAK,QAAUA,EAAI,OACpB,CACD,SAAU,CACJ,KAAK,WAAW,SAAW,GAAK,KAAK,aACvC,KAAK,aAAY,EAEf,KAAK,WAAW,SAAW,IAC7B,KAAK,QAAU,KAAK,WAAW,IAAG,EAC9B,KAAK,aACP,KAAK,aAAa,UAClBlG,EAAa,KAAK,aAAc,KAAK,GAAG,GAExC,KAAK,IAAI,UAEX,KAAK,gBAAe,EACpB,KAAK,YAAc,KACnB,KAAK,wBAAwB,CAAC,EAAI,GAClC,KAAK,2BAA6B,KAErC,CACD,UAAU9yB,EAAGhB,EAAGiB,EAAG,EAAGwX,EAAG8R,EAAG,CAC1B,KAAK,IAAI,UAAUvpB,EAAGhB,EAAGiB,EAAG,EAAGwX,EAAG8R,CAAC,EACnC,KAAK,wBAAwB,CAAC,EAAI,GAClC,KAAK,2BAA6B,IACnC,CACD,cAAc0P,EAAKxe,EAAMvb,EAAQ,CAC/B,MAAMqZ,EAAM,KAAK,IACX+U,EAAU,KAAK,QACrB,IAAI1a,EAAI0a,EAAQ,EACdza,EAAIya,EAAQ,EACV4L,EAAQC,GACZ,MAAM1B,MAAuBpnB,EAAe,qBAAqBkI,CAAG,EAC9D6gB,GAAkB3B,GAAiB,CAAC,IAAM,GAAKA,GAAiB,CAAC,IAAM,GAAKA,GAAiB,CAAC,IAAM,GAAKA,GAAiB,CAAC,IAAM,EACjI4B,GAAkBD,GAAkBl6B,EAAO,MAAM,CAAC,EAAI,KAC5D,QAASnB,GAAI,EAAG6D,GAAI,EAAGQ,GAAK62B,EAAI,OAAQl7B,GAAIqE,GAAIrE,KAC9C,OAAQk7B,EAAIl7B,EAAC,EAAI,EAAC,CAChB,KAAKiR,EAAM,IAAI,UACb4D,EAAI6H,EAAK7Y,IAAG,EACZiR,EAAI4H,EAAK7Y,IAAG,EACZ,MAAMgM,GAAQ6M,EAAK7Y,IAAG,EAChBiM,GAAS4M,EAAK7Y,IAAG,EACjB03B,GAAK1mB,EAAIhF,GACT2rB,GAAK1mB,EAAIhF,GACf0K,EAAI,OAAO3F,EAAGC,CAAC,EACXjF,KAAU,GAAKC,KAAW,EAC5B0K,EAAI,OAAO+gB,GAAIC,EAAE,GAEjBhhB,EAAI,OAAO+gB,GAAIzmB,CAAC,EAChB0F,EAAI,OAAO+gB,GAAIC,EAAE,EACjBhhB,EAAI,OAAO3F,EAAG2mB,EAAE,GAEbH,IACH9L,EAAQ,iBAAiBmK,GAAkB,CAAC7kB,EAAGC,EAAGymB,GAAIC,EAAE,CAAC,EAE3DhhB,EAAI,UAAS,EACb,MACF,KAAKvJ,EAAM,IAAI,OACb4D,EAAI6H,EAAK7Y,IAAG,EACZiR,EAAI4H,EAAK7Y,IAAG,EACZ2W,EAAI,OAAO3F,EAAGC,CAAC,EACVumB,IACH9L,EAAQ,iBAAiBmK,GAAkB7kB,EAAGC,CAAC,EAEjD,MACF,KAAK7D,EAAM,IAAI,OACb4D,EAAI6H,EAAK7Y,IAAG,EACZiR,EAAI4H,EAAK7Y,IAAG,EACZ2W,EAAI,OAAO3F,EAAGC,CAAC,EACVumB,IACH9L,EAAQ,iBAAiBmK,GAAkB7kB,EAAGC,CAAC,EAEjD,MACF,KAAK7D,EAAM,IAAI,QACbkqB,EAAStmB,EACTumB,GAAStmB,EACTD,EAAI6H,EAAK7Y,GAAI,CAAC,EACdiR,EAAI4H,EAAK7Y,GAAI,CAAC,EACd2W,EAAI,cAAckC,EAAK7Y,EAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAGgR,EAAGC,CAAC,EACtEya,EAAQ,sBAAsBmK,GAAkByB,EAAQC,GAAQ1e,EAAK7Y,EAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAGgR,EAAGC,EAAGwmB,EAAe,EACrIz3B,IAAK,EACL,MACF,KAAKoN,EAAM,IAAI,SACbkqB,EAAStmB,EACTumB,GAAStmB,EACT0F,EAAI,cAAc3F,EAAGC,EAAG4H,EAAK7Y,EAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,CAAC,EACtE0rB,EAAQ,sBAAsBmK,GAAkByB,EAAQC,GAAQvmB,EAAGC,EAAG4H,EAAK7Y,EAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAGy3B,EAAe,EACrIzmB,EAAI6H,EAAK7Y,GAAI,CAAC,EACdiR,EAAI4H,EAAK7Y,GAAI,CAAC,EACdA,IAAK,EACL,MACF,KAAKoN,EAAM,IAAI,SACbkqB,EAAStmB,EACTumB,GAAStmB,EACTD,EAAI6H,EAAK7Y,GAAI,CAAC,EACdiR,EAAI4H,EAAK7Y,GAAI,CAAC,EACd2W,EAAI,cAAckC,EAAK7Y,EAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAGgR,EAAGC,EAAGD,EAAGC,CAAC,EAClDya,EAAQ,sBAAsBmK,GAAkByB,EAAQC,GAAQ1e,EAAK7Y,EAAC,EAAG6Y,EAAK7Y,GAAI,CAAC,EAAGgR,EAAGC,EAAGD,EAAGC,EAAGwmB,EAAe,EACjHz3B,IAAK,EACL,MACF,KAAKoN,EAAM,IAAI,UACbuJ,EAAI,UAAS,EACb,KACH,CAEC6gB,IACF9L,EAAQ,wBAAwBmK,GAAkB4B,EAAe,EAEnE/L,EAAQ,gBAAgB1a,EAAGC,CAAC,CAC7B,CACD,WAAY,CACV,KAAK,IAAI,WACV,CACD,OAAO2mB,EAAc,GAAM,CACzB,MAAMjhB,EAAM,KAAK,IACXkhB,EAAc,KAAK,QAAQ,YACjClhB,EAAI,YAAc,KAAK,QAAQ,YAC3B,KAAK,iBACH,OAAOkhB,GAAgB,WAAYA,GAAA,MAAAA,EAAa,aAClDlhB,EAAI,KAAI,EACRA,EAAI,YAAckhB,EAAY,WAAWlhB,EAAK,QAAUlI,EAAe,4BAA4BkI,CAAG,EAAGsV,EAAgB,SAAS,MAAM,EACxI,KAAK,iBAAiB,EAAK,EAC3BtV,EAAI,QAAO,GAEX,KAAK,iBAAiB,EAAI,GAG1BihB,GACF,KAAK,YAAY,KAAK,QAAQ,0BAA2B,CAAA,EAE3DjhB,EAAI,YAAc,KAAK,QAAQ,SAChC,CACD,aAAc,CACZ,KAAK,UAAS,EACd,KAAK,OAAM,CACZ,CACD,KAAKihB,EAAc,GAAM,CACvB,MAAMjhB,EAAM,KAAK,IACXgf,EAAY,KAAK,QAAQ,UACzBC,EAAgB,KAAK,QAAQ,YACnC,IAAIkC,EAAc,GACdlC,IACFjf,EAAI,KAAI,EACRA,EAAI,UAAYgf,EAAU,WAAWhf,EAAK,QAAUlI,EAAe,4BAA4BkI,CAAG,EAAGsV,EAAgB,SAAS,IAAI,EAClI6L,EAAc,IAEhB,MAAMlI,EAAY,KAAK,QAAQ,0BAAyB,EACpD,KAAK,gBAAkBA,IAAc,OACnC,KAAK,eACPjZ,EAAI,KAAK,SAAS,EAClB,KAAK,cAAgB,IAErBA,EAAI,KAAI,GAGRmhB,GACFnhB,EAAI,QAAO,EAETihB,GACF,KAAK,YAAYhI,CAAS,CAE7B,CACD,QAAS,CACP,KAAK,cAAgB,GACrB,KAAK,KAAI,CACV,CACD,YAAa,CACX,KAAK,KAAK,EAAK,EACf,KAAK,OAAO,EAAK,EACjB,KAAK,YAAW,CACjB,CACD,cAAe,CACb,KAAK,cAAgB,GACrB,KAAK,WAAU,CAChB,CACD,iBAAkB,CAChB,KAAK,UAAS,EACd,KAAK,WAAU,CAChB,CACD,mBAAoB,CAClB,KAAK,cAAgB,GACrB,KAAK,UAAS,EACd,KAAK,WAAU,CAChB,CACD,SAAU,CACR,KAAK,YAAW,CACjB,CACD,MAAO,CACL,KAAK,YAAc8D,CACpB,CACD,QAAS,CACP,KAAK,YAAcC,EACpB,CACD,WAAY,CACV,KAAK,QAAQ,WAAavmB,EAAM,gBAChC,KAAK,QAAQ,gBAAkB,EAC/B,KAAK,QAAQ,EAAI,KAAK,QAAQ,MAAQ,EACtC,KAAK,QAAQ,EAAI,KAAK,QAAQ,MAAQ,CACvC,CACD,SAAU,CACR,MAAM2qB,EAAQ,KAAK,iBACbphB,EAAM,KAAK,IACjB,GAAIohB,IAAU,OAAW,CACvBphB,EAAI,UAAS,EACb,MACD,CACDA,EAAI,KAAI,EACRA,EAAI,UAAS,EACb,UAAWyY,KAAQ2I,EACjBphB,EAAI,aAAa,GAAGyY,EAAK,SAAS,EAClCzY,EAAI,UAAUyY,EAAK,EAAGA,EAAK,CAAC,EAC5BA,EAAK,UAAUzY,EAAKyY,EAAK,QAAQ,EAEnCzY,EAAI,QAAO,EACXA,EAAI,KAAI,EACRA,EAAI,UAAS,EACb,OAAO,KAAK,gBACb,CACD,eAAeqhB,EAAS,CACtB,KAAK,QAAQ,YAAcA,CAC5B,CACD,eAAeA,EAAS,CACtB,KAAK,QAAQ,YAAcA,CAC5B,CACD,UAAU/xB,EAAO,CACf,KAAK,QAAQ,WAAaA,EAAQ,GACnC,CACD,WAAWgyB,EAAS,CAClB,KAAK,QAAQ,QAAU,CAACA,CACzB,CACD,QAAQC,EAAanhB,EAAM,QACzB,MAAMohB,EAAU,KAAK,WAAW,IAAID,CAAW,EACzCxM,EAAU,KAAK,QACrB,GAAI,CAACyM,EACH,MAAM,IAAI,MAAM,uBAAuBD,CAAW,EAAE,EActD,GAZAxM,EAAQ,WAAayM,EAAQ,YAAc/qB,EAAM,sBAC7Cse,EAAQ,WAAW,CAAC,IAAM,GAAKA,EAAQ,WAAW,CAAC,IAAM,OACvDte,EAAM,MAAM,gCAAkC8qB,CAAW,EAE3DnhB,EAAO,GACTA,EAAO,CAACA,EACR2U,EAAQ,cAAgB,IAExBA,EAAQ,cAAgB,EAE1B,KAAK,QAAQ,KAAOyM,EACpB,KAAK,QAAQ,SAAWphB,EACpBohB,EAAQ,YACV,OAEF,MAAM/8B,EAAO+8B,EAAQ,YAAc,aAC7BC,IAAWt7B,GAAAq7B,EAAQ,iBAAR,YAAAr7B,GAAwB,MAAO,IAAI1B,CAAI,MAAM+8B,EAAQ,YAAY,GAClF,IAAIE,EAAO,SACPF,EAAQ,MACVE,EAAO,MACEF,EAAQ,OACjBE,EAAO,QAET,MAAMC,EAASH,EAAQ,OAAS,SAAW,SAC3C,IAAII,GAAkBxhB,EAClBA,EAAOoV,GACToM,GAAkBpM,GACTpV,EAAOqV,IAChBmM,GAAkBnM,GAEpB,KAAK,QAAQ,cAAgBrV,EAAOwhB,GACpC,KAAK,IAAI,KAAO,GAAGD,CAAM,IAAID,CAAI,IAAIE,EAAe,MAAMH,CAAQ,EACnE,CACD,qBAAqB7Z,EAAM,CACzB,KAAK,QAAQ,kBAAoBA,CAClC,CACD,YAAYia,EAAM,CAChB,KAAK,QAAQ,SAAWA,CACzB,CACD,SAASxnB,EAAGC,EAAG,CACb,KAAK,QAAQ,EAAI,KAAK,QAAQ,OAASD,EACvC,KAAK,QAAQ,EAAI,KAAK,QAAQ,OAASC,CACxC,CACD,mBAAmBD,EAAGC,EAAG,CACvB,KAAK,WAAW,CAACA,CAAC,EAClB,KAAK,SAASD,EAAGC,CAAC,CACnB,CACD,cAAc7S,EAAGhB,EAAGiB,EAAG,EAAGwX,EAAG8R,EAAG,CAC9B,KAAK,QAAQ,WAAa,CAACvpB,EAAGhB,EAAGiB,EAAG,EAAGwX,EAAG8R,CAAC,EAC3C,KAAK,QAAQ,gBAAkB,KAAK,MAAMvpB,EAAGhB,CAAC,EAC9C,KAAK,QAAQ,EAAI,KAAK,QAAQ,MAAQ,EACtC,KAAK,QAAQ,EAAI,KAAK,QAAQ,MAAQ,CACvC,CACD,UAAW,CACT,KAAK,SAAS,EAAG,KAAK,QAAQ,OAAO,CACtC,CACD,UAAUmuB,EAAWva,EAAGC,EAAGwnB,EAAkB,CAC3C,MAAM9hB,EAAM,KAAK,IACX+U,EAAU,KAAK,QACf7f,EAAO6f,EAAQ,KACfgN,EAAoBhN,EAAQ,kBAC5BiN,GAAWjN,EAAQ,SAAWA,EAAQ,cACtCkN,GAAiBF,EAAoBtrB,EAAM,kBAAkB,iBAC7DyrB,GAAiB,CAAC,EAAEH,EAAoBtrB,EAAM,kBAAkB,kBAChE0rB,GAAcpN,EAAQ,aAAe,CAAC7f,EAAK,YACjD,IAAIktB,IACAltB,EAAK,iBAAmBgtB,IAAkBC,MAC5CC,GAAYltB,EAAK,iBAAiB,KAAK,WAAY0f,CAAS,GAE1D1f,EAAK,iBAAmBitB,IAC1BniB,EAAI,KAAI,EACRA,EAAI,UAAU3F,EAAGC,CAAC,EAClB0F,EAAI,UAAS,EACboiB,GAAUpiB,EAAKgiB,EAAQ,EACnBF,GACF9hB,EAAI,aAAa,GAAG8hB,CAAgB,GAElCG,KAAmBxrB,EAAM,kBAAkB,MAAQwrB,KAAmBxrB,EAAM,kBAAkB,cAChGuJ,EAAI,KAAI,GAENiiB,KAAmBxrB,EAAM,kBAAkB,QAAUwrB,KAAmBxrB,EAAM,kBAAkB,cAClGuJ,EAAI,OAAM,EAEZA,EAAI,QAAO,KAEPiiB,KAAmBxrB,EAAM,kBAAkB,MAAQwrB,KAAmBxrB,EAAM,kBAAkB,cAChGuJ,EAAI,SAAS4U,EAAWva,EAAGC,CAAC,GAE1B2nB,KAAmBxrB,EAAM,kBAAkB,QAAUwrB,KAAmBxrB,EAAM,kBAAkB,cAClGuJ,EAAI,WAAW4U,EAAWva,EAAGC,CAAC,GAG9B4nB,KACY,KAAK,mBAAL,KAAK,iBAAqB,KAClC,KAAK,CACT,aAAepqB,EAAe,qBAAqBkI,CAAG,EACtD,EAAA3F,EACA,EAAAC,EACA,SAAA0nB,GACA,UAAAI,EACR,CAAO,CAEJ,CACD,IAAI,yBAA0B,CAC5B,KAAM,CACJ,QAASpiB,CACf,EAAQ,KAAK,eAAe,UAAU,0BAA2B,GAAI,EAAE,EACnEA,EAAI,MAAM,IAAK,CAAC,EAChBA,EAAI,SAAS,IAAK,EAAG,EAAE,EACvB,MAAMzV,EAAOyV,EAAI,aAAa,EAAG,EAAG,GAAI,EAAE,EAAE,KAC5C,IAAIqiB,EAAU,GACd,QAAS78B,EAAI,EAAGA,EAAI+E,EAAK,OAAQ/E,GAAK,EACpC,GAAI+E,EAAK/E,CAAC,EAAI,GAAK+E,EAAK/E,CAAC,EAAI,IAAK,CAChC68B,EAAU,GACV,KACD,CAEH,SAAW5rB,EAAM,QAAQ,KAAM,0BAA2B4rB,CAAO,CAClE,CACD,SAASC,EAAQ,CACf,MAAMvN,EAAU,KAAK,QACf7f,EAAO6f,EAAQ,KACrB,GAAI7f,EAAK,YACP,OAAO,KAAK,cAAcotB,CAAM,EAElC,MAAMN,EAAWjN,EAAQ,SACzB,GAAIiN,IAAa,EACf,OAEF,MAAMhiB,EAAM,KAAK,IACXuiB,EAAgBxN,EAAQ,cACxByN,EAAczN,EAAQ,YACtB0N,EAAc1N,EAAQ,YACtB2N,GAAgB3N,EAAQ,cACxB4N,GAAa5N,EAAQ,WAAa2N,GAClCE,GAAeN,EAAO,OACtBO,GAAW3tB,EAAK,SAChB4tB,GAAaD,GAAW,EAAI,GAC5BE,GAAkB7tB,EAAK,gBACvB8tB,GAAoBhB,EAAWjN,EAAQ,WAAW,CAAC,EACnDkO,GAAiBlO,EAAQ,oBAAsBte,EAAM,kBAAkB,MAAQ,CAACvB,EAAK,iBAAmB,CAAC6f,EAAQ,YACvH/U,EAAI,KAAI,EACRA,EAAI,UAAU,GAAG+U,EAAQ,UAAU,EACnC/U,EAAI,UAAU+U,EAAQ,EAAGA,EAAQ,EAAIA,EAAQ,QAAQ,EACjD2N,GAAgB,EAClB1iB,EAAI,MAAM2iB,GAAY,EAAE,EAExB3iB,EAAI,MAAM2iB,GAAY,CAAC,EAEzB,IAAIb,GACJ,GAAI/M,EAAQ,YAAa,CACvB/U,EAAI,KAAI,EACR,MAAMkjB,GAAUnO,EAAQ,UAAU,WAAW/U,EAAK,QAAUlI,EAAe,4BAA4BkI,CAAG,EAAGsV,EAAgB,SAAS,IAAI,EAC1IwM,MAAuBhqB,EAAe,qBAAqBkI,CAAG,EAC9DA,EAAI,QAAO,EACXA,EAAI,UAAYkjB,EACjB,CACD,IAAIC,GAAYpO,EAAQ,UACxB,MAAMzlB,GAAQylB,EAAQ,gBACtB,GAAIzlB,KAAU,GAAK6zB,KAAc,EAAG,CAClC,MAAMlB,GAAiBlN,EAAQ,kBAAoBte,EAAM,kBAAkB,kBACvEwrB,KAAmBxrB,EAAM,kBAAkB,QAAUwrB,KAAmBxrB,EAAM,kBAAkB,eAClG0sB,GAAY,KAAK,sBAEzB,MACMA,IAAa7zB,GAOf,GALIizB,IAAkB,IACpBviB,EAAI,MAAMuiB,EAAeA,CAAa,EACtCY,IAAaZ,GAEfviB,EAAI,UAAYmjB,GACZjuB,EAAK,mBAAoB,CAC3B,MAAMkuB,GAAQ,CAAA,EACd,IAAI/tB,GAAQ,EACZ,UAAWguB,MAASf,EAClBc,GAAM,KAAKC,GAAM,OAAO,EACxBhuB,IAASguB,GAAM,MAEjBrjB,EAAI,SAASojB,GAAM,KAAK,EAAE,EAAG,EAAG,CAAC,EACjCrO,EAAQ,GAAK1f,GAAQ2tB,GAAoBL,GACzC3iB,EAAI,QAAO,EACX,KAAK,QAAO,EACZ,MACD,CACD,IAAI3F,GAAI,EACN7U,GACF,IAAKA,GAAI,EAAGA,GAAIo9B,GAAc,EAAEp9B,GAAG,CACjC,MAAM69B,GAAQf,EAAO98B,EAAC,EACtB,GAAI,OAAO69B,IAAU,SAAU,CAC7BhpB,IAAKyoB,GAAaO,GAAQrB,EAAW,IACrC,QACD,CACD,IAAIsB,GAAgB,GACpB,MAAMjC,IAAWgC,GAAM,QAAUZ,EAAc,GAAKD,EAC9C5N,GAAYyO,GAAM,SAClBE,GAASF,GAAM,OACrB,IAAIG,GAASC,GACTpuB,GAAQguB,GAAM,MAClB,GAAIR,GAAU,CACZ,MAAMa,GAAUL,GAAM,SAAWN,GAC3BY,GAAK,EAAEN,GAAM,QAAUK,GAAQ,CAAC,EAAIruB,GAAQ,IAAO2tB,GACnDY,EAAKF,GAAQ,CAAC,EAAIV,GACxB3tB,GAAQquB,GAAU,CAACA,GAAQ,CAAC,EAAIruB,GAChCmuB,GAAUG,GAAKpB,EACfkB,IAAWppB,GAAIupB,GAAMrB,CAC7B,MACQiB,GAAUnpB,GAAIkoB,EACdkB,GAAU,EAEZ,GAAIvuB,EAAK,WAAaG,GAAQ,EAAG,CAC/B,MAAMwuB,GAAgB7jB,EAAI,YAAY4U,EAAS,EAAE,MAAQ,IAAOoN,EAAWO,EAC3E,GAAIltB,GAAQwuB,IAAiB,KAAK,wBAAyB,CACzD,MAAMC,GAAkBzuB,GAAQwuB,GAChCP,GAAgB,GAChBtjB,EAAI,KAAI,EACRA,EAAI,MAAM8jB,GAAiB,CAAC,EAC5BN,IAAWM,EACrB,MAAmBzuB,KAAUwuB,KACnBL,KAAYnuB,GAAQwuB,IAAiB,IAAO7B,EAAWO,EAE1D,CACD,GAAI,KAAK,iBAAmBc,GAAM,UAAYnuB,EAAK,cACjD,GAAI+tB,IAAkB,CAACM,GACrBvjB,EAAI,SAAS4U,GAAW4O,GAASC,EAAO,UAExC,KAAK,UAAU7O,GAAW4O,GAASC,GAAS3B,EAAgB,EACxDyB,GAAQ,CACV,MAAMQ,GAAgBP,GAAUxB,EAAWuB,GAAO,OAAO,EAAIhB,EACvDyB,GAAgBP,GAAUzB,EAAWuB,GAAO,OAAO,EAAIhB,EAC7D,KAAK,UAAUgB,GAAO,SAAUQ,GAAeC,GAAelC,EAAgB,CAC/E,EAGL,MAAMmC,GAAYpB,GAAWxtB,GAAQ2tB,GAAoB3B,GAAUqB,GAAgBrtB,GAAQ2tB,GAAoB3B,GAAUqB,GACzHroB,IAAK4pB,GACDX,IACFtjB,EAAI,QAAO,CAEd,CACG6iB,GACF9N,EAAQ,GAAK1a,GAEb0a,EAAQ,GAAK1a,GAAIsoB,GAEnB3iB,EAAI,QAAO,EACX,KAAK,QAAO,CAEb,CACD,cAAcsiB,EAAQ,CACpB,MAAMtiB,EAAM,KAAK,IACX+U,EAAU,KAAK,QACf7f,EAAO6f,EAAQ,KACfiN,EAAWjN,EAAQ,SACnB2N,EAAgB3N,EAAQ,cACxB+N,EAAa5tB,EAAK,SAAW,EAAI,GACjCstB,EAAczN,EAAQ,YACtB0N,GAAc1N,EAAQ,YACtB4N,GAAa5N,EAAQ,WAAa2N,EAClCwB,GAAanP,EAAQ,YAActe,EAAM,qBACzCmsB,GAAeN,EAAO,OACtB6B,GAAkBpP,EAAQ,oBAAsBte,EAAM,kBAAkB,UAC9E,IAAIjR,GAAG69B,GAAOhuB,GAAO+uB,GACrB,GAAI,EAAAD,IAAmBnC,IAAa,GASpC,KANA,KAAK,wBAAwB,CAAC,EAAI,GAClC,KAAK,2BAA6B,KAClChiB,EAAI,KAAI,EACRA,EAAI,UAAU,GAAG+U,EAAQ,UAAU,EACnC/U,EAAI,UAAU+U,EAAQ,EAAGA,EAAQ,CAAC,EAClC/U,EAAI,MAAM2iB,GAAYD,CAAa,EAC9Bl9B,GAAI,EAAGA,GAAIo9B,GAAc,EAAEp9B,GAAG,CAEjC,GADA69B,GAAQf,EAAO98B,EAAC,EACZ,OAAO69B,IAAU,SAAU,CAC7Be,GAAgBtB,EAAaO,GAAQrB,EAAW,IAChD,KAAK,IAAI,UAAUoC,GAAe,CAAC,EACnCrP,EAAQ,GAAKqP,GAAgBzB,GAC7B,QACD,CACD,MAAMtB,IAAWgC,GAAM,QAAUZ,GAAc,GAAKD,EAC9ChwB,GAAe0C,EAAK,qBAAqBmuB,GAAM,cAAc,EACnE,GAAI,CAAC7wB,GAAc,IACbiE,EAAM,MAAM,oBAAoB4sB,GAAM,cAAc,qBAAqB,EAC7E,QACD,CACG,KAAK,iBACP,KAAK,gBAAkBA,GACvB,KAAK,KAAI,EACTrjB,EAAI,MAAMgiB,EAAUA,CAAQ,EAC5BhiB,EAAI,UAAU,GAAGkkB,EAAU,EAC3B,KAAK,oBAAoB1xB,EAAY,EACrC,KAAK,QAAO,GAGd6C,GADoBoB,EAAM,KAAK,eAAe,CAAC4sB,GAAM,MAAO,CAAC,EAAGa,EAAU,EACtD,CAAC,EAAIlC,EAAWX,GACpCrhB,EAAI,UAAU3K,GAAO,CAAC,EACtB0f,EAAQ,GAAK1f,GAAQstB,EACtB,CACD3iB,EAAI,QAAO,EACX,KAAK,gBAAkB,KACxB,CACD,aAAaqkB,EAAQC,EAAQ,CAAE,CAC/B,sBAAsBD,EAAQC,EAAQC,EAAKC,EAAKC,EAAKC,EAAK,CACxD,KAAK,IAAI,KAAKH,EAAKC,EAAKC,EAAMF,EAAKG,EAAMF,CAAG,EAC5C,KAAK,IAAI,OACT,KAAK,QAAO,CACb,CACD,kBAAkBG,EAAI,CACpB,IAAIzB,EACJ,GAAIyB,EAAG,CAAC,IAAM,gBAAiB,CAC7B,MAAMriB,EAAQqiB,EAAG,CAAC,EACZC,EAAgB,KAAK,kBAAqB9sB,EAAe,qBAAqB,KAAK,GAAG,EACtF+sB,EAAwB,CAC5B,qBAAsB7kB,GACb,IAAIid,GAAejd,EAAK,KAAK,WAAY,KAAK,KAAM,KAAK,cAAe,KAAK,cAAe,CACjG,sBAAuB,KAAK,sBAC5B,mBAAoB,KAAK,kBACrC,CAAW,CAEX,EACMkjB,EAAU,IAAI5N,EAAgB,cAAcqP,EAAIriB,EAAO,KAAK,IAAKuiB,EAAuBD,CAAa,CAC3G,MACM1B,EAAU,KAAK,YAAYyB,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,EAEzC,OAAOzB,CACR,CACD,iBAAkB,CAChB,KAAK,QAAQ,YAAc,KAAK,kBAAkB,SAAS,CAC5D,CACD,eAAgB,CACd,KAAK,QAAQ,UAAY,KAAK,kBAAkB,SAAS,EACzD,KAAK,QAAQ,YAAc,EAC5B,CACD,kBAAkB38B,EAAGC,EAAGC,EAAG,CACzB,MAAM6b,EAAQ7L,EAAM,KAAK,aAAalQ,EAAGC,EAAGC,CAAC,EAC7C,KAAK,IAAI,YAAc6b,EACvB,KAAK,QAAQ,YAAcA,CAC5B,CACD,gBAAgB/b,EAAGC,EAAGC,EAAG,CACvB,MAAM6b,EAAQ7L,EAAM,KAAK,aAAalQ,EAAGC,EAAGC,CAAC,EAC7C,KAAK,IAAI,UAAY6b,EACrB,KAAK,QAAQ,UAAYA,EACzB,KAAK,QAAQ,YAAc,EAC5B,CACD,YAAYzM,EAAOivB,EAAS,KAAM,CAChC,IAAI5B,EACJ,OAAI,KAAK,eAAe,IAAIrtB,CAAK,EAC/BqtB,EAAU,KAAK,eAAe,IAAIrtB,CAAK,GAEvCqtB,KAAc5N,EAAgB,mBAAmB,KAAK,UAAUzf,CAAK,CAAC,EACtE,KAAK,eAAe,IAAIA,EAAOqtB,CAAO,GAEpC4B,IACF5B,EAAQ,OAAS4B,GAEZ5B,CACR,CACD,YAAYrtB,EAAO,CACjB,GAAI,CAAC,KAAK,eACR,OAEF,MAAMmK,EAAM,KAAK,IACjB,KAAK,KAAI,EACT,MAAMkjB,EAAU,KAAK,YAAYrtB,CAAK,EACtCmK,EAAI,UAAYkjB,EAAQ,WAAWljB,EAAK,QAAUlI,EAAe,4BAA4BkI,CAAG,EAAGsV,EAAgB,SAAS,OAAO,EACnI,MAAMyP,KAAUjtB,EAAe,4BAA4BkI,CAAG,EAC9D,GAAI+kB,EAAK,CACP,KAAM,CACJ,MAAA1vB,EACA,OAAAC,CACR,EAAU0K,EAAI,OACF,CAAC1X,EAAIC,EAAIC,GAAIC,EAAE,EAAIgO,EAAM,KAAK,2BAA2B,CAAC,EAAG,EAAGpB,EAAOC,CAAM,EAAGyvB,CAAG,EACzF,KAAK,IAAI,SAASz8B,EAAIC,EAAIC,GAAKF,EAAIG,GAAKF,CAAE,CAChD,MACM,KAAK,IAAI,SAAS,MAAO,MAAO,KAAM,IAAI,EAE5C,KAAK,QAAQ,KAAK,QAAQ,0BAA2B,CAAA,EACrD,KAAK,QAAO,CACb,CACD,kBAAmB,IACbkO,EAAM,aAAa,kCAAkC,CAC1D,CACD,gBAAiB,IACXA,EAAM,aAAa,gCAAgC,CACxD,CACD,sBAAsBquB,EAAQE,EAAM,CAClC,GAAK,KAAK,iBAGV,KAAK,KAAI,EACT,KAAK,mBAAmB,KAAK,KAAK,aAAa,EAC3C,MAAM,QAAQF,CAAM,GAAKA,EAAO,SAAW,GAC7C,KAAK,UAAU,GAAGA,CAAM,EAE1B,KAAK,iBAAoBhtB,EAAe,qBAAqB,KAAK,GAAG,EACjEktB,GAAM,CACR,MAAM3vB,EAAQ2vB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACxB1vB,EAAS0vB,EAAK,CAAC,EAAIA,EAAK,CAAC,EAC/B,KAAK,IAAI,KAAKA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAG3vB,EAAOC,CAAM,EAC7C,KAAK,QAAQ,oBAAqBwC,EAAe,qBAAqB,KAAK,GAAG,EAAGktB,CAAI,EACrF,KAAK,KAAI,EACT,KAAK,QAAO,CACb,CACF,CACD,qBAAsB,CACf,KAAK,iBAGV,KAAK,QAAO,EACZ,KAAK,cAAgB,KAAK,mBAAmB,IAAG,EACjD,CACD,WAAWC,EAAO,CAChB,GAAI,CAAC,KAAK,eACR,OAEF,KAAK,KAAI,EACL,KAAK,cACP,KAAK,aAAY,EACjB,KAAK,QAAQ,YAAc,MAE7B,MAAMC,EAAa,KAAK,IACnBD,EAAM,aACLxuB,EAAM,MAAM,oCAAoC,EAElDwuB,EAAM,aACJxuB,EAAM,MAAM,gCAAgC,EAElD,MAAMyoB,KAAuBpnB,EAAe,qBAAqBotB,CAAU,EAI3E,GAHID,EAAM,QACRC,EAAW,UAAU,GAAGD,EAAM,MAAM,EAElC,CAACA,EAAM,KACT,MAAM,IAAI,MAAM,2BAA2B,EAE7C,IAAIl8B,EAAS0N,EAAM,KAAK,2BAA2BwuB,EAAM,QAAUntB,EAAe,qBAAqBotB,CAAU,CAAC,EAClH,MAAMC,EAAe,CAAC,EAAG,EAAGD,EAAW,OAAO,MAAOA,EAAW,OAAO,MAAM,EAC7En8B,EAAS0N,EAAM,KAAK,UAAU1N,EAAQo8B,CAAY,GAAK,CAAC,EAAG,EAAG,EAAG,CAAC,EAClE,MAAM31B,EAAU,KAAK,MAAMzG,EAAO,CAAC,CAAC,EAC9B0G,EAAU,KAAK,MAAM1G,EAAO,CAAC,CAAC,EACpC,IAAI22B,EAAa,KAAK,IAAI,KAAK,KAAK32B,EAAO,CAAC,CAAC,EAAIyG,EAAS,CAAC,EACvDmwB,GAAc,KAAK,IAAI,KAAK,KAAK52B,EAAO,CAAC,CAAC,EAAI0G,EAAS,CAAC,EACxDgoB,GAAS,EACXC,GAAS,EACPgI,EAAahK,IACf+B,GAASiI,EAAahK,EACtBgK,EAAahK,GAEXiK,GAAcjK,IAChBgC,GAASiI,GAAcjK,EACvBiK,GAAcjK,GAEhB,KAAK,QAAQ,uBAAuB,CAAC,EAAG,EAAGgK,EAAYC,EAAW,CAAC,EACnE,IAAIU,GAAU,UAAY,KAAK,WAC3B4E,EAAM,QACR5E,IAAW,UAAY,KAAK,eAAiB,GAE/C,MAAMC,GAAgB,KAAK,eAAe,UAAUD,GAASX,EAAYC,EAAW,EAC9EyF,GAAW9E,GAAc,QAC/B8E,GAAS,MAAM,EAAI3N,GAAQ,EAAIC,EAAM,EACrC0N,GAAS,UAAU,CAAC51B,EAAS,CAACC,CAAO,EACrC21B,GAAS,UAAU,GAAGlG,CAAgB,EAClC+F,EAAM,MACR,KAAK,WAAW,KAAK,CACnB,OAAQ3E,GAAc,OACtB,QAAS8E,GACT,QAAA51B,EACA,QAAAC,EACA,OAAAgoB,GACA,OAAAC,GACA,QAASuN,EAAM,MAAM,QACrB,SAAUA,EAAM,MAAM,SACtB,YAAaA,EAAM,MAAM,aAAe,KACxC,sBAAuB,IAC/B,CAAO,GAEDC,EAAW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACxCA,EAAW,UAAU11B,EAASC,CAAO,EACrCy1B,EAAW,MAAMzN,GAAQC,EAAM,EAC/BwN,EAAW,KAAI,GAEjB3K,EAAa2K,EAAYE,EAAQ,EACjC,KAAK,IAAMA,GACX,KAAK,UAAU,CAAC,CAAC,KAAM,aAAa,EAAG,CAAC,KAAM,CAAC,EAAG,CAAC,KAAM,CAAC,CAAC,CAAC,EAC5D,KAAK,WAAW,KAAKF,CAAU,EAC/B,KAAK,YACN,CACD,SAASD,EAAO,CACd,GAAI,CAAC,KAAK,eACR,OAEF,KAAK,aACL,MAAMG,EAAW,KAAK,IAChBplB,EAAM,KAAK,WAAW,IAAG,EAG/B,GAFA,KAAK,IAAMA,EACX,KAAK,IAAI,sBAAwB,GAC7BilB,EAAM,MACR,KAAK,UAAY,KAAK,WAAW,IAAG,EACpC,KAAK,QAAO,MACP,CACL,KAAK,IAAI,UACT,MAAMI,KAAiBvtB,EAAe,qBAAqB,KAAK,GAAG,EACnE,KAAK,QAAO,EACZ,KAAK,IAAI,OACT,KAAK,IAAI,aAAa,GAAGutB,CAAU,EACnC,MAAM9E,EAAW9pB,EAAM,KAAK,2BAA2B,CAAC,EAAG,EAAG2uB,EAAS,OAAO,MAAOA,EAAS,OAAO,MAAM,EAAGC,CAAU,EACxH,KAAK,IAAI,UAAUD,EAAS,OAAQ,EAAG,CAAC,EACxC,KAAK,IAAI,UACT,KAAK,QAAQ7E,CAAQ,CACtB,CACF,CACD,gBAAgBzxB,EAAI/G,EAAMrB,EAAWo+B,EAAQQ,EAAc,CAQzD,GAPAj1B,EAAA,KAAK+sB,EAAAgB,IAAL,WACAzD,EAAkB,KAAK,GAAG,EAC1B,KAAK,IAAI,OACT,KAAK,KAAI,EACL,KAAK,eACP,KAAK,IAAI,aAAa,GAAG,KAAK,aAAa,EAEzC,MAAM,QAAQ5yB,CAAI,GAAKA,EAAK,SAAW,EAAG,CAC5C,MAAMsN,EAAQtN,EAAK,CAAC,EAAIA,EAAK,CAAC,EACxBuN,EAASvN,EAAK,CAAC,EAAIA,EAAK,CAAC,EAC/B,GAAIu9B,GAAgB,KAAK,oBAAqB,CAC5C5+B,EAAYA,EAAU,QACtBA,EAAU,CAAC,GAAKqB,EAAK,CAAC,EACtBrB,EAAU,CAAC,GAAKqB,EAAK,CAAC,EACtBA,EAAOA,EAAK,QACZA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,EACpBA,EAAK,CAAC,EAAIsN,EACVtN,EAAK,CAAC,EAAIuN,EACV,KAAM,CAACmiB,EAAQC,EAAM,EAAIjhB,EAAM,KAAK,iCAAkCqB,EAAe,qBAAqB,KAAK,GAAG,CAAC,EAC7G,CACJ,cAAAytB,EACD,EAAG,KACEC,GAAc,KAAK,KAAKnwB,EAAQ,KAAK,aAAekwB,EAAa,EACjEE,GAAe,KAAK,KAAKnwB,EAAS,KAAK,aAAeiwB,EAAa,EACzE,KAAK,iBAAmB,KAAK,cAAc,OAAOC,GAAaC,EAAY,EAC3E,KAAM,CACJ,OAAA3X,GACA,QAAAvW,EACV,EAAY,KAAK,iBACT,KAAK,oBAAoB,IAAIzI,EAAIgf,EAAM,EACvC,KAAK,iBAAiB,SAAW,KAAK,IACtC,KAAK,IAAMvW,GACX,KAAK,IAAI,OACT,KAAK,IAAI,aAAakgB,EAAQ,EAAG,EAAG,CAACC,GAAQ,EAAGpiB,EAASoiB,EAAM,EAC/DiD,EAAkB,KAAK,GAAG,CAClC,MACQA,EAAkB,KAAK,GAAG,EAC1B,KAAK,IAAI,KAAK5yB,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGsN,EAAOC,CAAM,EAC7C,KAAK,IAAI,OACT,KAAK,QAAO,CAEf,CACD,KAAK,QAAU,IAAIsjB,EAAiB,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EACjF,KAAK,UAAU,GAAGlyB,CAAS,EAC3B,KAAK,UAAU,GAAGo+B,CAAM,CACzB,CACD,eAAgB,CACV,KAAK,mBACP,KAAK,IAAI,UACTz0B,EAAA,KAAKgtB,GAAAiB,IAAL,WACA,KAAK,IAAM,KAAK,iBAAiB,SACjC,OAAO,KAAK,iBAAiB,SAC7B,OAAO,KAAK,iBAEf,CACD,sBAAsBC,EAAK,CACzB,GAAI,CAAC,KAAK,eACR,OAEF,MAAMjG,EAAQiG,EAAI,MAClBA,EAAM,KAAK,UAAUA,EAAI,KAAMA,CAAG,EAClCA,EAAI,MAAQjG,EACZ,MAAMtY,EAAM,KAAK,IACXqjB,EAAQ,KAAK,gBACnB,GAAIA,IACEA,EAAM,WAAa,SACrBA,EAAM,SAAW1L,EAAkB4G,CAAG,GAEpC8E,EAAM,UAAU,CAClBA,EAAM,SAASrjB,CAAG,EAClB,MACD,CAEH,MAAMqY,EAAO,KAAK,kBAAkBkG,CAAG,EACjCa,EAAa/G,EAAK,OACxBrY,EAAI,KAAI,EACRA,EAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjCA,EAAI,UAAUof,EAAY/G,EAAK,QAASA,EAAK,OAAO,EACpDrY,EAAI,QAAO,EACX,KAAK,QAAO,CACb,CACD,4BAA4Bue,EAAK9G,EAAQiO,EAAQ,EAAGC,EAAQ,EAAGjO,EAAQkO,EAAW,CAChF,GAAI,CAAC,KAAK,eACR,OAEFrH,EAAM,KAAK,UAAUA,EAAI,KAAMA,CAAG,EAClC,MAAMve,EAAM,KAAK,IACjBA,EAAI,KAAI,EACR,MAAMkf,KAAuBpnB,EAAe,qBAAqBkI,CAAG,EACpEA,EAAI,UAAUyX,EAAQiO,EAAOC,EAAOjO,EAAQ,EAAG,CAAC,EAChD,MAAMW,GAAO,KAAK,kBAAkBkG,CAAG,EACvCve,EAAI,aAAa,EAAG,EAAG,EAAG,EAAGqY,GAAK,QAAU6G,EAAiB,CAAC,EAAG7G,GAAK,QAAU6G,EAAiB,CAAC,CAAC,EACnG,QAAS15B,GAAI,EAAGqE,GAAK+7B,EAAU,OAAQpgC,GAAIqE,GAAIrE,IAAK,EAAG,CACrD,MAAMqgC,GAAQpvB,EAAM,KAAK,UAAUyoB,EAAkB,CAACzH,EAAQiO,EAAOC,EAAOjO,EAAQkO,EAAUpgC,EAAC,EAAGogC,EAAUpgC,GAAI,CAAC,CAAC,CAAC,EAC7G,CAAC6U,GAAGC,EAAC,EAAI7D,EAAM,KAAK,eAAe,CAAC,EAAG,CAAC,EAAGovB,EAAK,EACtD7lB,EAAI,UAAUqY,GAAK,OAAQhe,GAAGC,EAAC,CAChC,CACD0F,EAAI,QAAO,EACX,KAAK,QAAO,CACb,CACD,2BAA2B8lB,EAAQ,CACjC,GAAI,CAAC,KAAK,eACR,OAEF,MAAM9lB,EAAM,KAAK,IACXgf,EAAY,KAAK,QAAQ,UACzBC,EAAgB,KAAK,QAAQ,YACnC,UAAWhf,KAAS6lB,EAAQ,CAC1B,KAAM,CACJ,KAAAv7B,EACA,MAAA8K,EACA,OAAAC,EACA,UAAA5O,EACD,EAAGuZ,EACEmf,GAAa,KAAK,eAAe,UAAU,aAAc/pB,EAAOC,CAAM,EACtEkmB,GAAU4D,GAAW,QAC3B5D,GAAQ,KAAI,EACZ,MAAM+C,GAAM,KAAK,UAAUh0B,EAAM0V,CAAK,EACtCqa,EAAmBkB,GAAS+C,EAAG,EAC/B/C,GAAQ,yBAA2B,YACnCA,GAAQ,UAAYyD,EAAgBD,EAAU,WAAWxD,GAAS,QAAU1jB,EAAe,4BAA4BkI,CAAG,EAAGsV,EAAgB,SAAS,IAAI,EAAI0J,EAC9JxD,GAAQ,SAAS,EAAG,EAAGnmB,EAAOC,CAAM,EACpCkmB,GAAQ,QAAO,EACfxb,EAAI,KAAI,EACRA,EAAI,UAAU,GAAGtZ,EAAS,EAC1BsZ,EAAI,MAAM,EAAG,EAAE,EACfuW,EAAyBvW,EAAKof,GAAW,OAAQ,EAAG,EAAG/pB,EAAOC,EAAQ,EAAG,GAAI,EAAG,CAAC,EACjF0K,EAAI,QAAO,CACZ,CACD,KAAK,QAAO,CACb,CACD,kBAAkBnK,EAAO,CACvB,GAAI,CAAC,KAAK,eACR,OAEF,MAAM+hB,EAAU,KAAK,UAAU/hB,CAAK,EACpC,GAAI,CAAC+hB,EAAS,IACRnhB,EAAM,MAAM,iCAAiC,EACjD,MACD,CACD,KAAK,wBAAwBmhB,CAAO,CACrC,CACD,wBAAwB/hB,EAAO4hB,EAAQC,EAAQkO,EAAW,CACxD,GAAI,CAAC,KAAK,eACR,OAEF,MAAMhO,EAAU,KAAK,UAAU/hB,CAAK,EACpC,GAAI,CAAC+hB,EAAS,IACRnhB,EAAM,MAAM,iCAAiC,EACjD,MACD,CACD,MAAMpB,EAAQuiB,EAAQ,MAChBtiB,EAASsiB,EAAQ,OACjBhyB,EAAM,CAAA,EACZ,QAASJ,GAAI,EAAGqE,GAAK+7B,EAAU,OAAQpgC,GAAIqE,GAAIrE,IAAK,EAClDI,EAAI,KAAK,CACP,UAAW,CAAC6xB,EAAQ,EAAG,EAAGC,EAAQkO,EAAUpgC,EAAC,EAAGogC,EAAUpgC,GAAI,CAAC,CAAC,EAChE,EAAG,EACH,EAAG,EACH6P,EACA,EAAGC,CACX,CAAO,EAEH,KAAK,6BAA6BsiB,EAAShyB,CAAG,CAC/C,CACD,0BAA0Boa,EAAK,CAC7B,OAAI,KAAK,QAAQ,eAAiB,SAChCA,EAAI,OAAS,KAAK,QAAQ,aAC1BA,EAAI,UAAUA,EAAI,OAAQ,EAAG,CAAC,EAC9BA,EAAI,OAAS,QAERA,EAAI,MACZ,CACD,0BAA0B4X,EAAS,CACjC,GAAI,KAAK,QAAQ,eAAiB,OAChC,OAAOA,EAAQ,OAEjB,KAAM,CACJ,OAAAmO,EACA,MAAA1wB,EACA,OAAAC,CACD,EAAGsiB,EACEkH,EAAY,KAAK,eAAe,UAAU,cAAezpB,EAAOC,CAAM,EACtEypB,EAASD,EAAU,QACzB,OAAAC,EAAO,OAAS,KAAK,QAAQ,aAC7BA,EAAO,UAAUgH,EAAQ,EAAG,CAAC,EAC7BhH,EAAO,OAAS,OACTD,EAAU,MAClB,CACD,wBAAwBlH,EAAS,CAC/B,GAAI,CAAC,KAAK,eACR,OAEF,MAAMviB,EAAQuiB,EAAQ,MAChBtiB,EAASsiB,EAAQ,OACjB5X,EAAM,KAAK,IAEjB,GADA,KAAK,KAAI,EACL,CAACvJ,EAAM,SAAU,CACnB,KAAM,CACJ,OAAAgV,CACD,EAAGzL,EACAyL,IAAW,QAAUA,IAAW,KAClCzL,EAAI,OAAS,OAEhB,CACDA,EAAI,MAAM,EAAI3K,EAAO,GAAKC,CAAM,EAChC,IAAI0wB,EACJ,GAAIpO,EAAQ,OACVoO,EAAa,KAAK,0BAA0BpO,CAAO,UAC1C,OAAO,aAAgB,YAAcA,aAAmB,aAAe,CAACA,EAAQ,KACzFoO,EAAapO,MACR,CAEL,MAAMmH,EADY,KAAK,eAAe,UAAU,cAAe1pB,EAAOC,CAAM,EACnD,QACzB4jB,EAAmB6F,EAAQnH,CAAO,EAClCoO,EAAa,KAAK,0BAA0BjH,CAAM,CACnD,CACD,MAAMI,EAAS,KAAK,YAAY6G,KAAgBluB,EAAe,4BAA4BkI,CAAG,CAAC,EAC/FA,EAAI,sBAAwB0c,KAA6B5kB,EAAe,qBAAqBkI,CAAG,EAAG4X,EAAQ,WAAW,EACtHrB,EAAyBvW,EAAKmf,EAAO,IAAK,EAAG,EAAGA,EAAO,WAAYA,EAAO,YAAa,EAAG,CAAC7pB,EAAQD,EAAOC,CAAM,EAChH,KAAK,QAAO,EACZ,KAAK,QAAO,CACb,CACD,6BAA6BsiB,EAAShyB,EAAK,CACzC,GAAI,CAAC,KAAK,eACR,OAEF,MAAMoa,EAAM,KAAK,IACjB,IAAIgmB,EACJ,GAAIpO,EAAQ,OACVoO,EAAapO,EAAQ,WAChB,CACL,MAAM3Z,EAAI2Z,EAAQ,MACZ1Z,EAAI0Z,EAAQ,OAEZmH,EADY,KAAK,eAAe,UAAU,cAAe9gB,EAAGC,CAAC,EAC1C,QACzBgb,EAAmB6F,EAAQnH,CAAO,EAClCoO,EAAa,KAAK,0BAA0BjH,CAAM,CACnD,CACD,UAAW5nB,KAASvR,EAClBoa,EAAI,KAAI,EACRA,EAAI,UAAU,GAAG7I,EAAM,SAAS,EAChC6I,EAAI,MAAM,EAAG,EAAE,EACfuW,EAAyBvW,EAAKgmB,EAAY7uB,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAG,EAAG,GAAI,EAAG,CAAC,EACzF6I,EAAI,QAAO,EAEb,KAAK,QAAO,CACb,CACD,0BAA2B,CACpB,KAAK,iBAGV,KAAK,IAAI,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5B,KAAK,QAAO,EACb,CACD,UAAUimB,EAAK,CAAE,CACjB,eAAeA,EAAKxL,EAAY,CAAE,CAClC,mBAAmBwL,EAAK,CACtB,KAAK,mBAAmB,KAAK,CAC3B,QAAS,EACf,CAAK,CACF,CACD,wBAAwBA,EAAKxL,EAAY,CACnCwL,IAAQ,KACV,KAAK,mBAAmB,KAAK,CAC3B,QAAS,KAAK,sBAAsB,UAAUxL,CAAU,CAChE,CAAO,EAED,KAAK,mBAAmB,KAAK,CAC3B,QAAS,EACjB,CAAO,EAEH,KAAK,eAAiB,KAAK,kBAC5B,CACD,kBAAmB,CACjB,KAAK,mBAAmB,MACxB,KAAK,eAAiB,KAAK,kBAC5B,CACD,aAAc,CAAE,CAChB,WAAY,CAAE,CACd,YAAYyL,EAAS,CACnB,MAAMC,EAAU,KAAK,QAAQ,YAAW,EACpC,KAAK,aACP,KAAK,QAAQ,qBAEV,KAAK,aACR,KAAK,QAAQD,CAAO,EAEtB,MAAMlmB,EAAM,KAAK,IACb,KAAK,cACFmmB,IACC,KAAK,cAAgBnJ,GACvBhd,EAAI,KAAK,SAAS,EAElBA,EAAI,KAAI,GAGZ,KAAK,YAAc,MAErB,KAAK,QAAQ,uBAAuB,KAAK,QAAQ,OAAO,EACxDA,EAAI,UAAS,CACd,CACD,qBAAsB,CACpB,GAAI,CAAC,KAAK,2BAA4B,CACpC,MAAMhZ,KAAQ8Q,EAAe,qBAAqB,KAAK,GAAG,EAC1D,GAAI9Q,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,EACzB,KAAK,2BAA6B,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAE,CAAC,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,CAAC,MACxE,CACL,MAAMo/B,EAAS,KAAK,IAAIp/B,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,CAAC,EAC3Cq/B,EAAQ,KAAK,MAAMr/B,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAC7Bs/B,EAAQ,KAAK,MAAMt/B,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EACnC,KAAK,2BAA6B,KAAK,IAAIq/B,EAAOC,CAAK,EAAIF,CAC5D,CACF,CACD,OAAO,KAAK,0BACb,CACD,qBAAsB,CACpB,GAAI,KAAK,wBAAwB,CAAC,IAAM,GAAI,CAC1C,KAAM,CACJ,UAAAjD,CACR,EAAU,KAAK,QACH,CACJ,EAAA17B,EACA,EAAAhB,EACA,EAAAiB,EACA,EAAAP,CACR,EAAU,KAAK,IAAI,eACb,IAAIswB,EAAQC,EACZ,GAAIjxB,IAAM,GAAKiB,IAAM,EAAG,CACtB,MAAM2+B,EAAQ,KAAK,IAAI5+B,CAAC,EAClB6+B,GAAQ,KAAK,IAAIn/B,CAAC,EACxB,GAAIk/B,IAAUC,GACZ,GAAInD,IAAc,EAChB1L,EAASC,EAAS,EAAI2O,MACjB,CACL,MAAME,GAAkBF,EAAQlD,EAChC1L,EAASC,EAAS6O,GAAkB,EAAI,EAAIA,GAAkB,CAC/D,SACQpD,IAAc,EACvB1L,EAAS,EAAI4O,EACb3O,EAAS,EAAI4O,OACR,CACL,MAAME,GAAmBH,EAAQlD,EAC3BsD,GAAmBH,GAAQnD,EACjC1L,EAAS+O,GAAmB,EAAI,EAAIA,GAAmB,EACvD9O,EAAS+O,GAAmB,EAAI,EAAIA,GAAmB,CACxD,CACT,KAAa,CACL,MAAML,EAAS,KAAK,IAAI3+B,EAAIN,EAAIV,EAAIiB,CAAC,EAC/B2+B,GAAQ,KAAK,MAAM5+B,EAAGhB,CAAC,EACvB6/B,GAAQ,KAAK,MAAM5+B,EAAGP,CAAC,EAC7B,GAAIg8B,IAAc,EAChB1L,EAAS6O,GAAQF,EACjB1O,EAAS2O,GAAQD,MACZ,CACL,MAAMM,GAAWvD,EAAYiD,EAC7B3O,EAAS6O,GAAQI,GAAWJ,GAAQI,GAAW,EAC/ChP,EAAS2O,GAAQK,GAAWL,GAAQK,GAAW,CAChD,CACF,CACD,KAAK,wBAAwB,CAAC,EAAIjP,EAClC,KAAK,wBAAwB,CAAC,EAAIC,CACnC,CACD,OAAO,KAAK,uBACb,CACD,iBAAiBiP,EAAa,CAC5B,KAAM,CACJ,IAAA3mB,CACD,EAAG,KACE,CACJ,UAAAmjB,CACN,EAAQ,KAAK,QACH,CAAC1L,EAAQC,CAAM,EAAI,KAAK,oBAAmB,EAEjD,GADA1X,EAAI,UAAYmjB,GAAa,EACzB1L,IAAW,GAAKC,IAAW,EAAG,CAChC1X,EAAI,OAAM,EACV,MACD,CACD,MAAM4mB,EAAS5mB,EAAI,cAKnB,GAJI2mB,GACF3mB,EAAI,KAAI,EAEVA,EAAI,MAAMyX,EAAQC,CAAM,EACpBkP,EAAO,OAAS,EAAG,CACrB,MAAMt3B,EAAQ,KAAK,IAAImoB,EAAQC,CAAM,EACrC1X,EAAI,YAAY4mB,EAAO,IAAIvsB,GAAKA,EAAI/K,CAAK,CAAC,EAC1C0Q,EAAI,gBAAkB1Q,CACvB,CACD0Q,EAAI,OAAM,EACN2mB,GACF3mB,EAAI,QAAO,CAEd,CACD,kBAAmB,CACjB,QAAS,EAAI,KAAK,mBAAmB,OAAS,EAAG,GAAK,EAAG,IACvD,GAAI,CAAC,KAAK,mBAAmB,CAAC,EAAE,QAC9B,MAAO,GAGX,MAAO,EACR,CACF,EAv5CCod,EAAA,YAAAgB,GAAoB,UAAG,CACrB,KAAO,KAAK,WAAW,QAAU,KAAK,aACpC,KAAK,QAAO,EAEd,KAAK,IAAI,UACL,KAAK,oBACP,KAAK,IAAM,KAAK,aAChB,KAAK,IAAI,OACT,KAAK,IAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtC,KAAK,IAAI,UAAU,KAAK,kBAAmB,EAAG,CAAC,EAC/C,KAAK,IAAI,UACT,KAAK,kBAAoB,KAE5B,EAgBDf,GAAA,YAAAiB,GAAW,UAAG,CACZ,GAAI,KAAK,WAAY,CACnB,MAAMuI,EAAc,KAAK,cAAc,aAAa,KAAK,WAAW,WAAY,KAAK,WAAW,UAAU,EAC1G,GAAIA,IAAgB,OAAQ,CAC1B,MAAMC,EAAc,KAAK,IAAI,OAC7B,KAAK,IAAI,OAASD,EAClB,KAAK,IAAI,UAAU,KAAK,IAAI,OAAQ,EAAG,CAAC,EACxC,KAAK,IAAI,OAASC,CACnB,CACF,CACF,EA/JH,IAAMC,GAAN9J,GAghDAz8B,EAAQ,eAAiBumC,GACzB,UAAWC,KAAMvwB,EAAM,IACjBswB,GAAe,UAAUC,CAAE,IAAM,SACnCD,GAAe,UAAUtwB,EAAM,IAAIuwB,CAAE,CAAC,EAAID,GAAe,UAAUC,CAAE,EAIlE,EAEA,CAACzmC,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,cAAgBA,EAAQ,SAAW,OAC3CA,EAAQ,kBAAoBymC,EAC5B,IAAIxwB,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EAC1C,MAAM0wB,EAAW,CACf,KAAM,OACN,OAAQ,SACR,QAAS,SACX,EACA1mC,EAAQ,SAAW0mC,EACnB,SAASC,EAAiBnnB,EAAKglB,EAAM,CACnC,GAAI,CAACA,EACH,OAEF,MAAM3vB,EAAQ2vB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACxB1vB,EAAS0vB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACzBoC,EAAS,IAAI,OACnBA,EAAO,KAAKpC,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAG3vB,EAAOC,CAAM,EAC3C0K,EAAI,KAAKonB,CAAM,CAChB,CACD,MAAMC,EAAmB,CACvB,aAAc,CACR,KAAK,cAAgBA,OACnB5wB,EAAM,aAAa,uCAAuC,CAEjE,CACD,YAAa,IACPA,EAAM,aAAa,sCAAsC,CAC9D,CACF,CACD,MAAM6wB,UAAkCD,EAAmB,CACzD,YAAY1C,EAAI,CACd,QACA,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,YAAcA,EAAG,CAAC,EACvB,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,OAAS,IACf,CACD,gBAAgB3kB,EAAK,CACnB,IAAIunB,EACA,KAAK,QAAU,QACjBA,EAAOvnB,EAAI,qBAAqB,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,CAAC,EACzE,KAAK,QAAU,WACxBunB,EAAOvnB,EAAI,qBAAqB,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,EAAG,KAAK,IAAK,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,EAAG,KAAK,GAAG,GAExG,UAAWwnB,KAAa,KAAK,YAC3BD,EAAK,aAAaC,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EAE9C,OAAOD,CACR,CACD,WAAWvnB,EAAKynB,EAAO3H,EAAShH,EAAU,CACxC,IAAIoK,EACJ,GAAIpK,IAAaoO,EAAS,QAAUpO,IAAaoO,EAAS,KAAM,CAC9D,MAAMQ,EAAYD,EAAM,QAAQ,0BAA0B3O,KAAchhB,EAAe,qBAAqBkI,CAAG,CAAC,GAAK,CAAC,EAAG,EAAG,EAAG,CAAC,EAC1H3K,EAAQ,KAAK,KAAKqyB,EAAU,CAAC,EAAIA,EAAU,CAAC,CAAC,GAAK,EAClDpyB,EAAS,KAAK,KAAKoyB,EAAU,CAAC,EAAIA,EAAU,CAAC,CAAC,GAAK,EACnD5I,EAAY2I,EAAM,eAAe,UAAU,UAAWpyB,EAAOC,EAAQ,EAAI,EACzEypB,EAASD,EAAU,QACzBC,EAAO,UAAU,EAAG,EAAGA,EAAO,OAAO,MAAOA,EAAO,OAAO,MAAM,EAChEA,EAAO,UAAS,EAChBA,EAAO,KAAK,EAAG,EAAGA,EAAO,OAAO,MAAOA,EAAO,OAAO,MAAM,EAC3DA,EAAO,UAAU,CAAC2I,EAAU,CAAC,EAAG,CAACA,EAAU,CAAC,CAAC,EAC7C5H,EAAUrpB,EAAM,KAAK,UAAUqpB,EAAS,CAAC,EAAG,EAAG,EAAG,EAAG4H,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,CAAC,EAChF3I,EAAO,UAAU,GAAG0I,EAAM,aAAa,EACnC,KAAK,QACP1I,EAAO,UAAU,GAAG,KAAK,MAAM,EAEjCoI,EAAiBpI,EAAQ,KAAK,KAAK,EACnCA,EAAO,UAAY,KAAK,gBAAgBA,CAAM,EAC9CA,EAAO,KAAI,EACXmE,EAAUljB,EAAI,cAAc8e,EAAU,OAAQ,WAAW,EACzD,MAAM6I,EAAY,IAAI,UAAU7H,CAAO,EACvCoD,EAAQ,aAAayE,CAAS,CACpC,MACMR,EAAiBnnB,EAAK,KAAK,KAAK,EAChCkjB,EAAU,KAAK,gBAAgBljB,CAAG,EAEpC,OAAOkjB,CACR,CACF,CACD,SAAS0E,EAAar9B,EAAMgN,EAASnQ,EAAIC,EAAIC,EAAIugC,EAAIC,EAAIC,EAAI,CAC3D,MAAMC,EAASzwB,EAAQ,OACrB8K,EAAS9K,EAAQ,OACbnS,EAAQmF,EAAK,KACjB09B,EAAU19B,EAAK,MAAQ,EACzB,IAAI29B,EACAF,EAAO5gC,EAAK,CAAC,EAAI4gC,EAAO3gC,EAAK,CAAC,IAChC6gC,EAAM9gC,EACNA,EAAKC,EACLA,EAAK6gC,EACLA,EAAML,EACNA,EAAKC,EACLA,EAAKI,GAEHF,EAAO3gC,EAAK,CAAC,EAAI2gC,EAAO1gC,EAAK,CAAC,IAChC4gC,EAAM7gC,EACNA,EAAKC,EACLA,EAAK4gC,EACLA,EAAMJ,EACNA,EAAKC,EACLA,EAAKG,GAEHF,EAAO5gC,EAAK,CAAC,EAAI4gC,EAAO3gC,EAAK,CAAC,IAChC6gC,EAAM9gC,EACNA,EAAKC,EACLA,EAAK6gC,EACLA,EAAML,EACNA,EAAKC,EACLA,EAAKI,GAEP,MAAM1/B,GAAMw/B,EAAO5gC,CAAE,EAAImQ,EAAQ,SAAWA,EAAQ,OAC9C9O,GAAMu/B,EAAO5gC,EAAK,CAAC,EAAImQ,EAAQ,SAAWA,EAAQ,OAClD7O,IAAMs/B,EAAO3gC,CAAE,EAAIkQ,EAAQ,SAAWA,EAAQ,OAC9C5O,IAAMq/B,EAAO3gC,EAAK,CAAC,EAAIkQ,EAAQ,SAAWA,EAAQ,OAClD3O,GAAMo/B,EAAO1gC,CAAE,EAAIiQ,EAAQ,SAAWA,EAAQ,OAC9C1O,IAAMm/B,EAAO1gC,EAAK,CAAC,EAAIiQ,EAAQ,SAAWA,EAAQ,OACxD,GAAI9O,GAAMI,GACR,OAEF,MAAMs/B,GAAM9lB,EAAOwlB,CAAE,EACnBO,GAAM/lB,EAAOwlB,EAAK,CAAC,EACnBQ,GAAMhmB,EAAOwlB,EAAK,CAAC,EACfS,EAAMjmB,EAAOylB,CAAE,EACnBS,EAAMlmB,EAAOylB,EAAK,CAAC,EACnBU,EAAMnmB,EAAOylB,EAAK,CAAC,EACfW,EAAMpmB,EAAO0lB,CAAE,EACnBW,EAAMrmB,EAAO0lB,EAAK,CAAC,EACnBY,EAAMtmB,EAAO0lB,EAAK,CAAC,EACfa,EAAO,KAAK,MAAMngC,CAAE,EACxBogC,EAAO,KAAK,MAAMhgC,EAAE,EACtB,IAAIigC,EAAIC,GAAKC,GAAKC,GACdC,GAAIC,GAAKC,GAAKC,GAClB,QAAS/uB,GAAIsuB,EAAMtuB,IAAKuuB,EAAMvuB,KAAK,CACjC,GAAIA,GAAI3R,GAAI,CACV,MAAMwkB,GAAI7S,GAAI7R,EAAK,GAAKA,EAAK6R,KAAM7R,EAAKE,IACxCmgC,EAAKtgC,GAAMA,EAAKE,IAAMykB,GACtB4b,GAAMZ,IAAOA,GAAMG,GAAOnb,GAC1B6b,GAAMZ,IAAOA,GAAMG,GAAOpb,GAC1B8b,GAAMZ,IAAOA,GAAMG,GAAOrb,EAChC,KAAW,CACL,IAAIA,GACA7S,GAAIzR,GACNskB,GAAI,EACKxkB,KAAOE,GAChBskB,GAAI,EAEJA,IAAKxkB,GAAK2R,KAAM3R,GAAKE,IAEvBigC,EAAKpgC,IAAMA,GAAKE,GAAMukB,GACtB4b,GAAMT,GAAOA,EAAMG,GAAOtb,GAC1B6b,GAAMT,GAAOA,EAAMG,GAAOvb,GAC1B8b,GAAMT,GAAOA,EAAMG,GAAOxb,EAC3B,CACD,IAAIA,GACA7S,GAAI7R,EACN0kB,GAAI,EACK7S,GAAIzR,GACbskB,GAAI,EAEJA,IAAK1kB,EAAK6R,KAAM7R,EAAKI,IAEvBqgC,GAAK1gC,GAAMA,EAAKI,GAAMukB,GACtBgc,GAAMhB,IAAOA,GAAMM,GAAOtb,GAC1Bic,GAAMhB,IAAOA,GAAMM,GAAOvb,GAC1Bkc,GAAMhB,IAAOA,GAAMM,GAAOxb,GAC1B,MAAMmc,GAAM,KAAK,MAAM,KAAK,IAAIR,EAAII,EAAE,CAAC,EACjCK,GAAM,KAAK,MAAM,KAAK,IAAIT,EAAII,EAAE,CAAC,EACvC,IAAI7/B,GAAI4+B,EAAU3tB,GAAIgvB,GAAM,EAC5B,QAASjvB,GAAIivB,GAAKjvB,IAAKkvB,GAAKlvB,KAC1B8S,IAAK2b,EAAKzuB,KAAMyuB,EAAKI,IACjB/b,GAAI,EACNA,GAAI,EACKA,GAAI,IACbA,GAAI,GAEN/nB,EAAMiE,IAAG,EAAI0/B,IAAOA,GAAMI,IAAOhc,GAAI,EACrC/nB,EAAMiE,IAAG,EAAI2/B,IAAOA,GAAMI,IAAOjc,GAAI,EACrC/nB,EAAMiE,IAAG,EAAI4/B,IAAOA,GAAMI,IAAOlc,GAAI,EACrC/nB,EAAMiE,IAAG,EAAI,GAEhB,CACF,CACD,SAASmgC,EAAWj/B,EAAMk/B,EAAQlyB,EAAS,CACzC,MAAMmyB,EAAKD,EAAO,OACZE,EAAKF,EAAO,OAClB,IAAIjkC,EAAGqE,EACP,OAAQ4/B,EAAO,KAAI,CACjB,IAAK,UACH,MAAMG,EAAiBH,EAAO,eACxBI,EAAO,KAAK,MAAMH,EAAG,OAASE,CAAc,EAAI,EAChDE,EAAOF,EAAiB,EAC9B,IAAKpkC,EAAI,EAAGA,EAAIqkC,EAAMrkC,IAAK,CACzB,IAAIukC,EAAIvkC,EAAIokC,EACZ,QAASvgC,EAAI,EAAGA,EAAIygC,EAAMzgC,IAAK0gC,IAC7BnC,EAAar9B,EAAMgN,EAASmyB,EAAGK,CAAC,EAAGL,EAAGK,EAAI,CAAC,EAAGL,EAAGK,EAAIH,CAAc,EAAGD,EAAGI,CAAC,EAAGJ,EAAGI,EAAI,CAAC,EAAGJ,EAAGI,EAAIH,CAAc,CAAC,EAC9GhC,EAAar9B,EAAMgN,EAASmyB,EAAGK,EAAIH,EAAiB,CAAC,EAAGF,EAAGK,EAAI,CAAC,EAAGL,EAAGK,EAAIH,CAAc,EAAGD,EAAGI,EAAIH,EAAiB,CAAC,EAAGD,EAAGI,EAAI,CAAC,EAAGJ,EAAGI,EAAIH,CAAc,CAAC,CAE3J,CACD,MACF,IAAK,YACH,IAAKpkC,EAAI,EAAGqE,EAAK6/B,EAAG,OAAQlkC,EAAIqE,EAAIrE,GAAK,EACvCoiC,EAAar9B,EAAMgN,EAASmyB,EAAGlkC,CAAC,EAAGkkC,EAAGlkC,EAAI,CAAC,EAAGkkC,EAAGlkC,EAAI,CAAC,EAAGmkC,EAAGnkC,CAAC,EAAGmkC,EAAGnkC,EAAI,CAAC,EAAGmkC,EAAGnkC,EAAI,CAAC,CAAC,EAEtF,MACF,QACE,MAAM,IAAI,MAAM,gBAAgB,CACnC,CACF,CACD,MAAMwkC,UAA2B3C,EAAmB,CAClD,YAAY1C,EAAI,CACd,QACA,KAAK,QAAUA,EAAG,CAAC,EACnB,KAAK,QAAUA,EAAG,CAAC,EACnB,KAAK,SAAWA,EAAG,CAAC,EACpB,KAAK,QAAUA,EAAG,CAAC,EACnB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,YAAcA,EAAG,CAAC,EACvB,KAAK,OAAS,IACf,CACD,kBAAkBsF,EAAeC,EAAiBC,EAAgB,CAIhE,MAAM36B,EAAU,KAAK,MAAM,KAAK,QAAQ,CAAC,CAAC,EACpCC,EAAU,KAAK,MAAM,KAAK,QAAQ,CAAC,CAAC,EACpC26B,EAAc,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAI56B,EAC3C66B,EAAe,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAI56B,EAC5C4F,EAAQ,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI+0B,EAAcH,EAAc,CAAC,EAAI,GAAc,CAAC,EAAG,GAAgB,EACvG30B,EAAS,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI+0B,EAAeJ,EAAc,CAAC,EAAI,GAAc,CAAC,EAAG,GAAgB,EACzGxS,EAAS2S,EAAc/0B,EACvBqiB,EAAS2S,EAAe/0B,EACxBiC,GAAU,CACd,OAAQ,KAAK,QACb,OAAQ,KAAK,QACb,QAAS,CAAC/H,EACV,QAAS,CAACC,EACV,OAAQ,EAAIgoB,EACZ,OAAQ,EAAIC,CAClB,EACU4S,GAAcj1B,EAAQ,EAAc,EACpCk1B,EAAej1B,EAAS,EAAc,EACtCwpB,GAAYqL,EAAe,UAAU,OAAQG,GAAaC,EAAc,EAAK,EAC7ExL,GAASD,GAAU,QACnBv0B,GAAOw0B,GAAO,gBAAgB1pB,EAAOC,CAAM,EACjD,GAAI40B,EAAiB,CACnB,MAAM9kC,EAAQmF,GAAK,KACnB,QAAS,EAAI,EAAGV,EAAKzE,EAAM,OAAQ,EAAIyE,EAAI,GAAK,EAC9CzE,EAAM,CAAC,EAAI8kC,EAAgB,CAAC,EAC5B9kC,EAAM,EAAI,CAAC,EAAI8kC,EAAgB,CAAC,EAChC9kC,EAAM,EAAI,CAAC,EAAI8kC,EAAgB,CAAC,EAChC9kC,EAAM,EAAI,CAAC,EAAI,GAElB,CACD,UAAWqkC,KAAU,KAAK,SACxBD,EAAWj/B,GAAMk/B,EAAQlyB,EAAO,EAElC,OAAAwnB,GAAO,aAAax0B,GAAM,EAAa,CAAW,EAE3C,CACL,OAFau0B,GAAU,OAGvB,QAAStvB,EAAU,EAAcioB,EACjC,QAAShoB,EAAU,EAAcioB,EACjC,OAAAD,EACA,OAAAC,CACN,CACG,CACD,WAAW1X,EAAKynB,EAAO3H,EAAShH,EAAU,CACxCqO,EAAiBnnB,EAAK,KAAK,KAAK,EAChC,IAAI1Q,EACJ,GAAIwpB,IAAaoO,EAAS,QACxB53B,EAAQmH,EAAM,KAAK,iCAAkCqB,EAAe,qBAAqBkI,CAAG,CAAC,UAE7F1Q,EAAQmH,EAAM,KAAK,8BAA8BgxB,EAAM,aAAa,EAChE,KAAK,OAAQ,CACf,MAAM+C,EAAc/zB,EAAM,KAAK,8BAA8B,KAAK,MAAM,EACxEnH,EAAQ,CAACA,EAAM,CAAC,EAAIk7B,EAAY,CAAC,EAAGl7B,EAAM,CAAC,EAAIk7B,EAAY,CAAC,CAAC,CAC9D,CAEH,MAAMC,EAAyB,KAAK,kBAAkBn7B,EAAOwpB,IAAaoO,EAAS,QAAU,KAAO,KAAK,YAAaO,EAAM,cAAc,EAC1I,OAAI3O,IAAaoO,EAAS,UACxBlnB,EAAI,aAAa,GAAGynB,EAAM,aAAa,EACnC,KAAK,QACPznB,EAAI,UAAU,GAAG,KAAK,MAAM,GAGhCA,EAAI,UAAUyqB,EAAuB,QAASA,EAAuB,OAAO,EAC5EzqB,EAAI,MAAMyqB,EAAuB,OAAQA,EAAuB,MAAM,EAC/DzqB,EAAI,cAAcyqB,EAAuB,OAAQ,WAAW,CACpE,CACF,CACD,MAAMC,UAA4BrD,EAAmB,CACnD,YAAa,CACX,MAAO,SACR,CACF,CACD,SAASJ,EAAkBtC,EAAI,CAC7B,OAAQA,EAAG,CAAC,EAAC,CACX,IAAK,cACH,OAAO,IAAI2C,EAA0B3C,CAAE,EACzC,IAAK,OACH,OAAO,IAAIqF,EAAmBrF,CAAE,EAClC,IAAK,QACH,OAAO,IAAI+F,CACd,CACD,MAAM,IAAI,MAAM,oBAAoB/F,EAAG,CAAC,CAAC,EAAE,CAC5C,CACD,MAAMgG,EAAY,CAChB,QAAS,EACT,UAAW,CACb,EACMC,EAAN,MAAMA,CAAc,CAElB,YAAYjG,EAAIriB,EAAOtC,EAAK6kB,EAAuBD,EAAe,CAChE,KAAK,aAAeD,EAAG,CAAC,EACxB,KAAK,OAASA,EAAG,CAAC,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACxC,KAAK,KAAOA,EAAG,CAAC,EAChB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,UAAYA,EAAG,CAAC,EACrB,KAAK,WAAaA,EAAG,CAAC,EACtB,KAAK,MAAQriB,EACb,KAAK,IAAMtC,EACX,KAAK,sBAAwB6kB,EAC7B,KAAK,cAAgBD,CACtB,CACD,oBAAoB6C,EAAO,CACzB,MAAMj1B,EAAe,KAAK,aACpBwyB,EAAO,KAAK,KACZ6F,EAAQ,KAAK,MACbC,EAAQ,KAAK,MACbC,EAAY,KAAK,UACjBC,EAAa,KAAK,WAClB1oB,EAAQ,KAAK,MACbuiB,EAAwB,KAAK,yBAC/BpuB,EAAM,MAAM,eAAiBu0B,CAAU,EAC3C,MAAM1iC,EAAK08B,EAAK,CAAC,EACfz8B,EAAKy8B,EAAK,CAAC,EACXx8B,EAAKw8B,EAAK,CAAC,EACXv8B,EAAKu8B,EAAK,CAAC,EACPwF,EAAc/zB,EAAM,KAAK,8BAA8B,KAAK,MAAM,EAClEw0B,GAAiBx0B,EAAM,KAAK,8BAA8B,KAAK,aAAa,EAC5EwzB,GAAgB,CAACO,EAAY,CAAC,EAAIS,GAAe,CAAC,EAAGT,EAAY,CAAC,EAAIS,GAAe,CAAC,CAAC,EACvFC,EAAO,KAAK,gBAAgBL,EAAO,KAAK,IAAI,OAAO,MAAOZ,GAAc,CAAC,CAAC,EAC1EkB,GAAO,KAAK,gBAAgBL,EAAO,KAAK,IAAI,OAAO,OAAQb,GAAc,CAAC,CAAC,EAC3EnL,GAAY2I,EAAM,eAAe,UAAU,UAAWyD,EAAK,KAAMC,GAAK,KAAM,EAAI,EAChFpM,GAASD,GAAU,QACnBsM,GAAWvG,EAAsB,qBAAqB9F,EAAM,EAClEqM,GAAS,WAAa3D,EAAM,WAC5B,KAAK,+BAA+B2D,GAAUL,EAAWzoB,CAAK,EAC9D,IAAI+oB,EAAa/iC,EACbgjC,EAAa/iC,EACbgjC,EAAa/iC,EACbgjC,EAAa/iC,EACjB,OAAIH,EAAK,IACP+iC,EAAa,EACbE,GAAc,KAAK,IAAIjjC,CAAE,GAEvBC,EAAK,IACP+iC,EAAa,EACbE,GAAc,KAAK,IAAIjjC,CAAE,GAE3Bw2B,GAAO,UAAU,EAAEmM,EAAK,MAAQG,GAAa,EAAEF,GAAK,MAAQG,EAAW,EACvEF,GAAS,UAAUF,EAAK,MAAO,EAAG,EAAGC,GAAK,MAAO,EAAG,CAAC,EACrDpM,GAAO,KAAI,EACX,KAAK,SAASqM,GAAUC,EAAYC,EAAYC,EAAYC,CAAU,EACtEJ,GAAS,iBAAoBtzB,EAAe,qBAAqBszB,GAAS,GAAG,EAC7EA,GAAS,oBAAoB54B,CAAY,EACzC44B,GAAS,WAAU,EACZ,CACL,OAAQtM,GAAU,OAClB,OAAQoM,EAAK,MACb,OAAQC,GAAK,MACb,QAASE,EACT,QAASC,CACf,CACG,CACD,gBAAgBve,EAAM0e,EAAgBn8B,EAAO,CAC3Cyd,EAAO,KAAK,IAAIA,CAAI,EACpB,MAAMjM,EAAU,KAAK,IAAI8pB,EAAc,iBAAkBa,CAAc,EACvE,IAAIrrB,EAAO,KAAK,KAAK2M,EAAOzd,CAAK,EACjC,OAAI8Q,GAAQU,EACVV,EAAOU,EAEPxR,EAAQ8Q,EAAO2M,EAEV,CACL,MAAAzd,EACA,KAAA8Q,CACN,CACG,CACD,SAASgrB,EAAU9iC,EAAIC,EAAIC,EAAIC,EAAI,CACjC,MAAMijC,EAAYljC,EAAKF,EACjBqjC,EAAaljC,EAAKF,EACxB6iC,EAAS,IAAI,KAAK9iC,EAAIC,EAAImjC,EAAWC,CAAU,EAC/CP,EAAS,QAAQ,oBAAqBtzB,EAAe,qBAAqBszB,EAAS,GAAG,EAAG,CAAC9iC,EAAIC,EAAIC,EAAIC,CAAE,CAAC,EACzG2iC,EAAS,KAAI,EACbA,EAAS,QAAO,CACjB,CACD,+BAA+BA,EAAUL,EAAWzoB,EAAO,CACzD,MAAM/K,EAAU6zB,EAAS,IACvBrW,EAAUqW,EAAS,QACrB,OAAQL,EAAS,CACf,KAAKJ,EAAU,QACb,MAAM3qB,EAAM,KAAK,IACjBzI,EAAQ,UAAYyI,EAAI,UACxBzI,EAAQ,YAAcyI,EAAI,YAC1B+U,EAAQ,UAAY/U,EAAI,UACxB+U,EAAQ,YAAc/U,EAAI,YAC1B,MACF,KAAK2qB,EAAU,UACb,MAAMiB,EAAWn1B,EAAM,KAAK,aAAa6L,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EACrE/K,EAAQ,UAAYq0B,EACpBr0B,EAAQ,YAAcq0B,EACtB7W,EAAQ,UAAY6W,EACpB7W,EAAQ,YAAc6W,EACtB,MACF,QACE,MAAM,IAAIn1B,EAAM,YAAY,2BAA2Bs0B,CAAS,EAAE,CACrE,CACF,CACD,WAAW/qB,EAAKynB,EAAO3H,EAAShH,EAAU,CACxC,IAAIgM,EAAShF,EACThH,IAAaoO,EAAS,UACxBpC,EAASruB,EAAM,KAAK,UAAUquB,EAAQ2C,EAAM,aAAa,EACrD,KAAK,SACP3C,EAASruB,EAAM,KAAK,UAAUquB,EAAQ,KAAK,MAAM,IAGrD,MAAM2F,EAAyB,KAAK,oBAAoBhD,CAAK,EAC7D,IAAIE,EAAY,IAAI,UAAU7C,CAAM,EACpC6C,EAAYA,EAAU,UAAU8C,EAAuB,QAASA,EAAuB,OAAO,EAC9F9C,EAAYA,EAAU,MAAM,EAAI8C,EAAuB,OAAQ,EAAIA,EAAuB,MAAM,EAChG,MAAMvH,EAAUljB,EAAI,cAAcyqB,EAAuB,OAAQ,QAAQ,EACzE,OAAAvH,EAAQ,aAAayE,CAAS,EACvBzE,CACR,CACF,EA9HK0H,EACG,iBAAmB,IAD5B,IAAMiB,EAANjB,EA+HApqC,EAAQ,cAAgBqrC,CAEjB,EAEA,CAACtrC,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,2BAA6BsrC,EACrCtrC,EAAQ,cAAgBurC,EACxBvrC,EAAQ,WAAawrC,GACrB,IAAIv1B,EAAQD,EAAoB,CAAC,EACjC,SAASu1B,EAAcx+B,EAAQ,CAC7B,OAAQA,EAAO,KAAI,CACjB,KAAKkJ,EAAM,UAAU,eACnB,OAAOq1B,EAA2Bv+B,CAAM,EAC1C,KAAKkJ,EAAM,UAAU,UACnB,OAAOw1B,EAAiB1+B,CAAM,CACjC,CACD,OAAO,IACR,CACD,SAASu+B,EAA2B,CAClC,IAAA9gC,EACA,OAAAuuB,EAAS,EACT,KAAAE,EACA,MAAApkB,EACA,OAAAC,EACA,cAAA42B,EAAgB,WAChB,cAAAC,EAAgB,EAClB,EAAG,CACD,MAAMlS,EAAQxjB,EAAM,YAAY,eAAiB,WAAa,IACxD,CAAC21B,EAAaC,CAAU,EAAIF,EAAgB,CAACD,EAAejS,CAAK,EAAI,CAACA,EAAOiS,CAAa,EAC1FI,EAAgBj3B,GAAS,EACzBk3B,EAAiBl3B,EAAQ,EACzBukB,EAAY5uB,EAAI,OACtByuB,EAAO,IAAI,YAAYA,EAAK,MAAM,EAClC,IAAID,EAAU,EACd,QAASh0B,EAAI,EAAGA,EAAI8P,EAAQ9P,IAAK,CAC/B,UAAWgnC,EAAMjT,EAAS+S,EAAe/S,EAASiT,EAAKjT,IAAU,CAC/D,MAAMnB,EAAOmB,EAASK,EAAY5uB,EAAIuuB,CAAM,EAAI,IAChDE,EAAKD,GAAS,EAAIpB,EAAO,IAAaiU,EAAaD,EACnD3S,EAAKD,GAAS,EAAIpB,EAAO,GAAYiU,EAAaD,EAClD3S,EAAKD,GAAS,EAAIpB,EAAO,GAAWiU,EAAaD,EACjD3S,EAAKD,GAAS,EAAIpB,EAAO,GAAUiU,EAAaD,EAChD3S,EAAKD,GAAS,EAAIpB,EAAO,EAASiU,EAAaD,EAC/C3S,EAAKD,GAAS,EAAIpB,EAAO,EAAQiU,EAAaD,EAC9C3S,EAAKD,GAAS,EAAIpB,EAAO,EAAOiU,EAAaD,EAC7C3S,EAAKD,GAAS,EAAIpB,EAAO,EAAMiU,EAAaD,CAC7C,CACD,GAAIG,IAAmB,EACrB,SAEF,MAAMnU,EAAOmB,EAASK,EAAY5uB,EAAIuuB,GAAQ,EAAI,IAClD,QAASlwB,EAAI,EAAGA,EAAIkjC,EAAgBljC,IAClCowB,EAAKD,GAAS,EAAIpB,EAAO,GAAK,EAAI/uB,EAAIgjC,EAAaD,CAEtD,CACD,MAAO,CACL,OAAA7S,EACA,QAAAC,CACJ,CACC,CACD,SAASyS,EAAiB,CACxB,IAAAjhC,EACA,OAAAuuB,EAAS,EACT,KAAAE,EACA,QAAAD,EAAU,EACV,MAAAnkB,EACA,OAAAC,CACF,EAAG,CACD,IAAI9P,EAAI,EACR,MAAMinC,EAAQzhC,EAAI,QAAU,EACtB0hC,EAAQ,IAAI,YAAY1hC,EAAI,OAAQuuB,EAAQkT,CAAK,EACvD,GAAIh2B,EAAM,YAAY,eAAgB,CACpC,KAAOjR,EAAIinC,EAAQ,EAAGjnC,GAAK,EAAGg0B,GAAW,EAAG,CAC1C,MAAMmT,EAAKD,EAAMlnC,CAAC,EACZonC,EAAKF,EAAMlnC,EAAI,CAAC,EAChBqnC,EAAKH,EAAMlnC,EAAI,CAAC,EACtBi0B,EAAKD,CAAO,EAAImT,EAAK,WACrBlT,EAAKD,EAAU,CAAC,EAAImT,IAAO,GAAKC,GAAM,EAAI,WAC1CnT,EAAKD,EAAU,CAAC,EAAIoT,IAAO,GAAKC,GAAM,GAAK,WAC3CpT,EAAKD,EAAU,CAAC,EAAIqT,IAAO,EAAI,UAChC,CACD,QAASxjC,EAAI7D,EAAI,EAAGsnC,EAAK9hC,EAAI,OAAQ3B,EAAIyjC,EAAIzjC,GAAK,EAChDowB,EAAKD,GAAS,EAAIxuB,EAAI3B,CAAC,EAAI2B,EAAI3B,EAAI,CAAC,GAAK,EAAI2B,EAAI3B,EAAI,CAAC,GAAK,GAAK,UAEtE,KAAS,CACL,KAAO7D,EAAIinC,EAAQ,EAAGjnC,GAAK,EAAGg0B,GAAW,EAAG,CAC1C,MAAMmT,EAAKD,EAAMlnC,CAAC,EACZonC,EAAKF,EAAMlnC,EAAI,CAAC,EAChBqnC,EAAKH,EAAMlnC,EAAI,CAAC,EACtBi0B,EAAKD,CAAO,EAAImT,EAAK,IACrBlT,EAAKD,EAAU,CAAC,EAAImT,GAAM,GAAKC,IAAO,EAAI,IAC1CnT,EAAKD,EAAU,CAAC,EAAIoT,GAAM,GAAKC,IAAO,GAAK,IAC3CpT,EAAKD,EAAU,CAAC,EAAIqT,GAAM,EAAI,GAC/B,CACD,QAASxjC,EAAI7D,EAAI,EAAGsnC,EAAK9hC,EAAI,OAAQ3B,EAAIyjC,EAAIzjC,GAAK,EAChDowB,EAAKD,GAAS,EAAIxuB,EAAI3B,CAAC,GAAK,GAAK2B,EAAI3B,EAAI,CAAC,GAAK,GAAK2B,EAAI3B,EAAI,CAAC,GAAK,EAAI,GAEzE,CACD,MAAO,CACL,OAAAkwB,EACA,QAAAC,CACJ,CACC,CACD,SAASwS,GAAWhhC,EAAKyuB,EAAM,CAC7B,GAAIhjB,EAAM,YAAY,eACpB,QAASjR,EAAI,EAAGqE,EAAKmB,EAAI,OAAQxF,EAAIqE,EAAIrE,IACvCi0B,EAAKj0B,CAAC,EAAIwF,EAAIxF,CAAC,EAAI,MAAU,eAG/B,SAASA,EAAI,EAAGqE,EAAKmB,EAAI,OAAQxF,EAAIqE,EAAIrE,IACvCi0B,EAAKj0B,CAAC,EAAIwF,EAAIxF,CAAC,EAAI,SAAY,GAGpC,CAEM,EAEA,CAACjF,EAAyBC,IAAY,CAI7C,OAAO,eAAeA,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,oBAAsB,OAC9B,MAAMusC,EAAsB,OAAO,OAAO,IAAI,EAC9CvsC,EAAQ,oBAAsBusC,EAC9BA,EAAoB,WAAa,KACjCA,EAAoB,UAAY,EAEzB,EAEA,CAACxsC,EAAyBC,EAASgW,IAAwB,oBAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,eAAiB,OACzB,IAAIiW,EAAQD,EAAoB,CAAC,EACjC,MAAMw2B,EAAe,CACnB,QAAS,EACT,KAAM,EACN,MAAO,CACT,EACMC,EAAa,CACjB,QAAS,EACT,OAAQ,EACR,gBAAiB,EACjB,MAAO,EACP,QAAS,EACT,MAAO,EACP,KAAM,EACN,cAAe,EACf,eAAgB,CAClB,EACA,SAASC,EAAWziC,EAAQ,CAI1B,OAHMA,aAAkB,OAAS,OAAOA,GAAW,UAAYA,IAAW,SACpEgM,EAAM,aAAa,gEAAgE,EAEjFhM,EAAO,KAAI,CACjB,IAAK,iBACH,OAAO,IAAIgM,EAAM,eAAehM,EAAO,OAAO,EAChD,IAAK,sBACH,OAAO,IAAIgM,EAAM,oBAAoBhM,EAAO,OAAO,EACrD,IAAK,oBACH,OAAO,IAAIgM,EAAM,kBAAkBhM,EAAO,QAASA,EAAO,IAAI,EAChE,IAAK,8BACH,OAAO,IAAIgM,EAAM,4BAA4BhM,EAAO,QAASA,EAAO,MAAM,EAC5E,IAAK,wBACH,OAAO,IAAIgM,EAAM,sBAAsBhM,EAAO,QAASA,EAAO,OAAO,EACvE,QACE,OAAO,IAAIgM,EAAM,sBAAsBhM,EAAO,QAASA,EAAO,SAAQ,CAAE,CAC3E,CACF,CACD,MAAM0iC,EAAe,CACnB,YAAYC,EAAYC,EAAYC,EAAQ,CA4J5CnjC,EAAA,KAAAojC,GAmFApjC,EAAA,KAAAqjC,GAqHArjC,EAAA,KAAMsjC,GAnWJ,KAAK,WAAaL,EAClB,KAAK,WAAaC,EAClB,KAAK,OAASC,EACd,KAAK,WAAa,EAClB,KAAK,SAAW,EAChB,KAAK,YAAc,OAAO,OAAO,IAAI,EACrC,KAAK,kBAAoB,OAAO,OAAO,IAAI,EAC3C,KAAK,qBAAuB,OAAO,OAAO,IAAI,EAC9C,KAAK,cAAgB,OAAO,OAAO,IAAI,EACvC,KAAK,mBAAqB16B,GAAS,CACjC,MAAMrI,EAAOqI,EAAM,KACnB,GAAIrI,EAAK,aAAe,KAAK,WAC3B,OAEF,GAAIA,EAAK,OAAQ,CACf8F,EAAA,KAAKm9B,EAAAE,IAAL,UAA2BnjC,GAC3B,MACD,CACD,GAAIA,EAAK,SAAU,CACjB,MAAMojC,EAAapjC,EAAK,WAClBqjC,EAAa,KAAK,qBAAqBD,CAAU,EACvD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,2BAA2BD,CAAU,EAAE,EAGzD,GADA,OAAO,KAAK,qBAAqBA,CAAU,EACvCpjC,EAAK,WAAayiC,EAAa,KACjCY,EAAW,QAAQrjC,EAAK,IAAI,UACnBA,EAAK,WAAayiC,EAAa,MACxCY,EAAW,OAAOV,EAAW3iC,EAAK,MAAM,CAAC,MAEzC,OAAM,IAAI,MAAM,0BAA0B,EAE5C,MACD,CACD,MAAMsjC,EAAS,KAAK,cAActjC,EAAK,MAAM,EAC7C,GAAI,CAACsjC,EACH,MAAM,IAAI,MAAM,+BAA+BtjC,EAAK,MAAM,EAAE,EAE9D,GAAIA,EAAK,WAAY,CACnB,MAAMujC,EAAe,KAAK,WACpBC,EAAexjC,EAAK,WAC1B,IAAI,QAAQ,SAAUF,EAAS,CAC7BA,EAAQwjC,EAAOtjC,EAAK,IAAI,CAAC,CACnC,CAAS,EAAE,KAAK,SAAUyjC,EAAQ,CACxBV,EAAO,YAAY,CACjB,WAAYQ,EACZ,WAAYC,EACZ,SAAUf,EAAa,KACvB,WAAYziC,EAAK,WACjB,KAAMyjC,CAClB,CAAW,CACF,EAAE,SAAUvjC,EAAQ,CACnB6iC,EAAO,YAAY,CACjB,WAAYQ,EACZ,WAAYC,EACZ,SAAUf,EAAa,MACvB,WAAYziC,EAAK,WACjB,OAAQ2iC,EAAWziC,CAAM,CACrC,CAAW,CACX,CAAS,EACD,MACD,CACD,GAAIF,EAAK,SAAU,CACjB8F,EAAA,KAAKk9B,EAAAU,IAAL,UAAuB1jC,GACvB,MACD,CACDsjC,EAAOtjC,EAAK,IAAI,CACtB,EACI+iC,EAAO,iBAAiB,UAAW,KAAK,kBAAkB,CAC3D,CACD,GAAGY,EAAYC,EAAS,CACtB,MAAMC,EAAK,KAAK,cAChB,GAAIA,EAAGF,CAAU,EACf,MAAM,IAAI,MAAM,0CAA0CA,CAAU,GAAG,EAEzEE,EAAGF,CAAU,EAAIC,CAClB,CACD,KAAKD,EAAY3jC,EAAM0H,EAAW,CAChC,KAAK,OAAO,YAAY,CACtB,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,OAAQi8B,EACR,KAAA3jC,CACD,EAAE0H,CAAS,CACb,CACD,gBAAgBi8B,EAAY3jC,EAAM0H,EAAW,CAC3C,MAAM07B,EAAa,KAAK,aAClBC,EAAa,IAAIn3B,EAAM,kBAC7B,KAAK,qBAAqBk3B,CAAU,EAAIC,EACxC,GAAI,CACF,KAAK,OAAO,YAAY,CACtB,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,OAAQM,EACR,WAAAP,EACA,KAAApjC,CACD,EAAE0H,CAAS,CACb,OAAQrI,EAAI,CACXgkC,EAAW,OAAOhkC,CAAE,CACrB,CACD,OAAOgkC,EAAW,OACnB,CACD,eAAeM,EAAY3jC,EAAM8jC,EAAkBp8B,EAAW,CAC5D,MAAMq8B,EAAW,KAAK,WACpBlB,EAAa,KAAK,WAClBC,EAAa,KAAK,WAClBC,EAAS,KAAK,OAChB,OAAO,IAAI,eAAe,CACxB,MAAOiB,GAAc,CACnB,MAAMC,EAAkB,IAAI/3B,EAAM,kBAClC,YAAK,kBAAkB63B,CAAQ,EAAI,CACjC,WAAAC,EACA,UAAWC,EACX,SAAU,KACV,WAAY,KACZ,SAAU,EACpB,EACQlB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQa,EACR,SAAAI,EACA,KAAA/jC,EACA,YAAagkC,EAAW,WACzB,EAAEt8B,CAAS,EACLu8B,EAAgB,OACxB,EACD,KAAMD,GAAc,CAClB,MAAME,EAAiB,IAAIh4B,EAAM,kBACjC,YAAK,kBAAkB63B,CAAQ,EAAE,SAAWG,EAC5CnB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,KACnB,SAAAqB,EACA,YAAaC,EAAW,WAClC,CAAS,EACME,EAAe,OACvB,EACD,OAAQhkC,GAAU,IACZgM,EAAM,QAAQhM,aAAkB,MAAO,iCAAiC,EAC5E,MAAMikC,EAAmB,IAAIj4B,EAAM,kBACnC,YAAK,kBAAkB63B,CAAQ,EAAE,WAAaI,EAC9C,KAAK,kBAAkBJ,CAAQ,EAAE,SAAW,GAC5ChB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,OACnB,SAAAqB,EACA,OAAQpB,EAAWziC,CAAM,CACnC,CAAS,EACMikC,EAAiB,OACzB,CACF,EAAEL,CAAgB,CACpB,CA6MD,SAAU,CACR,KAAK,OAAO,oBAAoB,UAAW,KAAK,kBAAkB,CACnE,CACF,CA/MCd,EAAA,YAAAU,GAAiB,SAAC1jC,EAAM,CACtB,MAAM+jC,EAAW/jC,EAAK,SACpB6iC,EAAa,KAAK,WAClBC,EAAa9iC,EAAK,WAClB+iC,EAAS,KAAK,OACVvrB,EAAO,KACX8rB,EAAS,KAAK,cAActjC,EAAK,MAAM,EACnCokC,EAAa,CACjB,QAAQjpC,EAAO0a,EAAO,EAAGnO,EAAW,CAClC,GAAI,KAAK,YACP,OAEF,MAAM28B,EAAkB,KAAK,YAC7B,KAAK,aAAexuB,EAChBwuB,EAAkB,GAAK,KAAK,aAAe,IAC7C,KAAK,eAAiB,IAAIn4B,EAAM,kBAChC,KAAK,MAAQ,KAAK,eAAe,SAEnC62B,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,QACnB,SAAAqB,EACA,MAAA5oC,CACD,EAAEuM,CAAS,CACb,EACD,OAAQ,CACF,KAAK,cAGT,KAAK,YAAc,GACnBq7B,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,MACnB,SAAAqB,CACV,CAAS,EACD,OAAOvsB,EAAK,YAAYusB,CAAQ,EACjC,EACD,MAAM7jC,EAAQ,IACRgM,EAAM,QAAQhM,aAAkB,MAAO,gCAAgC,EACvE,MAAK,cAGT,KAAK,YAAc,GACnB6iC,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,MACnB,SAAAqB,EACA,OAAQpB,EAAWziC,CAAM,CACnC,CAAS,EACF,EACD,eAAgB,IAAIgM,EAAM,kBAC1B,OAAQ,KACR,SAAU,KACV,YAAa,GACb,YAAalM,EAAK,YAClB,MAAO,IACb,EACIokC,EAAW,eAAe,UAC1BA,EAAW,MAAQA,EAAW,eAAe,QAC7C,KAAK,YAAYL,CAAQ,EAAIK,EAC7B,IAAI,QAAQ,SAAUtkC,EAAS,CAC7BA,EAAQwjC,EAAOtjC,EAAK,KAAMokC,CAAU,CAAC,CAC3C,CAAK,EAAE,KAAK,UAAY,CAClBrB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,eACnB,SAAAqB,EACA,QAAS,EACjB,CAAO,CACF,EAAE,SAAU7jC,EAAQ,CACnB6iC,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,eACnB,SAAAqB,EACA,OAAQpB,EAAWziC,CAAM,CACjC,CAAO,CACP,CAAK,CACF,EACD+iC,EAAA,YAAAE,GAAqB,SAACnjC,EAAM,CAC1B,MAAM+jC,EAAW/jC,EAAK,SACpB6iC,EAAa,KAAK,WAClBC,EAAa9iC,EAAK,WAClB+iC,EAAS,KAAK,OACVuB,EAAmB,KAAK,kBAAkBP,CAAQ,EACtDK,EAAa,KAAK,YAAYL,CAAQ,EACxC,OAAQ/jC,EAAK,OAAM,CACjB,KAAK0iC,EAAW,eACV1iC,EAAK,QACPskC,EAAiB,UAAU,UAE3BA,EAAiB,UAAU,OAAO3B,EAAW3iC,EAAK,MAAM,CAAC,EAE3D,MACF,KAAK0iC,EAAW,cACV1iC,EAAK,QACPskC,EAAiB,SAAS,UAE1BA,EAAiB,SAAS,OAAO3B,EAAW3iC,EAAK,MAAM,CAAC,EAE1D,MACF,KAAK0iC,EAAW,KACd,GAAI,CAAC0B,EAAY,CACfrB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,cACnB,SAAAqB,EACA,QAAS,EACrB,CAAW,EACD,KACD,CACGK,EAAW,aAAe,GAAKpkC,EAAK,YAAc,GACpDokC,EAAW,eAAe,UAE5BA,EAAW,YAAcpkC,EAAK,YAC9B,IAAI,QAAQ,SAAUF,EAAS,OAC7BA,GAAQlE,EAAAwoC,EAAW,SAAX,YAAAxoC,EAAA,KAAAwoC,EAAqB,CACvC,CAAS,EAAE,KAAK,UAAY,CAClBrB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,cACnB,SAAAqB,EACA,QAAS,EACrB,CAAW,CACF,EAAE,SAAU7jC,EAAQ,CACnB6iC,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,cACnB,SAAAqB,EACA,OAAQpB,EAAWziC,CAAM,CACrC,CAAW,CACX,CAAS,EACD,MACF,KAAKwiC,EAAW,QAEd,MADIx2B,EAAM,QAAQo4B,EAAkB,uCAAuC,EACvEA,EAAiB,SACnB,MAEFA,EAAiB,WAAW,QAAQtkC,EAAK,KAAK,EAC9C,MACF,KAAK0iC,EAAW,MAEd,MADIx2B,EAAM,QAAQo4B,EAAkB,qCAAqC,EACrEA,EAAiB,SACnB,MAEFA,EAAiB,SAAW,GAC5BA,EAAiB,WAAW,QAC5Bx+B,EAAA,KAAKo9B,EAAAqB,IAAL,UAA6BD,EAAkBP,GAC/C,MACF,KAAKrB,EAAW,SACVx2B,EAAM,QAAQo4B,EAAkB,qCAAqC,EACzEA,EAAiB,WAAW,MAAM3B,EAAW3iC,EAAK,MAAM,CAAC,EACzD8F,EAAA,KAAKo9B,EAAAqB,IAAL,UAA6BD,EAAkBP,GAC/C,MACF,KAAKrB,EAAW,gBACV1iC,EAAK,QACPskC,EAAiB,WAAW,UAE5BA,EAAiB,WAAW,OAAO3B,EAAW3iC,EAAK,MAAM,CAAC,EAE5D8F,EAAA,KAAKo9B,EAAAqB,IAAL,UAA6BD,EAAkBP,GAC/C,MACF,KAAKrB,EAAW,OACd,GAAI,CAAC0B,EACH,MAEF,IAAI,QAAQ,SAAUtkC,EAAS,OAC7BA,GAAQlE,EAAAwoC,EAAW,WAAX,YAAAxoC,EAAA,KAAAwoC,EAAsBzB,EAAW3iC,EAAK,MAAM,EAAE,CAChE,CAAS,EAAE,KAAK,UAAY,CAClB+iC,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,gBACnB,SAAAqB,EACA,QAAS,EACrB,CAAW,CACF,EAAE,SAAU7jC,EAAQ,CACnB6iC,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQJ,EAAW,gBACnB,SAAAqB,EACA,OAAQpB,EAAWziC,CAAM,CACrC,CAAW,CACX,CAAS,EACDkkC,EAAW,eAAe,OAAOzB,EAAW3iC,EAAK,MAAM,CAAC,EACxDokC,EAAW,YAAc,GACzB,OAAO,KAAK,YAAYL,CAAQ,EAChC,MACF,QACE,MAAM,IAAI,MAAM,wBAAwB,CAC3C,CACF,EACKb,EAAA,YAAAqB,GAAuB,eAACD,EAAkBP,EAAU,WACxD,MAAM,QAAQ,WAAW,EAACnoC,EAAA0oC,EAAiB,YAAjB,YAAA1oC,EAA4B,SAASD,EAAA2oC,EAAiB,WAAjB,YAAA3oC,EAA2B,SAAS8H,EAAA6gC,EAAiB,aAAjB,YAAA7gC,EAA6B,OAAO,CAAC,EACxI,OAAO,KAAK,kBAAkBsgC,CAAQ,CACvC,EAKH9tC,EAAQ,eAAiB2sC,EAElB,EAEA,CAAC5sC,EAAyBC,EAASgW,IAAwB,SAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,SAAW,OACnB,IAAIiW,EAAQD,EAAoB,CAAC,EACjC,MAAMu4B,CAAS,CAGb,YAAY,CACV,WAAAC,EACA,QAAA1uB,CACJ,EAAK,CALHnW,EAAA,KAAA8kC,EAAA,QACA9kC,EAAA,KAAA+kC,EAAA,QAKE1kC,GAAA,KAAKykC,EAAeD,GACpBxkC,GAAA,KAAK0kC,EAAQ5uB,EACd,CACD,QAAS,CACP,OAAO5V,EAAA,KAAKwkC,EACb,CACD,IAAIzqC,EAAM,CACR,OAAOiG,EAAA,KAAKukC,GAAa,IAAIxqC,CAAI,GAAK,IACvC,CACD,QAAS,CACP,SAAWgS,EAAM,eAAe/L,EAAA,KAAKukC,EAAY,CAClD,CACD,IAAIxqC,EAAM,CACR,OAAOiG,EAAA,KAAKukC,GAAa,IAAIxqC,CAAI,CAClC,CACF,CArBCwqC,EAAA,YACAC,EAAA,YAqBF1uC,EAAQ,SAAWuuC,CAEZ,EAEA,CAACxuC,EAAyBC,EAASgW,IAAwB,oBAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,sBAAwB,OAChC,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BG,EAAcH,EAAoB,CAAC,EACvC,MAAM24B,EAAW,OAAO,UAAU,EAClC,MAAMC,CAAqB,CAEzB,YAAY3qC,EAAMkL,EAAQ,CAD1BxF,EAAA,KAAAklC,EAAW,IAET,KAAK,KAAO5qC,EACZ,KAAK,OAASkL,CACf,CACD,IAAI,SAAU,CACZ,OAAOjF,EAAA,KAAK2kC,EACb,CACD,YAAYC,EAAUC,EAAS,CACzBD,IAAaH,MACX14B,EAAM,aAAa,uCAAuC,EAEhEjM,GAAA,KAAK6kC,EAAWE,EACjB,CACF,CAdCF,EAAA,YAeF,MAAMG,EAAsB,CAK1B,YAAYjlC,EAAM,CAyBlBJ,EAAA,KAAAslC,GA7BAtlC,EAAA,KAAAulC,EAAiB,MACjBvlC,EAAA,KAAAwlC,EAAU,IAAI,KACdxlC,EAAA,KAAAylC,EAAe,MACfzlC,EAAA,KAAA0lC,EAAS,MAIP,GAFA,KAAK,KAAO,KACZ,KAAK,QAAU,KACXtlC,IAAS,KAGb,MAAK,KAAOA,EAAK,KACjB,KAAK,QAAUA,EAAK,QACpBC,GAAA,KAAKqlC,EAAStlC,EAAK,OACnB,UAAW06B,KAAS16B,EAAK,OACvBG,EAAA,KAAKilC,GAAQ,IAAI1K,EAAM,GAAI,IAAImK,EAAqBnK,EAAM,KAAMA,EAAM,MAAM,CAAC,EAE/E,GAAI16B,EAAK,YAAc,MACrB,UAAW06B,KAASv6B,EAAA,KAAKilC,GAAQ,OAAM,EACrC1K,EAAM,YAAYkK,EAAU,EAAK,EAGrC,UAAWW,KAAMvlC,EAAK,GACpBG,EAAA,KAAKilC,GAAQ,IAAIG,CAAE,EAAE,YAAYX,EAAU,EAAI,EAEjD,UAAWY,KAAOxlC,EAAK,IACrBG,EAAA,KAAKilC,GAAQ,IAAII,CAAG,EAAE,YAAYZ,EAAU,EAAK,EAEnD3kC,GAAA,KAAKolC,EAAe,KAAK,WAC1B,CAqCD,UAAU3K,EAAO,CACf,GAAIv6B,EAAA,KAAKilC,GAAQ,OAAS,EACxB,MAAO,GAET,GAAI,CAAC1K,EACH,SAAIxuB,EAAM,MAAM,qCAAqC,EAC9C,GAET,GAAIwuB,EAAM,OAAS,MACjB,OAAKv6B,EAAA,KAAKilC,GAAQ,IAAI1K,EAAM,EAAE,EAIvBv6B,EAAA,KAAKilC,GAAQ,IAAI1K,EAAM,EAAE,EAAE,YAH5BxuB,EAAM,MAAM,qCAAqCwuB,EAAM,EAAE,EAAE,EACxD,IAGJ,GAAIA,EAAM,OAAS,OAAQ,CAChC,GAAIA,EAAM,WACR,OAAO50B,EAAA,KAAKo/B,EAAAO,IAAL,UAAmC/K,EAAM,YAElD,GAAI,CAACA,EAAM,QAAUA,EAAM,SAAW,QAAS,CAC7C,UAAWn2B,KAAMm2B,EAAM,IAAK,CAC1B,GAAI,CAACv6B,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EACtB,SAAI2H,EAAM,MAAM,qCAAqC3H,CAAE,EAAE,EAClD,GAET,GAAIpE,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EAAE,QACvB,MAAO,EAEV,CACD,MAAO,EACf,SAAiBm2B,EAAM,SAAW,QAAS,CACnC,UAAWn2B,KAAMm2B,EAAM,IAAK,CAC1B,GAAI,CAACv6B,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EACtB,SAAI2H,EAAM,MAAM,qCAAqC3H,CAAE,EAAE,EAClD,GAET,GAAI,CAACpE,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EAAE,QACxB,MAAO,EAEV,CACD,MAAO,EACf,SAAiBm2B,EAAM,SAAW,SAAU,CACpC,UAAWn2B,KAAMm2B,EAAM,IAAK,CAC1B,GAAI,CAACv6B,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EACtB,SAAI2H,EAAM,MAAM,qCAAqC3H,CAAE,EAAE,EAClD,GAET,GAAI,CAACpE,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EAAE,QACxB,MAAO,EAEV,CACD,MAAO,EACf,SAAiBm2B,EAAM,SAAW,SAAU,CACpC,UAAWn2B,KAAMm2B,EAAM,IAAK,CAC1B,GAAI,CAACv6B,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EACtB,SAAI2H,EAAM,MAAM,qCAAqC3H,CAAE,EAAE,EAClD,GAET,GAAIpE,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EAAE,QACvB,MAAO,EAEV,CACD,MAAO,EACR,CACD,SAAI2H,EAAM,MAAM,mCAAmCwuB,EAAM,MAAM,GAAG,EAC3D,EACR,CACD,SAAIxuB,EAAM,MAAM,sBAAsBwuB,EAAM,IAAI,GAAG,EAC5C,EACR,CACD,cAAcn2B,EAAIygC,EAAU,GAAM,CAChC,GAAI,CAAC7kC,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EAAG,IACrB2H,EAAM,MAAM,qCAAqC3H,CAAE,EAAE,EACzD,MACD,CACDpE,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,EAAE,YAAYqgC,EAAU,CAAC,CAACI,CAAO,EACpD/kC,GAAA,KAAKklC,EAAiB,KACvB,CACD,IAAI,sBAAuB,CACzB,OAAOhlC,EAAA,KAAKklC,KAAiB,MAAQ,KAAK,QAAS,IAAKllC,EAAA,KAAKklC,EAC9D,CACD,UAAW,CACT,OAAKllC,EAAA,KAAKilC,GAAQ,KAGdjlC,EAAA,KAAKmlC,GACAnlC,EAAA,KAAKmlC,GAAO,QAEd,CAAC,GAAGnlC,EAAA,KAAKilC,GAAQ,KAAM,CAAA,EALrB,IAMV,CACD,WAAY,CACV,OAAOjlC,EAAA,KAAKilC,GAAQ,KAAO,KAAQl5B,EAAM,eAAe/L,EAAA,KAAKilC,EAAO,EAAI,IACzE,CACD,SAAS7gC,EAAI,CACX,OAAOpE,EAAA,KAAKilC,GAAQ,IAAI7gC,CAAE,GAAK,IAChC,CACD,SAAU,CACR,GAAIpE,EAAA,KAAKglC,KAAmB,KAC1B,OAAOhlC,EAAA,KAAKglC,GAEd,MAAMp4B,EAAO,IAAIX,EAAY,eAC7B,SAAW,CAAC7H,EAAIm2B,CAAK,IAAKv6B,EAAA,KAAKilC,GAC7Br4B,EAAK,OAAO,GAAGxI,CAAE,IAAIm2B,EAAM,OAAO,EAAE,EAEtC,OAAOz6B,GAAA,KAAKklC,EAAiBp4B,EAAK,UAAS,EAC5C,CACF,CA1KCo4B,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YA0BAJ,EAAA,YAAAO,GAA6B,SAACC,EAAO,CACnC,MAAM5qC,EAAS4qC,EAAM,OACrB,GAAI5qC,EAAS,EACX,MAAO,GAET,MAAM6qC,EAAWD,EAAM,CAAC,EACxB,QAASzqC,EAAI,EAAGA,EAAIH,EAAQG,IAAK,CAC/B,MAAM8Z,EAAU2wB,EAAMzqC,CAAC,EACvB,IAAI2qC,EACJ,GAAI,MAAM,QAAQ7wB,CAAO,EACvB6wB,EAAQ9/B,EAAA,KAAKo/B,EAAAO,IAAL,UAAmC1wB,WAClC5U,EAAA,KAAKilC,GAAQ,IAAIrwB,CAAO,EACjC6wB,EAAQzlC,EAAA,KAAKilC,GAAQ,IAAIrwB,CAAO,EAAE,YAElC,UAAI7I,EAAM,MAAM,qCAAqC6I,CAAO,EAAE,EACvD,GAET,OAAQ4wB,EAAQ,CACd,IAAK,MACH,GAAI,CAACC,EACH,MAAO,GAET,MACF,IAAK,KACH,GAAIA,EACF,MAAO,GAET,MACF,IAAK,MACH,MAAO,CAACA,EACV,QACE,MAAO,EACV,CACF,CACD,OAAOD,IAAa,KACrB,EA2GH1vC,EAAQ,sBAAwBgvC,EAEzB,EAEA,CAACjvC,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,uBAAyB,OACjC,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EAC1C,MAAM45B,CAAuB,CAC3B,YAAY,CACV,OAAA/qC,EACA,YAAA4I,EACA,gBAAAC,EAAkB,GAClB,2BAAAC,EAA6B,KAC7B,aAAA5B,EAAe,GACf,cAAAC,EAAgB,EACjB,EAAE6jC,EAAuB,CAKxB,MAJI55B,EAAM,QAAQ45B,EAAuB,6EAA6E,EACtH,KAAK,cAAgB,GACrB,KAAK,iBAAmBniC,EACxB,KAAK,4BAA8BC,GAC/BF,GAAA,YAAAA,EAAa,QAAS,EAAG,CAC3B,MAAMtE,EAASsE,aAAuB,YAAcA,EAAY,aAAeA,EAAY,OAAO,WAAaA,EAAY,OAAS,IAAI,WAAWA,CAAW,EAAE,OAChK,KAAK,cAAc,KAAKtE,CAAM,CAC/B,CACD,KAAK,uBAAyB0mC,EAC9B,KAAK,sBAAwB,CAAC7jC,EAC9B,KAAK,kBAAoB,CAACD,EAC1B,KAAK,eAAiBlH,EACtB,KAAK,mBAAqB,KAC1B,KAAK,cAAgB,GACrB,KAAK,uBAAuB,iBAAiB,CAACgJ,EAAO3I,IAAU,CAC7D,KAAK,eAAe,CAClB,MAAA2I,EACA,MAAA3I,CACR,CAAO,CACP,CAAK,EACD,KAAK,uBAAuB,oBAAoB,CAAC4I,EAAQC,IAAU,CACjE,KAAK,YAAY,CACf,OAAAD,EACA,MAAAC,CACR,CAAO,CACP,CAAK,EACD,KAAK,uBAAuB,2BAA2B7I,GAAS,CAC9D,KAAK,eAAe,CAClB,MAAAA,CACR,CAAO,CACP,CAAK,EACD,KAAK,uBAAuB,2BAA2B,IAAM,CAC3D,KAAK,mBAAkB,CAC7B,CAAK,EACD,KAAK,uBAAuB,gBAC7B,CACD,eAAe,CACb,MAAA2I,EACA,MAAA3I,CACJ,EAAK,CACD,MAAMiE,EAASjE,aAAiB,YAAcA,EAAM,aAAeA,EAAM,OAAO,WAAaA,EAAM,OAAS,IAAI,WAAWA,CAAK,EAAE,OAClI,GAAI2I,IAAU,OACR,KAAK,mBACP,KAAK,mBAAmB,SAAS1E,CAAM,EAEvC,KAAK,cAAc,KAAKA,CAAM,MAE3B,CACL,MAAM2mC,EAAQ,KAAK,cAAc,KAAK,SAAU37B,EAAa,CAC3D,OAAIA,EAAY,SAAWtG,EAClB,IAETsG,EAAY,SAAShL,CAAM,EACpB,GACf,CAAO,KACG8M,EAAM,QAAQ65B,EAAO,yEAAyE,CACnG,CACF,CACD,IAAI,wBAAyB,OAC3B,QAAOnqC,EAAA,KAAK,qBAAL,YAAAA,EAAyB,UAAW,CAC5C,CACD,YAAYoO,EAAK,aACXA,EAAI,QAAU,QAChBrO,GAAAC,EAAA,KAAK,cAAc,CAAC,IAApB,YAAAA,EAAuB,aAAvB,MAAAD,EAAA,KAAAC,EAAoC,CAClC,OAAQoO,EAAI,MACpB,IAEMg8B,GAAAviC,EAAA,KAAK,qBAAL,YAAAA,EAAyB,aAAzB,MAAAuiC,EAAA,KAAAviC,EAAsC,CACpC,OAAQuG,EAAI,OACZ,MAAOA,EAAI,KACnB,EAEG,CACD,oBAAqB,QACnBpO,EAAA,KAAK,qBAAL,MAAAA,EAAyB,kBACzB,KAAK,iBAAmB,EACzB,CACD,mBAAmBqL,EAAQ,CACzB,MAAMhM,EAAI,KAAK,cAAc,QAAQgM,CAAM,EACvChM,GAAK,GACP,KAAK,cAAc,OAAOA,EAAG,CAAC,CAEjC,CACD,eAAgB,IACViR,EAAM,QAAQ,CAAC,KAAK,mBAAoB,+DAA+D,EAC3G,MAAM+5B,EAAe,KAAK,cAC1B,YAAK,cAAgB,KACd,IAAIC,EAA6B,KAAMD,EAAc,KAAK,iBAAkB,KAAK,2BAA2B,CACpH,CACD,eAAeniC,EAAOG,EAAK,CACzB,GAAIA,GAAO,KAAK,uBACd,OAAO,KAET,MAAMgD,EAAS,IAAIk/B,GAAkC,KAAMriC,EAAOG,CAAG,EACrE,YAAK,uBAAuB,iBAAiBH,EAAOG,CAAG,EACvD,KAAK,cAAc,KAAKgD,CAAM,EACvBA,CACR,CACD,kBAAkB/G,EAAQ,QACxBtE,EAAA,KAAK,qBAAL,MAAAA,EAAyB,OAAOsE,GAChC,UAAW+G,KAAU,KAAK,cAAc,MAAM,CAAC,EAC7CA,EAAO,OAAO/G,CAAM,EAEtB,KAAK,uBAAuB,OAC7B,CACF,CACDjK,EAAQ,uBAAyB4vC,EACjC,MAAMK,CAA6B,CACjC,YAAYE,EAAQH,EAActiC,EAAkB,GAAOC,EAA6B,KAAM,CAC5F,KAAK,QAAUwiC,EACf,KAAK,MAAQziC,GAAmB,GAChC,KAAK,aAAgB4J,EAAe,WAAW3J,CAA0B,EAAIA,EAA6B,KAC1G,KAAK,cAAgBqiC,GAAgB,GACrC,KAAK,QAAU,EACf,UAAW9qC,KAAS,KAAK,cACvB,KAAK,SAAWA,EAAM,WAExB,KAAK,UAAY,GACjB,KAAK,cAAgB,QAAQ,UAC7BirC,EAAO,mBAAqB,KAC5B,KAAK,WAAa,IACnB,CACD,SAASjrC,EAAO,CACV,KAAK,QAGL,KAAK,UAAU,OAAS,EACA,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACxB,MAAOA,EACP,KAAM,EACd,CAAO,EAED,KAAK,cAAc,KAAKA,CAAK,EAE/B,KAAK,SAAWA,EAAM,WACvB,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CACD,IAAI,UAAW,CACb,OAAO,KAAK,SACb,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,QAAQ,iBACrB,CACD,IAAI,sBAAuB,CACzB,OAAO,KAAK,QAAQ,qBACrB,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAQ,cACrB,CACD,MAAM,MAAO,CACX,GAAI,KAAK,cAAc,OAAS,EAE9B,MAAO,CACL,MAFY,KAAK,cAAc,MAAK,EAGpC,KAAM,EACd,EAEI,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAMkrC,EAAoB,IAAIn6B,EAAM,kBACpC,YAAK,UAAU,KAAKm6B,CAAiB,EAC9BA,EAAkB,OAC1B,CACD,OAAOnmC,EAAQ,CACb,KAAK,MAAQ,GACb,UAAWmmC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EACd,CAAO,EAEH,KAAK,UAAU,OAAS,CACzB,CACD,iBAAkB,CACZ,KAAK,QAGT,KAAK,MAAQ,GACd,CACF,CACD,MAAMF,EAAkC,CACtC,YAAYC,EAAQtiC,EAAOG,EAAK,CAC9B,KAAK,QAAUmiC,EACf,KAAK,OAAStiC,EACd,KAAK,KAAOG,EACZ,KAAK,aAAe,KACpB,KAAK,UAAY,GACjB,KAAK,MAAQ,GACb,KAAK,WAAa,IACnB,CACD,SAAS9I,EAAO,CACd,GAAI,MAAK,MAGT,IAAI,KAAK,UAAU,SAAW,EAC5B,KAAK,aAAeA,MACf,CACsB,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACzB,MAAOA,EACP,KAAM,EACd,CAAO,EACD,UAAWkrC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EAChB,CAAS,EAEH,KAAK,UAAU,OAAS,CACzB,CACD,KAAK,MAAQ,GACb,KAAK,QAAQ,mBAAmB,IAAI,EACrC,CACD,IAAI,sBAAuB,CACzB,MAAO,EACR,CACD,MAAM,MAAO,CACX,GAAI,KAAK,aAAc,CACrB,MAAMlrC,EAAQ,KAAK,aACnB,YAAK,aAAe,KACb,CACL,MAAOA,EACP,KAAM,EACd,CACK,CACD,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAMkrC,EAAoB,IAAIn6B,EAAM,kBACpC,YAAK,UAAU,KAAKm6B,CAAiB,EAC9BA,EAAkB,OAC1B,CACD,OAAOnmC,EAAQ,CACb,KAAK,MAAQ,GACb,UAAWmmC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EACd,CAAO,EAEH,KAAK,UAAU,OAAS,EACxB,KAAK,QAAQ,mBAAmB,IAAI,CACrC,CACF,CAEM,EAEA,CAACrwC,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,eAAiB,OACzB,IAAIiW,EAAQD,EAAoB,CAAC,EAC7Bq6B,EAAiBr6B,EAAoB,EAAE,EAE3C,SAASs6B,EAAmBC,EAAS3lC,EAAiB4lC,EAAiB,CACrE,MAAO,CACL,OAAQ,MACR,QAAAD,EACA,OAAQC,EAAgB,OACxB,KAAM,OACN,YAAa5lC,EAAkB,UAAY,cAC3C,SAAU,QACd,CACC,CACD,SAAS6lC,EAAc9lC,EAAa,CAClC,MAAM4lC,EAAU,IAAI,QACpB,UAAWrW,KAAYvvB,EAAa,CAClC,MAAM9G,EAAQ8G,EAAYuvB,CAAQ,EAC9Br2B,IAAU,QAGd0sC,EAAQ,OAAOrW,EAAUr2B,CAAK,CAC/B,CACD,OAAO0sC,CACR,CACD,SAASG,GAAetjC,EAAK,CAC3B,OAAIA,aAAe,WACVA,EAAI,OAETA,aAAe,YACVA,MAEL6I,EAAM,MAAM,4CAA4C7I,CAAG,EAAE,EAC1D,IAAI,WAAWA,CAAG,EAAE,OAC5B,CACD,MAAMujC,CAAe,CACnB,YAAYxjC,EAAQ,CAClB,KAAK,OAASA,EACd,KAAK,OAAS,YAAY,KAAKA,EAAO,GAAG,EACzC,KAAK,YAAc,KAAK,QAAUA,EAAO,aAAe,GACxD,KAAK,mBAAqB,KAC1B,KAAK,qBAAuB,EAC7B,CACD,IAAI,wBAAyB,OAC3B,QAAOxH,EAAA,KAAK,qBAAL,YAAAA,EAAyB,UAAW,CAC5C,CACD,eAAgB,CACd,SAAIsQ,EAAM,QAAQ,CAAC,KAAK,mBAAoB,uDAAuD,EACnG,KAAK,mBAAqB,IAAI26B,EAAqB,IAAI,EAChD,KAAK,kBACb,CACD,eAAe/iC,EAAOG,EAAK,CACzB,GAAIA,GAAO,KAAK,uBACd,OAAO,KAET,MAAMgD,EAAS,IAAI6/B,EAA0B,KAAMhjC,EAAOG,CAAG,EAC7D,YAAK,qBAAqB,KAAKgD,CAAM,EAC9BA,CACR,CACD,kBAAkB/G,EAAQ,QACxBtE,EAAA,KAAK,qBAAL,MAAAA,EAAyB,OAAOsE,GAChC,UAAW+G,KAAU,KAAK,qBAAqB,MAAM,CAAC,EACpDA,EAAO,OAAO/G,CAAM,CAEvB,CACF,CACDjK,EAAQ,eAAiB2wC,EACzB,MAAMC,CAAqB,CACzB,YAAYT,EAAQ,CAClB,KAAK,QAAUA,EACf,KAAK,QAAU,KACf,KAAK,QAAU,EACf,KAAK,UAAY,KACjB,MAAMhjC,EAASgjC,EAAO,OACtB,KAAK,iBAAmBhjC,EAAO,iBAAmB,GAClD,KAAK,eAAiBA,EAAO,OAC7B,KAAK,mBAAqB,IAAI8I,EAAM,kBACpC,KAAK,cAAgB9I,EAAO,cAAgB,GAC5C,KAAK,gBAAkBA,EAAO,eAC1B,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBACjC,KAAK,cAAgB,IAEvB,KAAK,iBAAmB,IAAI,gBAC5B,KAAK,sBAAwB,CAACA,EAAO,cACrC,KAAK,kBAAoB,CAACA,EAAO,aACjC,KAAK,SAAWsjC,EAAc,KAAK,QAAQ,WAAW,EACtD,MAAMntC,EAAM6J,EAAO,IACnB,MAAM7J,EAAKgtC,EAAmB,KAAK,SAAU,KAAK,iBAAkB,KAAK,gBAAgB,CAAC,EAAE,KAAKvwB,GAAY,CAC3G,GAAI,IAAKswB,EAAe,wBAAwBtwB,EAAS,MAAM,EAC7D,QAAUswB,EAAe,2BAA2BtwB,EAAS,OAAQzc,CAAG,EAE1E,KAAK,QAAUyc,EAAS,KAAK,UAAS,EACtC,KAAK,mBAAmB,UACxB,MAAM+wB,EAAoB7sC,GACjB8b,EAAS,QAAQ,IAAI9b,CAAI,EAE5B,CACJ,mBAAA8sC,EACA,gBAAAC,CACR,KAAcX,EAAe,kCAAkC,CACvD,kBAAAS,EACA,OAAQ,KAAK,QAAQ,OACrB,eAAgB,KAAK,gBACrB,aAAc,KAAK,aAC3B,CAAO,EACD,KAAK,kBAAoBC,EACzB,KAAK,eAAiBC,GAAmB,KAAK,eAC9C,KAAK,aAAgBX,EAAe,2BAA2BS,CAAiB,EAC5E,CAAC,KAAK,uBAAyB,KAAK,mBACtC,KAAK,OAAO,IAAI76B,EAAM,eAAe,wBAAwB,CAAC,CAEjE,CAAA,EAAE,MAAM,KAAK,mBAAmB,MAAM,EACvC,KAAK,WAAa,IACnB,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,mBAAmB,OAChC,CACD,IAAI,UAAW,CACb,OAAO,KAAK,SACb,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CACD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,MAAM,MAAO,OACX,MAAM,KAAK,mBAAmB,QAC9B,KAAM,CACJ,MAAApS,EACA,KAAAoN,CACD,EAAG,MAAM,KAAK,QAAQ,OACvB,OAAIA,EACK,CACL,MAAApN,EACA,KAAAoN,CACR,GAEI,KAAK,SAAWpN,EAAM,YACtB8B,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQ,KAAK,QACb,MAAO,KAAK,cAClB,GACW,CACL,MAAO+qC,GAAe7sC,CAAK,EAC3B,KAAM,EACZ,EACG,CACD,OAAOoG,EAAQ,QACbtE,EAAA,KAAK,UAAL,MAAAA,EAAc,OAAOsE,GACrB,KAAK,iBAAiB,OACvB,CACF,CACD,MAAM4mC,CAA0B,CAC9B,YAAYV,EAAQtiC,EAAOG,EAAK,CAC9B,KAAK,QAAUmiC,EACf,KAAK,QAAU,KACf,KAAK,QAAU,EACf,MAAMhjC,EAASgjC,EAAO,OACtB,KAAK,iBAAmBhjC,EAAO,iBAAmB,GAClD,KAAK,gBAAkB,IAAI8I,EAAM,kBACjC,KAAK,sBAAwB,CAAC9I,EAAO,cACrC,KAAK,iBAAmB,IAAI,gBAC5B,KAAK,SAAWsjC,EAAc,KAAK,QAAQ,WAAW,EACtD,KAAK,SAAS,OAAO,QAAS,SAAS5iC,CAAK,IAAIG,EAAM,CAAC,EAAE,EACzD,MAAM1K,EAAM6J,EAAO,IACnB,MAAM7J,EAAKgtC,EAAmB,KAAK,SAAU,KAAK,iBAAkB,KAAK,gBAAgB,CAAC,EAAE,KAAKvwB,GAAY,CAC3G,GAAI,IAAKswB,EAAe,wBAAwBtwB,EAAS,MAAM,EAC7D,QAAUswB,EAAe,2BAA2BtwB,EAAS,OAAQzc,CAAG,EAE1E,KAAK,gBAAgB,UACrB,KAAK,QAAUyc,EAAS,KAAK,UAAS,CACvC,CAAA,EAAE,MAAM,KAAK,gBAAgB,MAAM,EACpC,KAAK,WAAa,IACnB,CACD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,MAAM,MAAO,OACX,MAAM,KAAK,gBAAgB,QAC3B,KAAM,CACJ,MAAAlc,EACA,KAAAoN,CACD,EAAG,MAAM,KAAK,QAAQ,OACvB,OAAIA,EACK,CACL,MAAApN,EACA,KAAAoN,CACR,GAEI,KAAK,SAAWpN,EAAM,YACtB8B,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQ,KAAK,OACnB,GACW,CACL,MAAO+qC,GAAe7sC,CAAK,EAC3B,KAAM,EACZ,EACG,CACD,OAAOoG,EAAQ,QACbtE,EAAA,KAAK,UAAL,MAAAA,EAAc,OAAOsE,GACrB,KAAK,iBAAiB,OACvB,CACF,CAEM,EAEA,CAAClK,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,0BAA4BixC,EACpCjxC,EAAQ,0BAA4BkxC,GACpClxC,EAAQ,iCAAmCmxC,EAC3CnxC,EAAQ,uBAAyBoxC,EACjC,IAAIn7B,EAAQD,EAAoB,CAAC,EAC7Bq7B,EAAuBr7B,EAAoB,EAAE,EAC7CsB,EAAiBtB,EAAoB,CAAC,EAC1C,SAASm7B,EAAiC,CACxC,kBAAAL,EACA,OAAAQ,EACA,eAAAvmC,EACA,aAAAgB,CACF,EAAG,CACD,MAAMwlC,EAAe,CACnB,mBAAoB,GACpB,gBAAiB,MACrB,EACQ1sC,EAAS,SAASisC,EAAkB,gBAAgB,EAAG,EAAE,EAe/D,MAdI,CAAC,OAAO,UAAUjsC,CAAM,IAG5B0sC,EAAa,gBAAkB1sC,EAC3BA,GAAU,EAAIkG,IAGdgB,GAAgB,CAACulC,GAGjBR,EAAkB,eAAe,IAAM,UAGnBA,EAAkB,kBAAkB,GAAK,cACzC,aAGxBS,EAAa,mBAAqB,IAC3BA,CACR,CACD,SAASL,GAA0BJ,EAAmB,CACpD,MAAMU,EAAqBV,EAAkB,qBAAqB,EAClE,GAAIU,EAAoB,CACtB,IAAI7iB,KAAe0iB,EAAqB,yCAAyCG,CAAkB,EACnG,GAAI7iB,EAAS,SAAS,GAAG,EACvB,GAAI,CACFA,EAAW,mBAAmBA,CAAQ,CACvC,MAAO,CAAE,CAEZ,MAAQrX,EAAe,WAAWqX,CAAQ,EACxC,OAAOA,CAEV,CACD,OAAO,IACR,CACD,SAASsiB,EAA0BxsC,EAAQnB,EAAK,CAC9C,OAAImB,IAAW,KAAOA,IAAW,GAAKnB,EAAI,WAAW,OAAO,EACnD,IAAI2S,EAAM,oBAAoB,gBAAkB3S,EAAM,IAAI,EAE5D,IAAI2S,EAAM,4BAA4B,+BAA+BxR,CAAM,2BAA2BnB,CAAG,KAAMmB,CAAM,CAC7H,CACD,SAAS2sC,EAAuB3sC,EAAQ,CACtC,OAAOA,IAAW,KAAOA,IAAW,GACrC,CAEM,EAEA,CAAC1E,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,wCAA0CyxC,EAClD,IAAIx7B,EAAQD,EAAoB,CAAC,EACjC,SAASy7B,EAAwCD,EAAoB,CACnE,IAAIE,EAAqB,GACrBhK,GAAMiK,EAAc,cAAe,GAAG,EAAE,KAAKH,CAAkB,EACnE,GAAI9J,GAAK,CACPA,GAAMA,GAAI,CAAC,EACX,IAAI/Y,EAAWijB,EAAelK,EAAG,EACjC,OAAA/Y,EAAW,SAASA,CAAQ,EAC5BA,EAAWkjB,EAAcljB,CAAQ,EACjCA,EAAWmjB,EAAcnjB,CAAQ,EAC1BojB,EAAcpjB,CAAQ,CAC9B,CAED,GADA+Y,GAAMsK,EAAgBR,CAAkB,EACpC9J,GAAK,CACP,MAAM/Y,EAAWmjB,EAAcpK,EAAG,EAClC,OAAOqK,EAAcpjB,CAAQ,CAC9B,CAED,GADA+Y,GAAMiK,EAAc,WAAY,GAAG,EAAE,KAAKH,CAAkB,EACxD9J,GAAK,CACPA,GAAMA,GAAI,CAAC,EACX,IAAI/Y,EAAWijB,EAAelK,EAAG,EACjC,OAAA/Y,EAAWmjB,EAAcnjB,CAAQ,EAC1BojB,EAAcpjB,CAAQ,CAC9B,CACD,SAASgjB,EAAcM,EAAkBC,EAAO,CAC9C,OAAO,IAAI,OAAO,cAAgBD,EAAmB,sDAAgFC,CAAK,CAC3I,CACD,SAASC,EAAWlpC,EAAUpF,EAAO,CACnC,GAAIoF,EAAU,CACZ,GAAI,CAAC,iBAAiB,KAAKpF,CAAK,EAC9B,OAAOA,EAET,GAAI,CACF,MAAMqF,EAAU,IAAI,YAAYD,EAAU,CACxC,MAAO,EACjB,CAAS,EACKE,KAAa8M,EAAM,eAAepS,CAAK,EAC7CA,EAAQqF,EAAQ,OAAOC,CAAM,EAC7BuoC,EAAqB,EACtB,MAAO,CAAE,CACX,CACD,OAAO7tC,CACR,CACD,SAASkuC,EAAcluC,EAAO,CAC5B,OAAI6tC,GAAsB,cAAc,KAAK7tC,CAAK,IAChDA,EAAQsuC,EAAW,QAAStuC,CAAK,EAC7B6tC,IACF7tC,EAAQsuC,EAAW,aAActuC,CAAK,IAGnCA,CACR,CACD,SAASmuC,EAAgBI,EAAuB,CAC9C,MAAMziB,EAAU,CAAA,EAChB,IAAI0iB,EACJ,MAAMC,EAAOX,EAAc,kCAAmC,IAAI,EAClE,MAAQU,EAAQC,EAAK,KAAKF,CAAqB,KAAO,MAAM,CAC1D,GAAI,CAAG,CAAAvsC,EAAG0sC,EAAMC,CAAI,EAAIH,EAExB,GADAxsC,EAAI,SAASA,EAAG,EAAE,EACdA,KAAK8pB,EAAS,CAChB,GAAI9pB,IAAM,EACR,MAEF,QACD,CACD8pB,EAAQ9pB,CAAC,EAAI,CAAC0sC,EAAMC,CAAI,CACzB,CACD,MAAMC,EAAQ,CAAA,EACd,QAAS5sC,EAAI,EAAGA,EAAI8pB,EAAQ,QACpB9pB,KAAK8pB,EADuB,EAAE9pB,EAAG,CAIvC,GAAI,CAAC0sC,EAAMC,CAAI,EAAI7iB,EAAQ9pB,CAAC,EAC5B2sC,EAAOZ,EAAeY,CAAI,EACtBD,IACFC,EAAO,SAASA,CAAI,EAChB3sC,IAAM,IACR2sC,EAAOX,EAAcW,CAAI,IAG7BC,EAAM,KAAKD,CAAI,CAChB,CACD,OAAOC,EAAM,KAAK,EAAE,CACrB,CACD,SAASb,EAAe/tC,EAAO,CAC7B,GAAIA,EAAM,WAAW,GAAG,EAAG,CACzB,MAAM4uC,EAAQ5uC,EAAM,MAAM,CAAC,EAAE,MAAM,KAAK,EACxC,QAASmB,EAAI,EAAGA,EAAIytC,EAAM,OAAQ,EAAEztC,EAAG,CACrC,MAAM0tC,EAAYD,EAAMztC,CAAC,EAAE,QAAQ,GAAG,EAClC0tC,IAAc,KAChBD,EAAMztC,CAAC,EAAIytC,EAAMztC,CAAC,EAAE,MAAM,EAAG0tC,CAAS,EACtCD,EAAM,OAASztC,EAAI,GAErBytC,EAAMztC,CAAC,EAAIytC,EAAMztC,CAAC,EAAE,WAAW,SAAU,IAAI,CAC9C,CACDnB,EAAQ4uC,EAAM,KAAK,GAAG,CACvB,CACD,OAAO5uC,CACR,CACD,SAASguC,EAAcc,EAAU,CAC/B,MAAMC,EAAcD,EAAS,QAAQ,GAAG,EACxC,GAAIC,IAAgB,GAClB,OAAOD,EAET,MAAM1pC,EAAW0pC,EAAS,MAAM,EAAGC,CAAW,EAExC/uC,EADY8uC,EAAS,MAAMC,EAAc,CAAC,EACxB,QAAQ,UAAW,EAAE,EAC7C,OAAOT,EAAWlpC,EAAUpF,CAAK,CAClC,CACD,SAASiuC,EAAcjuC,EAAO,CAC5B,MAAI,CAACA,EAAM,WAAW,IAAI,GAAK,uBAAuB,KAAKA,CAAK,EACvDA,EAEFA,EAAM,WAAW,iDAAkD,SAAU8rB,EAASkjB,EAAS5pC,EAAU6pC,EAAM,CACpH,GAAI7pC,IAAa,KAAOA,IAAa,IACnC,OAAA6pC,EAAOA,EAAK,WAAW,IAAK,GAAG,EAC/BA,EAAOA,EAAK,WAAW,qBAAsB,SAAUT,EAAOU,EAAK,CACjE,OAAO,OAAO,aAAa,SAASA,EAAK,EAAE,CAAC,CACtD,CAAS,EACMZ,EAAWU,EAASC,CAAI,EAEjC,GAAI,CACFA,EAAO,KAAKA,CAAI,CACjB,MAAO,CAAE,CACV,OAAOX,EAAWU,EAASC,CAAI,CACrC,CAAK,CACF,CACD,MAAO,EACR,CAEM,EAEA,CAAC/yC,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,iBAAmB,OAC3B,IAAIiW,EAAQD,EAAoB,CAAC,EAC7Bq6B,EAAiBr6B,EAAoB,EAAE,EAE3C,MAAMg9B,EAAc,IACdC,EAA2B,IACjC,SAASvC,GAAewC,EAAK,CAC3B,MAAMnpC,EAAOmpC,EAAI,SACjB,OAAI,OAAOnpC,GAAS,SACXA,KAEEkM,EAAM,eAAelM,CAAI,EAAE,MACvC,CACD,MAAMopC,CAAe,CACnB,YAAY7vC,EAAKoe,EAAO,GAAI,CAC1B,KAAK,IAAMpe,EACX,KAAK,OAAS,YAAY,KAAKA,CAAG,EAClC,KAAK,YAAc,KAAK,QAAUoe,EAAK,aAAe,OAAO,OAAO,IAAI,EACxE,KAAK,gBAAkBA,EAAK,iBAAmB,GAC/C,KAAK,UAAY,EACjB,KAAK,gBAAkB,OAAO,OAAO,IAAI,CAC1C,CACD,aAAa7T,EAAOG,EAAKolC,EAAW,CAClC,MAAM1xB,EAAO,CACX,MAAA7T,EACA,IAAAG,CACN,EACI,UAAWpK,KAAQwvC,EACjB1xB,EAAK9d,CAAI,EAAIwvC,EAAUxvC,CAAI,EAE7B,OAAO,KAAK,QAAQ8d,CAAI,CACzB,CACD,YAAY0xB,EAAW,CACrB,OAAO,KAAK,QAAQA,CAAS,CAC9B,CACD,QAAQ1xB,EAAM,CACZ,MAAMwxB,EAAM,IAAI,eACVG,EAAQ,KAAK,YACbC,EAAiB,KAAK,gBAAgBD,CAAK,EAAI,CACnD,IAAAH,CACN,EACIA,EAAI,KAAK,MAAO,KAAK,GAAG,EACxBA,EAAI,gBAAkB,KAAK,gBAC3B,UAAWhZ,KAAY,KAAK,YAAa,CACvC,MAAMr2B,EAAQ,KAAK,YAAYq2B,CAAQ,EACnCr2B,IAAU,QAGdqvC,EAAI,iBAAiBhZ,EAAUr2B,CAAK,CACrC,CACD,OAAI,KAAK,QAAU,UAAW6d,GAAQ,QAASA,GAC7CwxB,EAAI,iBAAiB,QAAS,SAASxxB,EAAK,KAAK,IAAIA,EAAK,IAAM,CAAC,EAAE,EACnE4xB,EAAe,eAAiBL,GAEhCK,EAAe,eAAiBN,EAElCE,EAAI,aAAe,cACfxxB,EAAK,UACPwxB,EAAI,QAAU,SAAUn/B,EAAK,CAC3B2N,EAAK,QAAQwxB,EAAI,MAAM,CAC/B,GAEIA,EAAI,mBAAqB,KAAK,cAAc,KAAK,KAAMG,CAAK,EAC5DH,EAAI,WAAa,KAAK,WAAW,KAAK,KAAMG,CAAK,EACjDC,EAAe,kBAAoB5xB,EAAK,kBACxC4xB,EAAe,OAAS5xB,EAAK,OAC7B4xB,EAAe,QAAU5xB,EAAK,QAC9B4xB,EAAe,WAAa5xB,EAAK,WACjCwxB,EAAI,KAAK,IAAI,EACNG,CACR,CACD,WAAWA,EAAOt/B,EAAK,OACrB,MAAMu/B,EAAiB,KAAK,gBAAgBD,CAAK,EAC5CC,KAGL3tC,EAAA2tC,EAAe,aAAf,MAAA3tC,EAAA,KAAA2tC,EAA4Bv/B,GAC7B,CACD,cAAcs/B,EAAOt/B,EAAK,WACxB,MAAMu/B,EAAiB,KAAK,gBAAgBD,CAAK,EACjD,GAAI,CAACC,EACH,OAEF,MAAMJ,EAAMI,EAAe,IAQ3B,GAPIJ,EAAI,YAAc,GAAKI,EAAe,oBACxCA,EAAe,kBAAiB,EAChC,OAAOA,EAAe,mBAEpBJ,EAAI,aAAe,GAGnB,EAAEG,KAAS,KAAK,iBAClB,OAGF,GADA,OAAO,KAAK,gBAAgBA,CAAK,EAC7BH,EAAI,SAAW,GAAK,KAAK,OAAQ,EACnCvtC,EAAA2tC,EAAe,UAAf,MAAA3tC,EAAA,KAAA2tC,EAAyBJ,EAAI,QAC7B,MACD,CACD,MAAMK,EAAYL,EAAI,QAAUF,EAEhC,GAAI,EADiCO,IAAcP,GAAeM,EAAe,iBAAmBL,IAC/DM,IAAcD,EAAe,eAAgB,EAChF5tC,EAAA4tC,EAAe,UAAf,MAAA5tC,EAAA,KAAA4tC,EAAyBJ,EAAI,QAC7B,MACD,CACD,MAAMhuC,EAAQwrC,GAAewC,CAAG,EAChC,GAAIK,IAAcN,EAA0B,CAC1C,MAAMO,EAAcN,EAAI,kBAAkB,eAAe,EACnDvjB,EAAU,2BAA2B,KAAK6jB,CAAW,EAC3DF,EAAe,OAAO,CACpB,MAAO,SAAS3jB,EAAQ,CAAC,EAAG,EAAE,EAC9B,MAAAzqB,CACR,CAAO,CACF,MAAUA,EACTouC,EAAe,OAAO,CACpB,MAAO,EACP,MAAApuC,CACR,CAAO,GAEDsI,EAAA8lC,EAAe,UAAf,MAAA9lC,EAAA,KAAA8lC,EAAyBJ,EAAI,OAEhC,CACD,cAAcG,EAAO,CACnB,OAAO,KAAK,gBAAgBA,CAAK,EAAE,GACpC,CACD,iBAAiBA,EAAO,CACtB,OAAOA,KAAS,KAAK,eACtB,CACD,aAAaA,EAAO,CAClB,MAAMH,EAAM,KAAK,gBAAgBG,CAAK,EAAE,IACxC,OAAO,KAAK,gBAAgBA,CAAK,EACjCH,EAAI,MAAK,CACV,CACF,CACD,MAAMO,CAAiB,CACrB,YAAYtmC,EAAQ,CAClB,KAAK,QAAUA,EACf,KAAK,SAAW,IAAIgmC,EAAehmC,EAAO,IAAK,CAC7C,YAAaA,EAAO,YACpB,gBAAiBA,EAAO,eAC9B,CAAK,EACD,KAAK,gBAAkBA,EAAO,eAC9B,KAAK,mBAAqB,KAC1B,KAAK,qBAAuB,EAC7B,CACD,4BAA4B6D,EAAQ,CAClC,MAAMhM,EAAI,KAAK,qBAAqB,QAAQgM,CAAM,EAC9ChM,GAAK,GACP,KAAK,qBAAqB,OAAOA,EAAG,CAAC,CAExC,CACD,eAAgB,CACd,SAAIiR,EAAM,QAAQ,CAAC,KAAK,mBAAoB,yDAAyD,EACrG,KAAK,mBAAqB,IAAIy9B,EAAkC,KAAK,SAAU,KAAK,OAAO,EACpF,KAAK,kBACb,CACD,eAAe7lC,EAAOG,EAAK,CACzB,MAAMgD,EAAS,IAAI2iC,EAAmC,KAAK,SAAU9lC,EAAOG,CAAG,EAC/E,OAAAgD,EAAO,SAAW,KAAK,4BAA4B,KAAK,IAAI,EAC5D,KAAK,qBAAqB,KAAKA,CAAM,EAC9BA,CACR,CACD,kBAAkB/G,EAAQ,QACxBtE,EAAA,KAAK,qBAAL,MAAAA,EAAyB,OAAOsE,GAChC,UAAW+G,KAAU,KAAK,qBAAqB,MAAM,CAAC,EACpDA,EAAO,OAAO/G,CAAM,CAEvB,CACF,CACDjK,EAAQ,iBAAmByzC,EAC3B,MAAMC,CAAkC,CACtC,YAAYE,EAASzmC,EAAQ,CAC3B,KAAK,SAAWymC,EAChB,MAAMlyB,EAAO,CACX,kBAAmB,KAAK,mBAAmB,KAAK,IAAI,EACpD,OAAQ,KAAK,QAAQ,KAAK,IAAI,EAC9B,QAAS,KAAK,SAAS,KAAK,IAAI,EAChC,WAAY,KAAK,YAAY,KAAK,IAAI,CAC5C,EACI,KAAK,KAAOvU,EAAO,IACnB,KAAK,eAAiBymC,EAAQ,YAAYlyB,CAAI,EAC9C,KAAK,2BAA6B,IAAIzL,EAAM,kBAC5C,KAAK,cAAgB9I,EAAO,cAAgB,GAC5C,KAAK,eAAiBA,EAAO,OAC7B,KAAK,gBAAkBA,EAAO,eAC1B,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBACjC,KAAK,cAAgB,IAEvB,KAAK,sBAAwB,GAC7B,KAAK,kBAAoB,GACzB,KAAK,cAAgB,GACrB,KAAK,UAAY,GACjB,KAAK,MAAQ,GACb,KAAK,aAAe,OACpB,KAAK,UAAY,KACjB,KAAK,WAAa,IACnB,CACD,oBAAqB,CACnB,MAAM0mC,EAAmB,KAAK,eACxBC,EAAiB,KAAK,SAAS,cAAcD,CAAgB,EAC7D/C,EAAoB7sC,GACjB6vC,EAAe,kBAAkB7vC,CAAI,EAExC,CACJ,mBAAA8sC,EACA,gBAAAC,CACN,KAAYX,EAAe,kCAAkC,CACvD,kBAAAS,EACA,OAAQ,KAAK,SAAS,OACtB,eAAgB,KAAK,gBACrB,aAAc,KAAK,aACzB,CAAK,EACGC,IACF,KAAK,kBAAoB,IAE3B,KAAK,eAAiBC,GAAmB,KAAK,eAC9C,KAAK,aAAgBX,EAAe,2BAA2BS,CAAiB,EAC5E,KAAK,mBACP,KAAK,SAAS,aAAa+C,CAAgB,EAE7C,KAAK,2BAA2B,SACjC,CACD,QAAQ9pC,EAAM,CAaZ,GAZIA,IACE,KAAK,UAAU,OAAS,EACA,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACxB,MAAOA,EAAK,MACZ,KAAM,EAChB,CAAS,EAED,KAAK,cAAc,KAAKA,EAAK,KAAK,GAGtC,KAAK,MAAQ,GACT,OAAK,cAAc,OAAS,GAGhC,WAAWqmC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EACd,CAAO,EAEH,KAAK,UAAU,OAAS,EACzB,CACD,SAAS3rC,EAAQ,CACf,KAAK,gBAAmB4rC,EAAe,2BAA2B5rC,EAAQ,KAAK,IAAI,EACnF,KAAK,2BAA2B,OAAO,KAAK,YAAY,EACxD,UAAW2rC,KAAqB,KAAK,UACnCA,EAAkB,OAAO,KAAK,YAAY,EAE5C,KAAK,UAAU,OAAS,EACxB,KAAK,cAAc,OAAS,CAC7B,CACD,YAAYr8B,EAAK,QACfpO,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQoO,EAAI,OACZ,MAAOA,EAAI,iBAAmBA,EAAI,MAAQ,KAAK,cACrD,EACG,CACD,IAAI,UAAW,CACb,OAAO,KAAK,SACb,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CACD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,2BAA2B,OACxC,CACD,MAAM,MAAO,CACX,GAAI,KAAK,aACP,MAAM,KAAK,aAEb,GAAI,KAAK,cAAc,OAAS,EAE9B,MAAO,CACL,MAFY,KAAK,cAAc,MAAK,EAGpC,KAAM,EACd,EAEI,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAMq8B,EAAoB,IAAIn6B,EAAM,kBACpC,YAAK,UAAU,KAAKm6B,CAAiB,EAC9BA,EAAkB,OAC1B,CACD,OAAOnmC,EAAQ,CACb,KAAK,MAAQ,GACb,KAAK,2BAA2B,OAAOA,CAAM,EAC7C,UAAWmmC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EACd,CAAO,EAEH,KAAK,UAAU,OAAS,EACpB,KAAK,SAAS,iBAAiB,KAAK,cAAc,GACpD,KAAK,SAAS,aAAa,KAAK,cAAc,EAEhD,KAAK,mBAAqB,IAC3B,CACF,CACD,MAAMuD,CAAmC,CACvC,YAAYC,EAAS/lC,EAAOG,EAAK,CAC/B,KAAK,SAAW4lC,EAChB,MAAMlyB,EAAO,CACX,OAAQ,KAAK,QAAQ,KAAK,IAAI,EAC9B,QAAS,KAAK,SAAS,KAAK,IAAI,EAChC,WAAY,KAAK,YAAY,KAAK,IAAI,CAC5C,EACI,KAAK,KAAOkyB,EAAQ,IACpB,KAAK,WAAaA,EAAQ,aAAa/lC,EAAOG,EAAK0T,CAAI,EACvD,KAAK,UAAY,GACjB,KAAK,aAAe,KACpB,KAAK,MAAQ,GACb,KAAK,aAAe,OACpB,KAAK,WAAa,KAClB,KAAK,SAAW,IACjB,CACD,QAAS,QACP/b,EAAA,KAAK,WAAL,MAAAA,EAAA,UAAgB,KACjB,CACD,QAAQoE,EAAM,CACZ,MAAM7E,EAAQ6E,EAAK,MACf,KAAK,UAAU,OAAS,EACA,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACxB,MAAO7E,EACP,KAAM,EACd,CAAO,EAED,KAAK,aAAeA,EAEtB,KAAK,MAAQ,GACb,UAAWkrC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EACd,CAAO,EAEH,KAAK,UAAU,OAAS,EACxB,KAAK,OAAM,CACZ,CACD,SAAS3rC,EAAQ,CACf,KAAK,gBAAmB4rC,EAAe,2BAA2B5rC,EAAQ,KAAK,IAAI,EACnF,UAAW2rC,KAAqB,KAAK,UACnCA,EAAkB,OAAO,KAAK,YAAY,EAE5C,KAAK,UAAU,OAAS,EACxB,KAAK,aAAe,IACrB,CACD,YAAYr8B,EAAK,OACV,KAAK,uBACRpO,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQoO,EAAI,MACpB,EAEG,CACD,IAAI,sBAAuB,CACzB,MAAO,EACR,CACD,MAAM,MAAO,CACX,GAAI,KAAK,aACP,MAAM,KAAK,aAEb,GAAI,KAAK,eAAiB,KAAM,CAC9B,MAAM7O,EAAQ,KAAK,aACnB,YAAK,aAAe,KACb,CACL,MAAOA,EACP,KAAM,EACd,CACK,CACD,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAMkrC,EAAoB,IAAIn6B,EAAM,kBACpC,YAAK,UAAU,KAAKm6B,CAAiB,EAC9BA,EAAkB,OAC1B,CACD,OAAOnmC,EAAQ,CACb,KAAK,MAAQ,GACb,UAAWmmC,KAAqB,KAAK,UACnCA,EAAkB,QAAQ,CACxB,MAAO,OACP,KAAM,EACd,CAAO,EAEH,KAAK,UAAU,OAAS,EACpB,KAAK,SAAS,iBAAiB,KAAK,UAAU,GAChD,KAAK,SAAS,aAAa,KAAK,UAAU,EAE5C,KAAK,OAAM,CACZ,CACF,CAEM,EAEA,CAACrwC,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,cAAgB,OACxB,IAAIiW,EAAQD,EAAoB,CAAC,EAC7Bq6B,EAAiBr6B,EAAoB,EAAE,EAE3C,MAAM+9B,EAAe,0BACrB,SAASC,EAASC,EAAW,CAC3B,MAAM3wC,EAAM4wC,WACNC,EAAY7wC,EAAI,MAAM2wC,CAAS,EACrC,OAAIE,EAAU,WAAa,SAAWA,EAAU,KACvCA,EAEL,gBAAgB,KAAKF,CAAS,EACzB3wC,EAAI,MAAM,WAAW2wC,CAAS,EAAE,GAEpCE,EAAU,OACbA,EAAU,SAAW,SAEhBA,EACR,CACD,MAAMC,EAAc,CAClB,YAAYjnC,EAAQ,CAClB,KAAK,OAASA,EACd,KAAK,IAAM6mC,EAAS7mC,EAAO,GAAG,EAC9B,KAAK,OAAS,KAAK,IAAI,WAAa,SAAW,KAAK,IAAI,WAAa,SACrE,KAAK,QAAU,KAAK,IAAI,WAAa,QACrC,KAAK,YAAc,KAAK,QAAUA,EAAO,aAAe,GACxD,KAAK,mBAAqB,KAC1B,KAAK,qBAAuB,EAC7B,CACD,IAAI,wBAAyB,OAC3B,QAAOxH,EAAA,KAAK,qBAAL,YAAAA,EAAyB,UAAW,CAC5C,CACD,eAAgB,CACd,SAAIsQ,EAAM,QAAQ,CAAC,KAAK,mBAAoB,sDAAsD,EAClG,KAAK,mBAAqB,KAAK,QAAU,IAAIo+B,EAA0B,IAAI,EAAI,IAAIC,EAAwB,IAAI,EACxG,KAAK,kBACb,CACD,eAAezoB,EAAO7d,EAAK,CACzB,GAAIA,GAAO,KAAK,uBACd,OAAO,KAET,MAAMmG,EAAc,KAAK,QAAU,IAAIogC,EAA2B,KAAM1oB,EAAO7d,CAAG,EAAI,IAAIwmC,EAAyB,KAAM3oB,EAAO7d,CAAG,EACnI,YAAK,qBAAqB,KAAKmG,CAAW,EACnCA,CACR,CACD,kBAAkBlK,EAAQ,QACxBtE,EAAA,KAAK,qBAAL,MAAAA,EAAyB,OAAOsE,GAChC,UAAW+G,KAAU,KAAK,qBAAqB,MAAM,CAAC,EACpDA,EAAO,OAAO/G,CAAM,CAEvB,CACF,CACDjK,EAAQ,cAAgBo0C,GACxB,MAAMK,CAAe,CACnB,YAAYtE,EAAQ,CAClB,KAAK,KAAOA,EAAO,IACnB,KAAK,MAAQ,GACb,KAAK,aAAe,KACpB,KAAK,WAAa,KAClB,MAAMhjC,EAASgjC,EAAO,OACtB,KAAK,eAAiBhjC,EAAO,OAC7B,KAAK,QAAU,EACf,KAAK,UAAY,KACjB,KAAK,cAAgBA,EAAO,cAAgB,GAC5C,KAAK,gBAAkBA,EAAO,eAC1B,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBACjC,KAAK,cAAgB,IAEvB,KAAK,sBAAwB,CAACA,EAAO,cACrC,KAAK,kBAAoB,CAACA,EAAO,aACjC,KAAK,gBAAkB,KACvB,KAAK,gBAAkB,IAAI8I,EAAM,kBACjC,KAAK,mBAAqB,IAAIA,EAAM,iBACrC,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,mBAAmB,OAChC,CACD,IAAI,UAAW,CACb,OAAO,KAAK,SACb,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CACD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,MAAM,MAAO,OAEX,GADA,MAAM,KAAK,gBAAgB,QACvB,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,GAAI,KAAK,aACP,MAAM,KAAK,aAEb,MAAM/Q,EAAQ,KAAK,gBAAgB,KAAI,EACvC,OAAIA,IAAU,MACZ,KAAK,gBAAkB,IAAI+Q,EAAM,kBAC1B,KAAK,SAEd,KAAK,SAAW/Q,EAAM,QACtBS,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQ,KAAK,QACb,MAAO,KAAK,cAClB,GAEW,CACL,MAFa,IAAI,WAAWT,CAAK,EAAE,OAGnC,KAAM,EACZ,EACG,CACD,OAAO+E,EAAQ,CACb,GAAI,CAAC,KAAK,gBAAiB,CACzB,KAAK,OAAOA,CAAM,EAClB,MACD,CACD,KAAK,gBAAgB,QAAQA,CAAM,CACpC,CACD,OAAOA,EAAQ,CACb,KAAK,aAAeA,EACpB,KAAK,gBAAgB,SACtB,CACD,mBAAmB6G,EAAgB,CACjC,KAAK,gBAAkBA,EACvBA,EAAe,GAAG,WAAY,IAAM,CAClC,KAAK,gBAAgB,SAC3B,CAAK,EACDA,EAAe,GAAG,MAAO,IAAM,CAC7BA,EAAe,QAAO,EACtB,KAAK,MAAQ,GACb,KAAK,gBAAgB,SAC3B,CAAK,EACDA,EAAe,GAAG,QAAS7G,GAAU,CACnC,KAAK,OAAOA,CAAM,CACxB,CAAK,EACG,CAAC,KAAK,uBAAyB,KAAK,mBACtC,KAAK,OAAO,IAAIgM,EAAM,eAAe,uBAAuB,CAAC,EAE3D,KAAK,cACP,KAAK,gBAAgB,QAAQ,KAAK,YAAY,CAEjD,CACF,CACD,MAAMy+B,CAAgB,CACpB,YAAYvE,EAAQ,CAClB,KAAK,KAAOA,EAAO,IACnB,KAAK,MAAQ,GACb,KAAK,aAAe,KACpB,KAAK,WAAa,KAClB,KAAK,QAAU,EACf,KAAK,gBAAkB,KACvB,KAAK,gBAAkB,IAAIl6B,EAAM,kBACjC,MAAM9I,EAASgjC,EAAO,OACtB,KAAK,sBAAwB,CAAChjC,EAAO,aACtC,CACD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,MAAM,MAAO,OAEX,GADA,MAAM,KAAK,gBAAgB,QACvB,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,GAAI,KAAK,aACP,MAAM,KAAK,aAEb,MAAMjI,EAAQ,KAAK,gBAAgB,KAAI,EACvC,OAAIA,IAAU,MACZ,KAAK,gBAAkB,IAAI+Q,EAAM,kBAC1B,KAAK,SAEd,KAAK,SAAW/Q,EAAM,QACtBS,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQ,KAAK,OACnB,GAEW,CACL,MAFa,IAAI,WAAWT,CAAK,EAAE,OAGnC,KAAM,EACZ,EACG,CACD,OAAO+E,EAAQ,CACb,GAAI,CAAC,KAAK,gBAAiB,CACzB,KAAK,OAAOA,CAAM,EAClB,MACD,CACD,KAAK,gBAAgB,QAAQA,CAAM,CACpC,CACD,OAAOA,EAAQ,CACb,KAAK,aAAeA,EACpB,KAAK,gBAAgB,SACtB,CACD,mBAAmB6G,EAAgB,CACjC,KAAK,gBAAkBA,EACvBA,EAAe,GAAG,WAAY,IAAM,CAClC,KAAK,gBAAgB,SAC3B,CAAK,EACDA,EAAe,GAAG,MAAO,IAAM,CAC7BA,EAAe,QAAO,EACtB,KAAK,MAAQ,GACb,KAAK,gBAAgB,SAC3B,CAAK,EACDA,EAAe,GAAG,QAAS7G,GAAU,CACnC,KAAK,OAAOA,CAAM,CACxB,CAAK,EACG,KAAK,cACP,KAAK,gBAAgB,QAAQ,KAAK,YAAY,CAEjD,CACF,CACD,SAAS0qC,EAAqBR,EAAW5D,EAAS,CAChD,MAAO,CACL,SAAU4D,EAAU,SACpB,KAAMA,EAAU,KAChB,KAAMA,EAAU,SAChB,KAAMA,EAAU,KAChB,KAAMA,EAAU,KAChB,OAAQ,MACR,QAAA5D,CACJ,CACC,CACD,MAAM+D,UAAgCG,CAAe,CACnD,YAAYtE,EAAQ,CAClB,MAAMA,CAAM,EACZ,MAAMyE,EAAiB70B,GAAY,CACjC,GAAIA,EAAS,aAAe,IAAK,CAC/B,MAAM7P,EAAQ,IAAI+F,EAAM,oBAAoB,gBAAgB,KAAK,IAAI,IAAI,EACzE,KAAK,aAAe/F,EACpB,KAAK,mBAAmB,OAAOA,CAAK,EACpC,MACD,CACD,KAAK,mBAAmB,UACxB,KAAK,mBAAmB6P,CAAQ,EAChC,MAAM+wB,EAAoB7sC,GACjB,KAAK,gBAAgB,QAAQA,EAAK,YAAa,CAAA,EAElD,CACJ,mBAAA8sC,EACA,gBAAAC,CACR,KAAcX,EAAe,kCAAkC,CACvD,kBAAAS,EACA,OAAQX,EAAO,OACf,eAAgB,KAAK,gBACrB,aAAc,KAAK,aAC3B,CAAO,EACD,KAAK,kBAAoBY,EACzB,KAAK,eAAiBC,GAAmB,KAAK,eAC9C,KAAK,aAAgBX,EAAe,2BAA2BS,CAAiB,CACtF,EAEI,GADA,KAAK,SAAW,KACZ,KAAK,KAAK,WAAa,QAAS,CAClC,MAAM+D,EAAOC,WACb,KAAK,SAAWD,EAAK,QAAQF,EAAqB,KAAK,KAAMxE,EAAO,WAAW,EAAGyE,CAAc,CACtG,KAAW,CACL,MAAMG,EAAQC,WACd,KAAK,SAAWD,EAAM,QAAQJ,EAAqB,KAAK,KAAMxE,EAAO,WAAW,EAAGyE,CAAc,CAClG,CACD,KAAK,SAAS,GAAG,QAAS3qC,GAAU,CAClC,KAAK,aAAeA,EACpB,KAAK,mBAAmB,OAAOA,CAAM,CAC3C,CAAK,EACD,KAAK,SAAS,KACf,CACF,CACD,MAAMuqC,UAAiCE,CAAgB,CACrD,YAAYvE,EAAQtkB,EAAO7d,EAAK,CAC9B,MAAMmiC,CAAM,EACZ,KAAK,aAAe,GACpB,UAAWjW,KAAYiW,EAAO,YAAa,CACzC,MAAMtsC,EAAQssC,EAAO,YAAYjW,CAAQ,EACrCr2B,IAAU,SAGd,KAAK,aAAaq2B,CAAQ,EAAIr2B,EAC/B,CACD,KAAK,aAAa,MAAQ,SAASgoB,CAAK,IAAI7d,EAAM,CAAC,GACnD,MAAM4mC,EAAiB70B,GAAY,CACjC,GAAIA,EAAS,aAAe,IAAK,CAC/B,MAAM7P,EAAQ,IAAI+F,EAAM,oBAAoB,gBAAgB,KAAK,IAAI,IAAI,EACzE,KAAK,aAAe/F,EACpB,MACD,CACD,KAAK,mBAAmB6P,CAAQ,CACtC,EAEI,GADA,KAAK,SAAW,KACZ,KAAK,KAAK,WAAa,QAAS,CAClC,MAAM80B,EAAOC,WACb,KAAK,SAAWD,EAAK,QAAQF,EAAqB,KAAK,KAAM,KAAK,YAAY,EAAGC,CAAc,CACrG,KAAW,CACL,MAAMG,EAAQC,WACd,KAAK,SAAWD,EAAM,QAAQJ,EAAqB,KAAK,KAAM,KAAK,YAAY,EAAGC,CAAc,CACjG,CACD,KAAK,SAAS,GAAG,QAAS3qC,GAAU,CAClC,KAAK,aAAeA,CAC1B,CAAK,EACD,KAAK,SAAS,KACf,CACF,CACD,MAAMoqC,UAAkCI,CAAe,CACrD,YAAYtE,EAAQ,CAClB,MAAMA,CAAM,EACZ,IAAIlY,EAAO,mBAAmB,KAAK,KAAK,IAAI,EACxC8b,EAAa,KAAK,KAAK,KAAK,IAAI,IAClC9b,EAAOA,EAAK,QAAQ,MAAO,EAAE,GAE/B,MAAMgd,EAAKzgB,WACXygB,EAAG,MAAMhd,EAAM,CAAC/nB,EAAOglC,IAAS,CAC9B,GAAIhlC,EAAO,CACLA,EAAM,OAAS,WACjBA,EAAQ,IAAI+F,EAAM,oBAAoB,gBAAgBgiB,CAAI,IAAI,GAEhE,KAAK,aAAe/nB,EACpB,KAAK,mBAAmB,OAAOA,CAAK,EACpC,MACD,CACD,KAAK,eAAiBglC,EAAK,KAC3B,KAAK,mBAAmBD,EAAG,iBAAiBhd,CAAI,CAAC,EACjD,KAAK,mBAAmB,SAC9B,CAAK,CACF,CACF,CACD,MAAMsc,UAAmCG,CAAgB,CACvD,YAAYvE,EAAQtkB,EAAO7d,EAAK,CAC9B,MAAMmiC,CAAM,EACZ,IAAIlY,EAAO,mBAAmB,KAAK,KAAK,IAAI,EACxC8b,EAAa,KAAK,KAAK,KAAK,IAAI,IAClC9b,EAAOA,EAAK,QAAQ,MAAO,EAAE,GAE/B,MAAMgd,EAAKzgB,WACX,KAAK,mBAAmBygB,EAAG,iBAAiBhd,EAAM,CAChD,MAAApM,EACA,IAAK7d,EAAM,CACZ,CAAA,CAAC,CACH,CACF,CAEM,EAEA,CAACjO,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,YAAc,OACtB,IAAIsX,EAAiBtB,EAAoB,CAAC,EACtCC,EAAQD,EAAoB,CAAC,EAEjC,MAAMm/B,EAAe,CACnB,UAAW,SACX,WAAY,SACZ,UAAW,SACb,EACMC,EAAS,uCACTC,GAAW,+BACXhZ,EAAkB,CAAC,OAAQ,QAAS,QAAQ,EAC5CC,EAAmB,CAAC,QAAS,QAAS,OAAO,EAC7CgZ,EAAkB,SAAUvrC,EAAMwrC,EAAc,GAAIC,EAAkB,GAAO,CACjF,GAAI,IAAI,iBAAmB,OAAO,KAAS,KAAe,CAACA,EACzD,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAACzrC,CAAI,EAAG,CAC1C,KAAMwrC,CACP,CAAA,CAAC,EAEJ,MAAME,EAAS,oEACf,IAAItsC,EAAS,QAAQosC,CAAW,WAChC,QAASvwC,EAAI,EAAGqE,EAAKU,EAAK,OAAQ/E,EAAIqE,EAAIrE,GAAK,EAAG,CAChD,MAAM0wC,EAAK3rC,EAAK/E,CAAC,EAAI,IACf2wC,EAAK5rC,EAAK/E,EAAI,CAAC,EAAI,IACnB4wC,EAAK7rC,EAAK/E,EAAI,CAAC,EAAI,IACnB6wC,EAAKH,GAAM,EACfI,GAAMJ,EAAK,IAAM,EAAIC,GAAM,EACvBI,GAAK/wC,EAAI,EAAIqE,GAAMssC,EAAK,KAAQ,EAAIC,GAAM,EAAI,GAC9CI,GAAKhxC,EAAI,EAAIqE,EAAKusC,EAAK,GAAO,GACpCzsC,GAAUssC,EAAOI,CAAE,EAAIJ,EAAOK,CAAE,EAAIL,EAAOM,EAAE,EAAIN,EAAOO,EAAE,CAC3D,CACD,OAAO7sC,CACT,EACM8sC,EAAsB,UAAY,CACtC,MAAMC,EAAa,IAAI,WAAW,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EAC5EC,EAAqB,GACrBC,EAAW,IAAI,WAAW,GAAG,EACnC,QAASpxC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,IAAIkC,EAAIlC,EACR,QAAS0Y,EAAI,EAAGA,EAAI,EAAGA,IACrBxW,EAAIA,EAAI,EAAI,WAAaA,GAAK,EAAI,WAAaA,GAAK,EAAI,WAE1DkvC,EAASpxC,CAAC,EAAIkC,CACf,CACD,SAASmvC,EAAMtsC,EAAM8hB,EAAO7d,EAAK,CAC/B,IAAIsoC,GAAM,GACV,QAAStxC,GAAI6mB,EAAO7mB,GAAIgJ,EAAKhJ,KAAK,CAChC,MAAMiC,GAAKqvC,GAAMvsC,EAAK/E,EAAC,GAAK,IACtBiB,GAAImwC,EAASnvC,CAAC,EACpBqvC,GAAMA,KAAQ,EAAIrwC,EACnB,CACD,OAAOqwC,GAAM,EACd,CACD,SAASC,EAAcjiC,EAAMkiC,EAAMzsC,EAAMqpB,GAAQ,CAC/C,IAAI7sB,GAAI6sB,GACR,MAAMqjB,EAAMD,EAAK,OACjBzsC,EAAKxD,EAAC,EAAIkwC,GAAO,GAAK,IACtB1sC,EAAKxD,GAAI,CAAC,EAAIkwC,GAAO,GAAK,IAC1B1sC,EAAKxD,GAAI,CAAC,EAAIkwC,GAAO,EAAI,IACzB1sC,EAAKxD,GAAI,CAAC,EAAIkwC,EAAM,IACpBlwC,IAAK,EACLwD,EAAKxD,EAAC,EAAI+N,EAAK,WAAW,CAAC,EAAI,IAC/BvK,EAAKxD,GAAI,CAAC,EAAI+N,EAAK,WAAW,CAAC,EAAI,IACnCvK,EAAKxD,GAAI,CAAC,EAAI+N,EAAK,WAAW,CAAC,EAAI,IACnCvK,EAAKxD,GAAI,CAAC,EAAI+N,EAAK,WAAW,CAAC,EAAI,IACnC/N,IAAK,EACLwD,EAAK,IAAIysC,EAAMjwC,EAAC,EAChBA,IAAKiwC,EAAK,OACV,MAAMF,GAAMD,EAAMtsC,EAAMqpB,GAAS,EAAG7sB,EAAC,EACrCwD,EAAKxD,EAAC,EAAI+vC,IAAO,GAAK,IACtBvsC,EAAKxD,GAAI,CAAC,EAAI+vC,IAAO,GAAK,IAC1BvsC,EAAKxD,GAAI,CAAC,EAAI+vC,IAAO,EAAI,IACzBvsC,EAAKxD,GAAI,CAAC,EAAI+vC,GAAM,GACrB,CACD,SAASI,EAAQ3sC,EAAM8hB,EAAO7d,EAAK,CACjC,IAAI/G,GAAI,EACJhB,GAAI,EACR,QAASjB,EAAI6mB,EAAO7mB,EAAIgJ,EAAK,EAAEhJ,EAC7BiC,IAAKA,IAAK8C,EAAK/E,CAAC,EAAI,MAAS,MAC7BiB,IAAKA,GAAIgB,IAAK,MAEhB,OAAOhB,IAAK,GAAKgB,EAClB,CACD,SAAS0vC,EAAYC,EAAU,CAC7B,GAAI,CAAC3gC,EAAM,SACT,OAAO4gC,EAAwBD,CAAQ,EAEzC,GAAI,CACF,MAAMlnB,EAAQ,SAAS,QAAQ,SAAS,IAAI,GAAK,EAAIknB,EAAW,OAAO,KAAKA,CAAQ,EAC9EE,EAAS,WAAgB,YAAYpnB,EAAO,CAChD,MAAO,CACf,CAAO,EACD,OAAOonB,aAAkB,WAAaA,EAAS,IAAI,WAAWA,CAAM,CACrE,OAAQp4B,EAAG,IACNzI,EAAM,MAAM,gEAAkEyI,CAAC,CACpF,CACD,OAAOm4B,EAAwBD,CAAQ,CACxC,CACD,SAASC,EAAwBD,EAAU,CACzC,IAAIH,EAAMG,EAAS,OACnB,MAAMG,EAAiB,MACjBC,GAAgB,KAAK,KAAKP,EAAMM,CAAc,EAC9CE,GAAO,IAAI,WAAW,EAAIR,EAAMO,GAAgB,EAAI,CAAC,EAC3D,IAAIE,EAAK,EACTD,GAAKC,GAAI,EAAI,IACbD,GAAKC,GAAI,EAAI,IACb,IAAIvf,GAAM,EACV,KAAO8e,EAAMM,GACXE,GAAKC,GAAI,EAAI,EACbD,GAAKC,GAAI,EAAI,IACbD,GAAKC,GAAI,EAAI,IACbD,GAAKC,GAAI,EAAI,EACbD,GAAKC,GAAI,EAAI,EACbD,GAAK,IAAIL,EAAS,SAASjf,GAAKA,GAAMof,CAAc,EAAGG,CAAE,EACzDA,GAAMH,EACNpf,IAAOof,EACPN,GAAOM,EAETE,GAAKC,GAAI,EAAI,EACbD,GAAKC,GAAI,EAAIT,EAAM,IACnBQ,GAAKC,GAAI,EAAIT,GAAO,EAAI,IACxBQ,GAAKC,GAAI,EAAI,CAACT,EAAM,MAAS,IAC7BQ,GAAKC,GAAI,GAAK,CAACT,EAAM,QAAW,EAAI,IACpCQ,GAAK,IAAIL,EAAS,SAASjf,EAAG,EAAGuf,CAAE,EACnCA,GAAMN,EAAS,OAASjf,GACxB,MAAMwf,GAAQT,EAAQE,EAAU,EAAGA,EAAS,MAAM,EAClD,OAAAK,GAAKC,GAAI,EAAIC,IAAS,GAAK,IAC3BF,GAAKC,GAAI,EAAIC,IAAS,GAAK,IAC3BF,GAAKC,GAAI,EAAIC,IAAS,EAAI,IAC1BF,GAAKC,GAAI,EAAIC,GAAQ,IACdF,EACR,CACD,SAASG,EAAOhgB,EAASigB,EAAM7B,EAAiB8B,GAAQ,CACtD,MAAMziC,GAAQuiB,EAAQ,MAChBtiB,EAASsiB,EAAQ,OACvB,IAAImgB,GAAUC,GAAW9f,GACzB,MAAM9yB,GAAQwyB,EAAQ,KACtB,OAAQigB,EAAI,CACV,KAAKphC,EAAM,UAAU,eACnBuhC,GAAY,EACZD,GAAW,EACX7f,GAAW7iB,GAAQ,GAAK,EACxB,MACF,KAAKoB,EAAM,UAAU,UACnBuhC,GAAY,EACZD,GAAW,EACX7f,GAAW7iB,GAAQ,EACnB,MACF,KAAKoB,EAAM,UAAU,WACnBuhC,GAAY,EACZD,GAAW,EACX7f,GAAW7iB,GAAQ,EACnB,MACF,QACE,MAAM,IAAI,MAAM,gBAAgB,CACnC,CACD,MAAM+hC,EAAW,IAAI,YAAY,EAAIlf,IAAY5iB,CAAM,EACvD,IAAI2iC,EAAiB,EACnBC,EAAc,EAChB,QAAS59B,EAAI,EAAGA,EAAIhF,EAAQ,EAAEgF,EAC5B88B,EAASa,GAAgB,EAAI,EAC7Bb,EAAS,IAAIhyC,GAAM,SAAS8yC,EAAaA,EAAchgB,EAAQ,EAAG+f,CAAc,EAChFC,GAAehgB,GACf+f,GAAkB/f,GAEpB,GAAI2f,IAASphC,EAAM,UAAU,gBAAkBqhC,GAAQ,CACrDG,EAAiB,EACjB,QAAS39B,EAAI,EAAGA,EAAIhF,EAAQgF,IAAK,CAC/B29B,IACA,QAASzyC,GAAI,EAAGA,GAAI0yB,GAAU1yB,KAC5B4xC,EAASa,GAAgB,GAAK,GAEjC,CACF,CACD,MAAME,EAAO,IAAI,WAAW,CAAC9iC,IAAS,GAAK,IAAMA,IAAS,GAAK,IAAMA,IAAS,EAAI,IAAMA,GAAQ,IAAMC,GAAU,GAAK,IAAMA,GAAU,GAAK,IAAMA,GAAU,EAAI,IAAMA,EAAS,IAAMyiC,GAAUC,GAAW,EAAM,EAAM,CAAI,CAAC,EACnNP,EAAON,EAAYC,CAAQ,EAC3BgB,EAAY1B,EAAW,OAASC,EAAqB,EAAIwB,EAAK,OAASV,EAAK,OAC5EltC,EAAO,IAAI,WAAW6tC,CAAS,EACrC,IAAIxkB,EAAS,EACb,OAAArpB,EAAK,IAAImsC,EAAY9iB,CAAM,EAC3BA,GAAU8iB,EAAW,OACrBK,EAAc,OAAQoB,EAAM5tC,EAAMqpB,CAAM,EACxCA,GAAU+iB,EAAqBwB,EAAK,OACpCpB,EAAc,QAASU,EAAMltC,EAAMqpB,CAAM,EACzCA,GAAU+iB,EAAqBc,EAAK,OACpCV,EAAc,OAAQ,IAAI,WAAW,CAAC,EAAGxsC,EAAMqpB,CAAM,EAC9CkiB,EAAgBvrC,EAAM,YAAayrC,CAAe,CAC1D,CACD,OAAO,SAA6Bpe,EAASoe,EAAiB8B,GAAQ,CACpE,MAAMD,GAAOjgB,EAAQ,OAAS,OAAYnhB,EAAM,UAAU,eAAiBmhB,EAAQ,KACnF,OAAOggB,EAAOhgB,EAASigB,GAAM7B,EAAiB8B,EAAM,CACxD,CACA,IACA,MAAMO,CAAc,CAClB,aAAc,CACZ,KAAK,cAAgB,EACrB,KAAK,WAAa1C,EAAa,WAC/B,KAAK,SAAW,EAChB,KAAK,WAAal/B,EAAM,gBACxB,KAAK,WAAaA,EAAM,qBACxB,KAAK,QAAU,EACf,KAAK,kBAAoBA,EAAM,kBAAkB,KACjD,KAAK,gBAAkB,EACvB,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,YAAc,EACnB,KAAK,YAAc,EACnB,KAAK,WAAa,EAClB,KAAK,SAAW,EAChB,KAAK,UAAYk/B,EAAa,UAC9B,KAAK,YAAc,UACnB,KAAK,UAAY,EACjB,KAAK,YAAc,EACnB,KAAK,UAAY,EACjB,KAAK,SAAW,GAChB,KAAK,QAAU,GACf,KAAK,WAAa,EAClB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,aAAe,GACpB,KAAK,cAAgB,KACrB,KAAK,UAAY,KACjB,KAAK,OAAS,EACf,CACD,OAAQ,CACN,OAAO,OAAO,OAAO,IAAI,CAC1B,CACD,gBAAgBt7B,EAAGC,EAAG,CACpB,KAAK,EAAID,EACT,KAAK,EAAIC,CACV,CACF,CACD,SAASg+B,EAAaC,EAAQ,CAC5B,IAAIC,EAAS,CAAA,EACb,MAAMtQ,EAAM,CAAA,EACZ,UAAWuQ,KAAiBF,EAAQ,CAClC,GAAIE,EAAc,KAAO,OAAQ,CAC/BD,EAAO,KAAK,CACV,KAAM,GACN,GAAI,QACJ,MAAO,CAAE,CACjB,CAAO,EACDtQ,EAAI,KAAKsQ,CAAM,EACfA,EAASA,EAAO,GAAG,EAAE,EAAE,MACvB,QACD,CACGC,EAAc,KAAO,UACvBD,EAAStQ,EAAI,MAEbsQ,EAAO,KAAKC,CAAa,CAE5B,CACD,OAAOD,CACR,CACD,SAASE,EAAGr0C,EAAO,CACjB,GAAI,OAAO,UAAUA,CAAK,EACxB,OAAOA,EAAM,WAEf,MAAMyvB,EAAIzvB,EAAM,QAAQ,EAAE,EAC1B,IAAImB,EAAIsuB,EAAE,OAAS,EACnB,GAAIA,EAAEtuB,CAAC,IAAM,IACX,OAAOsuB,EAET,GACEtuB,UACOsuB,EAAEtuB,CAAC,IAAM,KAClB,OAAOsuB,EAAE,UAAU,EAAGA,EAAEtuB,CAAC,IAAM,IAAMA,EAAIA,EAAI,CAAC,CAC/C,CACD,SAASmzC,EAAG3xC,EAAG,CACb,GAAIA,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,EAAG,CAC5B,GAAIA,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,EACzB,OAAIA,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,EAClB,GAEF,SAAS0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAI0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAEtC,GAAIA,EAAE,CAAC,IAAMA,EAAE,CAAC,GAAKA,EAAE,CAAC,IAAM,CAACA,EAAE,CAAC,EAAG,CACnC,MAAMS,EAAI,KAAK,KAAKT,EAAE,CAAC,CAAC,EAAI,IAAM,KAAK,GACvC,MAAO,UAAU0xC,EAAGjxC,CAAC,CAAC,GACvB,CACL,SAAaT,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,EAC5D,MAAO,aAAa0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAI0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAE1C,MAAO,UAAU0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAI0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAI0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAI0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAI0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,IAAS0xC,EAAG1xC,EAAE,CAAC,CAAC,CAAC,GAC3F,CACD,IAAI4xC,EAAY,EACZC,EAAY,EACZC,EAAe,EACnB,MAAMC,CAAY,CAChB,YAAY1iC,EAAYD,EAAM4/B,EAAkB,GAAO,IACjDl+B,EAAe,YAAY,8EAA8E,EAC7G,KAAK,WAAa,IAAIA,EAAe,cACrC,KAAK,QAAU,IAAIugC,EACnB,KAAK,gBAAkB5hC,EAAM,gBAC7B,KAAK,eAAiB,GACtB,KAAK,WAAa,GAClB,KAAK,WAAaJ,EAClB,KAAK,KAAOD,EACZ,KAAK,YAAc,KACnB,KAAK,cAAgB,GACrB,KAAK,WAAa,GAClB,KAAK,cAAgB,OAAO,OAAO,IAAI,EACvC,KAAK,SAAW,KAChB,KAAK,gBAAkB,CAAC,CAAC4/B,EACzB,KAAK,mBAAqB,GAC1B,UAAWhP,KAAMvwB,EAAM,IACrB,KAAK,mBAAmBA,EAAM,IAAIuwB,CAAE,CAAC,EAAIA,CAE5C,CACD,UAAUz8B,EAAM+yB,EAAW,KAAM,CAC/B,OAAI,OAAO/yB,GAAS,SACXA,EAAK,WAAW,IAAI,EAAI,KAAK,WAAW,IAAIA,CAAI,EAAI,KAAK,KAAK,IAAIA,CAAI,EAExE+yB,CACR,CACD,MAAO,CACL,KAAK,eAAe,KAAK,KAAK,eAAe,EAC7C,MAAMmD,EAAM,KAAK,QACjB,KAAK,WAAW,KAAKA,CAAG,EACxB,KAAK,QAAUA,EAAI,OACpB,CACD,SAAU,CACR,KAAK,gBAAkB,KAAK,eAAe,IAAG,EAC9C,KAAK,QAAU,KAAK,WAAW,IAAG,EAClC,KAAK,YAAc,KACnB,KAAK,KAAO,IACb,CACD,MAAMuY,EAAO,CACX,KAAK,KAAI,EACT,KAAK,cAAcA,CAAK,EACxB,KAAK,QAAO,CACb,CACD,iBAAiBxmC,EAAc,CAC7B,MAAMqrB,EAAUrrB,EAAa,QACvBorB,EAAYprB,EAAa,UAC/B,QAAShN,EAAI,EAAGqE,EAAKg0B,EAAQ,OAAQr4B,EAAIqE,EAAIrE,IAC3C,GAAIq4B,EAAQr4B,CAAC,IAAMiR,EAAM,IAAI,WAG7B,UAAWtS,KAAOy5B,EAAUp4B,CAAC,EAAG,CAC9B,MAAM24B,EAAWh6B,EAAI,WAAW,IAAI,EAAI,KAAK,WAAa,KAAK,KACzDqR,EAAU,IAAI,QAAQnL,GAAW,CACrC8zB,EAAS,IAAIh6B,EAAKkG,CAAO,CACnC,CAAS,EACD,KAAK,QAAQ,aAAa,KAAKmL,CAAO,CACvC,CAEH,OAAO,QAAQ,IAAI,KAAK,QAAQ,YAAY,CAC7C,CACD,UAAU/N,EAAGhB,EAAGiB,EAAGP,EAAG+X,EAAG8R,EAAG,CAC1B,MAAMioB,EAAkB,CAACxxC,EAAGhB,EAAGiB,EAAGP,EAAG+X,EAAG8R,CAAC,EACzC,KAAK,gBAAkBva,EAAM,KAAK,UAAU,KAAK,gBAAiBwiC,CAAe,EACjF,KAAK,KAAO,IACb,CACD,OAAOzmC,EAAc1C,EAAU,CAC7B,KAAK,SAAWA,EAChB,MAAMopC,EAAa,KAAK,YAAYppC,CAAQ,EAC5C,OAAO,KAAK,iBAAiB0C,CAAY,EAAE,KAAK,KAC9C,KAAK,gBAAkBiE,EAAM,gBAC7B,KAAK,cAAc,KAAK,cAAcjE,CAAY,CAAC,EAC5C0mC,EACR,CACF,CACD,cAAc1mC,EAAc,CAC1B,MAAM2mC,EAAoB,KAAK,mBACzBvb,EAAYprB,EAAa,UACzBqrB,EAAUrrB,EAAa,QACvB+lC,EAAS,CAAA,EACf,QAAS/yC,EAAI,EAAGqE,EAAKg0B,EAAQ,OAAQr4B,EAAIqE,EAAIrE,IAAK,CAChD,MAAMy4B,EAAOJ,EAAQr4B,CAAC,EACtB+yC,EAAO,KAAK,CACV,KAAAta,EACA,GAAIkb,EAAkBlb,CAAI,EAC1B,KAAML,EAAUp4B,CAAC,CACzB,CAAO,CACF,CACD,OAAO8yC,EAAaC,CAAM,CAC3B,CACD,cAAcC,EAAQ,CACpB,UAAWY,KAAiBZ,EAAQ,CAClC,MAAMa,EAAKD,EAAc,GACnBnb,EAAOmb,EAAc,KACrBl3B,EAAOk3B,EAAc,KAC3B,OAAQnb,EAAO,EAAC,CACd,KAAKxnB,EAAM,IAAI,UACb,KAAK,UAAS,EACd,MACF,KAAKA,EAAM,IAAI,WACb,MACF,KAAKA,EAAM,IAAI,WACb,KAAK,WAAWyL,CAAI,EACpB,MACF,KAAKzL,EAAM,IAAI,mBACb,KAAK,mBAAmByL,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EACxC,MACF,KAAKzL,EAAM,IAAI,QACb,KAAK,QAAQyL,CAAI,EACjB,MACF,KAAKzL,EAAM,IAAI,SACb,KAAK,SAASyL,EAAK,CAAC,CAAC,EACrB,MACF,KAAKzL,EAAM,IAAI,eACb,KAAK,SAASyL,EAAK,CAAC,CAAC,EACrB,MACF,KAAKzL,EAAM,IAAI,QACb,KAAK,QAAO,EACZ,MACF,KAAKA,EAAM,IAAI,SACb,KAAK,SAASyL,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAC9B,MACF,KAAKzL,EAAM,IAAI,eACb,KAAK,eAAeyL,EAAK,CAAC,CAAC,EAC3B,MACF,KAAKzL,EAAM,IAAI,eACb,KAAK,eAAeyL,EAAK,CAAC,CAAC,EAC3B,MACF,KAAKzL,EAAM,IAAI,UACb,KAAK,UAAUyL,EAAK,CAAC,CAAC,EACtB,MACF,KAAKzL,EAAM,IAAI,cACb,KAAK,cAAcyL,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EACvE,MACF,KAAKzL,EAAM,IAAI,YACb,KAAK,YAAYyL,EAAK,CAAC,CAAC,EACxB,MACF,KAAKzL,EAAM,IAAI,qBACb,KAAK,qBAAqByL,EAAK,CAAC,CAAC,EACjC,MACF,KAAKzL,EAAM,IAAI,aACb,KAAK,aAAayL,EAAK,CAAC,CAAC,EACzB,MACF,KAAKzL,EAAM,IAAI,YACb,KAAK,YAAYyL,EAAK,CAAC,CAAC,EACxB,MACF,KAAKzL,EAAM,IAAI,WACb,KAAK,WAAWyL,EAAK,CAAC,CAAC,EACvB,MACF,KAAKzL,EAAM,IAAI,cACb,KAAK,cAAcyL,EAAK,CAAC,CAAC,EAC1B,MACF,KAAKzL,EAAM,IAAI,gBACb,KAAK,gBAAgByL,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAC9C,MACF,KAAKzL,EAAM,IAAI,kBACb,KAAK,kBAAkByL,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAChD,MACF,KAAKzL,EAAM,IAAI,gBACb,KAAK,gBAAgByL,CAAI,EACzB,MACF,KAAKzL,EAAM,IAAI,cACb,KAAK,cAAcyL,CAAI,EACvB,MACF,KAAKzL,EAAM,IAAI,YACb,KAAK,YAAYyL,EAAK,CAAC,CAAC,EACxB,MACF,KAAKzL,EAAM,IAAI,QACb,KAAK,QAAQyL,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAC7B,MACF,KAAKzL,EAAM,IAAI,mBACb,KAAK,mBAAmByL,EAAK,CAAC,CAAC,EAC/B,MACF,KAAKzL,EAAM,IAAI,YACb,KAAK,YAAYyL,EAAK,CAAC,CAAC,EACxB,MACF,KAAKzL,EAAM,IAAI,UACb,KAAK,UAAUyL,EAAK,CAAC,CAAC,EACtB,MACF,KAAKzL,EAAM,IAAI,KACb,KAAK,KAAI,EACT,MACF,KAAKA,EAAM,IAAI,OACb,KAAK,OAAM,EACX,MACF,KAAKA,EAAM,IAAI,OACb,KAAK,OAAM,EACX,MACF,KAAKA,EAAM,IAAI,WACb,KAAK,WAAU,EACf,MACF,KAAKA,EAAM,IAAI,aACb,KAAK,aAAY,EACjB,MACF,KAAKA,EAAM,IAAI,KACb,KAAK,KAAK,SAAS,EACnB,MACF,KAAKA,EAAM,IAAI,OACb,KAAK,KAAK,SAAS,EACnB,MACF,KAAKA,EAAM,IAAI,yBACb,KAAK,yBAAwB,EAC7B,MACF,KAAKA,EAAM,IAAI,kBACb,KAAK,kBAAkByL,EAAK,CAAC,CAAC,EAC9B,MACF,KAAKzL,EAAM,IAAI,wBACb,KAAK,wBAAwByL,EAAK,CAAC,CAAC,EACpC,MACF,KAAKzL,EAAM,IAAI,sBACb,KAAK,sBAAsByL,EAAK,CAAC,CAAC,EAClC,MACF,KAAKzL,EAAM,IAAI,sBACb,KAAK,sBAAsByL,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAC3C,MACF,KAAKzL,EAAM,IAAI,oBACb,KAAK,oBAAmB,EACxB,MACF,KAAKA,EAAM,IAAI,UACb,KAAK,UAAS,EACd,MACF,KAAKA,EAAM,IAAI,YACb,KAAK,YAAW,EAChB,MACF,KAAKA,EAAM,IAAI,gBACb,KAAK,gBAAe,EACpB,MACF,KAAKA,EAAM,IAAI,kBACb,KAAK,kBAAiB,EACtB,MACF,KAAKA,EAAM,IAAI,SACb,KAAK,SAAQ,EACb,MACF,KAAKA,EAAM,IAAI,UACb,KAAK,UAAUyL,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EACnE,MACF,KAAKzL,EAAM,IAAI,cACb,KAAK,cAAcyL,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EACnC,MACF,KAAKzL,EAAM,IAAI,QACb,KAAK,QAAO,EACZ,MACF,IAAK,IACH,KAAK,MAAM2iC,EAAc,KAAK,EAC9B,MACF,WACM3iC,EAAM,MAAM,0BAA0B4iC,CAAE,EAAE,EAC9C,KACH,CACF,CACF,CACD,eAAe5W,EAAa,CAC1B,KAAK,QAAQ,YAAcA,CAC5B,CACD,eAAeD,EAAa,CAC1B,KAAK,QAAQ,YAAcA,CAC5B,CACD,UAAW,CACT,KAAK,SAAS,EAAG,KAAK,QAAQ,OAAO,CACtC,CACD,cAAc/6B,EAAGhB,EAAGiB,EAAGP,EAAG+X,EAAG8R,EAAG,CAC9B,MAAM+D,EAAU,KAAK,QACrBA,EAAQ,WAAaA,EAAQ,WAAa,CAACttB,EAAGhB,EAAGiB,EAAGP,EAAG+X,EAAG8R,CAAC,EAC3D+D,EAAQ,gBAAkB,KAAK,MAAMttB,EAAGhB,CAAC,EACzCsuB,EAAQ,EAAIA,EAAQ,MAAQ,EAC5BA,EAAQ,EAAIA,EAAQ,MAAQ,EAC5BA,EAAQ,QAAU,GAClBA,EAAQ,QAAU,GAClBA,EAAQ,MAAQ,KAAK,WAAW,cAAc,WAAW,EACzDA,EAAQ,MAAM,eAAe,KAAM,cAAeA,EAAQ,UAAU,EACpEA,EAAQ,MAAM,eAAe,KAAM,YAAa,GAAG2jB,EAAG3jB,EAAQ,QAAQ,CAAC,IAAI,EAC3EA,EAAQ,MAAM,eAAe,KAAM,IAAK2jB,EAAG,CAAC3jB,EAAQ,CAAC,CAAC,EACtDA,EAAQ,WAAa,KAAK,WAAW,cAAc,UAAU,EAC7DA,EAAQ,WAAW,OAAOA,EAAQ,KAAK,CACxC,CACD,WAAY,CACV,MAAMA,EAAU,KAAK,QACrBA,EAAQ,EAAIA,EAAQ,MAAQ,EAC5BA,EAAQ,EAAIA,EAAQ,MAAQ,EAC5BA,EAAQ,WAAate,EAAM,gBAC3Bse,EAAQ,WAAate,EAAM,gBAC3Bse,EAAQ,gBAAkB,EAC1BA,EAAQ,MAAQ,KAAK,WAAW,cAAc,WAAW,EACzDA,EAAQ,WAAa,KAAK,WAAW,cAAc,UAAU,EAC7DA,EAAQ,OAAS,KAAK,WAAW,cAAc,OAAO,EACtDA,EAAQ,QAAU,GAClBA,EAAQ,QAAU,EACnB,CACD,SAAS1a,EAAGC,EAAG,CACb,MAAMya,EAAU,KAAK,QACrBA,EAAQ,EAAIA,EAAQ,OAAS1a,EAC7B0a,EAAQ,EAAIA,EAAQ,OAASza,EAC7Bya,EAAQ,QAAU,GAClBA,EAAQ,QAAU,GAClBA,EAAQ,MAAQ,KAAK,WAAW,cAAc,WAAW,EACzDA,EAAQ,MAAM,eAAe,KAAM,cAAeA,EAAQ,UAAU,EACpEA,EAAQ,MAAM,eAAe,KAAM,YAAa,GAAG2jB,EAAG3jB,EAAQ,QAAQ,CAAC,IAAI,EAC3EA,EAAQ,MAAM,eAAe,KAAM,IAAK2jB,EAAG,CAAC3jB,EAAQ,CAAC,CAAC,CACvD,CACD,SAASuN,EAAQ,CACf,MAAMvN,EAAU,KAAK,QACf7f,EAAO6f,EAAQ,KACfiN,EAAWjN,EAAQ,SACzB,GAAIiN,IAAa,EACf,OAEF,MAAMO,EAAgBxN,EAAQ,cACxByN,EAAczN,EAAQ,YACtB0N,EAAc1N,EAAQ,YACtB2N,EAAgB3N,EAAQ,cACxB4N,EAAa5N,EAAQ,WAAa2N,EAClCG,EAAW3tB,EAAK,SAChB4tB,EAAaD,EAAW,EAAI,GAC5BE,GAAkB7tB,EAAK,gBACvB8tB,GAAoBhB,EAAWjN,EAAQ,WAAW,CAAC,EACzD,IAAI1a,EAAI,EACR,UAAWgpB,MAASf,EAAQ,CAC1B,GAAIe,KAAU,KAAM,CAClBhpB,GAAKqoB,EAAgBD,EACrB,QACR,SAAiB,OAAOY,IAAU,SAAU,CACpChpB,GAAKyoB,EAAaO,GAAQrB,EAAW,IACrC,QACD,CACD,MAAMX,IAAWgC,GAAM,QAAUZ,EAAc,GAAKD,EAC9C5N,EAAYyO,GAAM,SACxB,IAAIG,EAASC,EACTpuB,EAAQguB,GAAM,MAClB,GAAIR,EAAU,CACZ,IAAIc,EACJ,MAAMD,EAAUL,GAAM,SAAWN,GACjCY,EAAKN,GAAM,QAAUK,EAAQ,CAAC,EAAIruB,EAAQ,GAC1CsuB,EAAK,CAACA,EAAKX,GACX,MAAMY,EAAKF,EAAQ,CAAC,EAAIV,GACxB3tB,EAAQquB,EAAU,CAACA,EAAQ,CAAC,EAAIruB,EAChCmuB,EAAUG,EAAKpB,EACfkB,GAAWppB,EAAIupB,GAAMrB,CAC7B,MACQiB,EAAUnpB,EAAIkoB,EACdkB,EAAU,GAERJ,GAAM,UAAYnuB,EAAK,eACzB6f,EAAQ,QAAQ,KAAKA,EAAQ,EAAIyO,CAAO,EACpCX,GACF9N,EAAQ,QAAQ,KAAK,CAACA,EAAQ,EAAI0O,CAAO,EAE3C1O,EAAQ,MAAM,aAAeH,GAE/B,MAAMqP,EAAYpB,EAAWxtB,EAAQ2tB,GAAoB3B,GAAUqB,EAAgBrtB,EAAQ2tB,GAAoB3B,GAAUqB,EACzHroB,GAAK4pB,CACN,CACDlP,EAAQ,MAAM,eAAe,KAAM,IAAKA,EAAQ,QAAQ,IAAI2jB,CAAE,EAAE,KAAK,GAAG,CAAC,EACrE7V,EACF9N,EAAQ,MAAM,eAAe,KAAM,IAAKA,EAAQ,QAAQ,IAAI2jB,CAAE,EAAE,KAAK,GAAG,CAAC,EAEzE3jB,EAAQ,MAAM,eAAe,KAAM,IAAK2jB,EAAG,CAAC3jB,EAAQ,CAAC,CAAC,EAEpD8N,EACF9N,EAAQ,GAAK1a,EAEb0a,EAAQ,GAAK1a,EAAIsoB,EAEnB5N,EAAQ,MAAM,eAAe,KAAM,cAAeA,EAAQ,UAAU,EACpEA,EAAQ,MAAM,eAAe,KAAM,YAAa,GAAG2jB,EAAG3jB,EAAQ,QAAQ,CAAC,IAAI,EACvEA,EAAQ,YAAc4gB,EAAa,WACrC5gB,EAAQ,MAAM,eAAe,KAAM,aAAcA,EAAQ,SAAS,EAEhEA,EAAQ,aAAe4gB,EAAa,YACtC5gB,EAAQ,MAAM,eAAe,KAAM,cAAeA,EAAQ,UAAU,EAEtE,MAAMkN,GAAiBlN,EAAQ,kBAAoBte,EAAM,kBAAkB,iBAa3E,GAZIwrB,KAAmBxrB,EAAM,kBAAkB,MAAQwrB,KAAmBxrB,EAAM,kBAAkB,aAC5Fse,EAAQ,YAAc4gB,EAAa,WACrC5gB,EAAQ,MAAM,eAAe,KAAM,OAAQA,EAAQ,SAAS,EAE1DA,EAAQ,UAAY,GACtBA,EAAQ,MAAM,eAAe,KAAM,eAAgBA,EAAQ,SAAS,GAE7DA,EAAQ,oBAAsBte,EAAM,kBAAkB,YAC/Dse,EAAQ,MAAM,eAAe,KAAM,OAAQ,aAAa,EAExDA,EAAQ,MAAM,eAAe,KAAM,OAAQ,MAAM,EAE/CkN,KAAmBxrB,EAAM,kBAAkB,QAAUwrB,KAAmBxrB,EAAM,kBAAkB,YAAa,CAC/G,MAAM6iC,GAAiB,GAAKvkB,EAAQ,iBAAmB,GACvD,KAAK,qBAAqBA,EAAQ,MAAOukB,EAAc,CACxD,CACD,IAAIC,GAAaxkB,EAAQ,WACrBA,EAAQ,WAAa,IACvBwkB,GAAaA,GAAW,QACxBA,GAAW,CAAC,GAAKxkB,EAAQ,UAE3BA,EAAQ,WAAW,eAAe,KAAM,YAAa,GAAG4jB,EAAGY,EAAU,CAAC,UAAUb,EAAG/V,CAAU,CAAC,OAAO,EACrG5N,EAAQ,WAAW,eAAe6gB,EAAQ,YAAa,UAAU,EACjE7gB,EAAQ,WAAW,OAAOA,EAAQ,KAAK,EACvCA,EAAQ,OAAO,OAAOA,EAAQ,UAAU,EACxC,KAAK,sBAAuB,EAAC,OAAOA,EAAQ,UAAU,CACvD,CACD,mBAAmB1a,EAAGC,EAAG,CACvB,KAAK,WAAW,CAACA,CAAC,EAClB,KAAK,SAASD,EAAGC,CAAC,CACnB,CACD,aAAaknB,EAAS,CACpB,GAAI,CAACA,EAAQ,KACX,MAAM,IAAI,MAAM,mGAAwG,EAErH,KAAK,WACR,KAAK,SAAW,KAAK,WAAW,cAAc,WAAW,EACzD,KAAK,SAAS,eAAe,KAAM,OAAQ,UAAU,EACrD,KAAK,KAAK,OAAO,KAAK,QAAQ,GAEhC,MAAM19B,EAAMgyC,EAAgBtU,EAAQ,KAAMA,EAAQ,SAAU,KAAK,eAAe,EAChF,KAAK,SAAS,aAAe,8BAA8BA,EAAQ,UAAU,eAAoB19B,CAAG;AAAA,CACrG,CACD,QAAQe,EAAS,CACf,MAAMkwB,EAAU,KAAK,QACfyM,EAAU,KAAK,WAAW,IAAI38B,EAAQ,CAAC,CAAC,EAC9C,IAAIub,EAAOvb,EAAQ,CAAC,EACpBkwB,EAAQ,KAAOyM,EACX,KAAK,YAAc,CAACA,EAAQ,aAAe,CAAC,KAAK,cAAcA,EAAQ,UAAU,IACnF,KAAK,aAAaA,CAAO,EACzB,KAAK,cAAcA,EAAQ,UAAU,EAAIA,GAE3CzM,EAAQ,WAAayM,EAAQ,YAAc/qB,EAAM,qBACjD,IAAIirB,EAAO,SACPF,EAAQ,MACVE,EAAO,MACEF,EAAQ,OACjBE,EAAO,QAET,MAAMC,EAASH,EAAQ,OAAS,SAAW,SACvCphB,EAAO,GACTA,EAAO,CAACA,EACR2U,EAAQ,cAAgB,IAExBA,EAAQ,cAAgB,EAE1BA,EAAQ,SAAW3U,EACnB2U,EAAQ,WAAayM,EAAQ,WAC7BzM,EAAQ,WAAa2M,EACrB3M,EAAQ,UAAY4M,EACpB5M,EAAQ,MAAQ,KAAK,WAAW,cAAc,WAAW,EACzDA,EAAQ,MAAM,eAAe,KAAM,IAAK2jB,EAAG,CAAC3jB,EAAQ,CAAC,CAAC,EACtDA,EAAQ,QAAU,GAClBA,EAAQ,QAAU,EACnB,CACD,SAAU,OACR,MAAMA,EAAU,KAAK,QACjBA,EAAQ,kBAAoBte,EAAM,kBAAkB,oBAAoBtQ,EAAA4uB,EAAQ,aAAR,MAAA5uB,EAAoB,mBAC9F4uB,EAAQ,QAAUA,EAAQ,WAC1B,KAAK,KAAK,SAAS,EACnB,KAAK,QAAO,EAEf,CACD,aAAa1f,EAAO,CACdA,EAAQ,IACV,KAAK,QAAQ,UAAYA,EAE5B,CACD,WAAW0E,EAAO,CAChB,KAAK,QAAQ,QAAU8iB,EAAgB9iB,CAAK,CAC7C,CACD,YAAYA,EAAO,CACjB,KAAK,QAAQ,SAAW+iB,EAAiB/iB,CAAK,CAC/C,CACD,cAAcgmB,EAAO,CACnB,KAAK,QAAQ,WAAaA,CAC3B,CACD,eAAeyZ,EAAa,CAC1B,KAAK,QAAQ,YAAcA,CAC5B,CACD,kBAAkBjzC,EAAGC,EAAGC,EAAG,CACzB,KAAK,QAAQ,YAAcgQ,EAAM,KAAK,aAAalQ,EAAGC,EAAGC,CAAC,CAC3D,CACD,aAAagzC,EAAW,CACtB,KAAK,QAAQ,UAAYA,CAC1B,CACD,gBAAgBlzC,EAAGC,EAAGC,EAAG,CACvB,KAAK,QAAQ,UAAYgQ,EAAM,KAAK,aAAalQ,EAAGC,EAAGC,CAAC,EACxD,KAAK,QAAQ,MAAQ,KAAK,WAAW,cAAc,WAAW,EAC9D,KAAK,QAAQ,QAAU,GACvB,KAAK,QAAQ,QAAU,EACxB,CACD,gBAAgByb,EAAM,CACpB,KAAK,QAAQ,YAAc,KAAK,oBAAoBA,CAAI,CACzD,CACD,cAAcA,EAAM,CAClB,KAAK,QAAQ,UAAY,KAAK,oBAAoBA,CAAI,CACvD,CACD,YAAYA,EAAM,CAChB,KAAM,CACJ,MAAA7M,EACA,OAAAC,CACN,EAAQ,KAAK,SACHyvB,EAAMtuB,EAAM,KAAK,iBAAiB,KAAK,eAAe,EACtD,CAACnO,EAAIC,EAAIC,EAAIC,CAAE,EAAIgO,EAAM,KAAK,2BAA2B,CAAC,EAAG,EAAGpB,EAAOC,CAAM,EAAGyvB,CAAG,EACnFh9B,EAAO,KAAK,WAAW,cAAc,UAAU,EACrDA,EAAK,eAAe,KAAM,IAAKO,CAAE,EACjCP,EAAK,eAAe,KAAM,IAAKQ,CAAE,EACjCR,EAAK,eAAe,KAAM,QAASS,EAAKF,CAAE,EAC1CP,EAAK,eAAe,KAAM,SAAUU,EAAKF,CAAE,EAC3CR,EAAK,eAAe,KAAM,OAAQ,KAAK,oBAAoBma,CAAI,CAAC,EAC5D,KAAK,QAAQ,UAAY,GAC3Bna,EAAK,eAAe,KAAM,eAAgB,KAAK,QAAQ,SAAS,EAElE,KAAK,sBAAqB,EAAG,OAAOA,CAAI,CACzC,CACD,oBAAoBma,EAAM,CACxB,OAAIA,EAAK,CAAC,IAAM,gBACP,KAAK,mBAAmBA,CAAI,EAE9B,KAAK,oBAAoBA,CAAI,CACrC,CACD,mBAAmBA,EAAM,CACvB,MAAMI,EAAQJ,EAAK,CAAC,EACd1P,EAAe0P,EAAK,CAAC,EACrB4iB,EAAS5iB,EAAK,CAAC,GAAKzL,EAAM,gBAC1B,CAACnO,EAAIC,EAAIC,EAAIC,CAAE,EAAIyZ,EAAK,CAAC,EACzB2oB,EAAQ3oB,EAAK,CAAC,EACd4oB,EAAQ5oB,EAAK,CAAC,EACd6oB,EAAY7oB,EAAK,CAAC,EAClBw3B,GAAW,UAAUZ,GAAc,GACnC,CAACa,GAAKC,EAAKC,GAAKC,EAAG,EAAIrjC,EAAM,KAAK,cAAc,CAAC,GAAGA,EAAM,KAAK,eAAe,CAACnO,EAAIC,CAAE,EAAGu8B,CAAM,EAAG,GAAGruB,EAAM,KAAK,eAAe,CAACjO,EAAIC,CAAE,EAAGq8B,CAAM,CAAC,CAAC,EAChJ,CAACiV,GAAQC,EAAM,EAAIvjC,EAAM,KAAK,8BAA8BquB,CAAM,EAClEmV,EAASpP,EAAQkP,GACjBG,EAASpP,EAAQkP,GACjBG,EAAS,KAAK,WAAW,cAAc,aAAa,EAC1DA,EAAO,eAAe,KAAM,KAAMT,EAAQ,EAC1CS,EAAO,eAAe,KAAM,eAAgB,gBAAgB,EAC5DA,EAAO,eAAe,KAAM,QAASF,CAAM,EAC3CE,EAAO,eAAe,KAAM,SAAUD,CAAM,EAC5CC,EAAO,eAAe,KAAM,IAAK,GAAGR,EAAG,EAAE,EACzCQ,EAAO,eAAe,KAAM,IAAK,GAAGP,CAAG,EAAE,EACzC,MAAM75B,EAAM,KAAK,IACXk5B,EAAkB,KAAK,gBACvBja,EAAY,KAAK,QAAQ,UACzBkC,EAAc,KAAK,QAAQ,YAC3B8D,EAAO,KAAK,WAAW,OAAO6U,GAAMF,GAAKG,GAAMF,CAAG,EAGxD,GAFA,KAAK,IAAM5U,EACX,KAAK,gBAAkBF,EACnBiG,IAAc,EAAG,CACnB,MAAMa,EAAWn1B,EAAM,KAAK,aAAa,GAAG6L,CAAK,EACjD,KAAK,QAAQ,UAAYspB,EACzB,KAAK,QAAQ,YAAcA,CAC5B,CACD,YAAK,cAAc,KAAK,cAAcp5B,CAAY,CAAC,EACnD,KAAK,IAAMuN,EACX,KAAK,gBAAkBk5B,EACvB,KAAK,QAAQ,UAAYja,EACzB,KAAK,QAAQ,YAAckC,EAC3BiZ,EAAO,OAAOnV,EAAK,WAAW,CAAC,CAAC,EAChC,KAAK,KAAK,OAAOmV,CAAM,EAChB,QAAQT,EAAQ,GACxB,CACD,oBAAoBx3B,EAAM,CAIxB,OAHI,OAAOA,GAAS,WAClBA,EAAO,KAAK,KAAK,IAAIA,CAAI,GAEnBA,EAAK,CAAC,EAAC,CACb,IAAK,cACH,MAAMk4B,EAAY,UAAUtB,GAAc,GACpCuB,EAAan4B,EAAK,CAAC,EACzB,IAAIo4B,EACJ,OAAQp4B,EAAK,CAAC,EAAC,CACb,IAAK,QACH,MAAMq4B,EAASr4B,EAAK,CAAC,EACfs4B,EAASt4B,EAAK,CAAC,EACrBo4B,EAAW,KAAK,WAAW,cAAc,oBAAoB,EAC7DA,EAAS,eAAe,KAAM,KAAMF,CAAS,EAC7CE,EAAS,eAAe,KAAM,gBAAiB,gBAAgB,EAC/DA,EAAS,eAAe,KAAM,KAAMC,EAAO,CAAC,CAAC,EAC7CD,EAAS,eAAe,KAAM,KAAMC,EAAO,CAAC,CAAC,EAC7CD,EAAS,eAAe,KAAM,KAAME,EAAO,CAAC,CAAC,EAC7CF,EAAS,eAAe,KAAM,KAAME,EAAO,CAAC,CAAC,EAC7C,MACF,IAAK,SACH,MAAMC,EAAav4B,EAAK,CAAC,EACnBw4B,EAAcx4B,EAAK,CAAC,EACpBy4B,EAAcz4B,EAAK,CAAC,EACpB04B,EAAe14B,EAAK,CAAC,EAC3Bo4B,EAAW,KAAK,WAAW,cAAc,oBAAoB,EAC7DA,EAAS,eAAe,KAAM,KAAMF,CAAS,EAC7CE,EAAS,eAAe,KAAM,gBAAiB,gBAAgB,EAC/DA,EAAS,eAAe,KAAM,KAAMI,EAAY,CAAC,CAAC,EAClDJ,EAAS,eAAe,KAAM,KAAMI,EAAY,CAAC,CAAC,EAClDJ,EAAS,eAAe,KAAM,IAAKM,CAAY,EAC/CN,EAAS,eAAe,KAAM,KAAMG,EAAW,CAAC,CAAC,EACjDH,EAAS,eAAe,KAAM,KAAMG,EAAW,CAAC,CAAC,EACjDH,EAAS,eAAe,KAAM,KAAMK,CAAW,EAC/C,MACF,QACE,MAAM,IAAI,MAAM,6BAA6Bz4B,EAAK,CAAC,CAAC,EAAE,CACzD,CACD,UAAWslB,KAAa6S,EAAY,CAClC,MAAMQ,EAAO,KAAK,WAAW,cAAc,UAAU,EACrDA,EAAK,eAAe,KAAM,SAAUrT,EAAU,CAAC,CAAC,EAChDqT,EAAK,eAAe,KAAM,aAAcrT,EAAU,CAAC,CAAC,EACpD8S,EAAS,OAAOO,CAAI,CACrB,CACD,YAAK,KAAK,OAAOP,CAAQ,EAClB,QAAQF,CAAS,IAC1B,IAAK,OACH,SAAI3jC,EAAM,MAAM,4BAA4B,EACrC,KACT,IAAK,QACH,MAAO,UACT,QACE,MAAM,IAAI,MAAM,oBAAoByL,EAAK,CAAC,CAAC,EAAE,CAChD,CACF,CACD,QAAQ8d,EAAWC,EAAW,CAC5B,KAAK,QAAQ,UAAYD,EACzB,KAAK,QAAQ,UAAYC,CAC1B,CACD,cAAcS,EAAKxe,EAAM,CACvB,MAAM6S,EAAU,KAAK,QACrB,IAAI1a,EAAI0a,EAAQ,EACdza,EAAIya,EAAQ,EACV5tB,EAAI,CAAA,EACJkC,EAAI,EACR,UAAW29B,KAAMtG,EACf,OAAQsG,EAAK,EAAC,CACZ,KAAKvwB,EAAM,IAAI,UACb4D,EAAI6H,EAAK7Y,GAAG,EACZiR,EAAI4H,EAAK7Y,GAAG,EACZ,MAAMgM,EAAQ6M,EAAK7Y,GAAG,EAChBiM,EAAS4M,EAAK7Y,GAAG,EACjB03B,EAAK1mB,EAAIhF,EACT2rB,GAAK1mB,EAAIhF,EACfnO,EAAE,KAAK,IAAKuxC,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,EAAG,IAAKo+B,EAAG3X,CAAE,EAAG2X,EAAGp+B,CAAC,EAAG,IAAKo+B,EAAG3X,CAAE,EAAG2X,EAAG1X,EAAE,EAAG,IAAK0X,EAAGr+B,CAAC,EAAGq+B,EAAG1X,EAAE,EAAG,GAAG,EAC1F,MACF,KAAKvqB,EAAM,IAAI,OACb4D,EAAI6H,EAAK7Y,GAAG,EACZiR,EAAI4H,EAAK7Y,GAAG,EACZlC,EAAE,KAAK,IAAKuxC,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,CAAC,EACxB,MACF,KAAK7D,EAAM,IAAI,OACb4D,EAAI6H,EAAK7Y,GAAG,EACZiR,EAAI4H,EAAK7Y,GAAG,EACZlC,EAAE,KAAK,IAAKuxC,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,CAAC,EACxB,MACF,KAAK7D,EAAM,IAAI,QACb4D,EAAI6H,EAAK7Y,EAAI,CAAC,EACdiR,EAAI4H,EAAK7Y,EAAI,CAAC,EACdlC,EAAE,KAAK,IAAKuxC,EAAGx2B,EAAK7Y,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,EAAGqvC,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,CAAC,EACxFjR,GAAK,EACL,MACF,KAAKoN,EAAM,IAAI,SACbtP,EAAE,KAAK,IAAKuxC,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,EAAGo+B,EAAGx2B,EAAK7Y,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,CAAC,EACxFgR,EAAI6H,EAAK7Y,EAAI,CAAC,EACdiR,EAAI4H,EAAK7Y,EAAI,CAAC,EACdA,GAAK,EACL,MACF,KAAKoN,EAAM,IAAI,SACb4D,EAAI6H,EAAK7Y,EAAI,CAAC,EACdiR,EAAI4H,EAAK7Y,EAAI,CAAC,EACdlC,EAAE,KAAK,IAAKuxC,EAAGx2B,EAAK7Y,CAAC,CAAC,EAAGqvC,EAAGx2B,EAAK7Y,EAAI,CAAC,CAAC,EAAGqvC,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,EAAGo+B,EAAGr+B,CAAC,EAAGq+B,EAAGp+B,CAAC,CAAC,EACpEjR,GAAK,EACL,MACF,KAAKoN,EAAM,IAAI,UACbtP,EAAE,KAAK,GAAG,EACV,KACH,CAEHA,EAAIA,EAAE,KAAK,GAAG,EACV4tB,EAAQ,MAAQ2L,EAAI,OAAS,GAAKA,EAAI,CAAC,IAAMjqB,EAAM,IAAI,WAAaiqB,EAAI,CAAC,IAAMjqB,EAAM,IAAI,OAC3FtP,EAAI4tB,EAAQ,KAAK,eAAe,KAAM,GAAG,EAAI5tB,GAE7C4tB,EAAQ,KAAO,KAAK,WAAW,cAAc,UAAU,EACvD,KAAK,sBAAuB,EAAC,OAAOA,EAAQ,IAAI,GAElDA,EAAQ,KAAK,eAAe,KAAM,IAAK5tB,CAAC,EACxC4tB,EAAQ,KAAK,eAAe,KAAM,OAAQ,MAAM,EAChDA,EAAQ,QAAUA,EAAQ,KAC1BA,EAAQ,gBAAgB1a,EAAGC,CAAC,CAC7B,CACD,SAAU,CACR,MAAMya,EAAU,KAAK,QAErB,GADAA,EAAQ,KAAO,KACX,CAAC,KAAK,YACR,OAEF,GAAI,CAACA,EAAQ,QAAS,CACpB,KAAK,YAAc,KACnB,MACD,CACD,MAAM+lB,EAAS,WAAWlC,GAAW,GAC/BmC,EAAW,KAAK,WAAW,cAAc,cAAc,EAC7DA,EAAS,eAAe,KAAM,KAAMD,CAAM,EAC1CC,EAAS,eAAe,KAAM,YAAapC,EAAG,KAAK,eAAe,CAAC,EACnE,MAAMqC,EAAcjmB,EAAQ,QAAQ,UAAU,EAAI,EASlD,GARI,KAAK,cAAgB,UACvBimB,EAAY,eAAe,KAAM,YAAa,SAAS,EAEvDA,EAAY,eAAe,KAAM,YAAa,SAAS,EAEzD,KAAK,YAAc,KACnBD,EAAS,OAAOC,CAAW,EAC3B,KAAK,KAAK,OAAOD,CAAQ,EACrBhmB,EAAQ,cAAe,CACzBA,EAAQ,UAAY,KACpB,UAAW7H,KAAQ,KAAK,WACtBA,EAAK,UAAY,KAEnB6tB,EAAS,eAAe,KAAM,YAAahmB,EAAQ,aAAa,CACjE,CACDA,EAAQ,cAAgB,QAAQ+lB,CAAM,IACtC,KAAK,KAAO,IACb,CACD,KAAKhmC,EAAM,CACT,KAAK,YAAcA,CACpB,CACD,WAAY,CACV,MAAMigB,EAAU,KAAK,QACrB,GAAIA,EAAQ,KAAM,CAChB,MAAM5tB,EAAI,GAAG4tB,EAAQ,KAAK,eAAe,KAAM,GAAG,CAAC,IACnDA,EAAQ,KAAK,eAAe,KAAM,IAAK5tB,CAAC,CACzC,CACF,CACD,WAAWm6B,EAAS,CAClB,KAAK,QAAQ,QAAU,CAACA,CACzB,CACD,YAAY2Z,EAAU,CACpB,KAAK,QAAQ,SAAWA,CACzB,CACD,qBAAqBlZ,EAAmB,CACtC,KAAK,QAAQ,kBAAoBA,CAClC,CACD,UAAUzyB,EAAO,CACf,KAAK,QAAQ,WAAaA,EAAQ,GACnC,CACD,mBAAmBK,EAAQ,CAAE,CAC7B,YAAYuwB,EAAU,CAAE,CACxB,UAAUC,EAAQ,CAChB,SAAW,CAACt6B,EAAKxB,CAAK,IAAK87B,EACzB,OAAQt6B,EAAG,CACT,IAAK,KACH,KAAK,aAAaxB,CAAK,EACvB,MACF,IAAK,KACH,KAAK,WAAWA,CAAK,EACrB,MACF,IAAK,KACH,KAAK,YAAYA,CAAK,EACtB,MACF,IAAK,KACH,KAAK,cAAcA,CAAK,EACxB,MACF,IAAK,IACH,KAAK,QAAQA,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAC/B,MACF,IAAK,KACH,KAAK,mBAAmBA,CAAK,EAC7B,MACF,IAAK,KACH,KAAK,YAAYA,CAAK,EACtB,MACF,IAAK,OACH,KAAK,QAAQA,CAAK,EAClB,MACF,IAAK,KACH,KAAK,eAAeA,CAAK,EACzB,MACF,IAAK,KACH,KAAK,aAAaA,CAAK,EACvB,MACF,WACMoS,EAAM,MAAM,wCAAwC5Q,CAAG,EAAE,EAC7D,KACH,CAEJ,CACD,MAAO,CACL,MAAMkvB,EAAU,KAAK,QACjBA,EAAQ,UACVA,EAAQ,QAAQ,eAAe,KAAM,OAAQA,EAAQ,SAAS,EAC9DA,EAAQ,QAAQ,eAAe,KAAM,eAAgBA,EAAQ,SAAS,EACtE,KAAK,QAAO,EAEf,CACD,QAAS,CACP,MAAMA,EAAU,KAAK,QACjBA,EAAQ,UACV,KAAK,qBAAqBA,EAAQ,OAAO,EACzCA,EAAQ,QAAQ,eAAe,KAAM,OAAQ,MAAM,EACnD,KAAK,QAAO,EAEf,CACD,qBAAqBzV,EAASg6B,EAAiB,EAAG,CAChD,MAAMvkB,EAAU,KAAK,QACrB,IAAIiL,EAAYjL,EAAQ,UACpBukB,IAAmB,GAAKtZ,EAAU,OAAS,IAC7CA,EAAYA,EAAU,IAAI,SAAU37B,EAAO,CACzC,OAAOi1C,EAAiBj1C,CAChC,CAAO,GAEHib,EAAQ,eAAe,KAAM,SAAUyV,EAAQ,WAAW,EAC1DzV,EAAQ,eAAe,KAAM,iBAAkByV,EAAQ,WAAW,EAClEzV,EAAQ,eAAe,KAAM,oBAAqBo5B,EAAG3jB,EAAQ,UAAU,CAAC,EACxEzV,EAAQ,eAAe,KAAM,iBAAkByV,EAAQ,OAAO,EAC9DzV,EAAQ,eAAe,KAAM,kBAAmByV,EAAQ,QAAQ,EAChEzV,EAAQ,eAAe,KAAM,eAAgBo5B,EAAGY,EAAiBvkB,EAAQ,SAAS,EAAI,IAAI,EAC1FzV,EAAQ,eAAe,KAAM,mBAAoB0gB,EAAU,IAAI0Y,CAAE,EAAE,KAAK,GAAG,CAAC,EAC5Ep5B,EAAQ,eAAe,KAAM,oBAAqBo5B,EAAGY,EAAiBvkB,EAAQ,SAAS,EAAI,IAAI,CAChG,CACD,QAAS,QACP5uB,EAAA,KAAK,QAAQ,UAAb,MAAAA,EAAsB,eAAe,KAAM,YAAa,WACxD,KAAK,KAAI,CACV,CACD,YAAa,CACX,KAAK,OAAM,EACX,KAAK,KAAI,CACV,CACD,cAAe,QACbA,EAAA,KAAK,QAAQ,UAAb,MAAAA,EAAsB,eAAe,KAAM,YAAa,WACxD,KAAK,WAAU,CAChB,CACD,aAAc,CACZ,KAAK,UAAS,EACd,KAAK,OAAM,CACZ,CACD,iBAAkB,CAChB,KAAK,UAAS,EACd,KAAK,WAAU,CAChB,CACD,mBAAoB,CAClB,KAAK,UAAS,EACd,KAAK,aAAY,CAClB,CACD,0BAA2B,CACzB,MAAM4B,EAAO,KAAK,WAAW,cAAc,UAAU,EACrDA,EAAK,eAAe,KAAM,IAAK,GAAG,EAClCA,EAAK,eAAe,KAAM,IAAK,GAAG,EAClCA,EAAK,eAAe,KAAM,QAAS,KAAK,EACxCA,EAAK,eAAe,KAAM,SAAU,KAAK,EACzCA,EAAK,eAAe,KAAM,OAAQ,KAAK,QAAQ,SAAS,EACxD,KAAK,sBAAqB,EAAG,OAAOA,CAAI,CACzC,CACD,kBAAkB8N,EAAO,CACvB,MAAM+hB,EAAU,KAAK,UAAU/hB,CAAK,EACpC,GAAI,CAAC+hB,EAAS,IACRnhB,EAAM,MAAM,kCAAkCZ,CAAK,mBAAmB,EAC1E,MACD,CACD,KAAK,wBAAwB+hB,CAAO,CACrC,CACD,wBAAwBA,EAASS,EAAM,CACrC,MAAMhjB,EAAQuiB,EAAQ,MAChBtiB,EAASsiB,EAAQ,OACjBsjB,EAASzE,EAAoB7e,EAAS,KAAK,gBAAiB,CAAC,CAACS,CAAI,EAClE8iB,EAAW,KAAK,WAAW,cAAc,UAAU,EACzDA,EAAS,eAAe,KAAM,IAAK,GAAG,EACtCA,EAAS,eAAe,KAAM,IAAK,GAAG,EACtCA,EAAS,eAAe,KAAM,QAASzC,EAAGrjC,CAAK,CAAC,EAChD8lC,EAAS,eAAe,KAAM,SAAUzC,EAAGpjC,CAAM,CAAC,EAClD,KAAK,QAAQ,QAAU6lC,EACvB,KAAK,KAAK,SAAS,EACnB,MAAMC,EAAQ,KAAK,WAAW,cAAc,WAAW,EACvDA,EAAM,eAAevF,GAAU,aAAcqF,CAAM,EACnDE,EAAM,eAAe,KAAM,IAAK,GAAG,EACnCA,EAAM,eAAe,KAAM,IAAK1C,EAAG,CAACpjC,CAAM,CAAC,EAC3C8lC,EAAM,eAAe,KAAM,QAAS1C,EAAGrjC,CAAK,EAAI,IAAI,EACpD+lC,EAAM,eAAe,KAAM,SAAU1C,EAAGpjC,CAAM,EAAI,IAAI,EACtD8lC,EAAM,eAAe,KAAM,YAAa,SAAS1C,EAAG,EAAIrjC,CAAK,CAAC,IAAIqjC,EAAG,GAAKpjC,CAAM,CAAC,GAAG,EAChF+iB,EACFA,EAAK,OAAO+iB,CAAK,EAEjB,KAAK,sBAAqB,EAAG,OAAOA,CAAK,CAE5C,CACD,sBAAsB7c,EAAK,CACzB,MAAM3G,EAAU,KAAK,UAAU2G,EAAI,KAAMA,CAAG,EAC5C,GAAI3G,EAAQ,OAAQ,IACdnhB,EAAM,MAAM,wIAA6I,EAC7J,MACD,CACD,MAAMse,EAAU,KAAK,QACf1f,EAAQuiB,EAAQ,MAChBtiB,EAASsiB,EAAQ,OACjBoH,EAAYjK,EAAQ,UAC1BA,EAAQ,OAAS,OAAO8jB,GAAW,GACnC,MAAMxgB,EAAO,KAAK,WAAW,cAAc,UAAU,EACrDA,EAAK,eAAe,KAAM,KAAMtD,EAAQ,MAAM,EAC9C,MAAMhtB,EAAO,KAAK,WAAW,cAAc,UAAU,EACrDA,EAAK,eAAe,KAAM,IAAK,GAAG,EAClCA,EAAK,eAAe,KAAM,IAAK,GAAG,EAClCA,EAAK,eAAe,KAAM,QAAS2wC,EAAGrjC,CAAK,CAAC,EAC5CtN,EAAK,eAAe,KAAM,SAAU2wC,EAAGpjC,CAAM,CAAC,EAC9CvN,EAAK,eAAe,KAAM,OAAQi3B,CAAS,EAC3Cj3B,EAAK,eAAe,KAAM,OAAQ,QAAQgtB,EAAQ,MAAM,GAAG,EAC3D,KAAK,KAAK,OAAOsD,CAAI,EACrB,KAAK,sBAAqB,EAAG,OAAOtwB,CAAI,EACxC,KAAK,wBAAwB6vB,EAASS,CAAI,CAC3C,CACD,sBAAsByM,EAAQE,EAAM,CAIlC,GAHI,MAAM,QAAQF,CAAM,GAAKA,EAAO,SAAW,GAC7C,KAAK,UAAUA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EAE7EE,EAAM,CACR,MAAM3vB,EAAQ2vB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACxB1vB,EAAS0vB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACzBmW,EAAW,KAAK,WAAW,cAAc,UAAU,EACzDA,EAAS,eAAe,KAAM,IAAKnW,EAAK,CAAC,CAAC,EAC1CmW,EAAS,eAAe,KAAM,IAAKnW,EAAK,CAAC,CAAC,EAC1CmW,EAAS,eAAe,KAAM,QAASzC,EAAGrjC,CAAK,CAAC,EAChD8lC,EAAS,eAAe,KAAM,SAAUzC,EAAGpjC,CAAM,CAAC,EAClD,KAAK,QAAQ,QAAU6lC,EACvB,KAAK,KAAK,SAAS,EACnB,KAAK,QAAO,CACb,CACF,CACD,qBAAsB,CAAE,CACxB,YAAYrrC,EAAU,CACpB,MAAMiQ,EAAM,KAAK,WAAW,OAAOjQ,EAAS,MAAOA,EAAS,MAAM,EAC5DurC,EAAc,KAAK,WAAW,cAAc,UAAU,EAC5Dt7B,EAAI,OAAOs7B,CAAW,EACtB,KAAK,KAAOA,EACZ,MAAMC,EAAY,KAAK,WAAW,cAAc,OAAO,EACvD,OAAAA,EAAU,eAAe,KAAM,YAAa3C,EAAG7oC,EAAS,SAAS,CAAC,EAClEiQ,EAAI,OAAOu7B,CAAS,EACpB,KAAK,IAAMA,EACJv7B,CACR,CACD,kBAAmB,CACjB,GAAI,CAAC,KAAK,QAAQ,UAAW,CAC3B,MAAMw7B,EAAY,KAAK,WAAW,cAAc,OAAO,EACvDA,EAAU,eAAe,KAAM,YAAa,KAAK,QAAQ,aAAa,EACtE,KAAK,IAAI,OAAOA,CAAS,EACzB,KAAK,QAAQ,UAAYA,CAC1B,CACD,OAAO,KAAK,QAAQ,SACrB,CACD,uBAAwB,CACtB,OAAK,KAAK,OACR,KAAK,KAAO,KAAK,WAAW,cAAc,OAAO,EACjD,KAAK,KAAK,eAAe,KAAM,YAAa5C,EAAG,KAAK,eAAe,CAAC,EAChE,KAAK,QAAQ,cACf,KAAK,iBAAkB,EAAC,OAAO,KAAK,IAAI,EAExC,KAAK,IAAI,OAAO,KAAK,IAAI,GAGtB,KAAK,IACb,CACF,CACDn4C,EAAQ,YAAcu4C,CAEf,EAEA,CAACx4C,EAAyBC,IAAY,CAI7C,OAAO,eAAeA,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,QAAU,OAClB,MAAMg7C,CAAQ,CACZ,OAAO,YAAYnqC,EAAK,CACtB,MAAM2nC,EAAQ,CAAA,EACR1B,EAAS,CACb,MAAA0B,EACA,OAAQ,OAAO,OAAO,IAAI,CAChC,EACI,SAASyC,GAAKC,EAAM,OAClB,GAAI,CAACA,EACH,OAEF,IAAI/1C,EAAM,KACV,MAAMlB,EAAOi3C,EAAK,KAClB,GAAIj3C,IAAS,QACXkB,EAAM+1C,EAAK,cACDF,EAAQ,gBAAgB/2C,CAAI,GAE7B0B,EAAAu1C,GAAA,YAAAA,EAAM,aAAN,MAAAv1C,EAAkB,YAC3BR,EAAM+1C,EAAK,WAAW,YACbA,EAAK,QACd/1C,EAAM+1C,EAAK,WAJX,QAWF,GALI/1C,IAAQ,MACVqzC,EAAM,KAAK,CACT,IAAArzC,CACV,CAAS,EAEC,EAAC+1C,EAAK,SAGV,UAAWC,KAASD,EAAK,SACvBD,GAAKE,CAAK,CAEb,CACD,OAAAF,GAAKpqC,CAAG,EACDimC,CACR,CACD,OAAO,gBAAgB7yC,EAAM,CAC3B,MAAO,EAAEA,IAAS,YAAcA,IAAS,SAAWA,IAAS,UAAYA,IAAS,SACnF,CACF,CACDjE,EAAQ,QAAUg7C,CAEX,EAEA,CAACj7C,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,oBAAsB,OAC9BA,EAAQ,gBAAkBo7C,EAC1Bp7C,EAAQ,gBAAkBq7C,EAC1B,IAAIplC,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EAC1C,MAAMslC,EAA0B,IAC1BC,EAAoB,GACpBC,GAAsB,GACtBC,EAAc,IAAI,IACxB,SAASC,EAAO97B,EAAMnU,EAA4B,CAChD,IAAI+T,EACJ,GAAI/T,GAA8BwK,EAAM,YAAY,2BAClDuJ,EAAM,IAAI,gBAAgBI,EAAMA,CAAI,EAAE,WAAW,KAAM,CACrD,MAAO,EACb,CAAK,MACI,CACL,MAAM0N,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAQA,EAAO,OAAS1N,EAC/BJ,EAAM8N,EAAO,WAAW,KAAM,CAC5B,MAAO,EACb,CAAK,CACF,CACD,OAAO9N,CACR,CACD,SAASm8B,EAAUC,EAAYnwC,EAA4B,CACzD,MAAMowC,EAAeJ,EAAY,IAAIG,CAAU,EAC/C,GAAIC,EACF,OAAOA,EAET,MAAMr8B,EAAMk8B,EAAOH,EAAmB9vC,CAA0B,EAChE+T,EAAI,KAAO,GAAG+7B,CAAiB,MAAMK,CAAU,GAC/C,MAAME,EAAUt8B,EAAI,YAAY,EAAE,EAClC,IAAIu8B,EAASD,EAAQ,sBACjBE,EAAU,KAAK,IAAIF,EAAQ,sBAAsB,EACrD,GAAIC,EAAQ,CACV,MAAME,EAAQF,GAAUA,EAASC,GACjC,OAAAP,EAAY,IAAIG,EAAYK,CAAK,EACjCz8B,EAAI,OAAO,MAAQA,EAAI,OAAO,OAAS,EAChCy8B,CACR,CACDz8B,EAAI,YAAc,MAClBA,EAAI,UAAU,EAAG,EAAG+7B,EAAmBA,CAAiB,EACxD/7B,EAAI,WAAW,IAAK,EAAG,CAAC,EACxB,IAAI08B,EAAS18B,EAAI,aAAa,EAAG,EAAG+7B,EAAmBA,CAAiB,EAAE,KAC1ES,EAAU,EACV,QAASh3C,EAAIk3C,EAAO,OAAS,EAAI,EAAGl3C,GAAK,EAAGA,GAAK,EAC/C,GAAIk3C,EAAOl3C,CAAC,EAAI,EAAG,CACjBg3C,EAAU,KAAK,KAAKh3C,EAAI,EAAIu2C,CAAiB,EAC7C,KACD,CAEH/7B,EAAI,UAAU,EAAG,EAAG+7B,EAAmBA,CAAiB,EACxD/7B,EAAI,WAAW,IAAK,EAAG+7B,CAAiB,EACxCW,EAAS18B,EAAI,aAAa,EAAG,EAAG+7B,EAAmBA,CAAiB,EAAE,KACtEQ,EAAS,EACT,QAAS/2C,EAAI,EAAGqE,EAAK6yC,EAAO,OAAQl3C,EAAIqE,EAAIrE,GAAK,EAC/C,GAAIk3C,EAAOl3C,CAAC,EAAI,EAAG,CACjB+2C,EAASR,EAAoB,KAAK,MAAMv2C,EAAI,EAAIu2C,CAAiB,EACjE,KACD,CAGH,GADA/7B,EAAI,OAAO,MAAQA,EAAI,OAAO,OAAS,EACnCu8B,EAAQ,CACV,MAAME,EAAQF,GAAUA,EAASC,GACjC,OAAAP,EAAY,IAAIG,EAAYK,CAAK,EAC1BA,CACR,CACD,OAAAR,EAAY,IAAIG,EAAYJ,EAAmB,EACxCA,EACR,CACD,SAASW,EAAW1xC,EAAM2xC,EAAMC,EAAQ,CACtC,MAAMC,EAAU,SAAS,cAAc,MAAM,EACvCC,EAAoB,CACxB,MAAO,EACP,YAAa,EACb,QAASH,EAAK,MAAQ,GACtB,OAAQA,EAAK,OACb,SAAU,CACd,EACE3xC,EAAK,UAAU,KAAK6xC,CAAO,EAC3B,MAAMviC,EAAK9D,EAAM,KAAK,UAAUxL,EAAK,WAAY2xC,EAAK,SAAS,EAC/D,IAAI1gC,EAAQ,KAAK,MAAM3B,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,EACnC,MAAMR,EAAQ8iC,EAAOD,EAAK,QAAQ,EAC9B7iC,EAAM,WACRmC,GAAS,KAAK,GAAK,GAErB,MAAM8gC,EAAa,KAAK,MAAMziC,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,EACpC0iC,EAAaD,EAAab,EAAUpiC,EAAM,WAAY9O,EAAK,2BAA2B,EAC5F,IAAIiyC,EAAMC,EACNjhC,IAAU,GACZghC,EAAO3iC,EAAG,CAAC,EACX4iC,EAAM5iC,EAAG,CAAC,EAAI0iC,IAEdC,EAAO3iC,EAAG,CAAC,EAAI0iC,EAAa,KAAK,IAAI/gC,CAAK,EAC1CihC,EAAM5iC,EAAG,CAAC,EAAI0iC,EAAa,KAAK,IAAI/gC,CAAK,GAE3C,MAAMkhC,EAAiB,4BACjBC,EAAWP,EAAQ,MACrB7xC,EAAK,aAAeA,EAAK,gBAC3BoyC,EAAS,KAAO,IAAI,IAAMH,EAAOjyC,EAAK,YAAY,QAAQ,CAAC,CAAC,IAC5DoyC,EAAS,IAAM,IAAI,IAAMF,EAAMlyC,EAAK,aAAa,QAAQ,CAAC,CAAC,MAE3DoyC,EAAS,KAAO,GAAGD,CAAc,GAAGF,EAAK,QAAQ,CAAC,CAAC,MACnDG,EAAS,IAAM,GAAGD,CAAc,GAAGD,EAAI,QAAQ,CAAC,CAAC,OAEnDE,EAAS,SAAW,GAAGD,CAAc,GAAGJ,EAAW,QAAQ,CAAC,CAAC,MAC7DK,EAAS,WAAatjC,EAAM,WAC5BgjC,EAAkB,SAAWC,EAC7BF,EAAQ,aAAa,OAAQ,cAAc,EAC3CA,EAAQ,YAAcF,EAAK,IAC3BE,EAAQ,IAAMF,EAAK,IACf3xC,EAAK,wBACP6xC,EAAQ,QAAQ,SAAWF,EAAK,UAE9B1gC,IAAU,IACZ6gC,EAAkB,MAAQ7gC,GAAS,IAAM,KAAK,KAEhD,IAAIohC,EAAkB,GACtB,GAAIV,EAAK,IAAI,OAAS,EACpBU,EAAkB,WACTV,EAAK,MAAQ,KAAOA,EAAK,UAAU,CAAC,IAAMA,EAAK,UAAU,CAAC,EAAG,CACtE,MAAMW,GAAY,KAAK,IAAIX,EAAK,UAAU,CAAC,CAAC,EAC1CY,GAAY,KAAK,IAAIZ,EAAK,UAAU,CAAC,CAAC,EACpCW,KAAcC,IAAa,KAAK,IAAID,GAAWC,EAAS,EAAI,KAAK,IAAID,GAAWC,EAAS,EAAI,MAC/FF,EAAkB,GAErB,CACGA,IACFP,EAAkB,YAAchjC,EAAM,SAAW6iC,EAAK,OAASA,EAAK,OAEtE3xC,EAAK,mBAAmB,IAAI6xC,EAASC,CAAiB,EAClD9xC,EAAK,mBACPA,EAAK,YAAY6xC,CAAO,CAE3B,CACD,SAASW,EAAOlwC,EAAQ,CACtB,KAAM,CACJ,IAAA8O,EACA,MAAA/M,EACA,WAAAmrB,EACA,IAAAza,EACA,aAAA09B,EACA,eAAAC,CACD,EAAGpwC,EACE,CACJ,MAAAwM,CACD,EAAGsC,EACJ,IAAI3V,EAAY,GAChB,GAAI+zB,EAAW,cAAgB,GAAKA,EAAW,QAAS,CACtD,KAAM,CACJ,WAAA2hB,CACD,EAAGriC,EACE,CACJ,YAAAyrB,EACA,SAAAxD,CACD,EAAGvH,GACAijB,IAAiB1b,GAAY2b,IAAmBvB,KAClDp8B,EAAI,KAAO,GAAGgiB,EAAW1yB,CAAK,MAAM8sC,CAAU,GAC9C7uC,EAAO,aAAey0B,EACtBz0B,EAAO,eAAiB6uC,GAE1B,KAAM,CACJ,MAAA/mC,CACD,EAAG2K,EAAI,YAAY3D,EAAI,WAAW,EAC/BhH,EAAQ,IACV3O,EAAY,UAAU8+B,EAAcl2B,EAAQ+F,CAAK,IAEpD,CACGolB,EAAW,QAAU,IACvB/zB,EAAY,UAAU+zB,EAAW,KAAK,QAAQ/zB,CAAS,IAErDA,EAAU,OAAS,IACrBqT,EAAM,UAAYrT,EAErB,CACD,SAASk3C,EAAO3yC,EAAM,CACpB,GAAIA,EAAK,UACP,OAEF,MAAM4yC,EAAW5yC,EAAK,UAChB2iC,EAAa3iC,EAAK,YAExB,GADuB4yC,EAAS,OACX/B,EAAyB,CAC5ClO,EAAW,QAAO,EAClB,MACD,CACD,GAAI,CAAC3iC,EAAK,kBACR,UAAW6xC,KAAWe,EACpB5yC,EAAK,YAAY6xC,CAAO,EAG5BlP,EAAW,QAAO,CACnB,CACD,MAAMkQ,CAAoB,CACxB,YAAY,CACV,kBAAAC,EACA,UAAAp7B,EACA,SAAA7S,EACA,SAAA+tC,EACA,kBAAAd,EACA,oBAAAiB,EACA,2BAAA/xC,CACJ,EAAK,OACD,KAAK,mBAAqB8xC,EAC1B,KAAK,kBAAoBA,aAA6B,eACtD,KAAK,WAAa,KAAK,eAAiBp7B,EACxC,KAAK,UAAYk7B,GAAY,GAC7B,KAAK,qBAAuBG,GAAuB,GACnD,KAAK,4BAA8B/xC,EACnC,KAAK,sBAAwB,CAAC,GAAC9F,EAAA,WAAW,gBAAX,MAAAA,EAA0B,SACzD,KAAK,QAAU,KACf,KAAK,mBAAqB42C,GAAqB,IAAI,QACnD,KAAK,UAAY,GACjB,KAAK,YAAc,IAAItmC,EAAM,kBAC7B,KAAK,kBAAoB,CACvB,aAAc,KACd,eAAgB,KAChB,IAAK,KACL,MAAO3G,EAAS,OAAS,WAAW,kBAAoB,GACxD,WAAY,KACZ,IAAKosC,EAAO,EAAGjwC,CAA0B,CAC/C,EACI,KAAM,CACJ,UAAAsN,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,CACN,EAAQ5J,EAAS,QACb,KAAK,WAAa,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC2J,EAAOC,EAAQF,CAAU,EAC1D,KAAK,WAAaD,EAClB,KAAK,YAAcC,KACf1B,EAAe,oBAAoB6K,EAAW7S,CAAQ,EAC1D,KAAK,YAAY,QAAQ,QAAQ,IAAM,CACrC,KAAK,kBAAoB,IAC/B,CAAK,EAAE,MAAM,IAAM,CAAA,CAAE,CAClB,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,YAAY,OACzB,CACD,QAAS,CACP,KAAK,UAAY,GACb,KAAK,UACP,KAAK,QAAQ,OAAO,IAAI2G,EAAM,eAAe,2BAA2B,CAAC,EAAE,MAAM,IAAM,CAAA,CAAE,EACzF,KAAK,QAAU,MAEjB,KAAK,YAAY,OAAO,IAAIA,EAAM,eAAe,2BAA2B,CAAC,CAC9E,CACD,cAAcuiC,EAAOiF,EAAY,CAC/B,UAAW9jC,KAAQ6+B,EAAO,CACxB,GAAI7+B,EAAK,MAAQ,OAAW,CAC1B,GAAIA,EAAK,OAAS,2BAA6BA,EAAK,OAAS,qBAAsB,CACjF,MAAMzC,EAAS,KAAK,WACpB,KAAK,WAAa,SAAS,cAAc,MAAM,EAC/C,KAAK,WAAW,UAAU,IAAI,eAAe,EACzCyC,EAAK,KAAO,MACd,KAAK,WAAW,aAAa,KAAM,GAAGA,EAAK,EAAE,EAAE,EAEjDzC,EAAO,OAAO,KAAK,UAAU,CACvC,MAAmByC,EAAK,OAAS,qBACvB,KAAK,WAAa,KAAK,WAAW,YAEpC,QACD,CACD,KAAK,qBAAqB,KAAKA,EAAK,GAAG,EACvCwiC,EAAW,KAAMxiC,EAAM8jC,CAAU,CAClC,CACF,CACD,YAAYnB,EAAS,CACnB,MAAMC,EAAoB,KAAK,kBAAkB,WAAa,KAAK,mBAAmB,IAAID,CAAO,EAMjG,GALA,KAAK,kBAAkB,IAAMA,EAC7BW,EAAO,KAAK,iBAAiB,EACzBV,EAAkB,SACpB,KAAK,WAAW,OAAOD,CAAO,EAE5BC,EAAkB,OAAQ,CAC5B,MAAMmB,EAAK,SAAS,cAAc,IAAI,EACtCA,EAAG,aAAa,OAAQ,cAAc,EACtC,KAAK,WAAW,OAAOA,CAAE,CAC1B,CACF,CACD,SAAU,CACR,MAAMtQ,EAAa,IAAIn3B,EAAM,kBAC7B,IAAIwnC,EAAa,OAAO,OAAO,IAAI,EACnC,GAAI,KAAK,kBAAmB,CAC1B,MAAM1sC,EAAO,IAAM,CACjB,KAAK,QAAQ,KAAM,EAAC,KAAK,CAAC,CACxB,MAAAlN,EACA,KAAAoN,CACV,IAAc,CACJ,GAAIA,EAAM,CACRm8B,EAAW,QAAO,EAClB,MACD,CACD,OAAO,OAAOqQ,EAAY55C,EAAM,MAAM,EACtC,KAAK,cAAcA,EAAM,MAAO45C,CAAU,EAC1C1sC,GACV,EAAWq8B,EAAW,MAAM,CAC5B,EACM,KAAK,QAAU,KAAK,mBAAmB,UAAS,EAChDr8B,GACN,SAAe,KAAK,mBAAoB,CAClC,KAAM,CACJ,MAAAynC,EACA,OAAA6D,CACR,EAAU,KAAK,mBACT,KAAK,cAAc7D,EAAO6D,CAAM,EAChCjP,EAAW,QAAO,CACxB,KACM,OAAM,IAAI,MAAM,6CAA6C,EAE/DA,EAAW,QAAQ,KAAK,IAAM,CAC5BqQ,EAAa,KACbL,EAAO,IAAI,CACjB,EAAO,KAAK,YAAY,MAAM,CAC3B,CACF,CACDp9C,EAAQ,oBAAsBs9C,EAC9B,SAASlC,EAAgBruC,EAAQ,CAC3B,CAACA,EAAO,oBAAsBA,EAAO,aAAeA,EAAO,wBACzDuK,EAAe,YAAY,yIAA8I,EAC7KvK,EAAO,kBAAoBA,EAAO,aAAeA,EAAO,mBAE1D,KAAM,CACJ,UAAAoV,EACA,SAAA7S,CACD,EAAGvC,EACEwM,EAAQ,iBAAiB4I,CAAS,EAClCw7B,EAAapkC,EAAM,iBAAiB,YAAY,EAChDqkC,EAAc,WAAWrkC,EAAM,iBAAiB,gBAAgB,CAAC,EACnEokC,IAAe,YAAc,CAACC,GAAe,KAAK,IAAIA,EAActuC,EAAS,KAAK,EAAI,OACxF,QAAQ,MAAM,yJAAmK,EAEnL,MAAM7E,EAAO,IAAI6yC,EAAoBvwC,CAAM,EAC3C,OAAAtC,EAAK,QAAO,EACLA,CACR,CACD,SAAS4wC,EAAgB,CACvB,UAAAl5B,EACA,SAAA7S,EACA,SAAA+tC,EACA,kBAAAd,EACA,2BAAA9wC,EACA,WAAAilB,EAAa,GACb,YAAAmtB,EAAc,EAChB,EAAG,CAMD,GALIntB,MACEpZ,EAAe,oBAAoB6K,EAAW,CAChD,SAAU7S,EAAS,QACzB,CAAK,EAECuuC,EAAa,CACf,MAAMr+B,EAAMk8B,EAAO,EAAGjwC,CAA0B,EAE1CsB,EAAS,CACb,aAAc,KACd,eAAgB,KAChB,IAAK,KACL,MALYuC,EAAS,OAAS,WAAW,kBAAoB,GAM7D,WAAY,KACZ,IAAAkQ,CACN,EACI,UAAW3D,KAAOwhC,EAChBtwC,EAAO,WAAawvC,EAAkB,IAAI1gC,CAAG,EAC7C9O,EAAO,IAAM8O,EACbohC,EAAOlwC,CAAM,CAEhB,CACF,CAEM,EAEA,CAAChN,EAAyBC,EAASgW,IAAwB,6CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,sBAAwB,OAChC,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BE,EAAUF,EAAoB,CAAC,EAC/B8nC,EAAY9nC,EAAoB,EAAE,EAClC+nC,EAAO/nC,EAAoB,EAAE,EAC7BsB,GAAiBtB,EAAoB,CAAC,EACtCgoC,EAAShoC,EAAoB,EAAE,EACnC,MAAMioC,EAAN,MAAMA,CAAsB,CAY1B,YAAY,CACV,UAAA3iC,EACA,UAAA9M,EACA,IAAAqN,GACA,qBAAAqiC,GACA,gBAAAC,EACA,SAAA7uC,GACA,KAAAgK,EACJ,EAAK,CAqPH3P,EAAA,KAAAy0C,GA2CAz0C,EAAA,KAAA00C,GAeA10C,EAAA,KAAA20C,GAmGA30C,EAAA,KAAA40C,GAraA50C,EAAA,KAAA60C,EAAA,QACA70C,EAAA,KAAA80C,EAAc,IACd90C,EAAA,KAAA+0C,EAAmB,MACnB/0C,EAAA,KAAAg1C,EAAkB,KAAK,UAAU,KAAK,IAAI,GAC1Ch1C,EAAA,KAAAi1C,EAAoB,KAAK,YAAY,KAAK,IAAI,GAC9Cj1C,EAAA,KAAAk1C,EAAW,IAAI,KACfl1C,EAAA,KAAAm1C,EAAkB,IAClBn1C,EAAA,KAAAo1C,EAAgB,IAChBp1C,EAAA,KAAAq1C,EAAe,IACfr1C,EAAA,KAAAs1C,EAAA,QAWE,MAAMC,GAAc,CAACpB,EAAU,eAAgBC,EAAK,UAAWC,EAAO,WAAW,EACjF,GAAI,CAACC,EAAsB,aAAc,CACvCA,EAAsB,aAAe,GACrC,UAAWx3B,MAAcy4B,GACvBz4B,GAAW,WAAWnN,EAAI,CAE7B,CACDgC,EAAU,oBAAoB4jC,EAAW,EACzCl1C,GAAA,KAAKi1C,EAAa3jC,GAClB,KAAK,UAAY9M,EACjB,KAAK,IAAMqN,GACX7R,GAAA,KAAKw0C,EAAwBN,IAC7Bl0C,GAAA,KAAK00C,EAAmBP,GACxB,KAAK,SAAW7uC,GAChBpF,EAAA,KAAK+0C,GAAW,SAAS,IAAI,CAC9B,CACD,IAAI,SAAU,CACZ,OAAO/0C,EAAA,KAAK20C,GAAS,OAAS,CAC/B,CACD,cAAcz3B,EAAM,CAClBld,EAAA,KAAK+0C,GAAW,cAAc73B,CAAI,CACnC,CACD,WAAWA,EAAOld,EAAA,KAAK+0C,GAAW,QAAO,EAAI,CAC3CpvC,EAAA,KAAK0uC,EAAAY,IAAL,WACI/3B,IAASnR,EAAM,qBAAqB,KACtC,KAAK,qBAAqB,EAAK,EAC/B,KAAK,aAAY,GAEjB,KAAK,YAAW,EAEdmR,IAASnR,EAAM,qBAAqB,OACtC,KAAK,IAAI,UAAU,OAAO,kBAAmBmR,IAASnR,EAAM,qBAAqB,QAAQ,EACzF,KAAK,IAAI,UAAU,OAAO,aAAcmR,IAASnR,EAAM,qBAAqB,GAAG,EAC/E,KAAK,IAAI,UAAU,OAAO,eAAgBmR,IAASnR,EAAM,qBAAqB,KAAK,EACnF,KAAK,IAAI,OAAS,GAErB,CACD,qBAAqBmpC,EAAc,CACjC,GAAI,CAACA,GAAgBl1C,EAAA,KAAK+0C,GAAW,QAAO,IAAOhpC,EAAM,qBAAqB,IAC5E,OAEF,GAAI,CAACmpC,GACH,UAAWjmC,MAAUjP,EAAA,KAAK20C,GAAS,OAAM,EACvC,GAAI1lC,GAAO,UAAW,CACpBA,GAAO,gBAAe,EACtB,MACD,EAGUtJ,EAAA,KAAKwuC,EAAAgB,IAAL,UAA4B,CACzC,QAAS,EACT,QAAS,CACV,EAAE,IACI,gBAAe,CACvB,CACD,gBAAgBv4B,EAAW,CACzB5c,EAAA,KAAK+0C,GAAW,gBAAgBn4B,CAAS,CAC1C,CACD,YAAY/Z,EAAQ,CAClB7C,EAAA,KAAK+0C,GAAW,YAAYlyC,CAAM,CACnC,CACD,QAAS,CACP,KAAK,IAAI,MAAM,cAAgB,OAC/B,MAAMuyC,EAAuB,IAAI,IACjC,UAAWnmC,MAAUjP,EAAA,KAAK20C,GAAS,OAAM,EACvC1lC,GAAO,cAAa,EAChBA,GAAO,qBACTmmC,EAAqB,IAAInmC,GAAO,mBAAmB,EAGvD,GAAI,CAACjP,EAAA,KAAKw0C,GACR,OAEF,MAAMa,EAAYr1C,EAAA,KAAKw0C,GAAiB,uBAAsB,EAC9D,UAAWc,MAAYD,EAAW,CAKhC,GAJAC,GAAS,KAAI,EACTt1C,EAAA,KAAK+0C,GAAW,2BAA2BO,GAAS,KAAK,EAAE,GAG3DF,EAAqB,IAAIE,GAAS,KAAK,EAAE,EAC3C,SAEF,MAAMrmC,GAAS,KAAK,YAAYqmC,EAAQ,EACnCrmC,KAGL,KAAK,aAAaA,EAAM,EACxBA,GAAO,cAAa,EACrB,CACF,CACD,SAAU,OACRnP,GAAA,KAAKg1C,EAAe,IACpB,KAAK,IAAI,MAAM,cAAgB,OAC/B,MAAMS,EAAsB,IAAI,IAChC,UAAWtmC,MAAUjP,EAAA,KAAK20C,GAAS,OAAM,EAAI,CAE3C,GADA1lC,GAAO,eAAc,EACjB,CAACA,GAAO,qBAAuBA,GAAO,UAAS,IAAO,KAAM,CAC9DsmC,EAAoB,IAAItmC,GAAO,mBAAmB,EAClD,QACD,EACDxT,EAAA,KAAK,sBAAsBwT,GAAO,mBAAmB,IAArD,MAAAxT,EAAwD,OACxDwT,GAAO,OAAM,CACd,CACD,GAAIjP,EAAA,KAAKw0C,GAAkB,CACzB,MAAMa,GAAYr1C,EAAA,KAAKw0C,GAAiB,uBAAsB,EAC9D,UAAWc,MAAYD,GAAW,CAChC,KAAM,CACJ,GAAAjxC,CACV,EAAYkxC,GAAS,KACTC,EAAoB,IAAInxC,CAAE,GAAKpE,EAAA,KAAK+0C,GAAW,2BAA2B3wC,CAAE,GAGhFkxC,GAAS,KAAI,CACd,CACF,CACD3vC,EAAA,KAAK0uC,EAAAY,IAAL,WACI,KAAK,UACP,KAAK,IAAI,OAAS,IAEpBn1C,GAAA,KAAKg1C,EAAe,GACrB,CACD,sBAAsB1wC,EAAI,OACxB,QAAO3I,EAAAuE,EAAA,KAAKw0C,KAAL,YAAA/4C,EAAuB,sBAAsB2I,KAAO,IAC5D,CACD,gBAAgB6K,EAAQ,CACAjP,EAAA,KAAK+0C,GAAW,UAAS,IACzB9lC,GAGtBjP,EAAA,KAAK+0C,GAAW,gBAAgB9lC,CAAM,CACvC,CACD,aAAc,CACZ,KAAK,IAAI,iBAAiB,cAAejP,EAAA,KAAK00C,EAAiB,EAC/D,KAAK,IAAI,iBAAiB,YAAa10C,EAAA,KAAKy0C,EAAe,CAC5D,CACD,cAAe,CACb,KAAK,IAAI,oBAAoB,cAAez0C,EAAA,KAAK00C,EAAiB,EAClE,KAAK,IAAI,oBAAoB,YAAa10C,EAAA,KAAKy0C,EAAe,CAC/D,CACD,OAAOxlC,EAAQ,CACbjP,EAAA,KAAK20C,GAAS,IAAI1lC,EAAO,GAAIA,CAAM,EACnC,KAAM,CACJ,oBAAAsO,CACD,EAAGtO,EACAsO,GAAuBvd,EAAA,KAAK+0C,GAAW,2BAA2Bx3B,CAAmB,GACvFvd,EAAA,KAAK+0C,GAAW,+BAA+B9lC,CAAM,CAExD,CACD,OAAOA,EAAQ,OACbjP,EAAA,KAAK20C,GAAS,OAAO1lC,EAAO,EAAE,GAC9BxT,EAAAuE,EAAA,KAAKs0C,KAAL,MAAA74C,EAA4B,yBAAyBwT,EAAO,YACxD,CAACjP,EAAA,KAAK80C,IAAgB7lC,EAAO,qBAC/BjP,EAAA,KAAK+0C,GAAW,4BAA4B9lC,CAAM,CAErD,CACD,OAAOA,EAAQ,CACb,KAAK,OAAOA,CAAM,EAClBjP,EAAA,KAAK+0C,GAAW,aAAa9lC,CAAM,EAC/BA,EAAO,IAAI,SAAS,SAAS,aAAa,GAC5C,WAAW,IAAM,CACfjP,EAAA,KAAK+0C,GAAW,oBACjB,EAAE,CAAC,EAEN9lC,EAAO,IAAI,SACXA,EAAO,gBAAkB,GACpBjP,EAAA,KAAK60C,IACR,KAAK,qBAAqB,EAAK,CAElC,CACD,aAAa5lC,EAAQ,OACfA,EAAO,SAAW,OAGlBA,EAAO,sBACTjP,EAAA,KAAK+0C,GAAW,4BAA4B9lC,EAAO,mBAAmB,EACtEjD,EAAQ,iBAAiB,wBAAwBiD,CAAM,EACvDA,EAAO,oBAAsB,MAE/B,KAAK,OAAOA,CAAM,GAClBxT,EAAAwT,EAAO,SAAP,MAAAxT,EAAe,OAAOwT,GACtBA,EAAO,UAAU,IAAI,EACjBA,EAAO,KAAOA,EAAO,kBACvBA,EAAO,IAAI,SACX,KAAK,IAAI,OAAOA,EAAO,GAAG,GAE7B,CACD,IAAIA,EAAQ,CAIV,GAHA,KAAK,aAAaA,CAAM,EACxBjP,EAAA,KAAK+0C,GAAW,UAAU9lC,CAAM,EAChC,KAAK,OAAOA,CAAM,EACd,CAACA,EAAO,gBAAiB,CAC3B,MAAM0C,EAAM1C,EAAO,SACnB,KAAK,IAAI,OAAO0C,CAAG,EACnB1C,EAAO,gBAAkB,EAC1B,CACDA,EAAO,kBAAiB,EACxBA,EAAO,UAAS,EAChBjP,EAAA,KAAK+0C,GAAW,uBAAuB9lC,CAAM,CAC9C,CACD,gBAAgBA,EAAQ,QACtB,GAAI,CAACA,EAAO,gBACV,OAEF,KAAM,CACJ,cAAAsM,CACD,EAAG,SACAtM,EAAO,IAAI,SAASsM,CAAa,IACnCtM,EAAO,oBAAsB,GAC7B,WAAW,IAAM,CACVA,EAAO,IAAI,SAAS,SAAS,aAAa,EAQ7CA,EAAO,oBAAsB,IAP7BA,EAAO,IAAI,iBAAiB,UAAW,IAAM,CAC3CA,EAAO,oBAAsB,EACzC,EAAa,CACD,KAAM,EAClB,CAAW,EACDsM,EAAc,MAAK,EAItB,EAAE,CAAC,GAENtM,EAAO,qBAAsBxT,GAAAuE,EAAA,KAAKs0C,KAAL,YAAA74C,GAA4B,iBAAiB,KAAK,IAAKwT,EAAO,IAAKA,EAAO,WAAY,GACpH,CACD,aAAaA,EAAQ,CACfA,EAAO,mBACTA,EAAO,QAAO,EAEd,KAAK,IAAIA,CAAM,CAElB,CACD,kBAAkBA,EAAQ,CACxB,MAAMwH,EAAM,IAAMxH,EAAO,WAAW,QAAQA,CAAM,EAC5CyH,GAAO,IAAM,CACjBzH,EAAO,OAAM,CACnB,EACI,KAAK,YAAY,CACf,IAAAwH,EACA,KAAAC,GACA,SAAU,EAChB,CAAK,CACF,CACD,WAAY,CACV,OAAO1W,EAAA,KAAK+0C,GAAW,OACxB,CAYD,YAAY73B,EAAMra,EAAQ,CACxB7C,EAAA,KAAK+0C,GAAW,cAAc73B,CAAI,EAClCld,EAAA,KAAK+0C,GAAW,WAAW73B,CAAI,EAC/B,KAAM,CACJ,QAAApY,GACA,QAAAC,EACN,EAAQY,EAAA,KAAKyuC,EAAAoB,IAAL,WACEpxC,EAAK,KAAK,YACV6K,GAAStJ,EAAA,KAAKuuC,EAAAuB,IAAL,UAAsB,CACnC,OAAQ,KACR,GAAArxC,EACA,EAAGU,GACH,EAAGC,GACH,UAAW/E,EAAA,KAAK+0C,GAChB,WAAY,GACZ,GAAGlyC,CACT,GACQoM,IACF,KAAK,IAAIA,EAAM,CAElB,CACD,YAAYpP,EAAM,CAChB,OAAQA,EAAK,gBAAkBA,EAAK,qBAAoB,CACtD,KAAKkM,EAAM,qBAAqB,SAC9B,OAAO6nC,EAAU,eAAe,YAAY/zC,EAAM,KAAMG,EAAA,KAAK+0C,EAAU,EACzE,KAAKhpC,EAAM,qBAAqB,IAC9B,OAAO8nC,EAAK,UAAU,YAAYh0C,EAAM,KAAMG,EAAA,KAAK+0C,EAAU,EAC/D,KAAKhpC,EAAM,qBAAqB,MAC9B,OAAO+nC,EAAO,YAAY,YAAYj0C,EAAM,KAAMG,EAAA,KAAK+0C,EAAU,CACpE,CACD,OAAO,IACR,CAmCD,cAAe,CACbpvC,EAAA,KAAKwuC,EAAAgB,IAAL,UAA4BxvC,EAAA,KAAKyuC,EAAAoB,IAAL,WAAwB,GACrD,CACD,YAAYvmC,EAAQ,CAClBjP,EAAA,KAAK+0C,GAAW,YAAY9lC,CAAM,CACnC,CACD,eAAeA,EAAQ,CACrBjP,EAAA,KAAK+0C,GAAW,eAAe9lC,CAAM,CACtC,CACD,WAAWA,EAAQ,CACjB,OAAOjP,EAAA,KAAK+0C,GAAW,WAAW9lC,CAAM,CACzC,CACD,SAASA,EAAQ,CACfjP,EAAA,KAAK+0C,GAAW,SAAS9lC,CAAM,CAChC,CACD,UAAU/G,EAAO,CACf,KAAM,CACJ,MAAA6I,CACN,EAAQhF,EAAM,YAAY,SACtB,GAAI,EAAA7D,EAAM,SAAW,GAAKA,EAAM,SAAW6I,IAGvC7I,EAAM,SAAW,KAAK,KAGrBlI,EAAA,KAAK40C,GAIV,IADA90C,GAAA,KAAK80C,EAAkB,IACnB,CAAC50C,EAAA,KAAKu0C,GAAa,CACrBz0C,GAAA,KAAKy0C,EAAc,IACnB,MACD,CACD,GAAIv0C,EAAA,KAAK+0C,GAAW,QAAS,IAAKhpC,EAAM,qBAAqB,MAAO,CAClE/L,EAAA,KAAK+0C,GAAW,cAChB,MACD,CACDpvC,EAAA,KAAKwuC,EAAAgB,IAAL,UAA4BjtC,EAAO,IACpC,CACD,YAAYA,EAAO,CACjB,GAAIlI,EAAA,KAAK40C,GAAiB,CACxB90C,GAAA,KAAK80C,EAAkB,IACvB,MACD,CACD,KAAM,CACJ,MAAA7jC,CACN,EAAQhF,EAAM,YAAY,SAItB,GAHI7D,EAAM,SAAW,GAAKA,EAAM,SAAW6I,GAGvC7I,EAAM,SAAW,KAAK,IACxB,OAEFpI,GAAA,KAAK80C,EAAkB,IACvB,MAAM3lC,GAASjP,EAAA,KAAK+0C,GAAW,UAAS,EACxCj1C,GAAA,KAAKy0C,EAAc,CAACtlC,IAAUA,GAAO,QAAO,EAC7C,CACD,cAAcA,EAAQU,EAAGC,GAAG,CAC1B,MAAMgM,GAAQ5b,EAAA,KAAK+0C,GAAW,WAAWplC,EAAGC,EAAC,EAC7C,OAAIgM,KAAU,MAAQA,KAAU,KACvB,IAETA,GAAM,aAAa3M,CAAM,EAClB,GACR,CACD,SAAU,WACJxT,EAAAuE,EAAA,KAAK+0C,GAAW,UAAS,IAAzB,YAAAt5C,EAA6B,UAAW,OAC1CuE,EAAA,KAAK+0C,GAAW,iBAChB/0C,EAAA,KAAK+0C,GAAW,gBAAgB,IAAI,GAEtC,UAAW9lC,MAAUjP,EAAA,KAAK20C,GAAS,OAAM,GACvCn5C,EAAAwE,EAAA,KAAKs0C,KAAL,MAAA94C,EAA4B,yBAAyByT,GAAO,YAC5DA,GAAO,UAAU,IAAI,EACrBA,GAAO,gBAAkB,GACzBA,GAAO,IAAI,SAEb,KAAK,IAAM,KACXjP,EAAA,KAAK20C,GAAS,QACd30C,EAAA,KAAK+0C,GAAW,YAAY,IAAI,CACjC,CAUD,OAAO,CACL,SAAA3vC,CACJ,EAAK,CACD,KAAK,SAAWA,KACZgI,GAAe,oBAAoB,KAAK,IAAKhI,CAAQ,EACzD,UAAW6J,KAAUjP,EAAA,KAAK+0C,GAAW,WAAW,KAAK,SAAS,EAC5D,KAAK,IAAI9lC,CAAM,EAEjB,KAAK,WAAU,CAChB,CACD,OAAO,CACL,SAAA7J,CACJ,EAAK,CACDpF,EAAA,KAAK+0C,GAAW,iBAChB,KAAK,SAAW3vC,KACZgI,GAAe,oBAAoB,KAAK,IAAK,CAC/C,SAAUhI,EAAS,QACzB,CAAK,EACD,KAAK,WAAU,CAChB,CACD,IAAI,gBAAiB,CACnB,KAAM,CACJ,UAAAyJ,EACA,WAAAC,CACN,EAAQ,KAAK,SAAS,QAClB,MAAO,CAACD,EAAWC,CAAU,CAC9B,CACF,EAzcCwlC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YA+PAb,EAAA,YAAAuB,GAAgB,SAAC5yC,EAAQ,CACvB,OAAQ7C,EAAA,KAAK+0C,GAAW,QAAS,EAAA,CAC/B,KAAKhpC,EAAM,qBAAqB,SAC9B,OAAO,IAAI6nC,EAAU,eAAe/wC,CAAM,EAC5C,KAAKkJ,EAAM,qBAAqB,IAC9B,OAAO,IAAI8nC,EAAK,UAAUhxC,CAAM,EAClC,KAAKkJ,EAAM,qBAAqB,MAC9B,OAAO,IAAI+nC,EAAO,YAAYjxC,CAAM,CACvC,CACD,OAAO,IACR,EAiCDsxC,EAAA,YAAAgB,GAAsB,SAACjtC,EAAOwtC,EAAY,CACxC,MAAMtxC,GAAK,KAAK,YACV6K,GAAStJ,EAAA,KAAKuuC,EAAAuB,IAAL,UAAsB,CACnC,OAAQ,KACR,GAAArxC,GACA,EAAG8D,EAAM,QACT,EAAGA,EAAM,QACT,UAAWlI,EAAA,KAAK+0C,GAChB,WAAAW,CACN,GACI,OAAIzmC,IACF,KAAK,IAAIA,EAAM,EAEVA,EACR,EACDmlC,EAAA,YAAAoB,GAAe,UAAG,CAChB,KAAM,CACJ,EAAA7lC,EACA,EAAAC,EACA,MAAAjF,GACA,OAAAC,EACN,EAAQ,KAAK,IAAI,wBACP2hB,EAAM,KAAK,IAAI,EAAG5c,CAAC,EACnB8c,GAAM,KAAK,IAAI,EAAG7c,CAAC,EACnB+c,GAAM,KAAK,IAAI,OAAO,WAAYhd,EAAIhF,EAAK,EAC3CkiB,GAAM,KAAK,IAAI,OAAO,YAAajd,EAAIhF,EAAM,EAC7CkZ,IAAWyI,EAAMI,IAAO,EAAIhd,EAC5BoU,GAAW0I,GAAMI,IAAO,EAAIjd,EAC5B,CAAC9K,EAASC,CAAO,EAAI,KAAK,SAAS,SAAW,MAAQ,EAAI,CAAC+e,GAASC,CAAO,EAAI,CAACA,EAASD,EAAO,EACtG,MAAO,CACL,QAAAhf,EACA,QAAAC,CACN,CACG,EAiFDsvC,EAAA,YAAAY,GAAQ,UAAG,CACTn1C,GAAA,KAAK+0C,EAAgB,IACrB,UAAW5lC,KAAUjP,EAAA,KAAK20C,GAAS,OAAM,EACnC1lC,EAAO,WACTA,EAAO,OAAM,EAGjBnP,GAAA,KAAK+0C,EAAgB,GACtB,EA9aGd,EAWG,aAAe,GAXxB,IAAM4B,EAAN5B,EA2cAj+C,EAAQ,sBAAwB6/C,CAEzB,EAEA,CAAC9/C,EAAyBC,EAASgW,IAAwB,0DAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,eAAiB,OACzB,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BqB,EAASrB,EAAoB,CAAC,EAC9BE,EAAUF,EAAoB,CAAC,EAC/B8pC,EAAoB9pC,EAAoB,EAAE,EAC9C,MAAM+pC,EAAN,MAAMA,UAAuB7pC,EAAQ,gBAAiB,CAgDpD,YAAYnJ,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,gBACZ,CAAK,EAqCHpD,EAAA,KAAAq2C,GAqBAr2C,EAAA,KAAAs2C,GAsGAt2C,EAAA,KAAAu2C,GAWAv2C,EAAA,KAAAw2C,GAsKAx2C,EAAA,KAAAy2C,GA4FAz2C,EAAA,KAAA02C,GAUA12C,EAAA,KAAA22C,GA1eA32C,EAAA,KAAA42C,EAAsB,KAAK,cAAc,KAAK,IAAI,GAClD52C,EAAA,KAAA62C,EAAuB,KAAK,eAAe,KAAK,IAAI,GACpD72C,EAAA,KAAA82C,EAAuB,KAAK,eAAe,KAAK,IAAI,GACpD92C,EAAA,KAAA+2C,EAAyB,KAAK,iBAAiB,KAAK,IAAI,GACxD/2C,EAAA,KAAAg3C,EAAA,QACAh3C,EAAA,KAAAi3C,EAAW,IACXj3C,EAAA,KAAAk3C,EAAe,GAAG,KAAK,EAAE,WACzBl3C,EAAA,KAAAm3C,EAAA,QACAn3C,EAAA,KAAAo3C,EAAe,MA4Cb/2C,GAAA,KAAK22C,EAAS5zC,EAAO,OAASgzC,EAAe,eAAiB7pC,EAAQ,iBAAiB,mBACvFlM,GAAA,KAAK82C,EAAY/zC,EAAO,UAAYgzC,EAAe,iBACpD,CAzCD,WAAW,kBAAmB,CAC5B,MAAMx6B,EAAQw6B,EAAe,UACvBv6B,GAAejE,IAAQA,GAAK,QAAO,EACnCmE,GAAQrO,EAAO,0BAA0B,gBACzCsO,GAAMtO,EAAO,0BAA0B,cAC7C,SAAWpB,EAAM,QAAQ,KAAM,mBAAoB,IAAIoB,EAAO,gBAAgB,CAAC,CAAC,CAAC,SAAU,aAAc,SAAU,YAAY,EAAGkO,EAAM,eAAgB,CACtJ,QAAS,EACf,CAAK,EAAG,CAAC,CAAC,aAAc,iBAAkB,SAAU,YAAY,EAAGA,EAAM,cAAc,EAAG,CAAC,CAAC,YAAa,eAAe,EAAGA,EAAM,gBAAiB,CAC5I,KAAM,CAAC,CAACG,GAAO,CAAC,EAChB,QAASF,EACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,gBAAiB,CACrE,KAAM,CAAC,CAACI,GAAK,CAAC,EACd,QAASH,EACf,CAAK,EAAG,CAAC,CAAC,aAAc,gBAAgB,EAAGD,EAAM,gBAAiB,CAC5D,KAAM,CAACG,GAAO,CAAC,EACf,QAASF,EACf,CAAK,EAAG,CAAC,CAAC,kBAAmB,sBAAsB,EAAGD,EAAM,gBAAiB,CACvE,KAAM,CAACI,GAAK,CAAC,EACb,QAASH,EACf,CAAK,EAAG,CAAC,CAAC,UAAW,aAAa,EAAGD,EAAM,gBAAiB,CACtD,KAAM,CAAC,EAAG,CAACG,EAAK,EAChB,QAASF,EACf,CAAK,EAAG,CAAC,CAAC,eAAgB,mBAAmB,EAAGD,EAAM,gBAAiB,CACjE,KAAM,CAAC,EAAG,CAACI,EAAG,EACd,QAASH,EACf,CAAK,EAAG,CAAC,CAAC,YAAa,eAAe,EAAGD,EAAM,gBAAiB,CAC1D,KAAM,CAAC,EAAGG,EAAK,EACf,QAASF,EACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,gBAAiB,CACrE,KAAM,CAAC,EAAGI,EAAG,EACb,QAASH,EACf,CAAK,CAAC,CAAC,CAAC,CACL,CAUD,OAAO,WAAWlM,EAAM,CACtBpD,EAAQ,iBAAiB,WAAWoD,EAAM,CACxC,QAAS,CAAC,6BAA8B,8BAA8B,CAC5E,CAAK,EACD,MAAMC,GAAQ,iBAAiB,SAAS,eAAe,EACvD,KAAK,iBAAmB,WAAWA,GAAM,iBAAiB,oBAAoB,CAAC,CAChF,CACD,OAAO,oBAAoBjF,EAAMzQ,GAAO,CACtC,OAAQyQ,EAAI,CACV,KAAK2B,EAAM,2BAA2B,cACpC8pC,EAAe,iBAAmBl8C,GAClC,MACF,KAAKoS,EAAM,2BAA2B,eACpC8pC,EAAe,cAAgBl8C,GAC/B,KACH,CACF,CACD,aAAayQ,EAAMzQ,GAAO,CACxB,OAAQyQ,EAAI,CACV,KAAK2B,EAAM,2BAA2B,cACpCpG,EAAA,KAAKmwC,EAAAgB,IAAL,UAAqBn9C,IACrB,MACF,KAAKoS,EAAM,2BAA2B,eACpCpG,EAAA,KAAKowC,EAAAgB,IAAL,UAAkBp9C,IAClB,KACH,CACF,CACD,WAAW,2BAA4B,CACrC,MAAO,CAAC,CAACoS,EAAM,2BAA2B,cAAe8pC,EAAe,gBAAgB,EAAG,CAAC9pC,EAAM,2BAA2B,eAAgB8pC,EAAe,eAAiB7pC,EAAQ,iBAAiB,iBAAiB,CAAC,CACzN,CACD,IAAI,oBAAqB,CACvB,MAAO,CAAC,CAACD,EAAM,2BAA2B,cAAe/L,EAAA,KAAK42C,EAAS,EAAG,CAAC7qC,EAAM,2BAA2B,eAAgB/L,EAAA,KAAKy2C,EAAM,CAAC,CACzI,CAqCD,gBAAgB9mC,EAAGC,GAAG,CACpB,KAAK,WAAW,yBAAyBD,EAAGC,GAAG,EAAI,CACpD,CACD,uBAAwB,CACtB,MAAMhL,EAAQ,KAAK,YACnB,MAAO,CAAC,CAACixC,EAAe,iBAAmBjxC,EAAO,EAAEixC,EAAe,iBAAmB71C,EAAA,KAAK42C,IAAahyC,CAAK,CAC9G,CACD,SAAU,CACH,KAAK,SAGV,MAAM,QAAO,EACT,KAAK,MAAQ,OAGZ,KAAK,iBACR,KAAK,OAAO,IAAI,IAAI,GAEvB,CACD,gBAAiB,CACX,KAAK,iBAGT,KAAK,OAAO,gBAAgB,EAAK,EACjC,KAAK,OAAO,cAAcmH,EAAM,qBAAqB,QAAQ,EAC7D,MAAM,eAAc,EACpB,KAAK,WAAW,UAAU,OAAO,SAAS,EAC1C,KAAK,UAAU,gBAAkB,GACjC,KAAK,aAAe,GACpB,KAAK,IAAI,gBAAgB,uBAAuB,EAChD,KAAK,UAAU,iBAAiB,UAAW/L,EAAA,KAAKw2C,EAAsB,EACtE,KAAK,UAAU,iBAAiB,QAASx2C,EAAA,KAAKs2C,EAAoB,EAClE,KAAK,UAAU,iBAAiB,OAAQt2C,EAAA,KAAKq2C,EAAmB,EAChE,KAAK,UAAU,iBAAiB,QAASr2C,EAAA,KAAKu2C,EAAoB,EACnE,CACD,iBAAkB,CACX,KAAK,iBAGV,KAAK,OAAO,gBAAgB,EAAI,EAChC,MAAM,gBAAe,EACrB,KAAK,WAAW,UAAU,IAAI,SAAS,EACvC,KAAK,UAAU,gBAAkB,GACjC,KAAK,IAAI,aAAa,wBAAyBv2C,EAAA,KAAK22C,EAAY,EAChE,KAAK,aAAe,GACpB,KAAK,UAAU,oBAAoB,UAAW32C,EAAA,KAAKw2C,EAAsB,EACzE,KAAK,UAAU,oBAAoB,QAASx2C,EAAA,KAAKs2C,EAAoB,EACrE,KAAK,UAAU,oBAAoB,OAAQt2C,EAAA,KAAKq2C,EAAmB,EACnE,KAAK,UAAU,oBAAoB,QAASr2C,EAAA,KAAKu2C,EAAoB,EACrE,KAAK,IAAI,MAAM,CACb,cAAe,EACrB,CAAK,EACD,KAAK,UAAY,GACjB,KAAK,OAAO,IAAI,UAAU,IAAI,iBAAiB,EAChD,CACD,QAAQruC,EAAO,CACR,KAAK,sBAGV,MAAM,QAAQA,CAAK,EACfA,EAAM,SAAW,KAAK,WACxB,KAAK,UAAU,QAElB,CACD,WAAY,OACV,GAAI,KAAK,MAAO,CACdvC,EAAA,KAAKywC,EAAAY,IAAL,WACA,MACD,CACD,KAAK,eAAc,EACnB,KAAK,UAAU,SACXv7C,EAAA,KAAK,kBAAL,MAAAA,EAAsB,YACxB,KAAK,OAAM,EAEb,KAAK,gBAAkB,IACxB,CACD,SAAU,CACR,MAAO,CAAC,KAAK,WAAa,KAAK,UAAU,UAAU,KAAM,IAAK,EAC/D,CACD,QAAS,CACP,KAAK,UAAY,GACb,KAAK,SACP,KAAK,OAAO,gBAAgB,EAAI,EAChC,KAAK,OAAO,IAAI,UAAU,IAAI,iBAAiB,GAEjD,MAAM,OAAM,CACb,CAsCD,QAAS,CACP,GAAI,CAAC,KAAK,eACR,OAEF,MAAM,OAAM,EACZ,KAAK,gBAAe,EACpB,MAAMw7C,EAAYj3C,EAAA,KAAK02C,GACjBQ,GAAUp3C,GAAA,KAAK42C,EAAW/wC,EAAA,KAAKqwC,EAAAmB,IAAL,WAAoB,WACpD,GAAIF,IAAcC,GAChB,OAEF,MAAME,GAAUxO,IAAQ,CAEtB,GADA9oC,GAAA,KAAK42C,EAAW9N,IACZ,CAACA,GAAM,CACT,KAAK,OAAM,EACX,MACD,CACDjjC,EAAA,KAAKuwC,EAAAmB,IAAL,WACA,KAAK,WAAW,QAAQ,IAAI,EAC5B1xC,EAAA,KAAKswC,EAAAqB,IAAL,UACN,EACI,KAAK,YAAY,CACf,IAAK,IAAM,CACTF,GAAQF,EAAO,CAChB,EACD,KAAM,IAAM,CACVE,GAAQH,CAAS,CAClB,EACD,SAAU,EAChB,CAAK,EACDtxC,EAAA,KAAKswC,EAAAqB,IAAL,UACD,CACD,yBAA0B,CACxB,OAAO,KAAK,cACb,CACD,iBAAkB,CAChB,KAAK,eAAc,EACnB,KAAK,UAAU,OAChB,CACD,SAASpvC,EAAO,CACd,KAAK,gBAAe,CACrB,CACD,QAAQA,EAAO,CACTA,EAAM,SAAW,KAAK,KAAOA,EAAM,MAAQ,UAC7C,KAAK,gBAAe,EACpBA,EAAM,eAAc,EAEvB,CACD,iBAAiBA,EAAO,CACtB2tC,EAAe,iBAAiB,KAAK,KAAM3tC,CAAK,CACjD,CACD,eAAeA,EAAO,CACpB,KAAK,UAAY,EAClB,CACD,cAAcA,EAAO,CACnB,KAAK,UAAY,EAClB,CACD,eAAeA,EAAO,CACpB,KAAK,OAAO,IAAI,UAAU,OAAO,kBAAmB,KAAK,QAAO,CAAE,CACnE,CACD,gBAAiB,CACf,KAAK,UAAU,aAAa,OAAQ,SAAS,EAC7C,KAAK,UAAU,gBAAgB,gBAAgB,CAChD,CACD,eAAgB,CACd,KAAK,UAAU,aAAa,OAAQ,SAAS,EAC7C,KAAK,UAAU,aAAa,iBAAkB,EAAI,CACnD,CACD,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAIqvC,EAAOC,GACP,KAAK,QACPD,EAAQ,KAAK,EACbC,GAAQ,KAAK,GAEf,MAAM,OAAM,EACZ,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,UAAU,UAAY,WAC3B,KAAK,UAAU,aAAa,KAAMx3C,EAAA,KAAK22C,EAAY,EACnD,KAAK,cAAa,EAClB3qC,EAAQ,iBAAiB,aAAa,IAAI,8BAA8B,EAAE,KAAK/S,IAAO,QAAA,OAAAwC,GAAA,KAAK,YAAL,YAAAA,GAAgB,aAAa,aAAcxC,IAAI,EACrI+S,EAAQ,iBAAiB,aAAa,IAAI,4BAA4B,EAAE,KAAK/S,IAAO,QAAA,OAAAwC,GAAA,KAAK,YAAL,YAAAA,GAAgB,aAAa,kBAAmBxC,IAAI,EACxI,KAAK,UAAU,gBAAkB,GACjC,KAAM,CACJ,MAAAoW,EACN,EAAQ,KAAK,UAQT,GAPAA,GAAM,SAAW,QAAQrP,EAAA,KAAK42C,EAAS,4BACvCvnC,GAAM,MAAQrP,EAAA,KAAKy2C,GACnB,KAAK,IAAI,OAAO,KAAK,SAAS,EAC9B,KAAK,WAAa,SAAS,cAAc,KAAK,EAC9C,KAAK,WAAW,UAAU,IAAI,UAAW,SAAS,EAClD,KAAK,IAAI,OAAO,KAAK,UAAU,KAC3BtpC,EAAO,YAAY,KAAM,KAAK,IAAK,CAAC,WAAY,SAAS,CAAC,EAC1D,KAAK,MAAO,CACd,KAAM,CAAC6C,GAAaC,EAAY,EAAI,KAAK,iBACzC,GAAI,KAAK,oBAAqB,CAC5B,KAAM,CACJ,SAAAwnC,CACV,EAAYz3C,EAAA,KAAK62C,GACT,GAAI,CAAChnC,EAAIC,CAAE,EAAI,KAAK,sBAAqB,EACzC,CAACD,EAAIC,CAAE,EAAI,KAAK,wBAAwBD,EAAIC,CAAE,EAC9C,KAAM,CAACjB,EAAWC,CAAU,EAAI,KAAK,eAC/B,CAACC,EAAOC,CAAK,EAAI,KAAK,gBAC5B,IAAI0oC,EAAMC,EACV,OAAQ,KAAK,SAAQ,CACnB,IAAK,GACHD,EAAOH,GAASE,EAAS,CAAC,EAAI1oC,GAASF,EACvC8oC,EAAOH,GAAQ,KAAK,QAAUC,EAAS,CAAC,EAAIzoC,GAASF,EACrD,MACF,IAAK,IACH4oC,EAAOH,GAASE,EAAS,CAAC,EAAI1oC,GAASF,EACvC8oC,EAAOH,IAASC,EAAS,CAAC,EAAIzoC,GAASF,EACvC,CAACe,EAAIC,CAAE,EAAI,CAACA,EAAI,CAACD,CAAE,EACnB,MACF,IAAK,KACH6nC,EAAOH,EAAQ,KAAK,OAASE,EAAS,CAAC,EAAI1oC,GAASF,EACpD8oC,EAAOH,IAASC,EAAS,CAAC,EAAIzoC,GAASF,EACvC,CAACe,EAAIC,CAAE,EAAI,CAAC,CAACD,EAAI,CAACC,CAAE,EACpB,MACF,IAAK,KACH4nC,EAAOH,GAASE,EAAS,CAAC,EAAI1oC,EAAQ,KAAK,OAASD,GAAcD,EAClE8oC,EAAOH,IAASC,EAAS,CAAC,EAAIzoC,EAAQ,KAAK,MAAQH,GAAaC,EAChE,CAACe,EAAIC,CAAE,EAAI,CAAC,CAACA,EAAID,CAAE,EACnB,KACH,CACD,KAAK,MAAM6nC,EAAO1nC,GAAa2nC,EAAO1nC,GAAcJ,EAAIC,CAAE,CAClE,MACQ,KAAK,MAAMynC,EAAQvnC,GAAawnC,GAAQvnC,GAAc,KAAK,MAAQD,GAAa,KAAK,OAASC,EAAY,EAE5GtK,EAAA,KAAKuwC,EAAAmB,IAAL,WACA,KAAK,aAAe,GACpB,KAAK,UAAU,gBAAkB,EACvC,MACM,KAAK,aAAe,GACpB,KAAK,UAAU,gBAAkB,GAEnC,OAAO,KAAK,GACb,CAYD,IAAI,YAAa,CACf,OAAO,KAAK,SACb,CACD,OAAO,YAAYx3C,EAAMmN,GAAQoE,GAAW,CAC1C,IAAI7N,GAAc,KAClB,GAAI1D,aAAgB+1C,EAAkB,0BAA2B,CAC/D,KAAM,CACJ,KAAM,CACJ,sBAAuB,CACrB,SAAAte,EACA,UAAAsgB,CACD,EACD,KAAAv6C,EACA,SAAAwH,EACA,GAAAT,CACD,EACD,YAAAsC,EACA,aAAAmxC,EACA,OAAQ,CACN,KAAM,CACJ,WAAA3zC,CACD,CACF,CACF,EAAGrE,EACJ,GAAI,CAAC6G,GAAeA,EAAY,SAAW,EACzC,OAAO,KAETnD,GAAc1D,EAAO,CACnB,eAAgBkM,EAAM,qBAAqB,SAC3C,MAAO,MAAM,KAAK6rC,CAAS,EAC3B,SAAAtgB,EACA,MAAO5wB,EAAY,KAAK;AAAA,CAAI,EAC5B,SAAUmxC,EACV,UAAW3zC,EAAa,EACxB,KAAA7G,EACA,SAAAwH,EACA,GAAAT,EACA,QAAS,EACjB,CACK,CACD,MAAM6K,GAAS,MAAM,YAAYpP,EAAMmN,GAAQoE,EAAS,EACxD,OAAAtR,GAAAmP,GAAO2nC,EAAY/2C,EAAK,UACxBC,GAAAmP,GAAOwnC,EAAS1qC,EAAM,KAAK,aAAa,GAAGlM,EAAK,KAAK,GACrDC,GAAAmP,GAAOynC,EAAW72C,EAAK,OACvBoP,GAAO,oBAAsBpP,EAAK,IAAM,KACxCC,GAAAmP,GAAO4nC,EAAetzC,IACf0L,EACR,CACD,UAAUkC,EAAe,GAAO,CAC9B,GAAI,KAAK,UACP,OAAO,KAET,GAAI,KAAK,QACP,MAAO,CACL,UAAW,KAAK,UAChB,GAAI,KAAK,oBACT,QAAS,EACjB,EAEI,MAAM2mC,GAAUjC,EAAe,iBAAmB,KAAK,YACjDx4C,GAAO,KAAK,QAAQy6C,GAASA,EAAO,EACpClgC,GAAQ5L,EAAQ,iBAAiB,cAAc,QAAQ,KAAK,gBAAkB,iBAAiB,KAAK,SAAS,EAAE,MAAQhM,EAAA,KAAKy2C,EAAM,EAClI1pC,GAAa,CACjB,eAAgBhB,EAAM,qBAAqB,SAC3C,MAAA6L,GACA,SAAU5X,EAAA,KAAK42C,GACf,MAAO52C,EAAA,KAAK02C,GACZ,UAAW,KAAK,UAChB,KAAAr5C,GACA,SAAU,KAAK,SACf,mBAAoB,KAAK,mBAC/B,EACI,OAAI8T,EACKpE,GAEL,KAAK,qBAAuB,CAACpH,EAAA,KAAKwwC,EAAA4B,IAAL,UAAwBhrC,IAChD,MAETA,GAAW,GAAK,KAAK,oBACdA,GACR,CAuBF,EAtfCspC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YAgFAf,EAAA,YAAAgB,GAAe,SAACxf,EAAU,CACxB,MAAM0gB,GAActiC,IAAQ,CAC1B,KAAK,UAAU,MAAM,SAAW,QAAQA,EAAI,4BAC5C,KAAK,UAAU,EAAG,EAAEA,GAAO1V,EAAA,KAAK42C,IAAa,KAAK,WAAW,EAC7D92C,GAAA,KAAK82C,EAAYlhC,IACjB/P,EAAA,KAAKswC,EAAAqB,IAAL,UACN,EACUW,GAAgBj4C,EAAA,KAAK42C,GAC3B,KAAK,YAAY,CACf,IAAK,IAAM,CACToB,GAAY1gB,CAAQ,CACrB,EACD,KAAM,IAAM,CACV0gB,GAAYC,EAAa,CAC1B,EACD,SAAU,GACV,KAAMlsC,EAAM,2BAA2B,cACvC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACF,EACDgqC,EAAA,YAAAgB,GAAY,SAACn/B,EAAO,CAClB,MAAMsgC,GAAal4C,EAAA,KAAKy2C,GACxB,KAAK,YAAY,CACf,IAAK,IAAM,CACT32C,GAAA,KAAK22C,EAAS,KAAK,UAAU,MAAM,MAAQ7+B,EAC5C,EACD,KAAM,IAAM,CACV9X,GAAA,KAAK22C,EAAS,KAAK,UAAU,MAAM,MAAQyB,GAC5C,EACD,SAAU,GACV,KAAMnsC,EAAM,2BAA2B,eACvC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACF,EAwFDiqC,EAAA,YAAAmB,GAAY,UAAG,CACb,MAAMgB,EAAO,KAAK,UAAU,qBAAqB,KAAK,EACtD,GAAIA,EAAK,SAAW,EAClB,OAAO,KAAK,UAAU,UAExB,MAAMl5C,GAAS,CAAA,EACf,UAAW0S,MAAOwmC,EAChBl5C,GAAO,KAAK0S,GAAI,UAAU,QAAQ,WAAY,EAAE,CAAC,EAEnD,OAAO1S,GAAO,KAAK;AAAA,CAAI,CACxB,EACDg3C,EAAA,YAAAqB,GAAoB,UAAG,CACrB,KAAM,CAACtnC,EAAaC,EAAY,EAAI,KAAK,iBACzC,IAAI5S,GACJ,GAAI,KAAK,gBACPA,GAAO,KAAK,IAAI,4BACX,CACL,KAAM,CACJ,aAAA+6C,GACA,IAAAzmC,EACD,EAAG,KACE0mC,EAAe1mC,GAAI,MAAM,QAC/BA,GAAI,MAAM,QAAU,SACpBymC,GAAa,IAAI,OAAO,KAAK,GAAG,EAChC/6C,GAAOsU,GAAI,wBACXA,GAAI,OAAM,EACVA,GAAI,MAAM,QAAU0mC,CACrB,CACG,KAAK,SAAW,MAAQ,KAAK,eAAiB,KAChD,KAAK,MAAQh7C,GAAK,MAAQ2S,EAC1B,KAAK,OAAS3S,GAAK,OAAS4S,KAE5B,KAAK,MAAQ5S,GAAK,OAAS2S,EAC3B,KAAK,OAAS3S,GAAK,MAAQ4S,IAE7B,KAAK,kBAAiB,CACvB,EA6IDimC,EAAA,YAAAmB,GAAW,UAAG,CAEZ,GADA,KAAK,UAAU,kBACX,EAACr3C,EAAA,KAAK02C,GAGV,UAAW4B,KAAQt4C,EAAA,KAAK02C,GAAS,MAAM;AAAA,CAAI,EAAG,CAC5C,MAAM/kC,GAAM,SAAS,cAAc,KAAK,EACxCA,GAAI,OAAO2mC,EAAO,SAAS,eAAeA,CAAI,EAAI,SAAS,cAAc,IAAI,CAAC,EAC9E,KAAK,UAAU,OAAO3mC,EAAG,CAC1B,CACF,EAkFDwkC,EAAA,YAAA4B,GAAkB,SAAChrC,EAAY,CAC7B,KAAM,CACJ,MAAApT,GACA,SAAA29B,GACA,MAAA1f,GACA,KAAAva,GACA,UAAAiH,CACN,EAAQtE,EAAA,KAAK62C,GACT,OAAO9pC,EAAW,QAAUpT,IAASoT,EAAW,WAAauqB,IAAYvqB,EAAW,KAAK,KAAK,CAAC4C,EAAG7U,IAAM,KAAK,IAAI6U,EAAItS,GAAKvC,CAAC,CAAC,GAAK,CAAC,GAAKiS,EAAW,MAAM,KAAK,CAAC/P,EAAGlC,IAAMkC,IAAM4a,GAAM9c,CAAC,CAAC,GAAKiS,EAAW,YAAczI,CACpN,EACD8xC,EAAA,YAAAY,GAAiB,SAACpvC,EAAU,GAAO,CACjC,GAAI,CAAC,KAAK,oBACR,OAGF,GADAjC,EAAA,KAAKswC,EAAAqB,IAAL,WACI,CAAC1vC,IAAY,KAAK,QAAU,GAAK,KAAK,SAAW,GAAI,CACvD,WAAW,IAAMjC,EAAA,KAAKywC,EAAAY,IAAL,UAAuB,IAAO,CAAC,EAChD,MACD,CACD,MAAMc,GAAUjC,EAAe,iBAAmB,KAAK,YACvD71C,EAAA,KAAK62C,GAAa,KAAO,KAAK,QAAQiB,GAASA,EAAO,CACvD,EAtfGjC,EAUG,wBAA0B,GAV7BA,EAWG,iBAAmB,EAXtBA,EAYG,cAAgB,KAZnBA,EAaG,iBAAmB,GAbtBA,EA+CG,MAAQ,WA/CjB,IAAM0C,GAAN1C,EAwfA//C,EAAQ,eAAiByiD,EAElB,EAEA,CAAC1iD,EAAyBC,EAASgW,IAAwB,qIAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,uBAAyBA,EAAQ,qBAAuBA,EAAQ,0BAA4BA,EAAQ,gBAAkB,OAC9H,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BsB,EAAiBtB,EAAoB,CAAC,EACtC0sC,EAAsB1sC,EAAoB,CAAC,EAC3C2sC,EAAmB3sC,EAAoB,EAAE,EACzC4sC,GAAqB5sC,EAAoB,EAAE,EAC3C6sC,EAAa7sC,EAAoB,EAAE,EACvC,MAAM8sC,EAAoB,IACpBvH,EAAoB,EACpBwH,EAAuB,IAAI,QACjC,SAASC,EAAYz7C,GAAM,CACzB,MAAO,CACL,MAAOA,GAAK,CAAC,EAAIA,GAAK,CAAC,EACvB,OAAQA,GAAK,CAAC,EAAIA,GAAK,CAAC,CAC5B,CACC,CACD,MAAM07C,CAAyB,CAC7B,OAAO,OAAOzrC,EAAY,CAExB,OADgBA,EAAW,KAAK,eACjB,CACb,KAAKvB,EAAM,eAAe,KACxB,OAAO,IAAIitC,EAAsB1rC,CAAU,EAC7C,KAAKvB,EAAM,eAAe,KACxB,OAAO,IAAIktC,EAAsB3rC,CAAU,EAC7C,KAAKvB,EAAM,eAAe,OAExB,OADkBuB,EAAW,KAAK,UACjB,CACf,IAAK,KACH,OAAO,IAAI4rC,EAA4B5rC,CAAU,EACnD,IAAK,MACH,OAAIA,EAAW,KAAK,YACX,IAAI6rC,EAAmC7rC,CAAU,EAC/CA,EAAW,KAAK,SAClB,IAAI8rC,EAAgC9rC,CAAU,EAEhD,IAAI+rC,EAAkC/rC,CAAU,EACzD,IAAK,KACH,OAAO,IAAIgsC,EAA8BhsC,CAAU,EACrD,IAAK,MACH,OAAO,IAAIisC,EAAiCjsC,CAAU,CACzD,CACD,OAAO,IAAIksC,EAAwBlsC,CAAU,EAC/C,KAAKvB,EAAM,eAAe,MACxB,OAAO,IAAI0tC,EAAuBnsC,CAAU,EAC9C,KAAKvB,EAAM,eAAe,SACxB,OAAO,IAAI2tC,EAA0BpsC,CAAU,EACjD,KAAKvB,EAAM,eAAe,KACxB,OAAO,IAAI4tC,EAAsBrsC,CAAU,EAC7C,KAAKvB,EAAM,eAAe,OACxB,OAAO,IAAI6tC,EAAwBtsC,CAAU,EAC/C,KAAKvB,EAAM,eAAe,OACxB,OAAO,IAAI8tC,EAAwBvsC,CAAU,EAC/C,KAAKvB,EAAM,eAAe,SACxB,OAAO,IAAI+tC,EAA0BxsC,CAAU,EACjD,KAAKvB,EAAM,eAAe,MACxB,OAAO,IAAIguC,GAAuBzsC,CAAU,EAC9C,KAAKvB,EAAM,eAAe,IACxB,OAAO,IAAIiuC,GAAqB1sC,CAAU,EAC5C,KAAKvB,EAAM,eAAe,QACxB,OAAO,IAAIkuC,EAAyB3sC,CAAU,EAChD,KAAKvB,EAAM,eAAe,UACxB,OAAO,IAAImuC,EAA2B5sC,CAAU,EAClD,KAAKvB,EAAM,eAAe,UACxB,OAAO,IAAIouC,GAA2B7sC,CAAU,EAClD,KAAKvB,EAAM,eAAe,SACxB,OAAO,IAAIquC,GAA0B9sC,CAAU,EACjD,KAAKvB,EAAM,eAAe,UACxB,OAAO,IAAIsuC,GAA2B/sC,CAAU,EAClD,KAAKvB,EAAM,eAAe,MACxB,OAAO,IAAIuuC,GAAuBhtC,CAAU,EAC9C,KAAKvB,EAAM,eAAe,eACxB,OAAO,IAAIwuC,EAAgCjtC,CAAU,EACvD,QACE,OAAO,IAAIktC,EAAkBltC,CAAU,CAC1C,CACF,CACF,CACD,MAAMmtC,EAAN,MAAMA,CAAkB,CAEtB,YAAYntC,EAAY,CACtB,aAAAotC,EAAe,GACf,aAAAC,EAAe,GACf,qBAAAC,EAAuB,EACxB,EAAG,GAAI,CALRn7C,EAAA,KAAAo7C,EAAa,IAMX,KAAK,aAAeH,EACpB,KAAK,KAAOptC,EAAW,KACvB,KAAK,MAAQA,EAAW,MACxB,KAAK,YAAcA,EAAW,YAC9B,KAAK,gBAAkBA,EAAW,gBAClC,KAAK,mBAAqBA,EAAW,mBACrC,KAAK,YAAcA,EAAW,YAC9B,KAAK,WAAaA,EAAW,WAC7B,KAAK,kBAAoBA,EAAW,kBACpC,KAAK,gBAAkBA,EAAW,gBAClC,KAAK,aAAeA,EAAW,aAC/B,KAAK,cAAgBA,EAAW,aAChC,KAAK,OAASA,EAAW,OACrBotC,IACF,KAAK,UAAY,KAAK,iBAAiBC,CAAY,GAEjDC,GACF,KAAK,sBAAqB,CAE7B,CACD,OAAO,cAAc,CACnB,SAAAE,EACA,YAAAC,EACA,SAAAC,CACJ,EAAK,CACD,MAAO,CAAC,EAAEF,GAAA,MAAAA,EAAU,KAAOC,GAAA,MAAAA,EAAa,KAAOC,GAAA,MAAAA,EAAU,IAC1D,CACD,IAAI,cAAe,CACjB,OAAOP,EAAkB,cAAc,KAAK,IAAI,CACjD,CACD,iBAAiBE,EAAc,CAC7B,KAAM,CACJ,KAAA96C,EACA,OAAQ,CACN,KAAA6J,EACA,SAAAtE,CACD,CACF,EAAG,KACE6S,EAAY,SAAS,cAAc,SAAS,EAClDA,EAAU,aAAa,qBAAsBpY,EAAK,EAAE,EAC9C,gBAAgB25C,IACpBvhC,EAAU,SAAW2gC,GAEvB3gC,EAAU,MAAM,OAAS,KAAK,OAAO,SACjC,KAAK,KAAK,UACZA,EAAU,aAAa,gBAAiB,QAAQ,EAE9CpY,EAAK,UACPoY,EAAU,UAAU,IAAI,UAAU,EAEpC,KAAM,CACJ,UAAApJ,EACA,WAAAC,GACA,MAAAC,GACA,MAAAC,EACN,EAAQ5J,EAAS,QACb,GAAI,CAACvF,EAAK,MAAQ,gBAAgB45C,EAAwB,CACxD,KAAM,CACJ,SAAA50C,EACD,EAAGhF,EACJ,MAAI,CAACA,EAAK,cAAgBgF,KAAa,GACrC,KAAK,YAAYA,GAAUoT,CAAS,EAE/BA,CACR,CACD,KAAM,CACJ,MAAAtN,GACA,OAAAC,EACN,EAAQkuC,EAAYj5C,EAAK,IAAI,EACnBxC,GAAO0O,EAAM,KAAK,cAAc,CAAClM,EAAK,KAAK,CAAC,EAAG6J,EAAK,KAAK,CAAC,EAAI7J,EAAK,KAAK,CAAC,EAAI6J,EAAK,KAAK,CAAC,EAAG7J,EAAK,KAAK,CAAC,EAAG6J,EAAK,KAAK,CAAC,EAAI7J,EAAK,KAAK,CAAC,EAAI6J,EAAK,KAAK,CAAC,CAAC,CAAC,EAC1J,GAAI,CAACixC,GAAgB96C,EAAK,YAAY,MAAQ,EAAG,CAC/CoY,EAAU,MAAM,YAAc,GAAGpY,EAAK,YAAY,KAAK,KACvD,MAAMo7C,GAAmBp7C,EAAK,YAAY,uBACpCq7C,GAAiBr7C,EAAK,YAAY,qBACxC,GAAIo7C,GAAmB,GAAKC,GAAiB,EAAG,CAC9C,MAAMC,GAAS,QAAQF,EAAgB,oCAAoCC,EAAc,4BACzFjjC,EAAU,MAAM,aAAekjC,EACvC,SAAiB,gBAAgBhC,EAAoC,CAC7D,MAAMgC,GAAS,QAAQxwC,EAAK,oCAAoCC,EAAM,4BACtEqN,EAAU,MAAM,aAAekjC,EAChC,CACD,OAAQt7C,EAAK,YAAY,MAAK,CAC5B,KAAKkM,EAAM,0BAA0B,MACnCkM,EAAU,MAAM,YAAc,QAC9B,MACF,KAAKlM,EAAM,0BAA0B,OACnCkM,EAAU,MAAM,YAAc,SAC9B,MACF,KAAKlM,EAAM,0BAA0B,WAC/BA,EAAM,MAAM,qCAAqC,EACrD,MACF,KAAKA,EAAM,0BAA0B,SAC/BA,EAAM,MAAM,mCAAmC,EACnD,MACF,KAAKA,EAAM,0BAA0B,UACnCkM,EAAU,MAAM,kBAAoB,QACpC,KAGH,CACD,MAAMmjC,GAAcv7C,EAAK,aAAe,KACpCu7C,IACFt7C,GAAA,KAAK+6C,EAAa,IAClB5iC,EAAU,MAAM,YAAclM,EAAM,KAAK,aAAaqvC,GAAY,CAAC,EAAI,EAAGA,GAAY,CAAC,EAAI,EAAGA,GAAY,CAAC,EAAI,CAAC,GAEhHnjC,EAAU,MAAM,YAAc,CAEjC,CACDA,EAAU,MAAM,KAAO,GAAG,KAAO5a,GAAK,CAAC,EAAI0R,IAASF,CAAS,IAC7DoJ,EAAU,MAAM,IAAM,GAAG,KAAO5a,GAAK,CAAC,EAAI2R,IAASF,EAAU,IAC7D,KAAM,CACJ,SAAAjK,EACD,EAAGhF,EACJ,OAAIA,EAAK,cAAgBgF,KAAa,GACpCoT,EAAU,MAAM,MAAQ,GAAG,IAAMtN,GAAQkE,CAAS,IAClDoJ,EAAU,MAAM,OAAS,GAAG,IAAMrN,GAASkE,EAAU,KAErD,KAAK,YAAYjK,GAAUoT,CAAS,EAE/BA,CACR,CACD,YAAYzG,EAAOyG,EAAY,KAAK,UAAW,CAC7C,GAAI,CAAC,KAAK,KAAK,KACb,OAEF,KAAM,CACJ,UAAApJ,EACA,WAAAC,CACD,EAAG,KAAK,OAAO,SAAS,QACnB,CACJ,MAAAnE,EACA,OAAAC,CACD,EAAGkuC,EAAY,KAAK,KAAK,IAAI,EAC9B,IAAIuC,GAAcC,GACd9pC,EAAQ,MAAQ,GAClB6pC,GAAe,IAAM1wC,EAAQkE,EAC7BysC,GAAgB,IAAM1wC,EAASkE,IAE/BusC,GAAe,IAAMzwC,EAASiE,EAC9BysC,GAAgB,IAAM3wC,EAAQmE,GAEhCmJ,EAAU,MAAM,MAAQ,GAAGojC,EAAY,IACvCpjC,EAAU,MAAM,OAAS,GAAGqjC,EAAa,IACzCrjC,EAAU,aAAa,sBAAuB,IAAMzG,GAAS,GAAG,CACjE,CACD,IAAI,gBAAiB,CACnB,MAAM+pC,EAAW,CAACC,EAAQC,EAAWvzC,IAAU,CAC7C,MAAM0P,EAAQ1P,EAAM,OAAOszC,CAAM,EAC3BlO,EAAY11B,EAAM,CAAC,EACnB8jC,GAAa9jC,EAAM,MAAM,CAAC,EAChC1P,EAAM,OAAO,MAAMuzC,CAAS,EAAIhD,EAAiB,gBAAgB,GAAGnL,CAAS,OAAO,EAAEoO,EAAU,EAChG,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,CAACD,CAAS,EAAGhD,EAAiB,gBAAgB,GAAGnL,CAAS,MAAM,EAAEoO,EAAU,CACpF,CAAO,CACP,EACI,SAAW3vC,EAAM,QAAQ,KAAM,iBAAkB,CAC/C,QAAS7D,GAAS,CAChB,KAAM,CACJ,QAAAyzC,CACV,EAAYzzC,EAAM,OACJ0zC,EAASD,EAAU,IAAM,EAC/B,KAAK,UAAU,MAAM,WAAaC,EAAS,SAAW,UACtD,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,OAAQA,EACR,QAASD,IAAY,GAAKA,IAAY,CAChD,CAAS,CACF,EACD,MAAOzzC,GAAS,CACd,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,QAAS,CAACA,EAAM,OAAO,KACjC,CAAS,CACF,EACD,OAAQA,GAAS,CACf,KAAM,CACJ,OAAA0zC,CACV,EAAY1zC,EAAM,OACV,KAAK,UAAU,MAAM,WAAa0zC,EAAS,SAAW,UACtD,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,QAASA,EACT,OAAQA,CAClB,CAAS,CACF,EACD,MAAO1zC,GAAS,CACd,WAAW,IAAMA,EAAM,OAAO,MAAM,CAClC,cAAe,EACzB,CAAS,EAAG,CAAC,CACN,EACD,SAAUA,GAAS,CACjBA,EAAM,OAAO,MAAQA,EAAM,OAAO,QACnC,EACD,SAAUA,GAAS,CACjBA,EAAM,OAAO,SAAWA,EAAM,OAAO,QACtC,EACD,SAAUA,GAAS,CACjB,KAAK,aAAaA,EAAM,OAAQA,EAAM,OAAO,QAAQ,CACtD,EACD,QAASA,GAAS,CAChBqzC,EAAS,UAAW,kBAAmBrzC,CAAK,CAC7C,EACD,UAAWA,GAAS,CAClBqzC,EAAS,YAAa,kBAAmBrzC,CAAK,CAC/C,EACD,QAASA,GAAS,CAChBqzC,EAAS,UAAW,QAASrzC,CAAK,CACnC,EACD,UAAWA,GAAS,CAClBqzC,EAAS,YAAa,QAASrzC,CAAK,CACrC,EACD,YAAaA,GAAS,CACpBqzC,EAAS,cAAe,cAAerzC,CAAK,CAC7C,EACD,YAAaA,GAAS,CACpBqzC,EAAS,cAAe,cAAerzC,CAAK,CAC7C,EACD,SAAUA,GAAS,CACjB,MAAMsJ,EAAQtJ,EAAM,OAAO,SAC3B,KAAK,YAAYsJ,CAAK,EACtB,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,SAAUA,CACpB,CAAS,CACF,CACP,CAAK,CACF,CACD,0BAA0BqqC,EAASC,EAAS,CAC1C,MAAMC,EAAgB,KAAK,eAC3B,UAAWhiD,KAAQ,OAAO,KAAK+hD,EAAQ,MAAM,EAAG,CAC9C,MAAM3Y,EAAS0Y,EAAQ9hD,CAAI,GAAKgiD,EAAchiD,CAAI,EAClDopC,GAAA,MAAAA,EAAS2Y,EACV,CACF,CACD,4BAA4BlnC,EAAS,CACnC,GAAI,CAAC,KAAK,gBACR,OAEF,MAAMonC,EAAa,KAAK,kBAAkB,YAAY,KAAK,KAAK,EAAE,EAClE,GAAI,CAACA,EACH,OAEF,MAAMD,EAAgB,KAAK,eAC3B,SAAW,CAACvY,EAAYyY,CAAM,IAAK,OAAO,QAAQD,CAAU,EAAG,CAC7D,MAAM7Y,EAAS4Y,EAAcvY,CAAU,EACvC,GAAIL,EAAQ,CACV,MAAM+Y,GAAa,CACjB,OAAQ,CACN,CAAC1Y,CAAU,EAAGyY,CACf,EACD,OAAQrnC,CAClB,EACQuuB,EAAO+Y,EAAU,EACjB,OAAOF,EAAWxY,CAAU,CAC7B,CACF,CACF,CACD,uBAAwB,CACtB,GAAI,CAAC,KAAK,UACR,OAEF,KAAM,CACJ,WAAA2Y,CACN,EAAQ,KAAK,KACT,GAAI,CAACA,EACH,OAEF,KAAM,CAACC,EAASC,EAASC,EAASC,CAAO,EAAI,KAAK,KAAK,KACvD,GAAIJ,EAAW,SAAW,EAAG,CAC3B,KAAM,CAAG,CAAA,CACP,EAAGK,GACH,EAAGC,EACX,EAAS,CACD,EAAGC,GACH,EAAGC,EACX,CAAO,EAAIR,EAAW,CAAC,EACjB,GAAIG,IAAYE,IAAOD,IAAYE,IAAOL,IAAYM,IAAOL,IAAYM,GACvE,MAEH,CACD,KAAM,CACJ,MAAAttC,CACN,EAAQ,KAAK,UACT,IAAIutC,GACJ,GAAI58C,EAAA,KAAK66C,GAAY,CACnB,KAAM,CACJ,YAAAO,GACA,YAAAyB,EACD,EAAGxtC,EACJA,EAAM,YAAc,EACpButC,GAAY,CAAC,gCAAiC,0CAA2C,iDAAkD,iCAAiCxB,EAAW,mBAAmByB,EAAW,IAAI,EACzN,KAAK,UAAU,UAAU,IAAI,WAAW,CACzC,CACD,MAAMlyC,GAAQ2xC,EAAUF,EAClBxxC,GAAS2xC,EAAUF,EACnB,CACJ,WAAAS,EACD,EAAG,KACEznC,GAAMynC,GAAW,cAAc,KAAK,EAC1CznC,GAAI,UAAU,IAAI,yBAAyB,EAC3CA,GAAI,aAAa,QAAS,CAAC,EAC3BA,GAAI,aAAa,SAAU,CAAC,EAC5B,MAAM0nC,GAAOD,GAAW,cAAc,MAAM,EAC5CznC,GAAI,OAAO0nC,EAAI,EACf,MAAM1M,GAAWyM,GAAW,cAAc,UAAU,EAC9C14C,GAAK,YAAY,KAAK,KAAK,EAAE,GACnCisC,GAAS,aAAa,KAAMjsC,EAAE,EAC9BisC,GAAS,aAAa,gBAAiB,mBAAmB,EAC1D0M,GAAK,OAAO1M,EAAQ,EACpB,SAAW,CAAG,CAAA,CACZ,EAAGmM,GACH,EAAGC,EACT,EAAO,CACD,EAAGC,GACH,EAAGC,EACJ,CAAA,IAAKR,EAAY,CAChB,MAAM9+C,GAAOy/C,GAAW,cAAc,MAAM,EACtCntC,IAAK+sC,GAAMN,GAAWzxC,GACtBiF,IAAK2sC,EAAUE,IAAO7xC,GACtBoyC,IAAaR,GAAME,IAAO/xC,GAC1BsyC,IAAcR,GAAME,IAAO/xC,GACjCvN,GAAK,aAAa,IAAKsS,EAAC,EACxBtS,GAAK,aAAa,IAAKuS,EAAC,EACxBvS,GAAK,aAAa,QAAS2/C,EAAS,EACpC3/C,GAAK,aAAa,SAAU4/C,EAAU,EACtC5M,GAAS,OAAOhzC,EAAI,EACpBu/C,IAAA,MAAAA,GAAW,KAAK,+CAA+CjtC,EAAC,QAAQC,EAAC,YAAYotC,EAAS,aAAaC,EAAU,MACtH,CACGj9C,EAAA,KAAK66C,KACP+B,GAAU,KAAK,cAAc,EAC7BvtC,EAAM,gBAAkButC,GAAU,KAAK,EAAE,GAE3C,KAAK,UAAU,OAAOvnC,EAAG,EACzB,KAAK,UAAU,MAAM,SAAW,QAAQjR,EAAE,GAC3C,CACD,cAAe,CACb,KAAM,CACJ,UAAA6T,EACA,KAAApY,CACD,EAAG,KACJoY,EAAU,aAAa,gBAAiB,QAAQ,EAChD,MAAMilC,EAAQ,IAAIzD,EAAuB,CACvC,KAAM,CACJ,MAAO55C,EAAK,MACZ,SAAUA,EAAK,SACf,iBAAkBA,EAAK,iBACvB,YAAaA,EAAK,YAClB,SAAUA,EAAK,SACf,WAAYA,EAAK,KACjB,YAAa,EACb,GAAI,SAASA,EAAK,EAAE,GACpB,SAAUA,EAAK,QAChB,EACD,OAAQ,KAAK,OACb,SAAU,CAAC,IAAI,CACrB,CAAK,EACD,KAAK,OAAO,IAAI,OAAOq9C,EAAM,OAAM,CAAE,CACtC,CACD,QAAS,IACHnxC,EAAM,aAAa,mDAAmD,CAC3E,CACD,mBAAmBhS,EAAMojD,EAAS,KAAM,CACtC,MAAMC,EAAS,CAAA,EACf,GAAI,KAAK,cAAe,CACtB,MAAMC,EAAW,KAAK,cAActjD,CAAI,EACxC,GAAIsjD,EACF,SAAW,CACT,KAAA3zC,EACA,GAAAtF,EACA,aAAAk5C,EACD,IAAID,EAAU,CAIb,GAHI3zC,IAAS,IAGTtF,IAAO+4C,EACT,SAEF,MAAMI,GAAc,OAAOD,IAAiB,SAAWA,GAAe,KAChEE,GAAa,SAAS,cAAc,qBAAqBp5C,CAAE,IAAI,EACrE,GAAIo5C,IAAc,CAAC3E,EAAqB,IAAI2E,EAAU,EAAG,IACnDzxC,EAAM,MAAM,6CAA6C3H,CAAE,EAAE,EACjE,QACD,CACDg5C,EAAO,KAAK,CACV,GAAAh5C,EACA,YAAAm5C,GACA,WAAAC,EACZ,CAAW,CACF,CAEH,OAAOJ,CACR,CACD,UAAWI,KAAc,SAAS,kBAAkBzjD,CAAI,EAAG,CACzD,KAAM,CACJ,YAAAwjD,CACD,EAAGC,EACEp5C,EAAKo5C,EAAW,aAAa,iBAAiB,EAChDp5C,IAAO+4C,GAGNtE,EAAqB,IAAI2E,CAAU,GAGxCJ,EAAO,KAAK,CACV,GAAAh5C,EACA,YAAAm5C,EACA,WAAAC,CACR,CAAO,CACF,CACD,OAAOJ,CACR,CACD,MAAO,OACD,KAAK,YACP,KAAK,UAAU,OAAS,KAE1B3hD,EAAA,KAAK,QAAL,MAAAA,EAAY,WACb,CACD,MAAO,OACD,KAAK,YACP,KAAK,UAAU,OAAS,KAE1BA,EAAA,KAAK,QAAL,MAAAA,EAAY,WACb,CACD,2BAA4B,CAC1B,OAAO,KAAK,SACb,CACD,kBAAmB,CACjB,MAAMgiD,EAAW,KAAK,4BACtB,GAAI,MAAM,QAAQA,CAAQ,EACxB,UAAW7oC,KAAW6oC,EACpB7oC,EAAQ,UAAU,IAAI,eAAe,OAGvC6oC,EAAS,UAAU,IAAI,eAAe,CAEzC,CACD,oBAAqB,CACnB,KAAM,CACJ,qBAAsBvgC,EACtB,KAAM,CACJ,GAAIC,CACL,CACF,EAAG,KACJ,KAAK,UAAU,iBAAiB,WAAY,IAAM,QAChD1hB,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,6BAA8B,CAChE,OAAQ,KACR,KAAAyhB,EACA,OAAAC,CACR,EACA,CAAK,CACF,CACF,EArcC09B,EAAA,YADF,IAAML,EAANC,EAucA,MAAMzB,UAA8BwB,CAAkB,CACpD,YAAYltC,EAAYhU,EAAU,KAAM,CACtC,MAAMgU,EAAY,CAChB,aAAc,GACd,aAAc,CAAC,EAAChU,GAAA,MAAAA,EAAS,cACzB,qBAAsB,EAC5B,CAAK,EA6CHmG,EAAA,KAAAi+C,GA+BAj+C,EAAA,KAAAk+C,GA3EE,KAAK,cAAgBrwC,EAAW,KAAK,aACtC,CACD,QAAS,CACP,KAAM,CACJ,KAAAzN,EACA,YAAA+9C,CACD,EAAG,KACEC,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,aAAa,kBAAmBh+C,EAAK,EAAE,EAC5C,IAAIi+C,EAAU,GACd,OAAIj+C,EAAK,KACP+9C,EAAY,kBAAkBC,EAAMh+C,EAAK,IAAKA,EAAK,SAAS,EAC5Di+C,EAAU,IACDj+C,EAAK,QACd,KAAK,iBAAiBg+C,EAAMh+C,EAAK,MAAM,EACvCi+C,EAAU,IACDj+C,EAAK,YACd,KAAK,gBAAgBg+C,EAAMh+C,EAAK,UAAU,EAC1Ci+C,EAAU,IACDj+C,EAAK,aACd8F,EAAA,KAAKg4C,EAAAI,IAAL,UAAsBF,EAAMh+C,EAAK,aACjCi+C,EAAU,IACDj+C,EAAK,MACd,KAAK,UAAUg+C,EAAMh+C,EAAK,IAAI,EAC9Bi+C,EAAU,KAENj+C,EAAK,UAAYA,EAAK,QAAQ,QAAUA,EAAK,QAAQ,UAAU,GAAKA,EAAK,QAAQ,YAAY,IAAM,KAAK,iBAAmB,KAAK,eAClI,KAAK,cAAcg+C,EAAMh+C,CAAI,EAC7Bi+C,EAAU,IAERj+C,EAAK,WACP,KAAK,qBAAqBg+C,EAAMh+C,EAAK,SAAS,EAC9Ci+C,EAAU,IACD,KAAK,eAAiB,CAACA,IAChC,KAAK,UAAUD,EAAM,EAAE,EACvBC,EAAU,KAGd,KAAK,UAAU,UAAU,IAAI,gBAAgB,EACzCA,GACF,KAAK,UAAU,OAAOD,CAAI,EAErB,KAAK,SACb,CAID,UAAUA,EAAMG,EAAa,CAC3BH,EAAK,KAAO,KAAK,YAAY,mBAAmBG,CAAW,EAC3DH,EAAK,QAAU,KACTG,GACF,KAAK,YAAY,gBAAgBA,CAAW,EAEvC,KAELA,GAAeA,IAAgB,KACjCr4C,EAAA,KAAK+3C,EAAAO,IAAL,UAEH,CACD,iBAAiBJ,EAAM1a,EAAQ,CAC7B0a,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5CA,EAAK,QAAU,KACb,KAAK,YAAY,mBAAmB1a,CAAM,EACnC,IAETx9B,EAAA,KAAK+3C,EAAAO,IAAL,UACD,CACD,gBAAgBJ,EAAMK,EAAY,CAChCL,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5CA,EAAK,QAAU,IAAM,OACnB,OAAApiD,EAAA,KAAK,kBAAL,MAAAA,EAAsB,mBAAmB,KAAK,UAAWyiD,EAAW,QAASA,EAAW,UACjF,EACb,EACIv4C,EAAA,KAAK+3C,EAAAO,IAAL,UACD,CASD,cAAcJ,EAAMh+C,EAAM,CACxBg+C,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5C,MAAM3iD,EAAM,IAAI,IAAI,CAAC,CAAC,SAAU,SAAS,EAAG,CAAC,WAAY,WAAW,EAAG,CAAC,aAAc,aAAa,CAAC,CAAC,EACrG,UAAWnB,KAAQ,OAAO,KAAK8F,EAAK,OAAO,EAAG,CAC5C,MAAM27C,EAAStgD,EAAI,IAAInB,CAAI,EACtByhD,IAGLqC,EAAKrC,CAAM,EAAI,IAAM,QACnB,OAAA//C,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAIoE,EAAK,GACT,KAAA9F,CACD,CACX,GACe,EACf,EACK,CACI8jD,EAAK,UACRA,EAAK,QAAU,IAAM,IAEvBl4C,EAAA,KAAK+3C,EAAAO,IAAL,UACD,CACD,qBAAqBJ,EAAMM,EAAW,CACpC,MAAMC,EAAmBP,EAAK,QAK9B,GAJKO,IACHP,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,GAE9Cl4C,EAAA,KAAK+3C,EAAAO,IAAL,WACI,CAAC,KAAK,cAAe,IACnBlyC,EAAM,MAAM,gHAAqH,EAChIqyC,IACHP,EAAK,QAAU,IAAM,IAEvB,MACD,CACDA,EAAK,QAAU,IAAM,QACnBO,GAAA,MAAAA,IACA,KAAM,CACJ,OAAQC,EACR,KAAMC,EACN,QAAAC,EACD,EAAGJ,EACEK,GAAY,CAAA,EAClB,GAAIH,EAAgB,SAAW,GAAKC,EAAc,SAAW,EAAG,CAC9D,MAAMG,GAAW,IAAI,IAAIH,CAAa,EACtC,UAAWI,MAAaL,EAAiB,CACvC,MAAMjB,GAAS,KAAK,cAAcsB,EAAS,GAAK,CAAA,EAChD,SAAW,CACT,GAAAt6C,EACD,IAAIg5C,GACHqB,GAAS,IAAIr6C,EAAE,CAElB,CACD,UAAWg5C,MAAU,OAAO,OAAO,KAAK,aAAa,EACnD,UAAWuB,MAASvB,GACdqB,GAAS,IAAIE,GAAM,EAAE,IAAMJ,IAC7BC,GAAU,KAAKG,EAAK,CAIlC,KACQ,WAAWvB,MAAU,OAAO,OAAO,KAAK,aAAa,EACnDoB,GAAU,KAAK,GAAGpB,EAAM,EAG5B,MAAMwB,GAAU,KAAK,kBACfC,GAAS,CAAA,EACf,UAAWF,MAASH,GAAW,CAC7B,KAAM,CACJ,GAAAp6C,EACD,EAAGu6C,GAEJ,OADAE,GAAO,KAAKz6C,EAAE,EACNu6C,GAAM,KAAI,CAChB,IAAK,OACH,CACE,MAAMhlD,GAAQglD,GAAM,cAAgB,GACpCC,GAAQ,SAASx6C,GAAI,CACnB,MAAAzK,EAChB,CAAe,EACD,KACD,CACH,IAAK,WACL,IAAK,cACH,CACE,MAAMA,GAAQglD,GAAM,eAAiBA,GAAM,aAC3CC,GAAQ,SAASx6C,GAAI,CACnB,MAAAzK,EAChB,CAAe,EACD,KACD,CACH,IAAK,WACL,IAAK,UACH,CACE,MAAMA,GAAQglD,GAAM,cAAgB,GACpCC,GAAQ,SAASx6C,GAAI,CACnB,MAAAzK,EAChB,CAAe,EACD,KACD,CACH,QACE,QACH,CACD,MAAM6jD,GAAa,SAAS,cAAc,qBAAqBp5C,EAAE,IAAI,EACrE,GAAKo5C,IAEE,GAAI,CAAC3E,EAAqB,IAAI2E,EAAU,EAAG,IAC5CzxC,EAAM,MAAM,+CAA+C3H,EAAE,EAAE,EACnE,QACD,MAJC,UAKFo5C,GAAW,cAAc,IAAI,MAAM,WAAW,CAAC,CAChD,CACD,OAAI,KAAK,mBACP/hD,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAI,MACJ,IAAKojD,GACL,KAAM,WACP,CACX,IAEa,EACb,CACG,CACF,CArKCnB,EAAA,YAAAO,GAAgB,UAAG,CACjB,KAAK,UAAU,aAAa,qBAAsB,EAAE,CACrD,EA6BDN,EAAA,YAAAI,GAAgB,SAACF,EAAM1a,EAAQ,CAC7B0a,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5CA,EAAK,QAAU,KACb,KAAK,YAAY,mBAAmB1a,CAAM,EACnC,IAETx9B,EAAA,KAAK+3C,EAAAO,IAAL,UACD,EAgIH,MAAMhF,UAA8BuB,CAAkB,CACpD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,EACpB,CAAK,CACF,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,gBAAgB,EAC7C,MAAMiI,EAAQ,SAAS,cAAc,KAAK,EAC1C,OAAAA,EAAM,IAAM,KAAK,mBAAqB,cAAgB,KAAK,KAAK,KAAK,YAAa,EAAG,OACrFA,EAAM,IAAM,wBACZA,EAAM,QAAQ,OAAS,uBACvBA,EAAM,QAAQ,SAAW,KAAK,UAAU,CACtC,KAAM,KAAK,KAAK,IACtB,CAAK,EACG,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEnB,KAAK,UAAU,OAAOA,CAAK,EACpB,KAAK,SACb,CACF,CACD,MAAMikC,UAAgCgB,CAAkB,CACtD,QAAS,CACP,OAAI,KAAK,KAAK,kBACZ,KAAK,UAAU,MAAQ,KAAK,KAAK,iBAE5B,KAAK,SACb,CACD,yBAAyB5lC,EAAS,OAC5B,KAAK,KAAK,iBACRnZ,EAAAmZ,EAAQ,kBAAR,YAAAnZ,EAAyB,YAAa,WACxCmZ,EAAQ,gBAAgB,OAAS,IAEnCA,EAAQ,OAAS,GAEpB,CACD,gBAAgB1M,EAAO,CACrB,KAAM,CACJ,MAAA42C,EACA,MAAA/tC,CACN,EAAQhF,EAAM,YAAY,SACtB,OAAO+yC,GAAS52C,EAAM,SAAW6I,GAAS7I,EAAM,OACjD,CACD,kBAAkB0M,EAASmqC,EAAaC,EAAUC,EAAWC,EAAa,CACpEF,EAAS,SAAS,OAAO,EAC3BpqC,EAAQ,iBAAiBoqC,EAAU92C,GAAS,SAC1CzM,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAI,KAAK,KAAK,GACd,KAAMwjD,EACN,MAAOC,EAAYh3C,CAAK,EACxB,MAAOA,EAAM,SACb,SAAU,KAAK,gBAAgBA,CAAK,CACrC,CACX,EACA,CAAO,EAED0M,EAAQ,iBAAiBoqC,EAAU92C,GAAS,QAC1C,GAAI82C,IAAa,OAAQ,CACvB,GAAI,CAACD,EAAY,SAAW,CAAC72C,EAAM,cACjC,OAEF62C,EAAY,QAAU,EAChC,SAAmBC,IAAa,QAAS,CAC/B,GAAID,EAAY,QACd,OAEFA,EAAY,QAAU,EACvB,CACIG,KAGLzjD,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAI,KAAK,KAAK,GACd,KAAMwjD,EACN,MAAOC,EAAYh3C,CAAK,CACzB,CACX,GACA,CAAO,CAEJ,CACD,mBAAmB0M,EAASmqC,EAAalqC,EAAOsqC,EAAQ,YACtD,SAAW,CAACH,GAAUC,EAAS,IAAKpqC,GAC9BoqC,KAAc,WAAYxjD,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAoBwjD,QAC5CA,KAAc,SAAWA,KAAc,UACzCF,MAAgB,CACd,QAAS,EACrB,IAEQ,KAAK,kBAAkBnqC,EAASmqC,EAAaC,GAAUC,GAAWE,CAAM,EACpEF,KAAc,SAAW,GAACzjD,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,MAC/C,KAAK,kBAAkBoZ,EAASmqC,EAAa,OAAQ,OAAQ,IAAI,EACxDE,KAAc,QAAU,GAAC37C,GAAA,KAAK,KAAK,UAAV,MAAAA,GAAmB,QACrD,KAAK,kBAAkBsR,EAASmqC,EAAa,QAAS,QAAS,IAAI,EAI1E,CACD,oBAAoBnqC,EAAS,CAC3B,MAAMgD,EAAQ,KAAK,KAAK,iBAAmB,KAC3ChD,EAAQ,MAAM,gBAAkBgD,IAAU,KAAO,cAAgB7L,EAAM,KAAK,aAAa6L,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CACtH,CACD,cAAchD,EAAS,CACrB,MAAMwqC,EAAiB,CAAC,OAAQ,SAAU,OAAO,EAC3C,CACJ,UAAAxH,CACN,EAAQ,KAAK,KAAK,sBACRtgB,EAAW,KAAK,KAAK,sBAAsB,UAAY+Z,EACvDhiC,EAAQuF,EAAQ,MACtB,IAAIyqC,EACJ,MAAMC,GAAc,EACdC,GAAoB5vC,IAAK,KAAK,MAAM,GAAKA,EAAC,EAAI,GACpD,GAAI,KAAK,KAAK,UAAW,CACvB,MAAM/E,GAAS,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,EAAI00C,EAAW,EACrEE,GAAgB,KAAK,MAAM50C,IAAUmB,EAAM,YAAcurB,EAAS,GAAK,EACvEmoB,GAAa70C,GAAS40C,GAC5BH,EAAmB,KAAK,IAAI/nB,EAAUioB,GAAkBE,GAAa1zC,EAAM,WAAW,CAAC,CAC7F,KAAW,CACL,MAAMnB,GAAS,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,EAAI00C,EAAW,EAC3ED,EAAmB,KAAK,IAAI/nB,EAAUioB,GAAkB30C,GAASmB,EAAM,WAAW,CAAC,CACpF,CACDsD,EAAM,SAAW,QAAQgwC,CAAgB,4BACzChwC,EAAM,MAAQtD,EAAM,KAAK,aAAa6rC,EAAU,CAAC,EAAGA,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EAC1E,KAAK,KAAK,gBAAkB,OAC9BvoC,EAAM,UAAY+vC,EAAe,KAAK,KAAK,aAAa,EAE3D,CACD,aAAaxqC,EAAS8qC,EAAY,CAC5BA,EACF9qC,EAAQ,aAAa,WAAY,EAAI,EAErCA,EAAQ,gBAAgB,UAAU,EAEpCA,EAAQ,aAAa,gBAAiB8qC,CAAU,CACjD,CACF,CACD,MAAMxG,UAAoCM,CAAwB,CAChE,YAAYlsC,EAAY,CACtB,MAAMotC,EAAeptC,EAAW,aAAe,CAACA,EAAW,KAAK,eAAiB,CAAC,CAACA,EAAW,KAAK,WACnG,MAAMA,EAAY,CAChB,aAAAotC,CACN,CAAK,CACF,CACD,sBAAsBpyC,EAAMnN,EAAKxB,EAAOgmD,EAAc,CACpD,MAAMf,EAAU,KAAK,kBACrB,UAAWhqC,KAAW,KAAK,mBAAmBtM,EAAK,KAAMA,EAAK,EAAE,EAC1DsM,EAAQ,aACVA,EAAQ,WAAWzZ,CAAG,EAAIxB,GAE5BilD,EAAQ,SAAShqC,EAAQ,GAAI,CAC3B,CAAC+qC,CAAY,EAAGhmD,CACxB,CAAO,CAEJ,CACD,QAAS,SACP,MAAMilD,EAAU,KAAK,kBACfx6C,EAAK,KAAK,KAAK,GACrB,KAAK,UAAU,UAAU,IAAI,sBAAsB,EACnD,IAAIwQ,EAAU,KACd,GAAI,KAAK,YAAa,CACpB,MAAMonC,EAAa4C,EAAQ,SAASx6C,EAAI,CACtC,MAAO,KAAK,KAAK,UACzB,CAAO,EACD,IAAIsC,GAAcs1C,EAAW,OAAS,GACtC,MAAM4D,GAAShB,EAAQ,SAASx6C,EAAI,CAClC,UAAW,KAAK,KAAK,MACtB,CAAA,EAAE,UACCw7C,IAAUl5C,GAAY,OAASk5C,KACjCl5C,GAAcA,GAAY,MAAM,EAAGk5C,EAAM,GAE3C,IAAIC,GAAuB7D,EAAW,kBAAkBvgD,EAAA,KAAK,KAAK,cAAV,YAAAA,EAAuB,KAAK;AAAA,KAAS,KACzFokD,IAAwB,KAAK,KAAK,OACpCA,GAAuBA,GAAqB,WAAW,OAAQ,EAAE,GAEnE,MAAMd,GAAc,CAClB,UAAWr4C,GACX,eAAgBm5C,GAChB,mBAAoB,KACpB,UAAW,EACX,QAAS,EACjB,EACU,KAAK,KAAK,WACZjrC,EAAU,SAAS,cAAc,UAAU,EAC3CA,EAAQ,YAAcirC,IAAwBn5C,GAC1C,KAAK,KAAK,cACZkO,EAAQ,MAAM,UAAY,YAG5BA,EAAU,SAAS,cAAc,OAAO,EACxCA,EAAQ,KAAO,OACfA,EAAQ,aAAa,QAASirC,IAAwBn5C,EAAW,EAC7D,KAAK,KAAK,cACZkO,EAAQ,MAAM,UAAY,WAG1B,KAAK,KAAK,eACZA,EAAQ,OAAS,IAEnBikC,EAAqB,IAAIjkC,CAAO,EAChCA,EAAQ,aAAa,kBAAmBxQ,CAAE,EAC1CwQ,EAAQ,SAAW,KAAK,KAAK,SAC7BA,EAAQ,KAAO,KAAK,KAAK,UACzBA,EAAQ,SAAWgkC,EACnB,KAAK,aAAahkC,EAAS,KAAK,KAAK,QAAQ,EACzCgrC,KACFhrC,EAAQ,UAAYgrC,IAEtBhrC,EAAQ,iBAAiB,QAAS1M,IAAS,CACzC02C,EAAQ,SAASx6C,EAAI,CACnB,MAAO8D,GAAM,OAAO,KAC9B,CAAS,EACD,KAAK,sBAAsB0M,EAAS,QAAS1M,GAAM,OAAO,MAAO,OAAO,EACxE62C,GAAY,eAAiB,IACrC,CAAO,EACDnqC,EAAQ,iBAAiB,YAAa1M,IAAS,CAC7C,MAAMqE,GAAe,KAAK,KAAK,mBAAqB,GACpDqI,EAAQ,MAAQmqC,GAAY,UAAYxyC,GACxCwyC,GAAY,eAAiB,IACrC,CAAO,EACD,IAAIe,GAAe53C,IAAS,CAC1B,KAAM,CACJ,eAAA63C,EACD,EAAGhB,GACAgB,IAAmB,OACrB73C,GAAM,OAAO,MAAQ63C,IAEvB73C,GAAM,OAAO,WAAa,CAClC,EACM,GAAI,KAAK,iBAAmB,KAAK,aAAc,CAC7C0M,EAAQ,iBAAiB,QAAS1M,IAAS,CACzC,GAAI62C,GAAY,QACd,OAEF,KAAM,CACJ,OAAArvC,EACD,EAAGxH,GACA62C,GAAY,YACdrvC,GAAO,MAAQqvC,GAAY,WAE7BA,GAAY,mBAAqBrvC,GAAO,MACxCqvC,GAAY,UAAY,EACxBA,GAAY,QAAU,EAChC,CAAS,EACDnqC,EAAQ,iBAAiB,oBAAqBknC,IAAW,CACvD,KAAK,yBAAyBA,GAAQ,MAAM,EAC5C,MAAMD,GAAU,CACd,MAAM3zC,GAAO,CACX62C,GAAY,UAAY72C,GAAM,OAAO,OAAS,GAC9C02C,EAAQ,SAASx6C,EAAI,CACnB,MAAO26C,GAAY,UAAU,SAAU,CACvD,CAAe,EACD72C,GAAM,OAAO,MAAQ62C,GAAY,SAClC,EACD,eAAe72C,GAAO,CACpB,KAAM,CACJ,eAAA63C,EAChB,EAAkB73C,GAAM,OACV62C,GAAY,eAAiBgB,GACzBA,IAAmB,MAAwC73C,GAAM,SAAW,SAAS,gBACvFA,GAAM,OAAO,MAAQ63C,IAEvBnB,EAAQ,SAASx6C,EAAI,CACnB,eAAA27C,EAChB,CAAe,CACF,EACD,SAAS73C,GAAO,CACdA,GAAM,OAAO,kBAAkB,GAAGA,GAAM,OAAO,QAAQ,CACxD,EACD,UAAWA,IAAS,QAClB,KAAM,CACJ,UAAA83C,EAChB,EAAkB93C,GAAM,OACJ,CACJ,OAAAwH,EACD,EAAGxH,GACJ,GAAI83C,KAAc,EAAG,CACnBtwC,GAAO,gBAAgB,WAAW,EAClC,MACD,CACDA,GAAO,aAAa,YAAaswC,EAAS,EAC1C,IAAIrmD,GAAQolD,GAAY,UACpB,CAACplD,IAASA,GAAM,QAAUqmD,KAG9BrmD,GAAQA,GAAM,MAAM,EAAGqmD,EAAS,EAChCtwC,GAAO,MAAQqvC,GAAY,UAAYplD,GACvCilD,EAAQ,SAASx6C,EAAI,CACnB,MAAAzK,EAChB,CAAe,GACD8B,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA2I,EACA,KAAM,YACN,MAAAzK,GACA,WAAY,GACZ,UAAW,EACX,SAAU+V,GAAO,eACjB,OAAQA,GAAO,YAChB,CACjB,GACa,CACb,EACU,KAAK,0BAA0BmsC,GAASC,EAAO,CACzD,CAAS,EACDlnC,EAAQ,iBAAiB,UAAW1M,IAAS,QAC3C62C,GAAY,UAAY,EACxB,IAAIkB,GAAY,GAQhB,GAPI/3C,GAAM,MAAQ,SAChB+3C,GAAY,EACH/3C,GAAM,MAAQ,SAAW,CAAC,KAAK,KAAK,UAC7C+3C,GAAY,EACH/3C,GAAM,MAAQ,QACvB62C,GAAY,UAAY,GAEtBkB,KAAc,GAChB,OAEF,KAAM,CACJ,MAAAtmD,EACZ,EAAcuO,GAAM,OACN62C,GAAY,qBAAuBplD,KAGvColD,GAAY,mBAAqBplD,GACjColD,GAAY,UAAYplD,IACxB8B,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA2I,EACA,KAAM,YACN,MAAAzK,GACA,WAAY,GACZ,UAAAsmD,GACA,SAAU/3C,GAAM,OAAO,eACvB,OAAQA,GAAM,OAAO,YACtB,CACb,GACA,CAAS,EACD,MAAMg4C,GAAgBJ,GACtBA,GAAe,KACflrC,EAAQ,iBAAiB,OAAQ1M,IAAS,QACxC,GAAI,CAAC62C,GAAY,SAAW,CAAC72C,GAAM,cACjC,OAEF62C,GAAY,QAAU,GACtB,KAAM,CACJ,MAAAplD,EACZ,EAAcuO,GAAM,OACV62C,GAAY,UAAYplD,GACpBolD,GAAY,qBAAuBplD,MACrC8B,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA2I,EACA,KAAM,YACN,MAAAzK,GACA,WAAY,GACZ,UAAWolD,GAAY,UACvB,SAAU72C,GAAM,OAAO,eACvB,OAAQA,GAAM,OAAO,YACtB,CACf,IAEUg4C,GAAch4C,EAAK,CAC7B,CAAS,GACG1M,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,WACrBoZ,EAAQ,iBAAiB,cAAe1M,IAAS,QAC/C62C,GAAY,mBAAqB,KACjC,KAAM,CACJ,KAAAl/C,GACA,OAAA6P,EACD,EAAGxH,GACE,CACJ,MAAAvO,GACA,eAAAwmD,GACA,aAAAC,EACD,EAAG1wC,GACJ,IAAI2wC,GAAWF,GACbG,GAASF,GACX,OAAQl4C,GAAM,UAAS,CACrB,IAAK,qBACH,CACE,MAAMigC,GAAQxuC,GAAM,UAAU,EAAGwmD,EAAc,EAAE,MAAM,YAAY,EAC/DhY,KACFkY,IAAYlY,GAAM,CAAC,EAAE,QAEvB,KACD,CACH,IAAK,oBACH,CACE,MAAMA,GAAQxuC,GAAM,UAAUwmD,EAAc,EAAE,MAAM,YAAY,EAC5DhY,KACFmY,IAAUnY,GAAM,CAAC,EAAE,QAErB,KACD,CACH,IAAK,wBACCgY,KAAmBC,KACrBC,IAAY,GAEd,MACF,IAAK,uBACCF,KAAmBC,KACrBE,IAAU,GAEZ,KACH,CACDp4C,GAAM,eAAc,GACpBzM,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA2I,EACA,KAAM,YACN,MAAAzK,GACA,OAAQkG,IAAQ,GAChB,WAAY,GACZ,SAAAwgD,GACA,OAAAC,EACD,CACf,EACA,CAAW,EAEH,KAAK,mBAAmB1rC,EAASmqC,GAAa,CAAC,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,CAAC,EAAG72C,IAASA,GAAM,OAAO,KAAK,CACrO,CAID,GAHI43C,IACFlrC,EAAQ,iBAAiB,OAAQkrC,EAAY,EAE3C,KAAK,KAAK,KAAM,CAElB,MAAMS,IADa,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,GACxBX,GAC/BhrC,EAAQ,UAAU,IAAI,MAAM,EAC5BA,EAAQ,MAAM,cAAgB,QAAQ2rC,EAAS,iCAChD,CACP,MACM3rC,EAAU,SAAS,cAAc,KAAK,EACtCA,EAAQ,YAAc,KAAK,KAAK,WAChCA,EAAQ,MAAM,cAAgB,SAC9BA,EAAQ,MAAM,QAAU,aAE1B,YAAK,cAAcA,CAAO,EAC1B,KAAK,oBAAoBA,CAAO,EAChC,KAAK,4BAA4BA,CAAO,EACxC,KAAK,UAAU,OAAOA,CAAO,EACtB,KAAK,SACb,CACF,CACD,MAAM2kC,UAAyCC,CAAwB,CACrE,YAAYlsC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,CAAC,CAACA,EAAW,KAAK,YACtC,CAAK,CACF,CACF,CACD,MAAM8rC,UAAwCI,CAAwB,CACpE,YAAYlsC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,WAC/B,CAAK,CACF,CACD,QAAS,CACP,MAAMsxC,EAAU,KAAK,kBACf/+C,EAAO,KAAK,KACZuE,EAAKvE,EAAK,GAChB,IAAIlG,EAAQilD,EAAQ,SAASx6C,EAAI,CAC/B,MAAOvE,EAAK,cAAgBA,EAAK,UAClC,CAAA,EAAE,MACC,OAAOlG,GAAU,WACnBA,EAAQA,IAAU,MAClBilD,EAAQ,SAASx6C,EAAI,CACnB,MAAAzK,CACR,CAAO,GAEH,KAAK,UAAU,UAAU,IAAI,yBAA0B,UAAU,EACjE,MAAMib,EAAU,SAAS,cAAc,OAAO,EAC9C,OAAAikC,EAAqB,IAAIjkC,CAAO,EAChCA,EAAQ,aAAa,kBAAmBxQ,CAAE,EAC1CwQ,EAAQ,SAAW/U,EAAK,SACxB,KAAK,aAAa+U,EAAS,KAAK,KAAK,QAAQ,EAC7CA,EAAQ,KAAO,WACfA,EAAQ,KAAO/U,EAAK,UAChBlG,GACFib,EAAQ,aAAa,UAAW,EAAI,EAEtCA,EAAQ,aAAa,cAAe/U,EAAK,WAAW,EACpD+U,EAAQ,SAAWgkC,EACnBhkC,EAAQ,iBAAiB,SAAU1M,GAAS,CAC1C,KAAM,CACJ,KAAAnO,GACA,QAAAymD,EACR,EAAUt4C,EAAM,OACV,UAAWu4C,MAAY,KAAK,mBAAmB1mD,GAAMqK,CAAE,EAAG,CACxD,MAAMs8C,GAAaF,IAAWC,GAAS,cAAgB5gD,EAAK,YACxD4gD,GAAS,aACXA,GAAS,WAAW,QAAUC,IAEhC9B,EAAQ,SAAS6B,GAAS,GAAI,CAC5B,MAAOC,EACjB,CAAS,CACF,CACD9B,EAAQ,SAASx6C,EAAI,CACnB,MAAOo8C,EACf,CAAO,CACP,CAAK,EACD5rC,EAAQ,iBAAiB,YAAa1M,GAAS,CAC7C,MAAMqE,GAAe1M,EAAK,mBAAqB,MAC/CqI,EAAM,OAAO,QAAUqE,KAAiB1M,EAAK,WACnD,CAAK,EACG,KAAK,iBAAmB,KAAK,eAC/B+U,EAAQ,iBAAiB,oBAAqBknC,GAAW,CACvD,MAAMD,GAAU,CACd,MAAM3zC,GAAO,CACXA,GAAM,OAAO,QAAUA,GAAM,OAAO,QAAU,MAC9C02C,EAAQ,SAASx6C,EAAI,CACnB,MAAO8D,GAAM,OAAO,OAClC,CAAa,CACF,CACX,EACQ,KAAK,0BAA0B2zC,GAASC,CAAO,CACvD,CAAO,EACD,KAAK,mBAAmBlnC,EAAS,KAAM,CAAC,CAAC,SAAU,UAAU,EAAG,CAAC,SAAU,QAAQ,EAAG,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,CAAC,EAAG1M,GAASA,EAAM,OAAO,OAAO,GAE/Q,KAAK,oBAAoB0M,CAAO,EAChC,KAAK,4BAA4BA,CAAO,EACxC,KAAK,UAAU,OAAOA,CAAO,EACtB,KAAK,SACb,CACF,CACD,MAAMukC,UAA2CK,CAAwB,CACvE,YAAYlsC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,WAC/B,CAAK,CACF,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,yBAA0B,aAAa,EACpE,MAAMsxC,EAAU,KAAK,kBACf/+C,EAAO,KAAK,KACZuE,EAAKvE,EAAK,GAChB,IAAIlG,EAAQilD,EAAQ,SAASx6C,EAAI,CAC/B,MAAOvE,EAAK,aAAeA,EAAK,WACjC,CAAA,EAAE,MACC,OAAOlG,GAAU,WACnBA,EAAQA,IAAUkG,EAAK,YACvB++C,EAAQ,SAASx6C,EAAI,CACnB,MAAAzK,CACR,CAAO,GAEH,MAAMib,EAAU,SAAS,cAAc,OAAO,EA6B9C,GA5BAikC,EAAqB,IAAIjkC,CAAO,EAChCA,EAAQ,aAAa,kBAAmBxQ,CAAE,EAC1CwQ,EAAQ,SAAW/U,EAAK,SACxB,KAAK,aAAa+U,EAAS,KAAK,KAAK,QAAQ,EAC7CA,EAAQ,KAAO,QACfA,EAAQ,KAAO/U,EAAK,UAChBlG,GACFib,EAAQ,aAAa,UAAW,EAAI,EAEtCA,EAAQ,SAAWgkC,EACnBhkC,EAAQ,iBAAiB,SAAU1M,GAAS,CAC1C,KAAM,CACJ,KAAAnO,GACA,QAAAymD,EACR,EAAUt4C,EAAM,OACV,UAAWy4C,MAAS,KAAK,mBAAmB5mD,GAAMqK,CAAE,EAClDw6C,EAAQ,SAAS+B,GAAM,GAAI,CACzB,MAAO,EACjB,CAAS,EAEH/B,EAAQ,SAASx6C,EAAI,CACnB,MAAOo8C,EACf,CAAO,CACP,CAAK,EACD5rC,EAAQ,iBAAiB,YAAa1M,GAAS,CAC7C,MAAMqE,GAAe1M,EAAK,kBAC1BqI,EAAM,OAAO,QAAUqE,IAAiB,MAAsCA,KAAiB1M,EAAK,WAC1G,CAAK,EACG,KAAK,iBAAmB,KAAK,aAAc,CAC7C,MAAM+gD,EAAiB/gD,EAAK,YAC5B+U,EAAQ,iBAAiB,oBAAqBknC,IAAW,CACvD,MAAMD,GAAU,CACd,MAAO3zC,IAAS,CACd,MAAMs4C,GAAUI,IAAmB14C,GAAM,OAAO,MAChD,UAAWy4C,MAAS,KAAK,mBAAmBz4C,GAAM,OAAO,IAAI,EAAG,CAC9D,MAAMw4C,GAAaF,IAAWG,GAAM,KAAOv8C,EACvCu8C,GAAM,aACRA,GAAM,WAAW,QAAUD,IAE7B9B,EAAQ,SAAS+B,GAAM,GAAI,CACzB,MAAOD,EACvB,CAAe,CACF,CACF,CACX,EACQ,KAAK,0BAA0B7E,GAASC,EAAO,CACvD,CAAO,EACD,KAAK,mBAAmBlnC,EAAS,KAAM,CAAC,CAAC,SAAU,UAAU,EAAG,CAAC,SAAU,QAAQ,EAAG,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,CAAC,EAAG1M,IAASA,GAAM,OAAO,OAAO,CAC9Q,CACD,YAAK,oBAAoB0M,CAAO,EAChC,KAAK,4BAA4BA,CAAO,EACxC,KAAK,UAAU,OAAOA,CAAO,EACtB,KAAK,SACb,CACF,CACD,MAAMykC,UAA0CL,CAAsB,CACpE,YAAY1rC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,KAAK,aACpC,CAAK,CACF,CACD,QAAS,CACP,MAAM2K,EAAY,MAAM,SACxBA,EAAU,UAAU,IAAI,yBAA0B,YAAY,EAC1D,KAAK,KAAK,kBACZA,EAAU,MAAQ,KAAK,KAAK,iBAE9B,MAAM4oC,EAAc5oC,EAAU,UAC9B,OAAI,KAAK,iBAAmB,KAAK,cAAgB4oC,IAC/C,KAAK,4BAA4BA,CAAW,EAC5CA,EAAY,iBAAiB,oBAAqB/E,GAAW,CAC3D,KAAK,0BAA0B,GAAIA,CAAO,CAClD,CAAO,GAEI7jC,CACR,CACF,CACD,MAAMqhC,UAAsCE,CAAwB,CAClE,YAAYlsC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,WAC/B,CAAK,CACF,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,wBAAwB,EACrD,MAAMsxC,EAAU,KAAK,kBACfx6C,EAAK,KAAK,KAAK,GACf43C,EAAa4C,EAAQ,SAASx6C,EAAI,CACtC,MAAO,KAAK,KAAK,UACvB,CAAK,EACK08C,EAAgB,SAAS,cAAc,QAAQ,EACrDjI,EAAqB,IAAIiI,CAAa,EACtCA,EAAc,aAAa,kBAAmB18C,CAAE,EAChD08C,EAAc,SAAW,KAAK,KAAK,SACnC,KAAK,aAAaA,EAAe,KAAK,KAAK,QAAQ,EACnDA,EAAc,KAAO,KAAK,KAAK,UAC/BA,EAAc,SAAWlI,EACzB,IAAImI,EAAkB,KAAK,KAAK,OAAS,KAAK,KAAK,QAAQ,OAAS,EAC/D,KAAK,KAAK,QACbD,EAAc,KAAO,KAAK,KAAK,QAAQ,OACnC,KAAK,KAAK,cACZA,EAAc,SAAW,KAG7BA,EAAc,iBAAiB,YAAa54C,IAAS,CACnD,MAAMqE,GAAe,KAAK,KAAK,kBAC/B,UAAWy0C,MAAUF,EAAc,QACjCE,GAAO,SAAWA,GAAO,QAAUz0C,EAE3C,CAAK,EACD,UAAWy0C,MAAU,KAAK,KAAK,QAAS,CACtC,MAAMC,GAAgB,SAAS,cAAc,QAAQ,EACrDA,GAAc,YAAcD,GAAO,aACnCC,GAAc,MAAQD,GAAO,YACzBhF,EAAW,MAAM,SAASgF,GAAO,WAAW,IAC9CC,GAAc,aAAa,WAAY,EAAI,EAC3CF,EAAkB,IAEpBD,EAAc,OAAOG,EAAa,CACnC,CACD,IAAIC,EAAmB,KACvB,GAAIH,EAAiB,CACnB,MAAMI,GAAoB,SAAS,cAAc,QAAQ,EACzDA,GAAkB,MAAQ,IAC1BA,GAAkB,aAAa,SAAU,EAAI,EAC7CA,GAAkB,aAAa,WAAY,EAAI,EAC/CL,EAAc,QAAQK,EAAiB,EACvCD,EAAmB,IAAM,CACvBC,GAAkB,OAAM,EACxBL,EAAc,oBAAoB,QAASI,CAAgB,EAC3DA,EAAmB,IAC3B,EACMJ,EAAc,iBAAiB,QAASI,CAAgB,CACzD,CACD,MAAME,GAAWC,IAAY,CAC3B,MAAMtnD,GAAOsnD,GAAW,QAAU,cAC5B,CACJ,QAAA/nD,GACA,SAAAgoD,EACD,EAAGR,EACJ,OAAKQ,GAGE,MAAM,UAAU,OAAO,KAAKhoD,GAAS0nD,IAAUA,GAAO,QAAQ,EAAE,IAAIA,IAAUA,GAAOjnD,EAAI,CAAC,EAFxFT,GAAQ,gBAAkB,GAAK,KAAOA,GAAQA,GAAQ,aAAa,EAAES,EAAI,CAGxF,EACI,IAAIwnD,GAAiBH,GAAS,EAAK,EACnC,MAAMI,GAAWt5C,IAAS,CACxB,MAAM5O,GAAU4O,GAAM,OAAO,QAC7B,OAAO,MAAM,UAAU,IAAI,KAAK5O,GAAS0nD,KAChC,CACL,aAAcA,GAAO,YACrB,YAAaA,GAAO,KAC9B,EACO,CACP,EACI,OAAI,KAAK,iBAAmB,KAAK,cAC/BF,EAAc,iBAAiB,oBAAqBhF,IAAW,CAC7D,MAAMD,GAAU,CACd,MAAM3zC,GAAO,CACXg5C,GAAA,MAAAA,IACA,MAAMvnD,GAAQuO,GAAM,OAAO,MACrBu5C,GAAS,IAAI,IAAI,MAAM,QAAQ9nD,EAAK,EAAIA,GAAQ,CAACA,EAAK,CAAC,EAC7D,UAAWqnD,MAAUF,EAAc,QACjCE,GAAO,SAAWS,GAAO,IAAIT,GAAO,KAAK,EAE3CpC,EAAQ,SAASx6C,EAAI,CACnB,MAAOg9C,GAAS,EAAI,CAClC,CAAa,EACDG,GAAiBH,GAAS,EAAK,CAChC,EACD,kBAAkBl5C,GAAO,CACvB44C,EAAc,SAAW,EAC1B,EACD,OAAO54C,GAAO,CACZ,MAAM5O,GAAUwnD,EAAc,QACxBY,GAAQx5C,GAAM,OAAO,OAC3B5O,GAAQooD,EAAK,EAAE,SAAW,GAC1BZ,EAAc,OAAOY,EAAK,EACtBpoD,GAAQ,OAAS,GACT,MAAM,UAAU,UAAU,KAAKA,GAAS0nD,IAAUA,GAAO,QAAQ,IACjE,KACR1nD,GAAQ,CAAC,EAAE,SAAW,IAG1BslD,EAAQ,SAASx6C,EAAI,CACnB,MAAOg9C,GAAS,EAAI,EACpB,MAAOI,GAASt5C,EAAK,CACnC,CAAa,EACDq5C,GAAiBH,GAAS,EAAK,CAChC,EACD,MAAMl5C,GAAO,CACX,KAAO44C,EAAc,SAAW,GAC9BA,EAAc,OAAO,CAAC,EAExBlC,EAAQ,SAASx6C,EAAI,CACnB,MAAO,KACP,MAAO,CAAE,CACvB,CAAa,EACDm9C,GAAiBH,GAAS,EAAK,CAChC,EACD,OAAOl5C,GAAO,CACZ,KAAM,CACJ,MAAAw5C,GACA,aAAAC,GACA,YAAApE,EACd,EAAgBr1C,GAAM,OAAO,OACX05C,GAAcd,EAAc,SAASY,EAAK,EAC1CT,GAAgB,SAAS,cAAc,QAAQ,EACrDA,GAAc,YAAcU,GAC5BV,GAAc,MAAQ1D,GAClBqE,GACFA,GAAY,OAAOX,EAAa,EAEhCH,EAAc,OAAOG,EAAa,EAEpCrC,EAAQ,SAASx6C,EAAI,CACnB,MAAOg9C,GAAS,EAAI,EACpB,MAAOI,GAASt5C,EAAK,CACnC,CAAa,EACDq5C,GAAiBH,GAAS,EAAK,CAChC,EACD,MAAMl5C,GAAO,CACX,KAAM,CACJ,MAAAomC,EACd,EAAgBpmC,GAAM,OACV,KAAO44C,EAAc,SAAW,GAC9BA,EAAc,OAAO,CAAC,EAExB,UAAWrxC,MAAQ6+B,GAAO,CACxB,KAAM,CACJ,aAAAqT,GACA,YAAApE,EACD,EAAG9tC,GACEwxC,GAAgB,SAAS,cAAc,QAAQ,EACrDA,GAAc,YAAcU,GAC5BV,GAAc,MAAQ1D,GACtBuD,EAAc,OAAOG,EAAa,CACnC,CACGH,EAAc,QAAQ,OAAS,IACjCA,EAAc,QAAQ,CAAC,EAAE,SAAW,IAEtClC,EAAQ,SAASx6C,EAAI,CACnB,MAAOg9C,GAAS,EAAI,EACpB,MAAOI,GAASt5C,EAAK,CACnC,CAAa,EACDq5C,GAAiBH,GAAS,EAAK,CAChC,EACD,QAAQl5C,GAAO,CACb,MAAM25C,GAAU,IAAI,IAAI35C,GAAM,OAAO,OAAO,EAC5C,UAAW84C,MAAU94C,GAAM,OAAO,QAChC84C,GAAO,SAAWa,GAAQ,IAAIb,GAAO,KAAK,EAE5CpC,EAAQ,SAASx6C,EAAI,CACnB,MAAOg9C,GAAS,EAAI,CAClC,CAAa,EACDG,GAAiBH,GAAS,EAAK,CAChC,EACD,SAASl5C,GAAO,CACdA,GAAM,OAAO,SAAW,CAACA,GAAM,OAAO,QACvC,CACX,EACQ,KAAK,0BAA0B2zC,GAASC,EAAO,CACvD,CAAO,EACDgF,EAAc,iBAAiB,QAAS54C,IAAS,QAC/C,MAAMq1C,GAAc6D,GAAS,EAAI,EACjCxC,EAAQ,SAASx6C,EAAI,CACnB,MAAOm5C,EACjB,CAAS,EACDr1C,GAAM,eAAc,GACpBzM,GAAA,KAAK,YAAY,WAAjB,MAAAA,GAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA2I,EACA,KAAM,YACN,MAAOm9C,GACP,SAAUhE,GACV,WAAY,GACZ,UAAW,EACX,QAAS,EACV,CACX,EACA,CAAO,EACD,KAAK,mBAAmBuD,EAAe,KAAM,CAAC,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,EAAG,CAAC,QAAS,QAAQ,EAAG,CAAC,QAAS,UAAU,CAAC,EAAG54C,IAASA,GAAM,OAAO,KAAK,GAE/Q44C,EAAc,iBAAiB,QAAS,SAAU54C,GAAO,CACvD02C,EAAQ,SAASx6C,EAAI,CACnB,MAAOg9C,GAAS,EAAI,CAC9B,CAAS,CACT,CAAO,EAEC,KAAK,KAAK,OACZ,KAAK,cAAcN,CAAa,EAElC,KAAK,oBAAoBA,CAAa,EACtC,KAAK,4BAA4BA,CAAa,EAC9C,KAAK,UAAU,OAAOA,CAAa,EAC5B,KAAK,SACb,CACF,CACD,MAAMrH,UAA+Be,CAAkB,CACrD,YAAYltC,EAAY,CACtB,KAAM,CACJ,KAAAzN,EACA,SAAAiiD,CACD,EAAGx0C,EACJ,MAAMA,EAAY,CAChB,aAAcktC,EAAkB,cAAc36C,CAAI,CACxD,CAAK,EACD,KAAK,SAAWiiD,CACjB,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,iBAAiB,EAC9C,MAAM5E,EAAQ,IAAI6E,EAAa,CAC7B,UAAW,KAAK,UAChB,MAAO,KAAK,KAAK,MACjB,SAAU,KAAK,KAAK,SACpB,iBAAkB,KAAK,KAAK,iBAC5B,YAAa,KAAK,KAAK,YACvB,SAAU,KAAK,KAAK,SACpB,KAAM,KAAK,KAAK,KAChB,WAAY,KAAK,KAAK,YAAc,KACpC,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,KAAM,KAAK,KAAK,IACtB,CAAK,EACKC,EAAa,CAAA,EACnB,UAAWptC,KAAW,KAAK,SACzBA,EAAQ,MAAQsoC,EAChB8E,EAAW,KAAKptC,EAAQ,KAAK,EAAE,EAC/BA,EAAQ,iBAAgB,EAE1B,YAAK,UAAU,aAAa,gBAAiBotC,EAAW,IAAI59C,GAAM,GAAG2H,EAAM,gBAAgB,GAAG3H,CAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EACtG,KAAK,SACb,CACF,CACD,MAAM29C,CAAa,CAkBjB,YAAY,CACV,UAAA9pC,EACA,MAAAL,EACA,SAAAkqC,EACA,SAAAhH,EACA,iBAAAmH,EACA,YAAAlH,EACA,SAAAC,GACA,OAAAhuC,GACA,KAAA3P,GACA,WAAA6kD,GACA,KAAAC,EACJ,EAAK,CAgIH1iD,EAAA,KAAA2iD,IAQA3iD,EAAA,KAAA4iD,IAYA5iD,EAAA,KAAA6iD,IAWA7iD,EAAA,KAAA8iD,IA5LA9iD,EAAA,KAAA+iD,EAAmB,MACnB/iD,EAAA,KAAAgjD,GAAgB98C,EAAA,KAAKy8C,GAAAM,IAAS,KAAK,IAAI,GACvCjjD,EAAA,KAAAkjD,GAAah9C,EAAA,KAAK48C,GAAAK,IAAM,KAAK,IAAI,GACjCnjD,EAAA,KAAAojD,GAAal9C,EAAA,KAAK28C,GAAAQ,IAAM,KAAK,IAAI,GACjCrjD,EAAA,KAAAsjD,GAAep9C,EAAA,KAAK08C,GAAAW,IAAQ,KAAK,IAAI,GACrCvjD,EAAA,KAAAg3C,GAAS,MACTh3C,EAAA,KAAA0b,GAAa,MACb1b,EAAA,KAAAwjD,GAAe,MACfxjD,EAAA,KAAAyjD,GAAY,MACZzjD,EAAA,KAAA0jD,GAAU,MACV1jD,EAAA,KAAA2jD,GAAc,MACd3jD,EAAA,KAAA4jD,GAAU,IACV5jD,EAAA,KAAA6jD,GAAS,MACT7jD,EAAA,KAAA8jD,GAAQ,MACR9jD,EAAA,KAAA+jD,GAAY,MACZ/jD,EAAA,KAAAgkD,GAAY,MACZhkD,EAAA,KAAAikD,GAAc,WAcZ5jD,GAAA,KAAKqb,GAAalD,GAClBnY,GAAA,KAAK2jD,GAAY3I,GACjBh7C,GAAA,KAAKmjD,GAAelI,GACpBj7C,GAAA,KAAK0jD,GAAYxI,IACjBl7C,GAAA,KAAKqjD,GAAUn2C,IACflN,GAAA,KAAK22C,GAAS7+B,GACd9X,GAAA,KAAKyjD,GAAQlmD,IACbyC,GAAA,KAAKsjD,GAAclB,IACnBpiD,GAAA,KAAKojD,GAAYpB,GACjB,MAAM6B,GAAav2C,EAAe,cAAc,aAAa60C,CAAgB,EACzE0B,IACF7jD,GAAA,KAAK0iD,EAAmBx1C,GAAO,KAAK,IAAI,yBAA0B,CAChE,KAAM22C,GAAW,mBAAoB,EACrC,KAAMA,GAAW,mBAAoB,CAC7C,CAAO,GAEH,KAAK,QAAU7B,EAAS,QAAQttC,IAAKA,GAAE,0BAAyB,CAAE,EAClE,UAAWI,MAAW,KAAK,QACzBA,GAAQ,iBAAiB,QAAS5U,EAAA,KAAK+iD,GAAY,EACnDnuC,GAAQ,iBAAiB,aAAc5U,EAAA,KAAK6iD,GAAU,EACtDjuC,GAAQ,iBAAiB,aAAc5U,EAAA,KAAK2iD,GAAU,EACtD/tC,GAAQ,UAAU,IAAI,kBAAkB,EAE1C,UAAWA,MAAWktC,GACpBrmD,GAAAmZ,GAAQ,YAAR,MAAAnZ,GAAmB,iBAAiB,UAAWuE,EAAA,KAAKyiD,KAEtDziD,EAAA,KAAKmb,IAAW,OAAS,GACrBgnC,IACFx8C,EAAA,KAAK08C,GAAAW,IAAL,UAEH,CACD,QAAS,CACP,GAAIhjD,EAAA,KAAKsjD,IACP,OAEF,KAAM,CACJ,KAAM,CACJ,KAAAM,CACD,EACD,SAAU,CACR,QAAS,CACP,UAAA/0C,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,CACD,CACF,CACP,EAAQhP,EAAA,KAAKmjD,IACHjG,EAAQp9C,GAAA,KAAKwjD,GAAS,SAAS,cAAc,KAAK,GAExD,GADApG,EAAM,UAAY,QACdl9C,EAAA,KAAKy2C,IAAQ,CACf,MAAMoN,GAAY3G,EAAM,MAAM,aAAenxC,EAAM,KAAK,aAAa,GAAG/L,EAAA,KAAKy2C,GAAM,EAC/E,IAAI,SAAS,mBAAoB,oCAAoC,EACvEyG,EAAM,MAAM,gBAAkB,sBAAsB2G,EAAS,eAG7D3G,EAAM,MAAM,gBAAkBnxC,EAAM,KAAK,aAAa,GAAG/L,EAAA,KAAKy2C,IAAO,IAAIz5C,IAAK,KAAK,MAAM,IAAsB,IAAMA,IAAKA,EAAC,CAAC,CAAC,CAEhI,CACD,MAAM8mD,GAAS,SAAS,cAAc,MAAM,EAC5CA,GAAO,UAAY,SACnB,MAAMC,GAAQ,SAAS,cAAc,IAAI,EAOzC,GANAD,GAAO,OAAOC,EAAK,EAClB,CACC,IAAKA,GAAM,IACX,IAAKA,GAAM,WACjB,EAAQ/jD,EAAA,KAAKyjD,IACTvG,EAAM,OAAO4G,EAAM,EACf9jD,EAAA,KAAKwiD,GAAkB,CACzB,MAAMP,GAAmB,SAAS,cAAc,MAAM,EACtDA,GAAiB,UAAU,IAAI,WAAW,EAC1CjiD,EAAA,KAAKwiD,GAAiB,KAAKwB,IAAa,CACtC/B,GAAiB,YAAc+B,EACvC,CAAO,EACDF,GAAO,OAAO7B,EAAgB,CAC/B,CACD,MAAMlH,GAAc/6C,EAAA,KAAKijD,IACnBjI,GAAWh7C,EAAA,KAAKwjD,IACtB,GAAIxI,IAAA,MAAAA,GAAU,MAAQ,EAACD,IAAA,MAAAA,GAAa,MAAOA,GAAY,MAAQC,GAAS,KACtErC,EAAW,SAAS,OAAO,CACzB,QAASqC,GAAS,KAClB,OAAQ,WACR,IAAKkC,CACb,CAAO,EACDA,EAAM,UAAU,UAAU,IAAI,WAAY,cAAc,MACnD,CACL,MAAM+G,GAAW,KAAK,gBAAgBlJ,EAAW,EACjDmC,EAAM,OAAO+G,EAAQ,CACtB,CACD,IAAIC,GAAgB,CAAC,CAAClkD,EAAA,KAAKojD,IACvB/lD,GAAO6mD,GAAgBlkD,EAAA,KAAKojD,IAAcpjD,EAAA,KAAKujD,IACnD,UAAW3uC,MAAW5U,EAAA,KAAKkjD,IACzB,GAAI,CAAC7lD,IAAQ0O,EAAM,KAAK,UAAU6I,GAAQ,KAAK,KAAMvX,EAAI,IAAM,KAAM,CACnEA,GAAOuX,GAAQ,KAAK,KACpBsvC,GAAgB,GAChB,KACD,CAEH,MAAMC,GAAiBp4C,EAAM,KAAK,cAAc,CAAC1O,GAAK,CAAC,EAAGumD,EAAK,CAAC,EAAIvmD,GAAK,CAAC,EAAIumD,EAAK,CAAC,EAAGvmD,GAAK,CAAC,EAAGumD,EAAK,CAAC,EAAIvmD,GAAK,CAAC,EAAIumD,EAAK,CAAC,CAAC,CAAC,EACtHQ,GAAoC,EACpCp0C,GAAck0C,GAAgB7mD,GAAK,CAAC,EAAIA,GAAK,CAAC,EAAI+mD,GAAoC,EACtFC,GAAYF,GAAe,CAAC,EAAIn0C,GAChCs0C,GAAWH,GAAe,CAAC,EAC3B,CACJ,MAAA90C,EACN,EAAQrP,EAAA,KAAKmb,IACT9L,GAAM,KAAO,GAAG,KAAOg1C,GAAYt1C,GAASF,CAAS,IACrDQ,GAAM,IAAM,GAAG,KAAOi1C,GAAWt1C,GAASF,CAAU,IACpD9O,EAAA,KAAKmb,IAAW,OAAO+hC,CAAK,CAC7B,CACD,gBAAgB,CACd,IAAAjiD,EACA,IAAAspD,CACJ,EAAK,CACD,MAAMloD,EAAI,SAAS,cAAc,GAAG,EACpCA,EAAE,UAAU,IAAI,cAAc,EAC9BA,EAAE,IAAMkoD,EACR,MAAMC,EAAQvpD,EAAI,MAAM,cAAc,EACtC,QAASH,EAAI,EAAGqE,EAAKqlD,EAAM,OAAQ1pD,EAAIqE,EAAI,EAAErE,EAAG,CAC9C,MAAMw9C,GAAOkM,EAAM1pD,CAAC,EACpBuB,EAAE,OAAO,SAAS,eAAei8C,EAAI,CAAC,EAClCx9C,EAAIqE,EAAK,GACX9C,EAAE,OAAO,SAAS,cAAc,IAAI,CAAC,CAExC,CACD,OAAOA,CACR,CAwCD,WAAY,CACVyD,GAAA,KAAK4jD,GAAc,KAAK,WACnB1jD,EAAA,KAAK0jD,MAGV1jD,EAAA,KAAKmb,IAAW,OAAS,GAC1B,CACD,WAAY,CACLnb,EAAA,KAAK0jD,MAGV5jD,GAAA,KAAK4jD,GAAc,IACnB1jD,EAAA,KAAKmb,IAAW,OAAS,GAC1B,CACD,IAAI,WAAY,CACd,OAAOnb,EAAA,KAAKmb,IAAW,SAAW,EACnC,CACF,CArNCqnC,EAAA,YACAC,GAAA,YACAE,GAAA,YACAE,GAAA,YACAE,GAAA,YACAtM,GAAA,YACAt7B,GAAA,YACA8nC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YA6IAtB,GAAA,YAAAM,GAAQ,SAACx6C,EAAO,CACVA,EAAM,QAAUA,EAAM,UAAYA,EAAM,SAAWA,EAAM,UAGzDA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,UAAYlI,EAAA,KAAKqjD,MAC1D19C,EAAA,KAAK08C,GAAAW,IAAL,UAEH,EACDX,GAAA,YAAAW,GAAO,UAAG,CACRljD,GAAA,KAAKujD,GAAU,CAACrjD,EAAA,KAAKqjD,KACjBrjD,EAAA,KAAKqjD,KACP19C,EAAA,KAAK28C,GAAAQ,IAAL,WACA9iD,EAAA,KAAKmb,IAAW,iBAAiB,QAASnb,EAAA,KAAK+iD,GAAY,EAC3D/iD,EAAA,KAAKmb,IAAW,iBAAiB,UAAWnb,EAAA,KAAKyiD,GAAa,IAE9D98C,EAAA,KAAK48C,GAAAK,IAAL,WACA5iD,EAAA,KAAKmb,IAAW,oBAAoB,QAASnb,EAAA,KAAK+iD,GAAY,EAC9D/iD,EAAA,KAAKmb,IAAW,oBAAoB,UAAWnb,EAAA,KAAKyiD,GAAa,EAEpE,EACDH,GAAA,YAAAQ,GAAK,UAAG,CACD9iD,EAAA,KAAKsjD,KACR,KAAK,OAAM,EAER,KAAK,UAGCtjD,EAAA,KAAKqjD,KACdrjD,EAAA,KAAKmb,IAAW,UAAU,IAAI,SAAS,GAHvCnb,EAAA,KAAKmb,IAAW,OAAS,GACzBnb,EAAA,KAAKmb,IAAW,MAAM,OAAS,SAASnb,EAAA,KAAKmb,IAAW,MAAM,MAAM,EAAI,IAI3E,EACDonC,GAAA,YAAAK,GAAK,UAAG,CACN5iD,EAAA,KAAKmb,IAAW,UAAU,OAAO,SAAS,EACtC,EAAAnb,EAAA,KAAKqjD,KAAW,CAAC,KAAK,aAG1BrjD,EAAA,KAAKmb,IAAW,OAAS,GACzBnb,EAAA,KAAKmb,IAAW,MAAM,OAAS,SAASnb,EAAA,KAAKmb,IAAW,MAAM,MAAM,EAAI,IACzE,EAmBH,MAAMu+B,UAAkCc,CAAkB,CACxD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EACD,KAAK,YAAcA,EAAW,KAAK,YACnC,KAAK,aAAeA,EAAW,KAAK,aACpC,KAAK,qBAAuBvB,EAAM,qBAAqB,QACxD,CACD,QAAS,CAEP,GADA,KAAK,UAAU,UAAU,IAAI,oBAAoB,EAC7C,KAAK,YAAa,CACpB,MAAM04C,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,UAAU,IAAI,uBAAuB,EAC7CA,EAAQ,aAAa,OAAQ,SAAS,EACtC,UAAWnM,KAAQ,KAAK,YAAa,CACnC,MAAMoM,EAAW,SAAS,cAAc,MAAM,EAC9CA,EAAS,YAAcpM,EACvBmM,EAAQ,OAAOC,CAAQ,CACxB,CACD,KAAK,UAAU,OAAOD,CAAO,CAC9B,CACD,MAAI,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEnB,KAAK,mBAAkB,EAChB,KAAK,SACb,CACF,CACD3uD,EAAQ,0BAA4B4jD,EACpC,MAAMC,UAA8Ba,CAAkB,CAEpD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH7N,EAAA,KAAAklD,EAAQ,KAMP,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,gBAAgB,EAC7C,MAAM9kD,EAAO,KAAK,KACZ,CACJ,MAAA8K,EACA,OAAAC,CACN,EAAQkuC,EAAYj5C,EAAK,IAAI,EACnBwV,EAAM,KAAK,WAAW,OAAO1K,EAAOC,EAAQ,EAAI,EAChD0tC,EAAOx4C,GAAA,KAAK6kD,EAAQ,KAAK,WAAW,cAAc,UAAU,GAClE,OAAArM,EAAK,aAAa,KAAMz4C,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9Dy4C,EAAK,aAAa,KAAMz4C,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9Dy4C,EAAK,aAAa,KAAMz4C,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9Dy4C,EAAK,aAAa,KAAMz4C,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9Dy4C,EAAK,aAAa,eAAgBz4C,EAAK,YAAY,OAAS,CAAC,EAC7Dy4C,EAAK,aAAa,SAAU,aAAa,EACzCA,EAAK,aAAa,OAAQ,aAAa,EACvCjjC,EAAI,OAAOijC,CAAI,EACf,KAAK,UAAU,OAAOjjC,CAAG,EACrB,CAACxV,EAAK,UAAY,KAAK,cACzB,KAAK,aAAY,EAEZ,KAAK,SACb,CACD,2BAA4B,CAC1B,OAAOG,EAAA,KAAK2kD,EACb,CACD,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC7C,CACF,CApCCA,EAAA,YAqCF,MAAM/K,UAAgCY,CAAkB,CAEtD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH7N,EAAA,KAAAmlD,EAAU,KAMT,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,kBAAkB,EAC/C,MAAM/kD,EAAO,KAAK,KACZ,CACJ,MAAA8K,EACA,OAAAC,CACN,EAAQkuC,EAAYj5C,EAAK,IAAI,EACnBwV,EAAM,KAAK,WAAW,OAAO1K,EAAOC,EAAQ,EAAI,EAChDiyC,EAAch9C,EAAK,YAAY,MAC/BglD,GAAS/kD,GAAA,KAAK8kD,EAAU,KAAK,WAAW,cAAc,UAAU,GACtE,OAAAC,GAAO,aAAa,IAAKhI,EAAc,CAAC,EACxCgI,GAAO,aAAa,IAAKhI,EAAc,CAAC,EACxCgI,GAAO,aAAa,QAASl6C,EAAQkyC,CAAW,EAChDgI,GAAO,aAAa,SAAUj6C,EAASiyC,CAAW,EAClDgI,GAAO,aAAa,eAAgBhI,GAAe,CAAC,EACpDgI,GAAO,aAAa,SAAU,aAAa,EAC3CA,GAAO,aAAa,OAAQ,aAAa,EACzCxvC,EAAI,OAAOwvC,EAAM,EACjB,KAAK,UAAU,OAAOxvC,CAAG,EACrB,CAACxV,EAAK,UAAY,KAAK,cACzB,KAAK,aAAY,EAEZ,KAAK,SACb,CACD,2BAA4B,CAC1B,OAAOG,EAAA,KAAK4kD,EACb,CACD,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC7C,CACF,CArCCA,EAAA,YAsCF,MAAM/K,UAAgCW,CAAkB,CAEtD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH7N,EAAA,KAAAqlD,GAAU,KAMT,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,kBAAkB,EAC/C,MAAMjlD,EAAO,KAAK,KACZ,CACJ,MAAA8K,EACA,OAAAC,CACN,EAAQkuC,EAAYj5C,EAAK,IAAI,EACnBwV,EAAM,KAAK,WAAW,OAAO1K,EAAOC,EAAQ,EAAI,EAChDiyC,EAAch9C,EAAK,YAAY,MAC/BklD,GAASjlD,GAAA,KAAKglD,GAAU,KAAK,WAAW,cAAc,aAAa,GACzE,OAAAC,GAAO,aAAa,KAAMp6C,EAAQ,CAAC,EACnCo6C,GAAO,aAAa,KAAMn6C,EAAS,CAAC,EACpCm6C,GAAO,aAAa,KAAMp6C,EAAQ,EAAIkyC,EAAc,CAAC,EACrDkI,GAAO,aAAa,KAAMn6C,EAAS,EAAIiyC,EAAc,CAAC,EACtDkI,GAAO,aAAa,eAAgBlI,GAAe,CAAC,EACpDkI,GAAO,aAAa,SAAU,aAAa,EAC3CA,GAAO,aAAa,OAAQ,aAAa,EACzC1vC,EAAI,OAAO0vC,EAAM,EACjB,KAAK,UAAU,OAAO1vC,CAAG,EACrB,CAACxV,EAAK,UAAY,KAAK,cACzB,KAAK,aAAY,EAEZ,KAAK,SACb,CACD,2BAA4B,CAC1B,OAAOG,EAAA,KAAK8kD,GACb,CACD,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC7C,CACF,CArCCA,GAAA,YAsCF,MAAMhL,UAAkCU,CAAkB,CAExD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH7N,EAAA,KAAAulD,GAAY,MAMV,KAAK,mBAAqB,qBAC1B,KAAK,eAAiB,cACvB,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,KAAK,kBAAkB,EACpD,MAAMnlD,EAAO,KAAK,KACZ,CACJ,MAAA8K,EACA,OAAAC,CACN,EAAQkuC,EAAYj5C,EAAK,IAAI,EACnBwV,EAAM,KAAK,WAAW,OAAO1K,EAAOC,EAAQ,EAAI,EACtD,IAAI0iB,EAAS,CAAA,EACb,UAAW23B,MAAcplD,EAAK,SAAU,CACtC,MAAM8P,GAAIs1C,GAAW,EAAIplD,EAAK,KAAK,CAAC,EAC9B+P,GAAI/P,EAAK,KAAK,CAAC,EAAIolD,GAAW,EACpC33B,EAAO,KAAK3d,GAAI,IAAMC,EAAC,CACxB,CACD0d,EAASA,EAAO,KAAK,GAAG,EACxB,MAAM43B,GAAWplD,GAAA,KAAKklD,GAAY,KAAK,WAAW,cAAc,KAAK,cAAc,GACnF,OAAAE,GAAS,aAAa,SAAU53B,CAAM,EACtC43B,GAAS,aAAa,eAAgBrlD,EAAK,YAAY,OAAS,CAAC,EACjEqlD,GAAS,aAAa,SAAU,aAAa,EAC7CA,GAAS,aAAa,OAAQ,aAAa,EAC3C7vC,EAAI,OAAO6vC,EAAQ,EACnB,KAAK,UAAU,OAAO7vC,CAAG,EACrB,CAACxV,EAAK,UAAY,KAAK,cACzB,KAAK,aAAY,EAEZ,KAAK,SACb,CACD,2BAA4B,CAC1B,OAAOG,EAAA,KAAKglD,GACb,CACD,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC7C,CACF,CA1CCA,GAAA,YA2CF,MAAM/K,UAAiCH,CAA0B,CAC/D,YAAYxsC,EAAY,CACtB,MAAMA,CAAU,EAChB,KAAK,mBAAqB,oBAC1B,KAAK,eAAiB,aACvB,CACF,CACD,MAAMysC,WAA+BS,CAAkB,CACrD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,CACF,CACD,QAAS,CACP,YAAK,UAAU,UAAU,IAAI,iBAAiB,EAC1C,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEZ,KAAK,SACb,CACF,CACD,MAAM0sC,WAA6BQ,CAAkB,CAEnD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH7N,EAAA,KAAA0lD,GAAa,CAAA,GAMX,KAAK,mBAAqB,gBAC1B,KAAK,eAAiB,eACtB,KAAK,qBAAuBp5C,EAAM,qBAAqB,GACxD,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,KAAK,kBAAkB,EACpD,MAAMlM,EAAO,KAAK,KACZ,CACJ,MAAA8K,EACA,OAAAC,CACN,EAAQkuC,EAAYj5C,EAAK,IAAI,EACnBwV,EAAM,KAAK,WAAW,OAAO1K,EAAOC,EAAQ,EAAI,EACtD,UAAWw6C,KAAWvlD,EAAK,SAAU,CACnC,IAAIytB,GAAS,CAAA,EACb,UAAW23B,MAAcG,EAAS,CAChC,MAAMz1C,GAAIs1C,GAAW,EAAIplD,EAAK,KAAK,CAAC,EAC9B+P,GAAI/P,EAAK,KAAK,CAAC,EAAIolD,GAAW,EACpC33B,GAAO,KAAK,GAAG3d,EAAC,IAAIC,EAAC,EAAE,CACxB,CACD0d,GAASA,GAAO,KAAK,GAAG,EACxB,MAAM43B,GAAW,KAAK,WAAW,cAAc,KAAK,cAAc,EAClEllD,EAAA,KAAKmlD,IAAW,KAAKD,EAAQ,EAC7BA,GAAS,aAAa,SAAU53B,EAAM,EACtC43B,GAAS,aAAa,eAAgBrlD,EAAK,YAAY,OAAS,CAAC,EACjEqlD,GAAS,aAAa,SAAU,aAAa,EAC7CA,GAAS,aAAa,OAAQ,aAAa,EACvC,CAACrlD,EAAK,UAAY,KAAK,cACzB,KAAK,aAAY,EAEnBwV,EAAI,OAAO6vC,EAAQ,CACpB,CACD,YAAK,UAAU,OAAO7vC,CAAG,EAClB,KAAK,SACb,CACD,2BAA4B,CAC1B,OAAOrV,EAAA,KAAKmlD,GACb,CACD,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC7C,CACF,CA9CCA,GAAA,YA+CFrvD,EAAQ,qBAAuBkkD,GAC/B,MAAME,UAAmCM,CAAkB,CACzD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACF,CACD,QAAS,CACP,MAAI,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEnB,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAC3C,KAAK,SACb,CACF,CACD,MAAM6sC,WAAmCK,CAAkB,CACzD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACF,CACD,QAAS,CACP,MAAI,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEnB,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAC3C,KAAK,SACb,CACF,CACD,MAAM8sC,WAAkCI,CAAkB,CACxD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACF,CACD,QAAS,CACP,MAAI,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEnB,KAAK,UAAU,UAAU,IAAI,oBAAoB,EAC1C,KAAK,SACb,CACF,CACD,MAAM+sC,WAAmCG,CAAkB,CACzD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACF,CACD,QAAS,CACP,MAAI,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEnB,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAC3C,KAAK,SACb,CACF,CACD,MAAMgtC,WAA+BE,CAAkB,CACrD,YAAYltC,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,CACF,CACD,QAAS,CACP,YAAK,UAAU,UAAU,IAAI,iBAAiB,EAC1C,CAAC,KAAK,KAAK,UAAY,KAAK,cAC9B,KAAK,aAAY,EAEZ,KAAK,SACb,CACF,CACDxX,EAAQ,uBAAyBwkD,GACjC,MAAMC,UAAwCC,CAAkB,CAE9D,YAAYltC,EAAY,OACtB,MAAMA,EAAY,CAChB,aAAc,EACpB,CAAK,EAqDH7N,EAAA,KAAA4lD,GAzDA5lD,EAAA,KAAA6lD,GAAW,MAKT,KAAM,CACJ,SAAA7gC,EACA,QAAAggC,CACN,EAAQ,KAAK,KAAK,KACd,KAAK,YAAer3C,EAAe,oBAAoBqX,EAAU,EAAI,EACrE,KAAK,QAAUggC,GACfhpD,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,2BAA4B,CAC9D,OAAQ,KACR,SAAAgpB,EACA,QAAAggC,CACN,EACG,CACD,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,0BAA0B,EACvD,KAAM,CACJ,UAAAxsC,EACA,KAAApY,CACD,EAAG,KACJ,IAAI0lD,EACA1lD,EAAK,eAAiBA,EAAK,YAAc,EAC3C0lD,EAAU,SAAS,cAAc,KAAK,GAEtCA,EAAU,SAAS,cAAc,KAAK,EACtCA,EAAQ,IAAM,GAAG,KAAK,kBAAkB,cAAc,aAAa,KAAK1lD,EAAK,IAAI,EAAI,YAAc,SAAS,OACxGA,EAAK,WAAaA,EAAK,UAAY,IACrC0lD,EAAQ,MAAQ,mBAAmB,KAAK,MAAM1lD,EAAK,UAAY,GAAG,CAAC,QAGvE0lD,EAAQ,iBAAiB,WAAY5/C,EAAA,KAAK0/C,EAAAG,IAAU,KAAK,IAAI,CAAC,EAC9D1lD,GAAA,KAAKwlD,GAAWC,GAChB,KAAM,CACJ,MAAAx0C,CACN,EAAQhF,EAAM,YAAY,SACtB,OAAAkM,EAAU,iBAAiB,UAAWpO,GAAO,CACvCA,EAAI,MAAQ,UAAYkH,EAAQlH,EAAI,QAAUA,EAAI,UACpDlE,EAAA,KAAK0/C,EAAAG,IAAL,UAER,CAAK,EACG,CAAC3lD,EAAK,UAAY,KAAK,aACzB,KAAK,aAAY,EAEjB0lD,EAAQ,UAAU,IAAI,kBAAkB,EAE1CttC,EAAU,OAAOstC,CAAO,EACjBttC,CACR,CACD,2BAA4B,CAC1B,OAAOjY,EAAA,KAAKslD,GACb,CACD,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC7C,CAIF,CA5DCA,GAAA,YAyDAD,EAAA,YAAAG,GAAS,UAAG,QACV/pD,EAAA,KAAK,kBAAL,MAAAA,EAAsB,mBAAmB,KAAK,UAAW,KAAK,QAAS,KAAK,SAC7E,EAEH,MAAMgqD,CAAgB,CAIpB,YAAY,CACV,IAAA9zC,EACA,qBAAAqiC,EACA,oBAAAxuC,EACA,KAAA4J,EACA,KAAA1F,EACA,SAAAtE,CACJ,EAAK,CAUH3F,EAAA,KAAAimD,IAoFAjmD,EAAA,KAAAkmD,IAxGAlmD,EAAA,KAAA60C,GAAwB,MACxB70C,EAAA,KAAAmmD,GAAuB,MACvBnmD,EAAA,KAAAomD,GAAuB,IAAI,KASzB,KAAK,IAAMl0C,EACX7R,GAAA,KAAKw0C,GAAwBN,GAC7Bl0C,GAAA,KAAK8lD,GAAuBpgD,GAC5B,KAAK,KAAO4J,EACZ,KAAK,KAAO1F,EACZ,KAAK,SAAWtE,EAChB,KAAK,OAAS,EACd,KAAK,OAAL,KAAK,KAASszC,GAAmB,SAClC,CAOD,MAAM,OAAO71C,EAAQ,CACnB,KAAM,CACJ,YAAAijD,CACD,EAAGjjD,EACE+Y,EAAQ,KAAK,OACfxO,EAAe,oBAAoBwO,EAAO,KAAK,QAAQ,EAC3D,MAAMmqC,EAAkB,IAAI,IACtBC,EAAgB,CACpB,KAAM,KACN,MAAApqC,EACA,YAAa/Y,EAAO,YACpB,gBAAiBA,EAAO,gBACxB,mBAAoBA,EAAO,oBAAsB,GACjD,YAAaA,EAAO,cAAgB,GACpC,WAAY,IAAIuK,EAAe,cAC/B,kBAAmBvK,EAAO,mBAAqB,IAAI21C,EAAoB,kBACvE,gBAAiB31C,EAAO,kBAAoB,GAC5C,aAAcA,EAAO,aACrB,aAAcA,EAAO,aACrB,OAAQ,KACR,SAAU,IAChB,EACI,UAAWhD,KAAQimD,EAAa,CAC9B,GAAIjmD,EAAK,OACP,SAEF,MAAMomD,GAAoBpmD,EAAK,iBAAmBkM,EAAM,eAAe,MACvE,GAAKk6C,GAQE,CACL,MAAMnE,GAAWiE,EAAgB,IAAIlmD,EAAK,EAAE,EAC5C,GAAI,CAACiiD,GACH,SAEFkE,EAAc,SAAWlE,EAC1B,KAduB,CACtB,KAAM,CACJ,MAAAn3C,GACA,OAAAC,EACV,EAAYkuC,EAAYj5C,EAAK,IAAI,EACzB,GAAI8K,IAAS,GAAKC,IAAU,EAC1B,QAEV,CAOMo7C,EAAc,KAAOnmD,EACrB,MAAM+U,GAAUmkC,EAAyB,OAAOiN,CAAa,EAC7D,GAAI,CAACpxC,GAAQ,aACX,SAEF,GAAI,CAACqxC,IAAqBpmD,EAAK,SAAU,CACvC,MAAMiiD,GAAWiE,EAAgB,IAAIlmD,EAAK,QAAQ,EAC7CiiD,GAGHA,GAAS,KAAKltC,EAAO,EAFrBmxC,EAAgB,IAAIlmD,EAAK,SAAU,CAAC+U,EAAO,CAAC,CAI/C,CACGA,GAAQ,qBAAuB,GACjC5U,EAAA,KAAK6lD,IAAqB,IAAIjxC,GAAQ,KAAK,GAAIA,EAAO,EAExD,MAAMsxC,GAAWtxC,GAAQ,SACrB/U,EAAK,SACPqmD,GAAS,MAAM,WAAa,UAE9BvgD,EAAA,KAAK+/C,GAAAS,IAAL,UAAoBD,GAAUrmD,EAAK,GACpC,CACD8F,EAAA,KAAKggD,GAAAS,IAAL,WACA,MAAM,KAAK,KAAK,UAAUxqC,CAAK,CAChC,CACD,OAAO,CACL,SAAAxW,CACJ,EAAK,CACD,MAAMwW,EAAQ,KAAK,IACnB,KAAK,SAAWxW,KACZgI,EAAe,oBAAoBwO,EAAO,CAC5C,SAAUxW,EAAS,QACzB,CAAK,EACDO,EAAA,KAAKggD,GAAAS,IAAL,WACAxqC,EAAM,OAAS,EAChB,CAwBD,wBAAyB,CACvB,OAAO,MAAM,KAAK5b,EAAA,KAAK6lD,IAAqB,OAAQ,CAAA,CACrD,CACD,sBAAsBzhD,EAAI,CACxB,OAAOpE,EAAA,KAAK6lD,IAAqB,IAAIzhD,CAAE,CACxC,CACF,CArICkwC,GAAA,YACAsR,GAAA,YACAC,GAAA,YAkBAH,GAAA,YAAAS,GAAc,SAACvxC,EAASxQ,EAAI,OAC1B,MAAMiiD,EAAiBzxC,EAAQ,YAAcA,EAC7CyxC,EAAe,GAAK,GAAGt6C,EAAM,gBAAgB,GAAG3H,CAAE,GAClD,KAAK,IAAI,OAAOwQ,CAAO,GACvBnZ,EAAAuE,EAAA,KAAKs0C,MAAL,MAAA74C,EAA4B,iBAAiB,KAAK,IAAKmZ,EAASyxC,EAAgB,GACjF,EA+EDV,GAAA,YAAAS,GAAuB,UAAG,CACxB,GAAI,CAACpmD,EAAA,KAAK4lD,IACR,OAEF,MAAMhqC,EAAQ,KAAK,IACnB,SAAW,CAACxX,EAAIgf,CAAM,IAAKpjB,EAAA,KAAK4lD,IAAsB,CACpD,MAAMhxC,EAAUgH,EAAM,cAAc,wBAAwBxX,CAAE,IAAI,EAClE,GAAI,CAACwQ,EACH,SAEF,KAAM,CACJ,WAAA0xC,CACD,EAAG1xC,EACC0xC,EAEMA,EAAW,WAAa,SACjCA,EAAW,YAAYljC,CAAM,EAE7BkjC,EAAW,OAAOljC,CAAM,EAJxBxO,EAAQ,OAAOwO,CAAM,CAMxB,CACDpjB,EAAA,KAAK4lD,IAAqB,OAC3B,EAQH9vD,EAAQ,gBAAkB2vD,CAEnB,EAEA,CAAC5vD,EAAyBC,IAAY,CAI7C,OAAO,eAAeA,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,gBAAkB,OAC1B,SAASywD,EAAc5qD,EAAG,CACxB,OAAO,KAAK,MAAM,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,CAAC,CAAC,EAAI,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAClF,CACD,SAAS6qD,EAAc72C,EAAG,CACxB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,IAAMA,CAAC,CAAC,CAC1C,CACD,MAAM82C,CAAgB,CACpB,OAAO,OAAO,CAACzpD,EAAG4S,GAAGtT,EAAGmmB,CAAC,EAAG,CAC1B,MAAO,CAAC,IAAK,EAAI,KAAK,IAAI,EAAG,GAAMzlB,EAAI,IAAOV,EAAI,IAAOsT,GAAI6S,CAAC,CAAC,CAChE,CACD,OAAO,OAAO,CAAC3mB,CAAC,EAAG,CACjB,MAAO,CAAC,OAAQ,EAAG,EAAG,EAAG,EAAIA,CAAC,CAC/B,CACD,OAAO,MAAM,CAACA,CAAC,EAAG,CAChB,MAAO,CAAC,MAAOA,EAAGA,EAAGA,CAAC,CACvB,CACD,OAAO,MAAM,CAACA,CAAC,EAAG,CAChB,OAAAA,EAAI0qD,EAAc1qD,CAAC,EACZ,CAACA,EAAGA,EAAGA,CAAC,CAChB,CACD,OAAO,OAAO,CAACA,CAAC,EAAG,CACjB,MAAM4qD,GAAIH,EAAczqD,CAAC,EACzB,MAAO,IAAI4qD,EAAC,GAAGA,EAAC,GAAGA,EAAC,EACrB,CACD,OAAO,MAAM,CAAC7qD,EAAGC,GAAGC,CAAC,EAAG,CACtB,MAAO,CAAC,IAAK,GAAMF,EAAI,IAAOC,GAAI,IAAOC,CAAC,CAC3C,CACD,OAAO,QAAQ6b,EAAO,CACpB,OAAOA,EAAM,IAAI4uC,CAAa,CAC/B,CACD,OAAO,SAAS5uC,EAAO,CACrB,MAAO,IAAIA,EAAM,IAAI2uC,CAAa,EAAE,KAAK,EAAE,CAAC,EAC7C,CACD,OAAO,QAAS,CACd,MAAO,WACR,CACD,OAAO,OAAQ,CACb,MAAO,CAAC,IAAI,CACb,CACD,OAAO,SAAS,CAACvpD,EAAG4S,GAAGtT,EAAGmmB,CAAC,EAAG,CAC5B,MAAO,CAAC,MAAO,EAAI,KAAK,IAAI,EAAGzlB,EAAIylB,CAAC,EAAG,EAAI,KAAK,IAAI,EAAGnmB,EAAImmB,CAAC,EAAG,EAAI,KAAK,IAAI,EAAG7S,GAAI6S,CAAC,CAAC,CACtF,CACD,OAAO,SAAS,CAACzlB,EAAG4S,GAAGtT,EAAGmmB,CAAC,EAAG,CAC5B,MAAO,CAAC+jC,EAAc,EAAI,KAAK,IAAI,EAAGxpD,EAAIylB,CAAC,CAAC,EAAG+jC,EAAc,EAAI,KAAK,IAAI,EAAGlqD,EAAImmB,CAAC,CAAC,EAAG+jC,EAAc,EAAI,KAAK,IAAI,EAAG52C,GAAI6S,CAAC,CAAC,CAAC,CAC5H,CACD,OAAO,UAAUkkC,EAAY,CAC3B,MAAM9uC,GAAM,KAAK,SAAS8uC,CAAU,EAAE,MAAM,CAAC,EAC7C,OAAO,KAAK,SAAS9uC,EAAG,CACzB,CACD,OAAO,SAAS,CAAChc,EAAGC,GAAGC,CAAC,EAAG,CACzB,MAAMiB,EAAI,EAAInB,EACRS,EAAI,EAAIR,GACR8T,EAAI,EAAI7T,EACR0mB,EAAI,KAAK,IAAIzlB,EAAGV,EAAGsT,CAAC,EAC1B,MAAO,CAAC,OAAQ5S,EAAGV,EAAGsT,EAAG6S,CAAC,CAC3B,CACF,CACD3sB,EAAQ,gBAAkB2wD,CAEnB,EAEA,CAAC5wD,EAAyBC,IAAY,CAI7C,OAAO,eAAeA,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,SAAW,OACnBA,EAAQ,gBAAkB8wD,EAC1B,MAAMC,EAAuB,CAC3B,SAAU,oBACV,cAAe,qCACf,uBAAwB,oCACxB,uBAAwB,oCACxB,gCAAiC,qBACjC,0CAA2C,KAC3C,+CAAgD,KAChD,mDAAoD,WACpD,oDAAqD,YACrD,sCAAuC,KACvC,sCAAuC,KACvC,0CAA2C,SAC3C,yCAA0C,QAC1C,+CAAgD,oDAChD,oDAAqD,8DACrD,mCAAoC,MACpC,kCAAmC,KACnC,kBAAmB,oBACnB,cAAe,gBACf,iBAAkB,gBAClB,kBAAmB,6BACnB,iBAAkB,iDAClB,oBAAqB,8CACrB,wBAAyB,iCACzB,0BAA2B,mCAC3B,8BAA+B,4BAC/B,gCAAiC,8BACjC,eAAgB,mBAChB,iBAAkB,aAClB,eAAgB,WAChB,gBAAiB,iBACjB,kBAAmB,cACnB,mBAAoB,aACpB,cAAe,2CACf,mBAAoB,iCACpB,mBAAoB,oBACpB,0BAA2B,8BAC3B,gBAAiB,8CACjB,uBAAwB,qBACxB,uBAAwB,4DACxB,mBAAoB,qDACpB,mBAAoB,4DACpB,2BAA4B,gBAC5B,6BAA8B,cAC9B,uBAAwB,cACxB,6BAA8B,qBAC9B,6BAA8B,WAC9B,kCAAmC,gBACnC,mCAAoC,sBACtC,EAEEA,EAAqB,uBAAyB,gBAEhD,SAASD,EAAgBzrD,EAAKqc,GAAM,CAClC,OAAQrc,EAAG,CACT,IAAK,mBACHA,EAAM,oBAAoBqc,GAAK,QAAU,EAAI,MAAQ,OAAO,IAC5D,MACF,IAAK,yBACHrc,EAAM,0BAA0Bqc,GAAK,QAAU,EAAI,MAAQ,OAAO,IAClE,KACH,CACD,OAAOqvC,EAAqB1rD,CAAG,GAAK,EACrC,CACD,SAAS2rD,EAAgBle,EAAMpxB,GAAM,CACnC,OAAKA,GAGEoxB,EAAK,WAAW,uBAAwB,CAACme,EAAKhtD,IAC5CA,KAAQyd,GAAOA,GAAKzd,CAAI,EAAI,KAAOA,EAAO,IAClD,EAJQ6uC,CAKV,CACD,MAAMoe,EAAW,CACf,MAAM,aAAc,CAClB,MAAO,OACR,EACD,MAAM,cAAe,CACnB,MAAO,KACR,EACD,MAAM,IAAI7rD,EAAKqc,GAAO,KAAMob,EAAWg0B,EAAgBzrD,EAAKqc,EAAI,EAAG,CACjE,OAAOsvC,EAAgBl0B,EAAUpb,EAAI,CACtC,EACD,MAAM,UAAU5C,EAAS,CAAE,CAC7B,EACA9e,EAAQ,SAAWkxD,CAEZ,EAEA,CAACnxD,EAAyBC,EAASgW,IAAwB,CAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,SAAW,OACnB,IAAImxD,EAAYn7C,EAAoB,EAAE,EACtC,MAAMo7C,CAAS,CACb,OAAO,aAAaC,EAAM/iD,GAAIwQ,EAASgqC,EAAS35C,EAAQ,CACtD,MAAM+2C,EAAa4C,EAAQ,SAASx6C,GAAI,CACtC,MAAO,IACb,CAAK,EACD,OAAQwQ,EAAQ,KAAI,CAClB,IAAK,WAIH,GAHIonC,EAAW,QAAU,OACvBmL,EAAK,YAAcnL,EAAW,OAE5B/2C,IAAW,QACb,MAEFkiD,EAAK,iBAAiB,QAASj/C,GAAS,CACtC02C,EAAQ,SAASx6C,GAAI,CACnB,MAAO8D,EAAM,OAAO,KAChC,CAAW,CACX,CAAS,EACD,MACF,IAAK,QACH,GAAI0M,EAAQ,WAAW,OAAS,SAAWA,EAAQ,WAAW,OAAS,WAAY,CAMjF,GALIonC,EAAW,QAAUpnC,EAAQ,WAAW,MAC1CuyC,EAAK,aAAa,UAAW,EAAI,EACxBnL,EAAW,QAAUpnC,EAAQ,WAAW,QACjDuyC,EAAK,gBAAgB,SAAS,EAE5BliD,IAAW,QACb,MAEFkiD,EAAK,iBAAiB,SAAUj/C,GAAS,CACvC02C,EAAQ,SAASx6C,GAAI,CACnB,MAAO8D,EAAM,OAAO,QAAUA,EAAM,OAAO,aAAa,OAAO,EAAIA,EAAM,OAAO,aAAa,QAAQ,CACnH,CAAa,CACb,CAAW,CACX,KAAe,CAIL,GAHI8zC,EAAW,QAAU,MACvBmL,EAAK,aAAa,QAASnL,EAAW,KAAK,EAEzC/2C,IAAW,QACb,MAEFkiD,EAAK,iBAAiB,QAASj/C,GAAS,CACtC02C,EAAQ,SAASx6C,GAAI,CACnB,MAAO8D,EAAM,OAAO,KAClC,CAAa,CACb,CAAW,CACF,CACD,MACF,IAAK,SACH,GAAI8zC,EAAW,QAAU,KAAM,CAC7BmL,EAAK,aAAa,QAASnL,EAAW,KAAK,EAC3C,UAAWgF,KAAUpsC,EAAQ,SACvBosC,EAAO,WAAW,QAAUhF,EAAW,MACzCgF,EAAO,WAAW,SAAW,GACpBA,EAAO,WAAW,eAAe,UAAU,GACpD,OAAOA,EAAO,WAAW,QAG9B,CACDmG,EAAK,iBAAiB,QAASj/C,GAAS,CACtC,MAAM5O,EAAU4O,EAAM,OAAO,QACvBvO,EAAQL,EAAQ,gBAAkB,GAAK,GAAKA,EAAQA,EAAQ,aAAa,EAAE,MACjFslD,EAAQ,SAASx6C,GAAI,CACnB,MAAAzK,CACZ,CAAW,CACX,CAAS,EACD,KACH,CACF,CACD,OAAO,cAAc,CACnB,KAAAwtD,EACA,QAAAvyC,GACA,QAAAgqC,EAAU,KACV,OAAA35C,EACA,YAAA24C,CACJ,EAAK,CACD,KAAM,CACJ,WAAAwJ,CACD,EAAGxyC,GACEyyC,EAAsBF,aAAgB,kBACxCC,EAAW,OAAS,UACtBA,EAAW,KAAO,GAAGA,EAAW,IAAI,IAAIniD,CAAM,IAEhD,SAAW,CAAC9J,EAAKxB,CAAK,IAAK,OAAO,QAAQytD,CAAU,EAClD,GAAIztD,GAAU,KAGd,OAAQwB,EAAG,CACT,IAAK,QACCxB,EAAM,QACRwtD,EAAK,aAAahsD,EAAKxB,EAAM,KAAK,GAAG,CAAC,EAExC,MACF,IAAK,SACH,MACF,IAAK,KACHwtD,EAAK,aAAa,kBAAmBxtD,CAAK,EAC1C,MACF,IAAK,QACH,OAAO,OAAOwtD,EAAK,MAAOxtD,CAAK,EAC/B,MACF,IAAK,cACHwtD,EAAK,YAAcxtD,EACnB,MACF,SACM,CAAC0tD,GAAuBlsD,IAAQ,QAAUA,IAAQ,cACpDgsD,EAAK,aAAahsD,EAAKxB,CAAK,CAEjC,CAEC0tD,GACFzJ,EAAY,kBAAkBuJ,EAAMC,EAAW,KAAMA,EAAW,SAAS,EAEvExI,GAAWwI,EAAW,QACxB,KAAK,aAAaD,EAAMC,EAAW,OAAQxyC,GAASgqC,CAAO,CAE9D,CACD,OAAO,OAAOtxC,EAAY,OACxB,MAAMsxC,GAAUtxC,EAAW,kBACrBswC,EAActwC,EAAW,YACzB3X,EAAO2X,EAAW,QAClBrI,EAASqI,EAAW,QAAU,UAC9Bg6C,EAAW,SAAS,cAAc3xD,EAAK,IAAI,EAC7CA,EAAK,YACP,KAAK,cAAc,CACjB,KAAM2xD,EACN,QAAS3xD,EACT,OAAAsP,EACA,YAAA24C,CACR,CAAO,EAEH,MAAM2J,EAAQ,CAAC,CAAC5xD,EAAM,GAAI2xD,CAAQ,CAAC,EAC7BE,EAAUl6C,EAAW,IAE3B,GADAk6C,EAAQ,OAAOF,CAAQ,EACnBh6C,EAAW,SAAU,CACvB,MAAMtR,EAAY,UAAUsR,EAAW,SAAS,UAAU,KAAK,GAAG,CAAC,IACnEk6C,EAAQ,MAAM,UAAYxrD,CAC3B,CACGiJ,IAAW,YACbuiD,EAAQ,aAAa,QAAS,kBAAkB,EAElD,MAAMrU,EAAW,CAAA,EACjB,KAAOoU,EAAM,OAAS,GAAG,CACvB,KAAM,CAACv6C,EAAQlS,EAAGqsD,CAAI,EAAII,EAAM,GAAG,EAAE,EACrC,GAAIzsD,EAAI,IAAMkS,EAAO,SAAS,OAAQ,CACpCu6C,EAAM,IAAG,EACT,QACD,CACD,MAAMtW,EAAQjkC,EAAO,SAAS,EAAEu6C,EAAM,GAAG,EAAE,EAAE,CAAC,CAAC,EAC/C,GAAItW,IAAU,KACZ,SAEF,KAAM,CACJ,KAAAl3C,CACD,EAAGk3C,EACJ,GAAIl3C,IAAS,QAAS,CACpB,MAAMi3C,EAAO,SAAS,eAAeC,EAAM,KAAK,EAChDkC,EAAS,KAAKnC,CAAI,EAClBmW,EAAK,OAAOnW,CAAI,EAChB,QACD,CACD,MAAMyW,GAAYhsD,EAAAw1C,GAAA,YAAAA,EAAO,aAAP,MAAAx1C,EAAmB,MAAQ,SAAS,gBAAgBw1C,EAAM,WAAW,MAAOl3C,CAAI,EAAI,SAAS,cAAcA,CAAI,EAWjI,GAVAotD,EAAK,OAAOM,CAAS,EACjBxW,EAAM,YACR,KAAK,cAAc,CACjB,KAAMwW,EACN,QAASxW,EACT,QAAA2N,GACA,OAAA35C,EACA,YAAA24C,CACV,CAAS,EAEC3M,EAAM,UAAYA,EAAM,SAAS,OAAS,EAC5CsW,EAAM,KAAK,CAACtW,EAAO,GAAIwW,CAAS,CAAC,UACxBxW,EAAM,MAAO,CACtB,MAAMD,EAAO,SAAS,eAAeC,EAAM,KAAK,EAC5CgW,EAAU,QAAQ,gBAAgBltD,CAAI,GACxCo5C,EAAS,KAAKnC,CAAI,EAEpByW,EAAU,OAAOzW,CAAI,CACtB,CACF,CACD,UAAW0W,KAAMF,EAAQ,iBAAiB,uDAAuD,EAC/FE,EAAG,aAAa,WAAY,EAAI,EAElC,MAAO,CACL,SAAAvU,CACN,CACG,CACD,OAAO,OAAO7lC,EAAY,CACxB,MAAMtR,GAAY,UAAUsR,EAAW,SAAS,UAAU,KAAK,GAAG,CAAC,IACnEA,EAAW,IAAI,MAAM,UAAYtR,GACjCsR,EAAW,IAAI,OAAS,EACzB,CACF,CACDxX,EAAQ,SAAWoxD,CAEZ,EAEA,CAACrxD,EAAyBC,EAASgW,IAAwB,kLAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,UAAY,OACpB,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BE,EAAUF,EAAoB,CAAC,EAC/B8pC,EAAoB9pC,EAAoB,EAAE,EAC1CsB,EAAiBtB,EAAoB,CAAC,EACtCqB,GAASrB,EAAoB,CAAC,EAClC,MAAM67C,GAAN,MAAMA,WAAkB37C,EAAQ,gBAAiB,CAmB/C,YAAYnJ,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,WACZ,CAAK,EAmDHpD,EAAA,KAAAmoD,GAiBAnoD,EAAA,KAAAs2C,GAiBAt2C,EAAA,KAAAooD,GAuFApoD,EAAA,KAAAqoD,GAgBAroD,EAAA,KAAAsoD,GAeAtoD,EAAA,KAAAuoD,IAyBAvoD,EAAA,KAAAwoD,IAoBAxoD,EAAA,KAAAyoD,IAOAzoD,EAAA,KAAA0oD,GA2CA1oD,EAAA,KAAA2oD,GAwBA3oD,EAAA,KAAA4oD,GAOA5oD,EAAA,KAAA6oD,GAyBA7oD,EAAA,KAAA8oD,GAgEA9oD,EAAA,KAAA+oD,IAYA/oD,EAAA,KAAAgpD,IAQAhpD,EAAA,KAAAipD,IA2CAjpD,EAAA,KAAAkpD,IA8BAlpD,EAAA,KAAAmpD,IAMAnpD,EAAA,KAAAopD,IAmFAppD,EAAA,KAAAqpD,IAmCArpD,EAAA,KAAAspD,IAgBAtpD,EAAA,KAAAupD,IAGAvpD,EAAA,KAAAwpD,GApqBAxpD,EAAA,KAAAypD,EAAc,GACdzpD,EAAA,KAAA0pD,EAAa,GACb1pD,EAAA,KAAA2pD,EAA0B,KAAK,kBAAkB,KAAK,IAAI,GAC1D3pD,EAAA,KAAA4pD,EAA2B,KAAK,mBAAmB,KAAK,IAAI,GAC5D5pD,EAAA,KAAA6pD,EAAwB,KAAK,gBAAgB,KAAK,IAAI,GACtD7pD,EAAA,KAAA8pD,EAA0B,KAAK,kBAAkB,KAAK,IAAI,GAC1D9pD,EAAA,KAAA+pD,EAAiB,IAAI,QACrB/pD,EAAA,KAAAgqD,EAAkB,IAClBhqD,EAAA,KAAAiqD,EAAsB,IACtBjqD,EAAA,KAAAkqD,EAAuB,IACvBlqD,EAAA,KAAAmqD,EAAY,MACZnqD,EAAA,KAAAoqD,EAAa,GACbpqD,EAAA,KAAAqqD,EAAc,GACdrqD,EAAA,KAAAsqD,EAAwB,MAUtB,KAAK,MAAQlnD,EAAO,OAAS,KAC7B,KAAK,UAAYA,EAAO,WAAa,KACrC,KAAK,QAAUA,EAAO,SAAW,KACjC,KAAK,MAAQ,GACb,KAAK,aAAe,GACpB,KAAK,YAAc,GACnB,KAAK,YAAc,GACnB,KAAK,YAAc,EACnB,KAAK,aAAe,KAAK,aAAe,EACxC,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,qBAAuB,EAC7B,CACD,OAAO,WAAWuM,EAAM,CACtBpD,EAAQ,iBAAiB,WAAWoD,EAAM,CACxC,QAAS,CAAC,+BAAgC,wBAAwB,CACxE,CAAK,CACF,CACD,OAAO,oBAAoBhF,EAAMzQ,GAAO,CACtC,OAAQyQ,EAAI,CACV,KAAK2B,EAAM,2BAA2B,cACpC47C,GAAU,kBAAoBhuD,GAC9B,MACF,KAAKoS,EAAM,2BAA2B,UACpC47C,GAAU,cAAgBhuD,GAC1B,MACF,KAAKoS,EAAM,2BAA2B,YACpC47C,GAAU,gBAAkBhuD,GAAQ,IACpC,KACH,CACF,CACD,aAAayQ,EAAMzQ,GAAO,CACxB,OAAQyQ,EAAI,CACV,KAAK2B,EAAM,2BAA2B,cACpCpG,EAAA,KAAKiiD,EAAAoC,IAAL,UAAsBrwD,IACtB,MACF,KAAKoS,EAAM,2BAA2B,UACpCpG,EAAA,KAAKowC,EAAAgB,IAAL,UAAkBp9C,IAClB,MACF,KAAKoS,EAAM,2BAA2B,YACpCpG,EAAA,KAAKkiD,EAAAoC,IAAL,UAAoBtwD,IACpB,KACH,CACF,CACD,WAAW,2BAA4B,CACrC,MAAO,CAAC,CAACoS,EAAM,2BAA2B,cAAe47C,GAAU,iBAAiB,EAAG,CAAC57C,EAAM,2BAA2B,UAAW47C,GAAU,eAAiB37C,EAAQ,iBAAiB,iBAAiB,EAAG,CAACD,EAAM,2BAA2B,YAAa,KAAK,MAAM47C,GAAU,gBAAkB,GAAG,CAAC,CAAC,CACxS,CACD,IAAI,oBAAqB,CACvB,MAAO,CAAC,CAAC57C,EAAM,2BAA2B,cAAe,KAAK,WAAa47C,GAAU,iBAAiB,EAAG,CAAC57C,EAAM,2BAA2B,UAAW,KAAK,OAAS47C,GAAU,eAAiB37C,EAAQ,iBAAiB,iBAAiB,EAAG,CAACD,EAAM,2BAA2B,YAAa,KAAK,MAAM,KAAO,KAAK,SAAW47C,GAAU,gBAAgB,CAAC,CAAC,CAC1V,CAqDD,SAAU,CACH,KAAK,SAGV,MAAM,QAAO,EACT,KAAK,MAAQ,OAGZ,KAAK,SACRhiD,EAAA,KAAK8iD,GAAAyB,IAAL,WACAvkD,EAAA,KAAK+iD,GAAAyB,IAAL,YAEG,KAAK,kBACR,KAAK,OAAO,IAAI,IAAI,EACpBxkD,EAAA,KAAKgjD,GAAAyB,IAAL,YAEFzkD,EAAA,KAAKsjD,EAAAoB,IAAL,YACD,CACD,QAAS,CACH,KAAK,SAAW,OAGf,KAAK,WACR,KAAK,OAAM,EAEb,KAAK,OAAO,MAAQ,KAAK,OAAO,OAAS,EACzC,KAAK,OAAO,SACZ,KAAK,OAAS,KACdrqD,EAAA,KAAK4pD,GAAU,aACf9pD,GAAA,KAAK8pD,EAAY,MACjB,MAAM,OAAM,EACb,CACD,UAAU58C,EAAQ,CACZ,CAAC,KAAK,QAAUA,EAClB,KAAK,WAAW,oBAAoB,IAAI,EAC/B,KAAK,QAAUA,IAAW,MACnC,KAAK,WAAW,iBAAiB,IAAI,EAEvC,MAAM,UAAUA,CAAM,CACvB,CACD,iBAAkB,CAChB,KAAM,CAACgD,EAAaC,EAAY,EAAI,KAAK,iBACnCtF,GAAQ,KAAK,MAAQqF,EACrBpF,GAAS,KAAK,OAASqF,GAC7B,KAAK,cAActF,GAAOC,EAAM,CACjC,CACD,gBAAiB,CACX5K,EAAA,KAAKypD,IAAmB,KAAK,SAAW,OAG5C,MAAM,eAAc,EACpB,KAAK,aAAe,GACpB,KAAK,OAAO,iBAAiB,cAAezpD,EAAA,KAAKupD,EAAuB,EACzE,CACD,iBAAkB,CACZ,CAAC,KAAK,aAAY,GAAM,KAAK,SAAW,OAG5C,MAAM,gBAAe,EACrB,KAAK,aAAe,CAAC,KAAK,QAAO,EACjC,KAAK,IAAI,UAAU,OAAO,SAAS,EACnC,KAAK,OAAO,oBAAoB,cAAevpD,EAAA,KAAKupD,EAAuB,EAC5E,CACD,WAAY,CACV,KAAK,aAAe,CAAC,KAAK,QAAO,CAClC,CACD,SAAU,CACR,OAAO,KAAK,MAAM,SAAW,GAAK,KAAK,MAAM,SAAW,GAAK,KAAK,MAAM,CAAC,EAAE,SAAW,CACvF,CAwMD,QAAS,CACHvpD,EAAA,KAAKypD,KAGT,MAAM,OAAM,EACZ,KAAK,UAAY,GACjB,KAAK,gBAAe,EACpB,KAAK,gBAAe,EACpB3pD,GAAA,KAAK2pD,EAAkB,IACvB,KAAK,IAAI,UAAU,IAAI,UAAU,EACjC9jD,EAAA,KAAKsjD,EAAAoB,IAAL,UAAmB,IACnB,KAAK,cAAa,EAClB,KAAK,OAAO,qBAAqB,EAAI,EACrC,KAAK,UAAS,EACd,KAAK,IAAI,MAAM,CACb,cAAe,EACrB,CAAK,EACF,CACD,QAAQniD,EAAO,CACR,KAAK,sBAGV,MAAM,QAAQA,CAAK,EACnB,KAAK,eAAc,EACpB,CACD,kBAAkBA,EAAO,CACnBA,EAAM,SAAW,GAAK,CAAC,KAAK,aAAc,GAAIlI,EAAA,KAAKypD,KAGvD,KAAK,gBAAe,EACpBvhD,EAAM,eAAc,EAChBA,EAAM,OAAS,SACjB,KAAK,IAAI,QAEXvC,EAAA,KAAKqiD,GAAAsC,IAAL,UAAmBpiD,EAAM,QAASA,EAAM,SACzC,CACD,kBAAkBA,EAAO,CACvBA,EAAM,eAAc,EACpBvC,EAAA,KAAKsiD,GAAAsC,IAAL,UAAWriD,EAAM,QAASA,EAAM,QACjC,CACD,gBAAgBA,EAAO,CACrBA,EAAM,eAAc,EACpBvC,EAAA,KAAK6iD,GAAAgC,IAAL,UAAiBtiD,EAClB,CACD,mBAAmBA,EAAO,CACxBvC,EAAA,KAAK6iD,GAAAgC,IAAL,UAAiBtiD,EAClB,CA8BD,IAAI,aAAc,CAChB,MAAO,CAAC,KAAK,WAAalI,EAAA,KAAKypD,EAChC,CACD,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAIlS,EAAOC,GACP,KAAK,QACPD,EAAQ,KAAK,EACbC,GAAQ,KAAK,GAEf,MAAM,OAAM,EACZxrC,EAAQ,iBAAiB,aAAa,IAAI,wBAAwB,EAAE,KAAK/S,IAAO,QAAA,OAAAwC,GAAA,KAAK,MAAL,YAAAA,GAAU,aAAa,aAAcxC,IAAI,EACzH,KAAM,CAAC0W,GAAGC,GAAG2D,GAAGC,EAAC,EAAI7N,EAAA,KAAKmiD,EAAA2C,IAAL,WAIrB,GAHA,KAAK,MAAM96C,GAAGC,GAAG,EAAG,CAAC,EACrB,KAAK,QAAQ2D,GAAGC,EAAC,EACjB7N,EAAA,KAAK8iD,GAAAyB,IAAL,WACI,KAAK,MAAO,CACd,KAAM,CAACl6C,GAAaC,EAAY,EAAI,KAAK,iBACzC,KAAK,eAAe,KAAK,MAAQD,GAAa,KAAK,OAASC,EAAY,EACxE,KAAK,MAAMsnC,EAAQvnC,GAAawnC,GAAQvnC,GAAc,KAAK,MAAQD,GAAa,KAAK,OAASC,EAAY,EAC1GnQ,GAAA,KAAK6pD,EAAuB,IAC5BhkD,EAAA,KAAKgjD,GAAAyB,IAAL,WACA,KAAK,QAAQ,KAAK,MAAQp6C,GAAa,KAAK,OAASC,EAAY,EACjEtK,EAAA,KAAK4iD,EAAAmC,IAAL,WACA,KAAK,IAAI,UAAU,IAAI,UAAU,CACvC,MACM,KAAK,IAAI,UAAU,IAAI,SAAS,EAChC,KAAK,eAAc,EAErB,OAAA/kD,EAAA,KAAK+iD,GAAAyB,IAAL,WACO,KAAK,GACb,CAUD,cAAcx/C,EAAOC,GAAQ,CAC3B,MAAM+/C,GAAe,KAAK,MAAMhgD,CAAK,EAC/BigD,GAAgB,KAAK,MAAMhgD,EAAM,EACvC,GAAI5K,EAAA,KAAK6pD,KAAec,IAAgB3qD,EAAA,KAAK8pD,KAAgBc,GAC3D,OAEF9qD,GAAA,KAAK+pD,EAAac,IAClB7qD,GAAA,KAAKgqD,EAAcc,IACnB,KAAK,OAAO,MAAM,WAAa,SAC/B,KAAM,CAAC56C,GAAaC,EAAY,EAAI,KAAK,iBACzC,KAAK,MAAQtF,EAAQqF,GACrB,KAAK,OAASpF,GAASqF,GACvB,KAAK,kBAAiB,EAClBjQ,EAAA,KAAKypD,IACP9jD,EAAA,KAAKijD,GAAAiC,IAAL,UAAqBlgD,EAAOC,IAE9BjF,EAAA,KAAKgjD,GAAAyB,IAAL,WACAzkD,EAAA,KAAK4iD,EAAAmC,IAAL,WACA,KAAK,OAAO,MAAM,WAAa,UAC/B,KAAK,QAAO,CACb,CA8KD,OAAO,YAAY7qD,EAAMmN,GAAQoE,GAAW,YAC1C,GAAIvR,aAAgB+1C,EAAkB,qBACpC,OAAO,KAET,MAAM3mC,GAAS,MAAM,YAAYpP,EAAMmN,GAAQoE,EAAS,EACxDnC,GAAO,UAAYpP,EAAK,UACxBoP,GAAO,MAAQlD,EAAM,KAAK,aAAa,GAAGlM,EAAK,KAAK,EACpDoP,GAAO,QAAUpP,EAAK,QACtB,KAAM,CAACgP,GAAWC,EAAU,EAAIG,GAAO,eACjCtE,GAAQsE,GAAO,MAAQJ,GACvBjE,GAASqE,GAAO,OAASH,GACzB4kC,GAAczkC,GAAO,YACrB6oC,GAAUj4C,EAAK,UAAY,EACjCC,GAAAmP,GAAOw6C,EAAkB,IACzB3pD,GAAAmP,GAAO46C,EAAa,KAAK,MAAMl/C,EAAK,GACpC7K,GAAAmP,GAAO66C,EAAc,KAAK,MAAMl/C,EAAM,GACtC,KAAM,CACJ,MAAA8rB,EACA,KAAAr5B,EACA,SAAAwH,CACD,EAAGhF,EACJ,OAAS,CACP,OAAAirD,EACD,IAAIp0B,EAAO,CACVo0B,GAASnlD,EAAAlK,EAAAksD,GAAUoD,GAAAC,IAAV,KAAAvvD,EAA8BqvD,GAAQztD,EAAMwH,GACrD,MAAMkpB,GAAO,CAAA,EACb9e,GAAO,MAAM,KAAK8e,EAAI,EACtB,IAAIC,GAAK0lB,IAAeoX,GAAO,CAAC,EAAIhT,IAChCp7C,GAAKg3C,IAAeoX,GAAO,CAAC,EAAIhT,IACpC,QAASh9C,GAAI,EAAGqE,GAAK2rD,GAAO,OAAQhwD,GAAIqE,GAAIrE,IAAK,EAAG,CAClD,MAAMmwD,GAAMvX,IAAeoX,GAAOhwD,EAAC,EAAIg9C,IACjCoT,GAAMxX,IAAeoX,GAAOhwD,GAAI,CAAC,EAAIg9C,IACrCqT,GAAMzX,IAAeoX,GAAOhwD,GAAI,CAAC,EAAIg9C,IACrCsT,GAAM1X,IAAeoX,GAAOhwD,GAAI,CAAC,EAAIg9C,IACrCuT,GAAM3X,IAAeoX,GAAOhwD,GAAI,CAAC,EAAIg9C,IACrCwT,GAAM5X,IAAeoX,GAAOhwD,GAAI,CAAC,EAAIg9C,IAC3C/pB,GAAK,KAAK,CAAC,CAACC,GAAItxB,EAAE,EAAG,CAACuuD,GAAKC,EAAG,EAAG,CAACC,GAAKC,EAAG,EAAG,CAACC,GAAKC,EAAG,CAAC,CAAC,EACxDt9B,GAAKq9B,GACL3uD,GAAK4uD,EACN,CACD,MAAMC,GAAS5lD,EAAA,KAAK6lD,GAAAC,IAAL,UAAkB19B,IACjC9e,GAAO,aAAa,KAAKs8C,EAAM,CAChC,CACD,MAAMjxB,EAAO30B,EAAAnK,EAAAyT,GAAO85C,GAAA2C,IAAP,KAAAlwD,GACb,OAAAsE,GAAAmP,GAAOk6C,EAAa,KAAK,IAAIn9C,EAAQ,iBAAiB,SAAUsuB,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,GACjFx6B,GAAAmP,GAAOi6C,EAAc,KAAK,IAAIl9C,EAAQ,iBAAiB,SAAUsuB,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,GAClF30B,EAAArC,GAAA2L,GAAO25C,GAAAiC,IAAP,KAAAvnD,GAAuBqH,GAAOC,IACvBqE,EACR,CACD,WAAY,CACV,GAAI,KAAK,UACP,OAAO,KAET,MAAM5R,EAAO,KAAK,QAAQ,EAAG,CAAC,EACxBua,GAAQ5L,EAAQ,iBAAiB,cAAc,QAAQ,KAAK,IAAI,WAAW,EACjF,MAAO,CACL,eAAgBD,EAAM,qBAAqB,IAC3C,MAAA6L,GACA,UAAW,KAAK,UAChB,QAAS,KAAK,QACd,MAAOjS,EAAA,KAAKmjD,GAAA6C,IAAL,UAAqB,KAAK,YAAc,KAAK,YAAa,KAAK,aAAc,KAAK,aAActuD,GACvG,UAAW,KAAK,UAChB,KAAAA,EACA,SAAU,KAAK,SACf,mBAAoB,KAAK,mBAC/B,CACG,CACF,EArwBC6rD,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YA4DAnC,EAAA,YAAAoC,GAAgB,SAAC4B,EAAW,CAC1B,MAAMC,GAAiB,KAAK,UAC5B,KAAK,YAAY,CACf,IAAK,IAAM,CACT,KAAK,UAAYD,EACjBjmD,EAAA,KAAKsjD,EAAAoB,IAAL,UACD,EACD,KAAM,IAAM,CACV,KAAK,UAAYwB,GACjBlmD,EAAA,KAAKsjD,EAAAoB,IAAL,UACD,EACD,SAAU,GACV,KAAMt+C,EAAM,2BAA2B,cACvC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACF,EACDgqC,EAAA,YAAAgB,GAAY,SAACn/B,EAAO,CAClB,MAAMsgC,GAAa,KAAK,MACxB,KAAK,YAAY,CACf,IAAK,IAAM,CACT,KAAK,MAAQtgC,EACbjS,EAAA,KAAK4iD,EAAAmC,IAAL,UACD,EACD,KAAM,IAAM,CACV,KAAK,MAAQxS,GACbvyC,EAAA,KAAK4iD,EAAAmC,IAAL,UACD,EACD,SAAU,GACV,KAAM3+C,EAAM,2BAA2B,UACvC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACF,EACD87C,EAAA,YAAAoC,GAAc,SAACn1C,EAAS,CACtBA,GAAW,IACX,MAAMg3C,GAAe,KAAK,QAC1B,KAAK,YAAY,CACf,IAAK,IAAM,CACT,KAAK,QAAUh3C,EACfnP,EAAA,KAAK4iD,EAAAmC,IAAL,UACD,EACD,KAAM,IAAM,CACV,KAAK,QAAUoB,GACfnmD,EAAA,KAAK4iD,EAAAmC,IAAL,UACD,EACD,SAAU,GACV,KAAM3+C,EAAM,2BAA2B,YACvC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACF,EAsED+7C,EAAA,YAAA2C,GAAe,UAAG,CAChB,KAAM,CACJ,eAAAsB,EACA,iBAAkB,CAACphD,GAAOC,EAAM,CACjC,EAAG,KACJ,OAAQmhD,EAAc,CACpB,IAAK,IACH,MAAO,CAAC,EAAGnhD,GAAQA,GAAQD,EAAK,EAClC,IAAK,KACH,MAAO,CAACA,GAAOC,GAAQD,GAAOC,EAAM,EACtC,IAAK,KACH,MAAO,CAACD,GAAO,EAAGC,GAAQD,EAAK,EACjC,QACE,MAAO,CAAC,EAAG,EAAGA,GAAOC,EAAM,CAC9B,CACF,EACDm9C,EAAA,YAAAiE,GAAU,UAAG,CACX,KAAM,CACJ,IAAA12C,EACA,MAAAsC,GACA,QAAA9C,GACA,UAAA82C,GACA,YAAAr7C,GACA,YAAAmjC,EACD,EAAG,KACJp+B,EAAI,UAAYs2C,GAAYr7C,GAAcmjC,GAC1Cp+B,EAAI,QAAU,QACdA,EAAI,SAAW,QACfA,EAAI,WAAa,GACjBA,EAAI,YAAc,GAAGsC,EAAK,MAAOzK,GAAO,cAAc2H,EAAO,CAAC,EAC/D,EACDkzC,GAAA,YAAAsC,GAAa,SAAC36C,EAAGC,GAAG,CAClB,KAAK,OAAO,iBAAiB,cAAexC,EAAe,aAAa,EACxE,KAAK,OAAO,iBAAiB,eAAgBpN,EAAA,KAAKqpD,EAAwB,EAC1E,KAAK,OAAO,iBAAiB,cAAerpD,EAAA,KAAKopD,EAAuB,EACxE,KAAK,OAAO,iBAAiB,YAAappD,EAAA,KAAKspD,EAAqB,EACpE,KAAK,OAAO,oBAAoB,cAAetpD,EAAA,KAAKupD,EAAuB,EAC3E,KAAK,UAAY,GACZvpD,EAAA,KAAK2pD,KACR7pD,GAAA,KAAK6pD,EAAuB,IAC5BhkD,EAAA,KAAKgjD,GAAAyB,IAAL,WACA,KAAK,YAAL,KAAK,UAAczC,GAAU,mBAC7B,KAAK,QAAL,KAAK,MAAUA,GAAU,eAAiB37C,EAAQ,iBAAiB,mBACnE,KAAK,UAAL,KAAK,QAAY27C,GAAU,kBAE7B,KAAK,YAAY,KAAK,CAACh4C,EAAGC,EAAC,CAAC,EAC5B9P,GAAA,KAAK4pD,EAAsB,IAC3B/jD,EAAA,KAAKoiD,EAAAiE,IAAL,WACAlsD,GAAA,KAAKiqD,EAAwB,IAAM,CACjCpkD,EAAA,KAAKyiD,EAAA6D,IAAL,WACIjsD,EAAA,KAAK+pD,IACP,OAAO,sBAAsB/pD,EAAA,KAAK+pD,EAAqB,CAE/D,GACI,OAAO,sBAAsB/pD,EAAA,KAAK+pD,EAAqB,CACxD,EACD9B,GAAA,YAAAsC,GAAK,SAAC56C,EAAGC,GAAG,CACV,KAAM,CAACs8C,GAAOC,EAAK,EAAI,KAAK,YAAY,GAAG,EAAE,EAC7C,GAAI,KAAK,YAAY,OAAS,GAAKx8C,IAAMu8C,IAASt8C,KAAMu8C,GACtD,OAEF,MAAMC,GAAc,KAAK,YACzB,IAAIb,GAASvrD,EAAA,KAAKwpD,GAGlB,GAFA4C,GAAY,KAAK,CAACz8C,EAAGC,EAAC,CAAC,EACvB9P,GAAA,KAAK4pD,EAAsB,IACvB0C,GAAY,QAAU,EAAG,CAC3Bb,GAAO,OAAO,GAAGa,GAAY,CAAC,CAAC,EAC/Bb,GAAO,OAAO57C,EAAGC,EAAC,EAClB,MACD,CACGw8C,GAAY,SAAW,IACzBtsD,GAAA,KAAK0pD,EAAiB+B,GAAS,IAAI,QACnCA,GAAO,OAAO,GAAGa,GAAY,CAAC,CAAC,GAEjCzmD,EAAA,KAAK0iD,EAAAgE,IAAL,UAAsBd,GAAQ,GAAGa,GAAY,GAAG,EAAE,EAAG,GAAGA,GAAY,GAAG,EAAE,EAAGz8C,EAAGC,GAChF,EACDs4C,GAAA,YAAAoE,GAAQ,UAAG,CACT,GAAI,KAAK,YAAY,SAAW,EAC9B,OAEF,MAAMC,EAAY,KAAK,YAAY,GAAG,EAAE,EACxCvsD,EAAA,KAAKwpD,GAAe,OAAO,GAAG+C,CAAS,CACxC,EACDpE,EAAA,YAAAqE,GAAY,SAAC78C,EAAGC,GAAG,CACjB9P,GAAA,KAAKiqD,EAAwB,MAC7Bp6C,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAG,CAAC,EAAG,KAAK,OAAO,KAAK,EAC9CC,GAAI,KAAK,IAAI,KAAK,IAAIA,GAAG,CAAC,EAAG,KAAK,OAAO,MAAM,EAC/CjK,EAAA,KAAKsiD,GAAAsC,IAAL,UAAW56C,EAAGC,IACdjK,EAAA,KAAKuiD,GAAAoE,IAAL,WACA,IAAIxB,GACJ,GAAI,KAAK,YAAY,SAAW,EAC9BA,GAASnlD,EAAA,KAAK2iD,EAAAmE,IAAL,eACJ,CACL,MAAMC,GAAK,CAAC/8C,EAAGC,EAAC,EAChBk7C,GAAS,CAAC,CAAC4B,GAAIA,GAAG,QAASA,GAAG,MAAK,EAAIA,EAAE,CAAC,CAC3C,CACD,MAAMnB,GAASvrD,EAAA,KAAKwpD,GACd4C,GAAc,KAAK,YACzB,KAAK,YAAc,GACnBtsD,GAAA,KAAK0pD,EAAiB,IAAI,QAC1B,MAAM/yC,GAAM,IAAM,CAChB,KAAK,YAAY,KAAK21C,EAAW,EACjC,KAAK,MAAM,KAAKtB,EAAM,EACtB,KAAK,aAAa,KAAKS,EAAM,EAC7B,KAAK,QAAO,CAClB,EACU70C,GAAO,IAAM,CACjB,KAAK,YAAY,MACjB,KAAK,MAAM,MACX,KAAK,aAAa,MACd,KAAK,MAAM,SAAW,EACxB,KAAK,OAAM,GAEN,KAAK,SACR/Q,EAAA,KAAK8iD,GAAAyB,IAAL,WACAvkD,EAAA,KAAK+iD,GAAAyB,IAAL,YAEFxkD,EAAA,KAAKsjD,EAAAoB,IAAL,WAER,EACI,KAAK,YAAY,CACf,IAAA5zC,GACA,KAAAC,GACA,SAAU,EAChB,CAAK,CACF,EACD0xC,EAAA,YAAA6D,GAAW,UAAG,CACZ,GAAI,CAACjsD,EAAA,KAAK0pD,GACR,OAEF5pD,GAAA,KAAK4pD,EAAsB,IAC3B,MAAMkC,EAAY,KAAK,KAAK,KAAK,UAAY,KAAK,WAAW,EACvDe,GAAa,KAAK,YAAY,MAAM,EAAE,EACtCh9C,GAAIg9C,GAAW,IAAID,IAAMA,GAAG,CAAC,CAAC,EAC9B98C,GAAI+8C,GAAW,IAAID,IAAMA,GAAG,CAAC,CAAC,EACvB,KAAK,IAAI,GAAG/8C,EAAC,EAAIi8C,EACjB,KAAK,IAAI,GAAGj8C,EAAC,EAAIi8C,EACjB,KAAK,IAAI,GAAGh8C,EAAC,EAAIg8C,EACjB,KAAK,IAAI,GAAGh8C,EAAC,EAAIg8C,EAC9B,KAAM,CACJ,IAAAt2C,EACD,EAAG,KACJA,GAAI,KAAI,EACRA,GAAI,UAAU,EAAG,EAAG,KAAK,OAAO,MAAO,KAAK,OAAO,MAAM,EACzD,UAAWyY,MAAQ,KAAK,aACtBzY,GAAI,OAAOyY,EAAI,EAEjBzY,GAAI,OAAOtV,EAAA,KAAKwpD,EAAc,EAC9Bl0C,GAAI,QAAO,CACZ,EACD+yC,EAAA,YAAAgE,GAAgB,SAACd,EAAQ3tD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI,CAC/C,MAAM2uD,IAAShvD,GAAKE,IAAM,EACpB+uD,IAAShvD,GAAKE,IAAM,EACpBG,IAAMJ,GAAKE,IAAM,EACjBG,GAAMJ,GAAKE,IAAM,EACvBstD,EAAO,cAAcqB,GAAQ,GAAK9uD,GAAK8uD,IAAS,EAAGC,GAAQ,GAAK9uD,GAAK8uD,IAAS,EAAG3uD,GAAK,GAAKJ,GAAKI,IAAM,EAAGC,EAAK,GAAKJ,GAAKI,GAAM,EAAGD,GAAIC,CAAE,CACxI,EACDmqD,EAAA,YAAAmE,GAAqB,UAAG,CACtB,MAAM1+B,EAAO,KAAK,YAClB,GAAIA,EAAK,QAAU,EACjB,MAAO,CAAC,CAACA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,GAAG,EAAE,EAAGA,EAAK,GAAG,EAAE,CAAC,CAAC,EAEtD,MAAM++B,GAAe,CAAA,EACrB,IAAIhyD,GACA,CAAC8C,GAAIC,EAAE,EAAIkwB,EAAK,CAAC,EACrB,IAAKjzB,GAAI,EAAGA,GAAIizB,EAAK,OAAS,EAAGjzB,KAAK,CACpC,KAAM,CAACgD,EAAIC,CAAE,EAAIgwB,EAAKjzB,EAAC,EACjB,CAACkD,EAAIC,CAAE,EAAI8vB,EAAKjzB,GAAI,CAAC,EACrBoD,GAAMJ,EAAKE,GAAM,EACjBG,IAAMJ,EAAKE,GAAM,EACjB8uD,GAAW,CAACnvD,GAAK,GAAKE,EAAKF,IAAM,EAAGC,GAAK,GAAKE,EAAKF,IAAM,CAAC,EAC1DmvD,GAAW,CAAC9uD,EAAK,GAAKJ,EAAKI,GAAM,EAAGC,GAAK,GAAKJ,EAAKI,IAAM,CAAC,EAChE2uD,GAAa,KAAK,CAAC,CAAClvD,GAAIC,EAAE,EAAGkvD,GAAUC,GAAU,CAAC9uD,EAAIC,EAAE,CAAC,CAAC,EAC1D,CAACP,GAAIC,EAAE,EAAI,CAACK,EAAIC,EAAE,CACnB,CACD,KAAM,CAACL,GAAIC,EAAE,EAAIgwB,EAAKjzB,EAAC,EACjB,CAACkD,GAAIC,EAAE,EAAI8vB,EAAKjzB,GAAI,CAAC,EACrBiyD,GAAW,CAACnvD,GAAK,GAAKE,GAAKF,IAAM,EAAGC,GAAK,GAAKE,GAAKF,IAAM,CAAC,EAC1DmvD,EAAW,CAAChvD,GAAK,GAAKF,GAAKE,IAAM,EAAGC,GAAK,GAAKF,GAAKE,IAAM,CAAC,EAChE,OAAA6uD,GAAa,KAAK,CAAC,CAAClvD,GAAIC,EAAE,EAAGkvD,GAAUC,EAAU,CAAChvD,GAAIC,EAAE,CAAC,CAAC,EACnD6uD,EACR,EACDvE,EAAA,YAAAmC,GAAO,UAAG,CACR,GAAI,KAAK,UAAW,CAClB/kD,EAAA,KAAKkjD,GAAAoE,IAAL,WACA,MACD,CACDtnD,EAAA,KAAKoiD,EAAAiE,IAAL,WACA,KAAM,CACJ,OAAA5oC,EACA,IAAA9N,EACD,EAAG,KACJA,GAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjCA,GAAI,UAAU,EAAG,EAAG8N,EAAO,MAAOA,EAAO,MAAM,EAC/Czd,EAAA,KAAKkjD,GAAAoE,IAAL,WACA,UAAWl/B,MAAQ,KAAK,aACtBzY,GAAI,OAAOyY,EAAI,CAElB,EAgDDy6B,GAAA,YAAAgC,GAAW,SAACtiD,EAAO,CACjB,KAAK,OAAO,oBAAoB,eAAgBlI,EAAA,KAAKqpD,EAAwB,EAC7E,KAAK,OAAO,oBAAoB,cAAerpD,EAAA,KAAKopD,EAAuB,EAC3E,KAAK,OAAO,oBAAoB,YAAappD,EAAA,KAAKspD,EAAqB,EACvE,KAAK,OAAO,iBAAiB,cAAetpD,EAAA,KAAKupD,EAAuB,EACxE,WAAW,IAAM,CACf,KAAK,OAAO,oBAAoB,cAAen8C,EAAe,aAAa,CAC5E,EAAE,EAAE,EACLzH,EAAA,KAAKwiD,EAAAqE,IAAL,UAAkBtkD,EAAM,QAASA,EAAM,SACvC,KAAK,uBAAsB,EAC3B,KAAK,gBAAe,CACrB,EACDugD,GAAA,YAAAyB,GAAa,UAAG,CACd,KAAK,OAAS,SAAS,cAAc,QAAQ,EAC7C,KAAK,OAAO,MAAQ,KAAK,OAAO,OAAS,EACzC,KAAK,OAAO,UAAY,kBACxBl+C,EAAQ,iBAAiB,aAAa,IAAI,8BAA8B,EAAE,KAAK/S,GAAO,QAAA,OAAAwC,GAAA,KAAK,SAAL,YAAAA,GAAa,aAAa,aAAcxC,GAAI,EAClI,KAAK,IAAI,OAAO,KAAK,MAAM,EAC3B,KAAK,IAAM,KAAK,OAAO,WAAW,IAAI,CACvC,EACDyvD,GAAA,YAAAyB,GAAe,UAAG,CAChBrqD,GAAA,KAAK8pD,EAAY,IAAI,eAAesD,GAAW,CAC7C,MAAM7vD,GAAO6vD,EAAQ,CAAC,EAAE,YACpB7vD,GAAK,OAASA,GAAK,QACrB,KAAK,cAAcA,GAAK,MAAOA,GAAK,MAAM,CAElD,CAAK,GACD2C,EAAA,KAAK4pD,GAAU,QAAQ,KAAK,GAAG,CAChC,EAmCDjB,GAAA,YAAAyB,GAAc,UAAG,CACf,GAAI,CAACpqD,EAAA,KAAK2pD,GACR,OAEF,KAAM,CAAC35C,EAAaC,EAAY,EAAI,KAAK,iBACzC,KAAK,OAAO,MAAQ,KAAK,KAAK,KAAK,MAAQD,CAAW,EACtD,KAAK,OAAO,OAAS,KAAK,KAAK,KAAK,OAASC,EAAY,EACzDtK,EAAA,KAAKkjD,GAAAoE,IAAL,UACD,EAsBDrE,GAAA,YAAAiC,GAAe,SAAClgD,EAAOC,GAAQ,CAC7B,MAAMktC,GAAUnyC,EAAA,KAAKqjD,GAAAmE,IAAL,WACVC,IAAgBziD,EAAQmtC,IAAW93C,EAAA,KAAKmpD,GACxCkE,IAAgBziD,GAASktC,IAAW93C,EAAA,KAAKkpD,GAC/C,KAAK,YAAc,KAAK,IAAIkE,GAAcC,EAAY,CACvD,EACDxE,GAAA,YAAAoE,GAAgB,UAAG,CACjB,MAAMnV,EAAUnyC,EAAA,KAAKqjD,GAAAmE,IAAL,WAAqB,EACrC,KAAK,IAAI,aAAa,KAAK,YAAa,EAAG,EAAG,KAAK,YAAa,KAAK,aAAe,KAAK,YAAcrV,EAAS,KAAK,aAAe,KAAK,YAAcA,CAAO,CAC/J,EACM0T,GAAA,YAAAC,GAAY,SAACX,EAAQ,CAC1B,MAAMS,GAAS,IAAI,OACnB,QAASzwD,GAAI,EAAGqE,GAAK2rD,EAAO,OAAQhwD,GAAIqE,GAAIrE,KAAK,CAC/C,KAAM,CAACmC,GAAO8vD,GAAUC,GAAU9vD,EAAM,EAAI4tD,EAAOhwD,EAAC,EAChDA,KAAM,GACRywD,GAAO,OAAO,GAAGtuD,EAAK,EAExBsuD,GAAO,cAAcwB,GAAS,CAAC,EAAGA,GAAS,CAAC,EAAGC,GAAS,CAAC,EAAGA,GAAS,CAAC,EAAG9vD,GAAO,CAAC,EAAGA,GAAO,CAAC,CAAC,CAC9F,CACD,OAAOquD,EACR,EACM+B,GAAA,YAAAC,GAAiB,SAACjgC,EAAQjwB,GAAMwH,GAAU,CAC/C,KAAM,CAAC63C,GAAKC,GAAKH,GAAKC,EAAG,EAAIp/C,GAC7B,OAAQwH,GAAQ,CACd,IAAK,GACH,QAAS/J,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAC/CwyB,EAAOxyB,EAAC,GAAK4hD,GACbpvB,EAAOxyB,GAAI,CAAC,EAAI2hD,GAAMnvB,EAAOxyB,GAAI,CAAC,EAEpC,MACF,IAAK,IACH,QAASA,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAAG,CAClD,MAAM6U,GAAI2d,EAAOxyB,EAAC,EAClBwyB,EAAOxyB,EAAC,EAAIwyB,EAAOxyB,GAAI,CAAC,EAAI4hD,GAC5BpvB,EAAOxyB,GAAI,CAAC,EAAI6U,GAAIgtC,EACrB,CACD,MACF,IAAK,KACH,QAAS7hD,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAC/CwyB,EAAOxyB,EAAC,EAAI0hD,GAAMlvB,EAAOxyB,EAAC,EAC1BwyB,EAAOxyB,GAAI,CAAC,GAAK6hD,GAEnB,MACF,IAAK,KACH,QAAS7hD,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAAG,CAClD,MAAM6U,GAAI2d,EAAOxyB,EAAC,EAClBwyB,EAAOxyB,EAAC,EAAI0hD,GAAMlvB,EAAOxyB,GAAI,CAAC,EAC9BwyB,EAAOxyB,GAAI,CAAC,EAAI2hD,GAAM9sC,EACvB,CACD,MACF,QACE,MAAM,IAAI,MAAM,kBAAkB,CACrC,CACD,OAAO2d,CACR,EACMy9B,GAAA,YAAAC,GAAmB,SAAC19B,EAAQjwB,GAAMwH,GAAU,CACjD,KAAM,CAAC63C,GAAKC,GAAKH,GAAKC,EAAG,EAAIp/C,GAC7B,OAAQwH,GAAQ,CACd,IAAK,GACH,QAAS/J,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAC/CwyB,EAAOxyB,EAAC,GAAK4hD,GACbpvB,EAAOxyB,GAAI,CAAC,EAAI2hD,GAAMnvB,EAAOxyB,GAAI,CAAC,EAEpC,MACF,IAAK,IACH,QAASA,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAAG,CAClD,MAAM6U,GAAI2d,EAAOxyB,EAAC,EAClBwyB,EAAOxyB,EAAC,EAAIwyB,EAAOxyB,GAAI,CAAC,EAAI6hD,GAC5BrvB,EAAOxyB,GAAI,CAAC,EAAI6U,GAAI+sC,EACrB,CACD,MACF,IAAK,KACH,QAAS5hD,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAC/CwyB,EAAOxyB,EAAC,EAAI0hD,GAAMlvB,EAAOxyB,EAAC,EAC1BwyB,EAAOxyB,GAAI,CAAC,GAAK6hD,GAEnB,MACF,IAAK,KACH,QAAS7hD,GAAI,EAAGqE,GAAKmuB,EAAO,OAAQxyB,GAAIqE,GAAIrE,IAAK,EAAG,CAClD,MAAM6U,GAAI2d,EAAOxyB,EAAC,EAClBwyB,EAAOxyB,EAAC,EAAI2hD,GAAMnvB,EAAOxyB,GAAI,CAAC,EAC9BwyB,EAAOxyB,GAAI,CAAC,EAAI0hD,GAAM7sC,EACvB,CACD,MACF,QACE,MAAM,IAAI,MAAM,kBAAkB,CACrC,CACD,OAAO2d,CACR,EACDw7B,GAAA,YAAA6C,GAAe,SAACviC,EAAGvZ,GAAIC,GAAIzS,GAAM,WAC/B,MAAMq5B,GAAQ,CAAA,EACRohB,GAAU,KAAK,UAAY,EAC3B7mC,GAASmY,EAAIvZ,GAAKioC,GAClB5mC,GAASkY,EAAItZ,GAAKgoC,GACxB,UAAWgT,KAAU,KAAK,MAAO,CAC/B,MAAM7rD,EAAS,CAAA,EACTquB,EAAS,CAAA,EACf,QAAS3uB,EAAI,EAAGyjC,EAAK0oB,EAAO,OAAQnsD,EAAIyjC,EAAIzjC,IAAK,CAC/C,KAAM,CAAC1B,EAAO8vD,GAAUC,GAAU9vD,EAAM,EAAI4tD,EAAOnsD,CAAC,EAC9CssD,GAAM7hC,EAAInsB,EAAM,CAAC,EAAIgU,GACrBi6C,GAAM9hC,EAAInsB,EAAM,CAAC,EAAIiU,GACrBi6C,GAAM/hC,EAAI2jC,GAAS,CAAC,EAAI97C,GACxBm6C,GAAMhiC,EAAI2jC,GAAS,CAAC,EAAI77C,GACxBm6C,GAAMjiC,EAAI4jC,GAAS,CAAC,EAAI/7C,GACxBq6C,GAAMliC,EAAI4jC,GAAS,CAAC,EAAI97C,GACxBs8C,GAAMpkC,EAAIlsB,GAAO,CAAC,EAAI+T,GACtBw8C,GAAMrkC,EAAIlsB,GAAO,CAAC,EAAIgU,GACxBvS,IAAM,IACRM,EAAO,KAAKgsD,GAAKC,EAAG,EACpB59B,EAAO,KAAK29B,GAAKC,EAAG,GAEtBjsD,EAAO,KAAKksD,GAAKC,GAAKC,GAAKC,GAAKkC,GAAKC,EAAG,EACxCngC,EAAO,KAAK69B,GAAKC,EAAG,EAChBzsD,IAAMyjC,EAAK,GACb9U,EAAO,KAAKkgC,GAAKC,EAAG,CAEvB,CACD/2B,GAAM,KAAK,CACT,OAAQ/wB,EAAAlK,GAAAksD,GAAU2F,GAAAC,IAAV,KAAA9xD,GAA4BwD,EAAQ5B,GAAM,KAAK,UACvD,OAAQsI,EAAAnK,GAAAmsD,GAAU2F,GAAAC,IAAV,KAAA/xD,GAA4B8xB,EAAQjwB,GAAM,KAAK,SAC/D,CAAO,CACF,CACD,OAAOq5B,EACR,EACDqyB,GAAA,YAAA2C,GAAQ,UAAG,CACT,IAAIgC,EAAO,IACPC,GAAO,KACPC,GAAO,IACPC,GAAO,KACX,UAAW9/B,MAAQ,KAAK,MACtB,SAAW,CAAC9wB,GAAO8vD,GAAUC,GAAU9vD,EAAM,IAAK6wB,GAAM,CACtD,MAAMuM,GAAOvuB,EAAM,KAAK,kBAAkB,GAAG9O,GAAO,GAAG8vD,GAAU,GAAGC,GAAU,GAAG9vD,EAAM,EACvFwwD,EAAO,KAAK,IAAIA,EAAMpzB,GAAK,CAAC,CAAC,EAC7BszB,GAAO,KAAK,IAAIA,GAAMtzB,GAAK,CAAC,CAAC,EAC7BqzB,GAAO,KAAK,IAAIA,GAAMrzB,GAAK,CAAC,CAAC,EAC7BuzB,GAAO,KAAK,IAAIA,GAAMvzB,GAAK,CAAC,CAAC,CAC9B,CAEH,MAAO,CAACozB,EAAME,GAAMD,GAAME,EAAI,CAC/B,EACD7E,GAAA,YAAAmE,GAAW,UAAG,CACZ,OAAOntD,EAAA,KAAKypD,GAAkB,KAAK,KAAK,KAAK,UAAY,KAAK,WAAW,EAAI,CAC9E,EACDR,EAAA,YAAAoB,GAAa,SAACyD,EAAY,GAAO,CAC/B,GAAI,KAAK,UACP,OAEF,GAAI,CAAC9tD,EAAA,KAAKypD,GAAiB,CACzB9jD,EAAA,KAAK4iD,EAAAmC,IAAL,WACA,MACD,CACD,MAAMpwB,GAAO30B,EAAA,KAAKojD,GAAA2C,IAAL,WACP5T,GAAUnyC,EAAA,KAAKqjD,GAAAmE,IAAL,WAChBrtD,GAAA,KAAKqpD,EAAa,KAAK,IAAIn9C,EAAQ,iBAAiB,SAAUsuB,GAAK,CAAC,EAAIA,GAAK,CAAC,CAAC,GAC/Ex6B,GAAA,KAAKopD,EAAc,KAAK,IAAIl9C,EAAQ,iBAAiB,SAAUsuB,GAAK,CAAC,EAAIA,GAAK,CAAC,CAAC,GAChF,MAAM3vB,GAAQ,KAAK,KAAKmtC,GAAU93C,EAAA,KAAKmpD,GAAa,KAAK,WAAW,EAC9Dv+C,GAAS,KAAK,KAAKktC,GAAU93C,EAAA,KAAKkpD,GAAc,KAAK,WAAW,EAChE,CAACl5C,GAAaC,EAAY,EAAI,KAAK,iBACzC,KAAK,MAAQtF,GAAQqF,GACrB,KAAK,OAASpF,GAASqF,GACvB,KAAK,eAAetF,GAAOC,EAAM,EACjC,MAAMmjD,GAAmB,KAAK,aACxBC,GAAmB,KAAK,aAC9B,KAAK,aAAe,CAAC1zB,GAAK,CAAC,EAC3B,KAAK,aAAe,CAACA,GAAK,CAAC,EAC3B30B,EAAA,KAAKgjD,GAAAyB,IAAL,WACAzkD,EAAA,KAAK4iD,EAAAmC,IAAL,WACA5qD,GAAA,KAAK+pD,EAAal/C,IAClB7K,GAAA,KAAKgqD,EAAcl/C,IACnB,KAAK,QAAQD,GAAOC,EAAM,EAC1B,MAAMqjD,GAAkBH,EAAYhW,GAAU,KAAK,YAAc,EAAI,EACrE,KAAK,UAAUiW,GAAmB,KAAK,aAAeE,GAAiBD,GAAmB,KAAK,aAAeC,EAAe,CAC9H,EAlKDxuD,EAhiBIkoD,GAgiBG6D,IAWP/rD,EA3iBIkoD,GA2iBG2F,IAkCP7tD,EA7kBIkoD,GA6kBGoD,IA7kBHpD,GAeG,cAAgB,KAfnBA,GAgBG,gBAAkB,EAhBrBA,GAiBG,kBAAoB,EAjBvBA,GAkBG,MAAQ,MAlBjB,IAAMuG,EAANvG,GAuwBA7xD,EAAQ,UAAYo4D,CAEb,EAEA,CAACr4D,EAAyBC,EAASgW,IAAwB,uEAIlE,OAAO,eAAehW,EAAS,aAAe,CAC5C,MAAO,EACT,GACAA,EAAQ,YAAc,OACtB,IAAIiW,EAAQD,EAAoB,CAAC,EAC7BE,EAAUF,EAAoB,CAAC,EAC/BsB,EAAiBtB,EAAoB,CAAC,EACtC8pC,EAAoB9pC,EAAoB,EAAE,EAC9C,MAAMqiD,GAAN,MAAMA,WAAoBniD,EAAQ,gBAAiB,CAYjD,YAAYnJ,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,aACZ,CAAK,EAsBHpD,EAAA,KAAA2uD,GAYA3uD,EAAA,KAAA4uD,GAOA5uD,EAAA,KAAA6uD,GAsGA7uD,EAAA,KAAAgpD,GA0CAhpD,EAAA,KAAA8uD,GAoBA9uD,EAAA,KAAA+uD,GAwBA/uD,EAAA,KAAAgvD,GAcAhvD,EAAA,KAAAivD,IA4BAjvD,EAAA,KAAAipD,GA9RAjpD,EAAA,KAAAkvD,EAAU,MACVlvD,EAAA,KAAAmvD,EAAY,MACZnvD,EAAA,KAAAovD,EAAiB,MACjBpvD,EAAA,KAAAqvD,EAAa,MACbrvD,EAAA,KAAAsvD,EAAc,MACdtvD,EAAA,KAAAuvD,EAAU,MACVvvD,EAAA,KAAAmqD,EAAY,MACZnqD,EAAA,KAAAwvD,EAAmB,MACnBxvD,EAAA,KAAAyvD,EAAS,IACTzvD,EAAA,KAAA0vD,EAA2B,IAOzBrvD,GAAA,KAAKgvD,EAAajsD,EAAO,WACzB/C,GAAA,KAAKivD,EAAclsD,EAAO,WAC3B,CACD,OAAO,WAAWuM,EAAM,CACtBpD,EAAQ,iBAAiB,WAAWoD,CAAI,CACzC,CACD,WAAW,gBAAiB,CAC1B,MAAM4N,EAAQ,CAAC,OAAQ,OAAQ,MAAO,MAAO,OAAQ,MAAO,UAAW,OAAQ,QAAQ,EACvF,SAAWjR,EAAM,QAAQ,KAAM,iBAAkBiR,EAAM,IAAI5S,GAAQ,SAASA,CAAI,EAAE,CAAC,CACpF,CACD,WAAW,mBAAoB,CAC7B,SAAW2B,EAAM,QAAQ,KAAM,oBAAqB,KAAK,eAAe,KAAK,GAAG,CAAC,CAClF,CACD,OAAO,yBAAyByD,EAAM,CACpC,OAAO,KAAK,eAAe,SAASA,CAAI,CACzC,CACD,OAAO,MAAMC,EAAMzC,EAAQ,CACzBA,EAAO,YAAYjB,EAAM,qBAAqB,MAAO,CACnD,WAAY0D,EAAK,UAAW,CAClC,CAAK,CACF,CA6DD,QAAS,SACHzP,EAAA,KAAK4uD,KACP9uD,GAAA,KAAK6uD,EAAU,MACf,KAAK,WAAW,aAAa,SAAS3uD,EAAA,KAAK4uD,EAAS,GACpDnzD,EAAAuE,EAAA,KAAKgvD,KAAL,MAAAvzD,EAAc,SACdqE,GAAA,KAAKkvD,EAAU,OACfxzD,EAAAwE,EAAA,KAAK4pD,KAAL,MAAApuD,EAAgB,aAChBsE,GAAA,KAAK8pD,EAAY,OAEnB,MAAM,OAAM,CACb,CACD,SAAU,CACR,GAAI,CAAC,KAAK,OAAQ,CACZ5pD,EAAA,KAAK4uD,IACPjpD,EAAA,KAAK2oD,EAAAc,IAAL,WAEF,MACD,CACD,MAAM,QAAO,EACT,KAAK,MAAQ,OAGbpvD,EAAA,KAAK4uD,IACPjpD,EAAA,KAAK2oD,EAAAc,IAAL,WAEG,KAAK,iBACR,KAAK,OAAO,IAAI,IAAI,EAEvB,CACD,WAAY,CACV,KAAK,aAAe,GACpB,KAAK,IAAI,OACV,CACD,SAAU,CACR,MAAO,EAAEpvD,EAAA,KAAK6uD,IAAkB7uD,EAAA,KAAK2uD,IAAW3uD,EAAA,KAAK8uD,IAAc9uD,EAAA,KAAK+uD,GACzE,CACD,IAAI,aAAc,CAChB,MAAO,EACR,CACD,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAIxX,EAAOC,EAYX,GAXI,KAAK,QACPD,EAAQ,KAAK,EACbC,EAAQ,KAAK,GAEf,MAAM,OAAM,EACZ,KAAK,IAAI,OAAS,GACdx3C,EAAA,KAAK2uD,GACPhpD,EAAA,KAAK8iD,EAAAyB,IAAL,WAEAvkD,EAAA,KAAK2oD,EAAAc,IAAL,WAEE,KAAK,MAAO,CACd,KAAM,CAACp/C,EAAaC,CAAY,EAAI,KAAK,iBACzC,KAAK,MAAMsnC,EAAQvnC,EAAawnC,EAAQvnC,EAAc,KAAK,MAAQD,EAAa,KAAK,OAASC,CAAY,CAC3G,CACD,OAAO,KAAK,GACb,CA0ID,OAAO,YAAYpQ,EAAMmN,EAAQoE,EAAW,CAC1C,GAAIvR,aAAgB+1C,EAAkB,uBACpC,OAAO,KAET,MAAM3mC,EAAS,MAAM,YAAYpP,EAAMmN,EAAQoE,CAAS,EAClD,CACJ,KAAA/T,EACA,UAAAgyD,EACA,SAAAC,EACA,MAAAC,EACA,kBAAAC,CACD,EAAG3vD,EACAyvD,GAAYl+C,EAAU,aAAa,UAAUk+C,CAAQ,EACvDxvD,GAAAmP,EAAO2/C,EAAYU,GAEnBxvD,GAAAmP,EAAO6/C,EAAaO,GAEtBvvD,GAAAmP,EAAOigD,EAASK,GAChB,KAAM,CAACv/C,GAAaC,EAAY,EAAIhB,EAAO,eAC3C,OAAAA,EAAO,OAAS5R,EAAK,CAAC,EAAIA,EAAK,CAAC,GAAK2S,GACrCf,EAAO,QAAU5R,EAAK,CAAC,EAAIA,EAAK,CAAC,GAAK4S,GAClCu/C,IACFvgD,EAAO,YAAcugD,GAEhBvgD,CACR,CACD,UAAUkC,EAAe,GAAOtE,EAAU,KAAM,CAC9C,GAAI,KAAK,UACP,OAAO,KAET,MAAME,EAAa,CACjB,eAAgBhB,EAAM,qBAAqB,MAC3C,SAAU/L,EAAA,KAAK4uD,GACf,UAAW,KAAK,UAChB,KAAM,KAAK,QAAQ,EAAG,CAAC,EACvB,SAAU,KAAK,SACf,MAAO5uD,EAAA,KAAKkvD,GACZ,mBAAoB,KAAK,mBAC/B,EACI,GAAI/9C,EACF,OAAApE,EAAW,UAAYpH,EAAA,KAAK+oD,GAAAe,IAAL,UAAsB,IAC7C1iD,EAAW,kBAAoB,KAAK,YAC7BA,EAET,KAAM,CACJ,WAAA+D,EACA,QAAAF,CACN,EAAQ,KAAK,YAOT,GANI,CAACE,GAAcF,IACjB7D,EAAW,kBAAoB,CAC7B,KAAM,SACN,IAAK6D,CACb,GAEQ/D,IAAY,KACd,OAAOE,EAETF,EAAQ,SAARA,EAAQ,OAAW,IAAI,KACvB,MAAM6iD,EAAO1vD,EAAA,KAAKkvD,IAAUniD,EAAW,KAAK,CAAC,EAAIA,EAAW,KAAK,CAAC,IAAMA,EAAW,KAAK,CAAC,EAAIA,EAAW,KAAK,CAAC,GAAK,KACnH,GAAI,CAACF,EAAQ,OAAO,IAAI7M,EAAA,KAAK4uD,EAAS,EACpC/hD,EAAQ,OAAO,IAAI7M,EAAA,KAAK4uD,GAAW,CACjC,KAAAc,EACA,WAAA3iD,CACR,CAAO,EACDA,EAAW,OAASpH,EAAA,KAAK+oD,GAAAe,IAAL,UAAsB,YACjCzvD,EAAA,KAAKkvD,GAAQ,CACtB,MAAMS,EAAW9iD,EAAQ,OAAO,IAAI7M,EAAA,KAAK4uD,EAAS,EAC9Cc,EAAOC,EAAS,OAClBA,EAAS,KAAOD,EAChBC,EAAS,WAAW,OAAO,QAC3BA,EAAS,WAAW,OAAShqD,EAAA,KAAK+oD,GAAAe,IAAL,UAAsB,IAEtD,CACD,OAAO1iD,CACR,CACF,EAlXC4hD,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACAC,EAAA,YACApF,EAAA,YACAqF,EAAA,YACAC,EAAA,YACAC,EAAA,YA4BAf,EAAA,YAAAwB,GAAiB,SAAC/vD,EAAMgwD,EAAS,GAAO,CACtC,GAAI,CAAChwD,EAAM,CACT,KAAK,OAAM,EACX,MACD,CACDC,GAAA,KAAK6uD,EAAU9uD,EAAK,QACfgwD,IACH/vD,GAAA,KAAK8uD,EAAY/uD,EAAK,IACtBC,GAAA,KAAKovD,EAASrvD,EAAK,QAErB8F,EAAA,KAAK8iD,EAAAyB,IAAL,UACD,EACDmE,EAAA,YAAAyB,GAAc,UAAG,CACfhwD,GAAA,KAAK+uD,EAAiB,MACtB,KAAK,WAAW,cAAc,EAAK,EAC/B7uD,EAAA,KAAKgvD,IACP,KAAK,IAAI,OAEZ,EACDV,EAAA,YAAAc,GAAU,UAAG,CACX,GAAIpvD,EAAA,KAAK4uD,GAAW,CAClB,KAAK,WAAW,cAAc,EAAI,EAClC,KAAK,WAAW,aAAa,UAAU5uD,EAAA,KAAK4uD,EAAS,EAAE,KAAK/uD,GAAQ8F,EAAA,KAAKyoD,EAAAwB,IAAL,UAAuB/vD,EAAM,GAAK,EAAE,QAAQ,IAAM8F,EAAA,KAAK0oD,EAAAyB,IAAL,UAAqB,EAC3I,MACD,CACD,GAAI9vD,EAAA,KAAK8uD,GAAY,CACnB,MAAM11D,EAAM4G,EAAA,KAAK8uD,GACjBhvD,GAAA,KAAKgvD,EAAa,MAClB,KAAK,WAAW,cAAc,EAAI,EAClChvD,GAAA,KAAK+uD,EAAiB,KAAK,WAAW,aAAa,WAAWz1D,CAAG,EAAE,KAAKyG,GAAQ8F,EAAA,KAAKyoD,EAAAwB,IAAL,UAAuB/vD,EAAK,EAAE,QAAQ,IAAM8F,EAAA,KAAK0oD,EAAAyB,IAAL,UAAqB,GACjJ,MACD,CACD,GAAI9vD,EAAA,KAAK+uD,GAAa,CACpB,MAAMv5C,EAAOxV,EAAA,KAAK+uD,GAClBjvD,GAAA,KAAKivD,EAAc,MACnB,KAAK,WAAW,cAAc,EAAI,EAClCjvD,GAAA,KAAK+uD,EAAiB,KAAK,WAAW,aAAa,YAAYr5C,CAAI,EAAE,KAAK3V,GAAQ8F,EAAA,KAAKyoD,EAAAwB,IAAL,UAAuB/vD,EAAK,EAAE,QAAQ,IAAM8F,EAAA,KAAK0oD,EAAAyB,IAAL,UAAqB,GACnJ,MACD,CACD,MAAMtqC,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,KAAO,OACbA,EAAM,OAAS2oC,GAAY,kBAC3BruD,GAAA,KAAK+uD,EAAiB,IAAI,QAAQlvD,GAAW,CAC3C6lB,EAAM,iBAAiB,SAAU,SAAY,CAC3C,GAAI,CAACA,EAAM,OAASA,EAAM,MAAM,SAAW,EACzC,KAAK,OAAM,MACN,CACL,KAAK,WAAW,cAAc,EAAI,EAClC,MAAM3lB,EAAO,MAAM,KAAK,WAAW,aAAa,YAAY2lB,EAAM,MAAM,CAAC,CAAC,EAC1E7f,EAAA,KAAKyoD,EAAAwB,IAAL,UAAuB/vD,EACxB,CACDF,GACR,CAAO,EACD6lB,EAAM,iBAAiB,SAAU,IAAM,CACrC,KAAK,OAAM,EACX7lB,GACR,CAAO,CACF,CAAA,EAAE,QAAQ,IAAMgG,EAAA,KAAK0oD,EAAAyB,IAAL,UAAqB,GACtCtqC,EAAM,MAAK,CACZ,EA8DDijC,EAAA,YAAAyB,GAAa,UAAG,CACd,KAAM,CACJ,IAAAv4C,CACD,EAAG,KACJ,GAAI,CACF,MAAAhH,EACA,OAAAC,CACN,EAAQ5K,EAAA,KAAK2uD,GACT,KAAM,CAAC9/C,EAAWC,CAAU,EAAI,KAAK,eAC/BihD,EAAY,IAClB,GAAI,KAAK,MACPplD,EAAQ,KAAK,MAAQkE,EACrBjE,EAAS,KAAK,OAASkE,UACdnE,EAAQolD,EAAYlhD,GAAajE,EAASmlD,EAAYjhD,EAAY,CAC3E,MAAMkhD,GAAS,KAAK,IAAID,EAAYlhD,EAAYlE,EAAOolD,EAAYjhD,EAAalE,CAAM,EACtFD,GAASqlD,GACTplD,GAAUolD,EACX,CACD,KAAM,CAAChgD,EAAaC,CAAY,EAAI,KAAK,iBACzC,KAAK,QAAQtF,EAAQqF,EAAcnB,EAAWjE,EAASqF,EAAenB,CAAU,EAChF,KAAK,WAAW,cAAc,EAAK,EACnC,MAAMsU,EAAStjB,GAAA,KAAKkvD,EAAU,SAAS,cAAc,QAAQ,GAC7Dr9C,EAAI,OAAOyR,CAAM,EACjBzR,EAAI,OAAS,GACbhM,EAAA,KAAK8oD,EAAAwB,IAAL,UAAiBtlD,EAAOC,GACxBjF,EAAA,KAAK+iD,EAAAyB,IAAL,WACKnqD,EAAA,KAAKmvD,KACR,KAAK,OAAO,kBAAkB,IAAI,EAClCrvD,GAAA,KAAKqvD,EAA2B,KAElC,KAAK,WAAW,UAAU,SAAS,kBAAmB,CACpD,OAAQ,KACR,QAAS,CACP,KAAM,UACN,QAAS,KAAK,WACd,KAAM,CACJ,OAAQ,gBACT,CACF,CACP,CAAK,EACD,KAAK,iBAAgB,CACtB,EACDZ,EAAA,YAAA2B,GAAc,SAACvlD,EAAOC,EAAQ,OAC5B,KAAM,CAACoF,EAAaC,CAAY,EAAI,KAAK,iBACzC,KAAK,MAAQtF,EAAQqF,EACrB,KAAK,OAASpF,EAASqF,EACvB,KAAK,QAAQtF,EAAOC,CAAM,GACtBnP,EAAA,KAAK,kBAAL,MAAAA,EAAsB,WACxB,KAAK,OAAM,EAEX,KAAK,kBAAiB,EAExB,KAAK,gBAAkB,KACnBuE,EAAA,KAAKivD,KAAqB,MAC5B,aAAajvD,EAAA,KAAKivD,EAAgB,EAGpCnvD,GAAA,KAAKmvD,EAAmB,WAAW,IAAM,CACvCnvD,GAAA,KAAKmvD,EAAmB,MACxBtpD,EAAA,KAAK8oD,EAAAwB,IAAL,UAAiBtlD,EAAOC,EACzB,EAJoB,GAIN,EAChB,EACD4jD,EAAA,YAAA2B,GAAY,SAACxlD,EAAOC,EAAQ,CAC1B,KAAM,CACJ,MAAOwlD,EACP,OAAQC,CACd,EAAQrwD,EAAA,KAAK2uD,GACT,IAAIj8C,EAAW09C,EACXz9C,EAAY09C,EACZh1B,EAASr7B,EAAA,KAAK2uD,GAClB,KAAOj8C,EAAW,EAAI/H,GAASgI,EAAY,EAAI/H,GAAQ,CACrD,MAAM0lD,EAAY59C,EACZ69C,EAAa59C,EACfD,EAAW,EAAI/H,IACjB+H,EAAWA,GAAY,MAAQ,KAAK,MAAMA,EAAW,CAAC,EAAI,EAAI,KAAK,KAAKA,EAAW,CAAC,GAElFC,EAAY,EAAI/H,IAClB+H,EAAYA,GAAa,MAAQ,KAAK,MAAMA,EAAY,CAAC,EAAI,EAAI,KAAK,KAAKA,EAAY,CAAC,GAE1F,MAAM69C,GAAY,IAAI,gBAAgB99C,EAAUC,CAAS,EAC7C69C,GAAU,WAAW,IAAI,EACjC,UAAUn1B,EAAQ,EAAG,EAAGi1B,EAAWC,EAAY,EAAG,EAAG79C,EAAUC,CAAS,EAC5E0oB,EAASm1B,GAAU,uBACpB,CACD,OAAOn1B,CACR,EACDozB,EAAA,YAAAwB,GAAW,SAACtlD,EAAOC,EAAQ,CACzBD,EAAQ,KAAK,KAAKA,CAAK,EACvBC,EAAS,KAAK,KAAKA,CAAM,EACzB,MAAMwY,EAASpjB,EAAA,KAAKgvD,GACpB,GAAI,CAAC5rC,GAAUA,EAAO,QAAUzY,GAASyY,EAAO,SAAWxY,EACzD,OAEFwY,EAAO,MAAQzY,EACfyY,EAAO,OAASxY,EAChB,MAAMywB,EAASr7B,EAAA,KAAKkvD,GAASlvD,EAAA,KAAK2uD,GAAUhpD,EAAA,KAAK6oD,EAAA2B,IAAL,UAAkBxlD,EAAOC,GAC/D0K,EAAM8N,EAAO,WAAW,IAAI,EAClC9N,EAAI,OAAS,KAAK,WAAW,UAC7BA,EAAI,UAAU+lB,EAAQ,EAAG,EAAGA,EAAO,MAAOA,EAAO,OAAQ,EAAG,EAAG1wB,EAAOC,CAAM,CAC7E,EACD8jD,GAAA,YAAAe,GAAgB,SAACgB,EAAO,CACtB,GAAIA,EAAO,CACT,GAAIzwD,EAAA,KAAKkvD,GAAQ,CACf,MAAM91D,EAAM,KAAK,WAAW,aAAa,UAAU4G,EAAA,KAAK4uD,EAAS,EACjE,GAAIx1D,EACF,OAAOA,CAEV,CACD,MAAMgqB,EAAS,SAAS,cAAc,QAAQ,EAC9C,MAAC,CACC,MAAOA,EAAO,MACd,OAAQA,EAAO,MACvB,EAAUpjB,EAAA,KAAK2uD,GACGvrC,EAAO,WAAW,IAAI,EAC9B,UAAUpjB,EAAA,KAAK2uD,GAAS,EAAG,CAAC,EACzBvrC,EAAO,WACf,CACD,GAAIpjB,EAAA,KAAKkvD,GAAQ,CACf,KAAM,CAACrgD,EAAWC,CAAU,EAAI,KAAK,eAC/BnE,EAAQ,KAAK,MAAM,KAAK,MAAQkE,EAAYzB,EAAe,cAAc,gBAAgB,EACzFxC,EAAS,KAAK,MAAM,KAAK,OAASkE,EAAa1B,EAAe,cAAc,gBAAgB,EAC5FojD,EAAY,IAAI,gBAAgB7lD,EAAOC,CAAM,EAEnD,OADY4lD,EAAU,WAAW,IAAI,EACjC,UAAUxwD,EAAA,KAAK2uD,GAAS,EAAG,EAAG3uD,EAAA,KAAK2uD,GAAQ,MAAO3uD,EAAA,KAAK2uD,GAAQ,OAAQ,EAAG,EAAGhkD,EAAOC,CAAM,EACvF4lD,EAAU,uBAClB,CACD,OAAO,gBAAgBxwD,EAAA,KAAK2uD,EAAO,CACpC,EACDjG,EAAA,YAAAyB,GAAe,UAAG,CAChBrqD,GAAA,KAAK8pD,EAAY,IAAI,eAAesD,GAAW,CAC7C,MAAM7vD,EAAO6vD,EAAQ,CAAC,EAAE,YACpB7vD,EAAK,OAASA,EAAK,QACrBsI,EAAA,KAAK4oD,EAAA2B,IAAL,UAAoB7yD,EAAK,MAAOA,EAAK,OAE7C,CAAK,GACD2C,EAAA,KAAK4pD,GAAU,QAAQ,KAAK,GAAG,CAChC,EAvSGuE,GAWG,MAAQ,QAXjB,IAAMuC,GAANvC,GAoXAr4D,EAAQ,YAAc46D,EAEf,CACP,EAGc,yBAA2B,CAAA,EAG/B,SAAS,oBAAoBC,EAAU,CAEtC,IAAIC,EAAe,yBAAyBD,CAAQ,EACpD,GAAIC,IAAiB,OACpB,OAAOA,EAAa,QAGrB,IAAIC,EAAS,yBAAyBF,CAAQ,EAAI,CAGjD,QAAS,CAAE,CACvB,EAGW,2BAAoBA,CAAQ,EAAEE,EAAQA,EAAO,QAAS,mBAAmB,EAGlEA,EAAO,OACd,CAGX,IAAI,oBAAsB,CAAA,EAE1B,OAAC,IAAM,CACP,IAAI/6D,EAAU,oBAGd,OAAO,eAAeA,EAAS,aAAe,CAC5C,MAAO,EACT,GACA,OAAO,eAAeA,EAAS,iBAAmB,CAChD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,cACd,CACH,GACA,OAAO,eAAejW,EAAS,wBAA0B,CACvD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOg7D,EAAyB,qBACjC,CACH,GACA,OAAO,eAAeh7D,EAAS,6BAA+B,CAC5D,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,0BACd,CACH,GACA,OAAO,eAAejW,EAAS,uBAAyB,CACtD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,oBACd,CACH,GACA,OAAO,eAAejW,EAAS,4BAA8B,CAC3D,WAAY,GACZ,IAAK,UAAY,CACf,OAAOqX,EAAO,yBACf,CACH,GACA,OAAO,eAAerX,EAAS,kBAAoB,CACjD,WAAY,GACZ,IAAK,UAAY,CACf,OAAO8/C,GAAkB,eAC1B,CACH,GACA,OAAO,eAAe9/C,EAAS,iBAAmB,CAChD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,cACd,CACH,GACA,OAAO,eAAejW,EAAS,sBAAwB,CACrD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,mBACd,CACH,GACA,OAAO,eAAejW,EAAS,gBAAkB,CAC/C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,aACvB,CACH,GACA,OAAO,eAAetX,EAAS,cAAgB,CAC7C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,WACd,CACH,GACA,OAAO,eAAejW,EAAS,sBAAwB,CACrD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOi7D,EAAgB,mBACxB,CACH,GACA,OAAO,eAAej7D,EAAS,YAAc,CAC3C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,SACd,CACH,GACA,OAAO,eAAejW,EAAS,sBAAwB,CACrD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,mBACd,CACH,GACA,OAAO,eAAejW,EAAS,sBAAwB,CACrD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,mBACd,CACH,GACA,OAAO,eAAejW,EAAS,MAAQ,CACrC,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,GACd,CACH,GACA,OAAO,eAAejW,EAAS,wBAA0B,CACvD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOk7D,EAAK,qBACb,CACH,GACA,OAAO,eAAel7D,EAAS,gBAAkB,CAC/C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,aACvB,CACH,GACA,OAAO,eAAetX,EAAS,YAAc,CAC3C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOk7D,EAAK,SACb,CACH,GACA,OAAO,eAAel7D,EAAS,oBAAsB,CACnD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,iBACd,CACH,GACA,OAAO,eAAejW,EAAS,iBAAmB,CAChD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,cACd,CACH,GACA,OAAO,eAAejW,EAAS,gBAAkB,CAC/C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,aACvB,CACH,GACA,OAAO,eAAetX,EAAS,oBAAsB,CACnD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,iBACd,CACH,GACA,OAAO,eAAejW,EAAS,8BAAgC,CAC7D,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,2BACvB,CACH,GACA,OAAO,eAAetX,EAAS,cAAgB,CAC7C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOk7D,EAAK,WACb,CACH,GACA,OAAO,eAAel7D,EAAS,8BAAgC,CAC7D,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,2BACd,CACH,GACA,OAAO,eAAejW,EAAS,OAAS,CACtC,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,IACd,CACH,GACA,OAAO,eAAejW,EAAS,iBAAmB,CAChD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,cACd,CACH,GACA,OAAO,eAAejW,EAAS,WAAa,CAC1C,WAAY,GACZ,IAAK,UAAY,CACf,OAAO6iD,EAAW,QACnB,CACH,GACA,OAAO,eAAe7iD,EAAS,QAAU,CACvC,WAAY,GACZ,IAAK,UAAY,CACf,OAAOk7D,EAAK,KACb,CACH,GACA,OAAO,eAAel7D,EAAS,yBAA2B,CACxD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,sBACd,CACH,GACA,OAAO,eAAejW,EAAS,cAAgB,CAC7C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOk7D,EAAK,WACb,CACH,GACA,OAAO,eAAel7D,EAAS,qBAAuB,CACpD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,kBACvB,CACH,GACA,OAAO,eAAetX,EAAS,wBAA0B,CACvD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,qBACvB,CACH,GACA,OAAO,eAAetX,EAAS,qBAAuB,CACpD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,kBACvB,CACH,GACA,OAAO,eAAetX,EAAS,eAAiB,CAC9C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,YACvB,CACH,GACA,OAAO,eAAetX,EAAS,YAAc,CAC3C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,SACvB,CACH,GACA,OAAO,eAAetX,EAAS,aAAe,CAC5C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,UACvB,CACH,GACA,OAAO,eAAetX,EAAS,gBAAkB,CAC/C,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,aACvB,CACH,GACA,OAAO,eAAetX,EAAS,mBAAqB,CAClD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,gBACd,CACH,GACA,OAAO,eAAejW,EAAS,kBAAoB,CACjD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOm7D,EAAY,eACpB,CACH,GACA,OAAO,eAAen7D,EAAS,qBAAuB,CACpD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOsX,EAAe,kBACvB,CACH,GACA,OAAO,eAAetX,EAAS,SAAW,CACxC,WAAY,GACZ,IAAK,UAAY,CACf,OAAOiW,EAAM,MACd,CACH,GACA,OAAO,eAAejW,EAAS,kBAAoB,CACjD,WAAY,GACZ,IAAK,UAAY,CACf,OAAOm7D,EAAY,eACpB,CACH,GACA,OAAO,eAAen7D,EAAS,UAAY,CACzC,WAAY,GACZ,IAAK,UAAY,CACf,OAAOk7D,EAAK,OACb,CACH,GACA,IAAIjlD,EAAQ,oBAAoB,CAAC,EAC7BilD,EAAO,oBAAoB,CAAC,EAC5B5jD,EAAiB,oBAAoB,CAAC,EACtC6jD,EAAc,oBAAoB,EAAE,EACpCH,EAA2B,oBAAoB,EAAE,EACjD3jD,EAAS,oBAAoB,CAAC,EAC9ByoC,GAAoB,oBAAoB,EAAE,EAC1Cmb,EAAkB,oBAAoB,EAAE,EACxCpY,EAAa,oBAAoB,EAAE,CAGvC,KAEiB,mBACjB,GAAa,CAEZ,8JC/tjBK,MAAS,YAAa,YAAcuY,IAAyB,YACnE,QAAe,iCCOXC,uBAAuB,+CAE3B,uBAAiBA,uBCFb,qBAAuB7mC,uBAE3B,SAAS,eAAgB,CAAE,CAC3B,SAAS,wBAAyB,CAAE,CACpC,uBAAuB,kBAAoB,cAE3C,IAAA,yBAAiB,UAAW,CAC1B,SAAS8mC,EAAKC,EAAOC,EAAUC,EAAeC,EAAUC,GAAcC,EAAQ,CAC5E,GAAIA,IAAW,qBAIf,KAAIC,EAAM,IAAI,MACZ,iLAGN,EACI,MAAAA,EAAI,KAAO,sBACLA,EACV,CACEP,EAAK,WAAaA,EAClB,SAASQ,GAAU,CACjB,OAAOR,CAEX,CAEE,IAAIS,EAAiB,CACnB,MAAOT,EACP,KAAMA,EACN,KAAMA,EACN,OAAQA,EACR,OAAQA,EACR,OAAQA,EACR,OAAQA,EAER,IAAKA,EACL,QAASQ,EACT,QAASR,EACT,YAAaA,EACb,WAAYQ,EACZ,KAAMR,EACN,SAAUQ,EACV,MAAOA,EACP,UAAWA,EACX,MAAOA,EACP,MAAOA,EAEP,eAAgB,uBAChB,kBAAmB,aACvB,EAEE,OAAAC,EAAe,UAAYA,EAEpBA,CACT,EC9CEC,UAAc,QAAGxnC,4HCjBnB,IAAI,cAAiBynC,YAAQA,WAAK,eAAkB,SAAUC,EAAIC,EAAMC,EAAM,CAC1E,GAAIA,GAAQ,UAAU,SAAW,EAAG,QAASp3D,EAAI,EAAGq3D,EAAIF,EAAK,OAAQG,EAAIt3D,EAAIq3D,EAAGr3D,KACxEs3D,GAAM,EAAEt3D,KAAKm3D,MACRG,IAAIA,EAAK,MAAM,UAAU,MAAM,KAAKH,EAAM,EAAGn3D,CAAC,GACnDs3D,EAAGt3D,CAAC,EAAIm3D,EAAKn3D,CAAC,GAGtB,OAAOk3D,EAAG,OAAOI,GAAM,MAAM,UAAU,MAAM,KAAKH,CAAI,CAAC,CAC3D,EAEW,gBAAkB,CAAC,SAAU,QAAS,SAAS,EAC/C,kBAAoB,CAC3B,mBACA,qBACA,qBACJ,EACW,YAAc,CAAC,UAAW,QAAQ,EAClC,WAAa,CAAC,UAAW,YAAa,UAAW,UAAU,EAC3D,YAAc,CAAC,SAAU,SAAS,EAClC,eAAiB,CAAC,YAAa,aAAc,SAAS,EACtD,YAAc,CACrB,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,WACJ,EACW,YAAc,CACrB,UACA,gBACA,gBACA,cACA,eACA,eACA,cACA,aACA,cACA,WACJ,EACW,WAAa,CACpB,SACA,YACA,cACA,aACA,cACA,aACA,cACA,QACJ,EACW,gBAAkB,CAAC,UAAU,EAC7B,YAAc,CAAC,gBAAiB,aAAc,cAAe,cAAc,EAC3E,cAAgB,CACvB,gBACA,gBACA,cACA,kBACA,sBACA,uBACA,iBACA,iBACA,gBACA,cACJ,EACW,SAAW,CAAC,UAAU,EACtB,YAAc,CAAC,SAAS,EACxB,gBAAkB,CACzB,mBACA,iBACA,sBACJ,EACW,iBAAmB,CAAC,iBAAiB,EACrC,YAAc,CAAC,UAAU,EACzB,aAAe,CAAC,UAAU,EAC1B,UAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,CAAA,EAAI,gBAAiB,EAAI,EAAG,kBAAmB,EAAI,EAAG,YAAa,EAAI,EAAG,WAAY,EAAI,EAAG,YAAa,EAAI,EAAG,eAAgB,EAAI,EAAG,YAAa,EAAI,EAAG,YAAa,EAAI,EAAG,WAAY,EAAI,EAAG,gBAAiB,EAAI,EAAG,YAAa,EAAI,EAAG,cAAe,EAAI,EAAG,SAAU,EAAI,EAAG,YAAa,EAAI,EAAG,gBAAiB,EAAI,EAAG,iBAAkB,EAAI,EAAG,aAAc,EAAI,EAAG,YAAa,EAAI,EAOroB,SAAS,eAAeZ,EAAOgB,EAAS,CACnD,IAAIC,EAAa,CAAA,EACjB,iBAAU,QAAQ,SAAUrT,EAAW,CACnC,IAAIsT,EAAelB,EAAMpS,CAAS,EAC7BsT,IAGDF,EACAC,EAAWrT,CAAS,EAAK,SAAU/2C,EAAO,CACtC,OAAOqqD,EAAarqD,EAAOmqD,EAAQpT,CAAS,CAAC,CAC7D,EAGYqT,EAAWrT,CAAS,EAAIsT,EAEpC,CAAK,EACMD,CACX,CCnHe,SAAS,uBAAuBxnD,EAAS,CACpD,IAAI0nD,EAAc,GACdC,EAAiB,IAAI,QAAQ,SAAU9yD,EAASC,EAAQ,CACxDkL,EACK,KAAK,SAAUnR,EAAO,CAAE,MAAO,CAAC64D,GAAe7yD,EAAQhG,CAAK,EAAI,EAChE,MAAM,SAAUqM,EAAO,CAAE,MAAO,CAACwsD,GAAe5yD,EAAOoG,CAAK,CAAE,CAAE,CAC7E,CAAK,EACD,MAAO,CACH,QAASysD,EACT,OAAQ,UAAY,CAChBD,EAAc,EACjB,CACT,CACA,CCbA,SAAS,EAAEh+C,EAAE,CAAC,IAAIlW,EAAEgoB,EAAE3qB,EAAE,GAAG,GAAa,OAAO6Y,GAAjB,UAA8B,OAAOA,GAAjB,SAAmB7Y,GAAG6Y,UAAoB,OAAOA,GAAjB,SAAmB,GAAG,MAAM,QAAQA,CAAC,EAAE,CAAC,IAAIk+C,EAAEl+C,EAAE,OAAO,IAAIlW,EAAE,EAAEA,EAAEo0D,EAAEp0D,IAAIkW,EAAElW,CAAC,IAAIgoB,EAAE,EAAE9R,EAAElW,CAAC,CAAC,KAAK3C,IAAIA,GAAG,KAAKA,GAAG2qB,EAAE,KAAM,KAAIA,KAAK9R,EAAEA,EAAE8R,CAAC,IAAI3qB,IAAIA,GAAG,KAAKA,GAAG2qB,GAAG,OAAO3qB,CAAC,CAAQ,SAAS,MAAM,CAAC,QAAQ6Y,EAAElW,EAAEgoB,EAAE,EAAE3qB,EAAE,GAAG+2D,EAAE,UAAU,OAAOpsC,EAAEosC,EAAEpsC,KAAK9R,EAAE,UAAU8R,CAAC,KAAKhoB,EAAE,EAAEkW,CAAC,KAAK7Y,IAAIA,GAAG,KAAKA,GAAG2C,GAAG,OAAO3C,CAAC,CCA/W,IAAI,aAAe,GACf,OAAS,mBACb,SAAS,UAAUg3D,EAAW74D,EAAS,CACnC,GAAI,CAAA64D,EAGJ,IAAI,aACA,MAAM,IAAI,MAAM,MAAM,EAE1B,IAAIC,EAAW,OAAO94D,GAAY,WAAaA,EAAO,EAAKA,EACvDH,EAAQi5D,EAAW,GAAG,OAAO,OAAQ,IAAI,EAAE,OAAOA,CAAQ,EAAI,OAClE,MAAM,IAAI,MAAMj5D,CAAK,EACzB,CCZA,IAAI,IAAM,OAAO,UAAU,eAE3B,SAAS,KAAKyuC,EAAMyqB,EAAK13D,EAAK,CAC7B,IAAKA,KAAOitC,EAAK,OAChB,GAAI,OAAOjtC,EAAK03D,CAAG,EAAG,OAAO13D,CAE/B,CAEO,SAAS,OAAO23D,EAAKC,EAAK,CAChC,IAAIC,EAAMzmB,EAAK/O,EACf,GAAIs1B,IAAQC,EAAK,MAAO,GAExB,GAAID,GAAOC,IAAQC,EAAKF,EAAI,eAAiBC,EAAI,YAAa,CAC7D,GAAIC,IAAS,KAAM,OAAOF,EAAI,YAAcC,EAAI,UAChD,GAAIC,IAAS,OAAQ,OAAOF,EAAI,aAAeC,EAAI,WAEnD,GAAIC,IAAS,MAAO,CACnB,IAAKzmB,EAAIumB,EAAI,UAAYC,EAAI,OAC5B,KAAOxmB,KAAS,OAAOumB,EAAIvmB,CAAG,EAAGwmB,EAAIxmB,CAAG,CAAC,GAAE,CAE5C,OAAOA,IAAQ,EACf,CAED,GAAIymB,IAAS,IAAK,CACjB,GAAIF,EAAI,OAASC,EAAI,KACpB,MAAO,GAER,IAAKxmB,KAAOumB,EAMX,GALAt1B,EAAM+O,EACF/O,GAAO,OAAOA,GAAQ,WACzBA,EAAM,KAAKu1B,EAAKv1B,CAAG,EACf,CAACA,IAEF,CAACu1B,EAAI,IAAIv1B,CAAG,EAAG,MAAO,GAE3B,MAAO,EACP,CAED,GAAIw1B,IAAS,IAAK,CACjB,GAAIF,EAAI,OAASC,EAAI,KACpB,MAAO,GAER,IAAKxmB,KAAOumB,EAMX,GALAt1B,EAAM+O,EAAI,CAAC,EACP/O,GAAO,OAAOA,GAAQ,WACzBA,EAAM,KAAKu1B,EAAKv1B,CAAG,EACf,CAACA,IAEF,CAAC,OAAO+O,EAAI,CAAC,EAAGwmB,EAAI,IAAIv1B,CAAG,CAAC,EAC/B,MAAO,GAGT,MAAO,EACP,CAED,GAAIw1B,IAAS,YACZF,EAAM,IAAI,WAAWA,CAAG,EACxBC,EAAM,IAAI,WAAWA,CAAG,UACdC,IAAS,SAAU,CAC7B,IAAKzmB,EAAIumB,EAAI,cAAgBC,EAAI,WAChC,KAAOxmB,KAASumB,EAAI,QAAQvmB,CAAG,IAAMwmB,EAAI,QAAQxmB,CAAG,GAAE,CAEvD,OAAOA,IAAQ,EACf,CAED,GAAI,YAAY,OAAOumB,CAAG,EAAG,CAC5B,IAAKvmB,EAAIumB,EAAI,cAAgBC,EAAI,WAChC,KAAOxmB,KAASumB,EAAIvmB,CAAG,IAAMwmB,EAAIxmB,CAAG,GAAE,CAEvC,OAAOA,IAAQ,EACf,CAED,GAAI,CAACymB,GAAQ,OAAOF,GAAQ,SAAU,CACrCvmB,EAAM,EACN,IAAKymB,KAAQF,EAEZ,GADI,IAAI,KAAKA,EAAKE,CAAI,GAAK,EAAEzmB,GAAO,CAAC,IAAI,KAAKwmB,EAAKC,CAAI,GACnD,EAAEA,KAAQD,IAAQ,CAAC,OAAOD,EAAIE,CAAI,EAAGD,EAAIC,CAAI,CAAC,EAAG,MAAO,GAE7D,OAAO,OAAO,KAAKD,CAAG,EAAE,SAAWxmB,CACnC,CACD,CAED,OAAOumB,IAAQA,GAAOC,IAAQA,CAC/B,CCjFA,MAAeE,gBAAAA,aAAAA,cAAc,IAAI,ECDlB,SAAS,QAAQ,CAAE,SAAAC,EAAU,KAAA9oD,GAAQ,CAChD,OAAO,MAAM,cAAc,MAAO,CAAE,UAAW,0CAA0CA,CAAI,IAAM8oD,CAAQ,CAC/G,CCYA,MAAM,iBAAmB,+BACV,MAAM,WAAY,CAC7B,aAAc,CACV,KAAK,oBAAsB,GAC3B,KAAK,gBAAkB,OACvB,KAAK,mBAAqB,OAC1B,KAAK,qBAAuB,GAC5B,KAAK,YAAc,OACnB,KAAK,UAAY,MACpB,CACD,YAAY76C,EAAa,CACrB,KAAK,YAAcA,CACtB,CACD,UAAU86C,EAAW,CACjB,KAAK,UAAYA,CACpB,CACD,mBAAmBC,EAAiB,CAChC,KAAK,gBAAkBA,CAC1B,CACD,sBAAsBC,EAAoB,CACtC,KAAK,mBAAqBA,CAC7B,CACD,YAAa,CAEZ,CACD,IAAI,YAAa,CACb,OAAO,KAAK,YAAc,KAAK,YAAY,SAAW,CACzD,CACD,IAAI,MAAO,CACP,iBAAU,KAAK,UAAW,gCAAgC,EACnD,KAAK,UAAU,mBAAqB,CAC9C,CACD,IAAI,KAAK15D,EAAO,CACZ,UAAU,KAAK,UAAW,gCAAgC,EAC1D,KAAK,UAAU,kBAAoBA,CACtC,CAED,IAAI,UAAW,CACX,MAAO,EACV,CACD,IAAI,SAASA,EAAO,CAEnB,CACD,gBAAgBo1B,EAAM,CAClB,OAAO,IAAI,QAASpvB,GAAY,CAC5B,UAAU,KAAK,YAAa,0BAA0B,EACtD,UAAUovB,EAAM,+BAA+B,EAC3C,OAAOA,GAAS,SAChB,KAAK,YAAY,eAAeA,CAAI,EAAE,KAAKpvB,CAAO,EAE7C,MAAM,QAAQovB,CAAI,EACvBpvB,EAAQovB,CAAI,EAGZA,EAAK,KAAKpvB,CAAO,CAEjC,CAAS,EAAE,KAAM2zD,GAAiB,CACtB,UAAU,MAAM,QAAQA,CAAY,EAAG,IAAIA,CAAY,qCAAqC,EAC5F,MAAMC,EAAUD,EAAa,CAAC,EAC9B,IAAI,QAAS3zD,GAAY,CACrB,UAAU,KAAK,YAAa,0BAA0B,EAClD4zD,aAAmB,OACnB,KAAK,YACA,aAAaA,CAAO,EACpB,KAAMjvD,GAAc,CACrB3E,EAAQ2E,CAAS,CACzC,CAAqB,EACI,MAAM,IAAM,CACb,UAAU,GAAO,IAAIivD,CAAO,kCAAkC,CACtF,CAAqB,EAEI,OAAOA,GAAY,SACxB5zD,EAAQ4zD,CAAO,EAGf,UAAU,GAAO,IAAIA,CAAO,yCAAyC,CAEzF,CAAa,EAAE,KAAMjvD,GAAc,CACnB,MAAMJ,EAAaI,EAAY,EAC/B,UAAU,KAAK,UAAW,gCAAgC,EAC1D,UAAUJ,GAAc,GAAKA,GAAc,KAAK,WAAY,IAAIA,CAAU,+BAA+B,EACzG,KAAK,UAAU,mBAAmB,CAC9B,KAAMovD,EACN,UAAAhvD,EACA,WAAAJ,CACpB,CAAiB,CACjB,CAAa,CACb,CAAS,CACJ,CACD,WAAW6qB,EAAM,CACb,KAAK,gBAAgBA,CAAI,CAC5B,CACD,SAAS7qB,EAAY,CACjB,MAAMI,EAAYJ,EAAa,EAC/B,UAAU,KAAK,UAAW,gCAAgC,EAC1D,UAAUA,GAAc,GAAKA,GAAc,KAAK,WAAY,IAAIA,CAAU,+BAA+B,EACzG,KAAK,UAAU,mBAAmB,CAC9B,UAAAI,EACA,WAAAJ,CACZ,CAAS,CACJ,CACD,kBAAkB25C,EAAMzkD,EAAKo6D,EAAW,CACpC3V,EAAK,KAAOzkD,EACZykD,EAAK,IAAM,KAAK,iBAAmB,iBACnCA,EAAK,OAAS2V,EAAY,SAAW,KAAK,oBAAsB,EACnE,CACD,oBAAqB,CACjB,MAAO,GACV,CACD,cAAe,CACX,MAAO,GACV,CACD,SAAU,CAET,CACD,oBAAqB,CAEpB,CACD,cAAe,CAEd,CACD,eAAgB,CACZ,MAAO,EACV,CACD,cAAe,CACX,MAAO,EACV,CACD,oBAAqB,CAEpB,CACL,CChJA,MAAM,kBAAoB,CACtB,cAAe,EACf,mBAAoB,CACxB,EACA,oBAAe,kBCAF,UAAY,OAAO,SAAa,IAIhC,kBAAoB,WAAa,OAAO,SAAS,WAAa,QAMpE,SAAS,UAAUC,EAAU,CAChC,OAAO,OAAOA,EAAa,GAC/B,CAMO,SAAS,WAAWA,EAAU,CACjC,OAAO,UAAUA,CAAQ,GAAKA,IAAa,IAC/C,CAMO,SAAS,SAASA,EAAU,CAC/B,OAAO,OAAOA,GAAa,QAC/B,CAMO,SAAS,cAAcA,EAAU,CACpC,OAAOA,aAAoB,WAC/B,CAMO,SAAS,OAAOA,EAAU,CAC7B,iBAAU,UAAW,kDAAkD,EAChEA,aAAoB,IAC/B,CAMO,SAAS,UAAUA,EAAU,CAChC,OAAO,SAASA,CAAQ,GAAK,SAAS,KAAKA,CAAQ,CACvD,CACO,SAAS,oBAAoBC,EAAS,CACzC,UAAU,UAAUA,CAAO,EAAG,mBAAmB,EACjD,KAAM,CAACC,EAAgB,GAAIC,EAAa,EAAE,EAAIF,EAAQ,MAAM,GAAG,EAE/D,OADgBC,EAAc,MAAM,GAAG,EAC3B,QAAQ,QAAQ,IAAM,GACvB,KAAKC,CAAU,EAEnB,SAASA,CAAU,CAC9B,CACO,SAAS,qBAAsB,CAClC,OAAQ,WAAa,OAAO,kBAAqB,CACrD,CACA,MAAM,4BAA8B,sGAC7B,SAAS,oBAAqB,CACjCC,UAAQ,CAAC,kBAAmB,uFAAuF,2BAA2B,EAAE,CACpJ,CACO,SAAS,sBAAuB,CACnCA,UAAQ,CAAC,kBAAmB,0EAA0E,2BAA2B,EAAE,CACvI,CACO,SAAS,kBAAkBC,EAAa,CACvCA,GAAeA,EAAY,QAC3BA,EAAY,OAAM,CAC1B,CACO,SAAS,iBAAiBpqD,EAAM9E,EAAO,CAC1C,cAAO,eAAe8E,EAAM,QAAS,CACjC,KAAM,CACF,OAAO,KAAK,KAAK,CAAC,EAAI9E,CACzB,EACD,aAAc,EACtB,CAAK,EACD,OAAO,eAAe8E,EAAM,SAAU,CAClC,KAAM,CACF,OAAO,KAAK,KAAK,CAAC,EAAI9E,CACzB,EACD,aAAc,EACtB,CAAK,EACD,OAAO,eAAe8E,EAAM,gBAAiB,CACzC,KAAM,CACF,OAAO,KAAK,KAAK,CAAC,CACrB,EACD,aAAc,EACtB,CAAK,EACD,OAAO,eAAeA,EAAM,iBAAkB,CAC1C,KAAM,CACF,OAAO,KAAK,KAAK,CAAC,CACrB,EACD,aAAc,EACtB,CAAK,EACMA,CACX,CACO,SAAS,kBAAkB1D,EAAO,CACrC,OAAOA,EAAM,OAAS,6BAC1B,CACO,SAAS,aAAawP,EAAM,CAC/B,OAAO,IAAI,QAAQ,CAAC7V,EAASC,IAAW,CACpC,MAAMkH,EAAS,IAAI,WACnBA,EAAO,OAAS,IAAM,CAClB,GAAI,CAACA,EAAO,OACR,OAAOlH,EAAO,IAAI,MAAM,6BAA6B,CAAC,EAE1DD,EAAQmH,EAAO,MAAM,CACjC,EACQA,EAAO,QAAWoB,GAAU,CACxB,GAAI,CAACA,EAAM,OACP,OAAOtI,EAAO,IAAI,MAAM,6BAA6B,CAAC,EAE1D,KAAM,CAAE,MAAAoG,CAAK,EAAKkC,EAAM,OACxB,GAAI,CAAClC,EACD,OAAOpG,EAAO,IAAI,MAAM,6BAA6B,CAAC,EAE1D,OAAQoG,EAAM,KAAI,CACd,KAAKA,EAAM,cACP,OAAOpG,EAAO,IAAI,MAAM,6CAA6C,CAAC,EAC1E,KAAKoG,EAAM,aACP,OAAOpG,EAAO,IAAI,MAAM,6CAA6C,CAAC,EAC1E,KAAKoG,EAAM,UACP,OAAOpG,EAAO,IAAI,MAAM,sCAAsC,CAAC,EACnE,QACI,OAAOA,EAAO,IAAI,MAAM,6BAA6B,CAAC,CAC7D,CACb,EACQkH,EAAO,kBAAkB0O,CAAI,CACrC,CAAK,CACL,CC7IA,SAAS,QAAQiwB,EAAOtC,EAAQ,CAC5B,OAAQA,EAAO,KAAI,CACf,IAAK,UACD,MAAO,CAAE,MAAOA,EAAO,MAAO,MAAO,MAAS,EAClD,IAAK,SACD,MAAO,CAAE,MAAO,GAAO,MAAOA,EAAO,KAAK,EAC9C,IAAK,QACD,MAAO,CAAE,MAAO,OAAW,MAAO,MAAS,EAC/C,QACI,OAAOsC,CACd,CACL,CACe,SAAS,aAAc,CAClC,OAAOsuB,aAAAA,WAAY,QAAU,CAAE,MAAO,OAAW,MAAO,MAAS,CAAE,CACvE,CCVA,KAAM,CAAEC,sBAAAA,uBAAuB,EAAGC,QACrB,YAAc,IAAM,CAC7B,MAAM3wB,EAAS,CAAA,EACf,iBAAU,QAAS2b,GAAc,CAC7B3b,EAAO2b,CAAS,EAAI,UAAU,IACtC,CAAK,EACM3b,CACX,KACM,aAAe,UAAU,UAAU,CACrC,UAAU,WAAW,SAAS,EAC9B,UAAU,WAAW,UAAU,EAC/B,UAAU,WAAW,iBAAiB,EACtC,UAAU,WAAW,UAAU,EAC/B,UAAU,WAAW,WAAW,EAChC,UAAU,WAAW,UAAU,EAC/B,UAAU,WAAW,WAAW,EAChC,UAAU,WAAW,YAAY,EACjC,UAAU,WAAW,YAAY,CACrC,CAAC,EACK,UAAY,CACd,UAAU,OACV,UAAU,WAAW,WAAW,EAChC,UAAU,MAAM,CACZ,KAAM,UAAU,UAAU,CACtB,UAAU,OACV,UAAU,WAAW,WAAW,EAChC,UAAU,QAAQ,UAAU,OAAO,UAAU,EAC7C,YACH,CAAA,EAAE,UACX,CAAK,EACD,UAAU,MAAM,CACZ,MAAO,UAAU,WAAW0wB,uBAAqB,EAAE,UAC3D,CAAK,EACD,UAAU,MAAM,CACZ,IAAK,UAAU,OAAO,UAC9B,CAAK,CACL,EACI,OAAO,KAAS,KAChB,UAAU,KAAK,UAAU,WAAW,IAAI,CAAC,EAEtC,MAAM,YAAc,UAAU,UAAU,CAC3C,UAAU,OACV,UAAU,QAAQ,UAAU,MAAM,CACtC,CAAC,EACY,OAAS,UAAU,UAAU,SAAS,EACtB,UAAU,WAAW,WAAW,EACjC,UAAU,MAAM,CAAC,QAAS,SAAU,UAAW,MAAM,CAAC,EAC5D,UAAU,MAAM,CAClC,WAAY,UAAU,MAAM,CAAA,CAAE,EAAE,WAChC,eAAgB,UAAU,KAAK,WAC/B,eAAgB,UAAU,KAAK,WAC/B,YAAa,UAAU,KAAK,WAC5B,OAAQ,UAAU,KAAK,UAC3B,CAAC,EACM,MAAM,YAAc,SAASE,EAAY7C,EAAOC,EAAUC,EAAe,CAC5E,KAAM,CAAE,CAACD,CAAQ,EAAGhtD,EAAW,WAAAJ,EAAY,IAAAiwD,CAAK,EAAG9C,EACnD,GAAI,CAAC,UAAU8C,CAAG,EACd,OAAO,KAEX,GAAI,UAAU7vD,CAAS,EAAG,CACtB,GAAI,OAAOA,GAAc,SACrB,OAAO,IAAI,MAAM,KAAKgtD,CAAQ,gBAAgB,OAAOhtD,CAAS,oBAAoBitD,CAAa,0BAA0B,EAE7H,GAAIjtD,EAAY,EACZ,OAAO,IAAI,MAAM,cAAcgtD,CAAQ,iCAAiC,EAE5E,KAAM,CAAE,SAAA8C,EAAU,EAAGD,EACrB,GAAI7vD,EAAY,EAAI8vD,GAChB,OAAO,IAAI,MAAM,cAAc9C,CAAQ,6BAA6B8C,GAAW,CAAC,GAAG,CAE1F,SACQ,CAAC,UAAUlwD,CAAU,EAC1B,OAAO,IAAI,MAAM,KAAKotD,CAAQ,yEAAyEC,CAAa,KAAK,EAG7H,OAAO,IACX,EACa,aAAe,SAAS8C,EAAahD,EAAOC,EAAUC,EAAe,CAC9E,KAAM,CAAE,CAACD,CAAQ,EAAGptD,EAAY,UAAAI,EAAW,IAAA6vD,CAAK,EAAG9C,EACnD,GAAI,CAAC,UAAU8C,CAAG,EACd,OAAO,KAEX,GAAI,UAAUjwD,CAAU,EAAG,CACvB,GAAI,OAAOA,GAAe,SACtB,OAAO,IAAI,MAAM,KAAKotD,CAAQ,gBAAgB,OAAOptD,CAAU,oBAAoBqtD,CAAa,0BAA0B,EAE9H,GAAIrtD,EAAa,EACb,OAAO,IAAI,MAAM,cAAcotD,CAAQ,iCAAiC,EAE5E,KAAM,CAAE,SAAA8C,EAAU,EAAGD,EACrB,GAAIjwD,EAAakwD,GACb,OAAO,IAAI,MAAM,cAAc9C,CAAQ,6BAA6B8C,EAAQ,GAAG,CAEtF,SACQ,CAAC,UAAU9vD,CAAS,EACzB,OAAO,IAAI,MAAM,KAAKgtD,CAAQ,yEAAyEC,CAAa,KAAK,EAG7H,OAAO,IACX,EACa,MAAQ,UAAU,UAAU,CAErC,UAAU,IACV,UAAU,MAAM,CAAC,EAAK,CAAC,CAC3B,CAAC,EACY,MAAQ,UAAU,UAAU,CACrC,UAAU,KACV,UAAU,MAAM,CACZ,QAAS,UAAU,GAC3B,CAAK,CACL,CAAC,EACY,aAAe,UAAU,MAAM,CAAC,SAAU,SAAU,OAAQ,KAAK,CAAC,EAClE,SAAW,UAAU,MAAM,CAAC,EAAG,GAAI,IAAK,GAAG,CAAC,ECpHzD,IAAI+C,YAAavC,YAAQA,WAAK,WAAc,SAAUwC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMh7D,EAAO,CAAE,OAAOA,aAAiB86D,EAAI96D,EAAQ,IAAI86D,EAAE,SAAU90D,EAAS,CAAEA,EAAQhG,CAAK,CAAE,CAAE,CAAI,CAC5G,OAAO,IAAK86D,IAAMA,EAAI,UAAU,SAAU90D,EAASC,EAAQ,CACvD,SAASg1D,GAAUj7D,EAAO,CAAE,GAAI,CAAE0oB,EAAKqyC,EAAU,KAAK/6D,CAAK,CAAC,CAAE,OAAU6a,EAAG,CAAE5U,EAAO4U,CAAC,EAAM,CAC3F,SAASqgD,EAASl7D,EAAO,CAAE,GAAI,CAAE0oB,EAAKqyC,EAAU,MAAS/6D,CAAK,CAAC,CAAI,OAAQ6a,EAAG,CAAE5U,EAAO4U,CAAC,EAAM,CAC9F,SAAS6N,EAAKihB,EAAQ,CAAEA,EAAO,KAAO3jC,EAAQ2jC,EAAO,KAAK,EAAIqxB,EAAMrxB,EAAO,KAAK,EAAE,KAAKsxB,GAAWC,CAAQ,CAAI,CAC9GxyC,GAAMqyC,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAE,CAAA,GAAG,KAAI,CAAE,CAC5E,CAAK,CACL,EACIM,SAAU/C,YAAQA,WAAK,QAAW,SAAU3oC,EAAG5U,EAAG,CAClD,IAAIlW,EAAI,CAAA,EACR,QAASjC,KAAK+sB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG/sB,CAAC,GAAKmY,EAAE,QAAQnY,CAAC,EAAI,IAC9EiC,EAAEjC,CAAC,EAAI+sB,EAAE/sB,CAAC,GACd,GAAI+sB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAStuB,EAAI,EAAGuB,EAAI,OAAO,sBAAsB+sB,CAAC,EAAGtuB,EAAIuB,EAAE,OAAQvB,IAC3D0Z,EAAE,QAAQnY,EAAEvB,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKsuB,EAAG/sB,EAAEvB,CAAC,CAAC,IACzEwD,EAAEjC,EAAEvB,CAAC,CAAC,EAAIsuB,EAAE/sB,EAAEvB,CAAC,CAAC,GAE5B,OAAOwD,CACX,EAiBA,KAAM,CAAE,qBAAuB,EAAG21D,QAC5B,kBAAoB,CAAC7oD,EAAUrL,IAAW,CAC5C,OAAQA,EAAM,CACV,KAAKjH,oBAAkB,cAAe,CAElC,MAAM6H,EAAW,OAAO,2CAA2C,EACnEyK,EAASzK,CAAQ,EACjB,KACH,CACD,KAAK7H,oBAAkB,mBAAoB,CAEvC,MAAM6H,EAAW,OAAO,qCAAqC,EAC7DyK,EAASzK,CAAQ,EACjB,KACH,CAEJ,CACL,EACA,SAAS,kBAAkB6U,EAAM,CAC7B,OAAQ,OAAOA,GAAS,UACpBA,IAAS,OACR,SAAUA,GAAQ,UAAWA,GAAQ,QAASA,EACvD,CAIA,MAAM,SAAWu/C,aAAAA,WAAW,SAASC,EAASv5D,EAAI0I,EAAK,CACnD,GAAI,CAAE,SAAA+uD,EAAU,UAAA+B,EAAW,MAAAjvD,EAAQ,2BAA4B,gBAAAotD,EAAiB,mBAAAC,GAAoB,KAAA79C,EAAM,SAAA0/C,EAAU,mBAAAC,EAAoB,QAAAC,EAAU,eAAgB,OAAAC,EAAS,yBAA0B,YAAAC,EAAa,YAAaC,EAAkB,eAAAC,EAAgB,cAAeC,EAAoB,WAAAC,EAAa,kBAAmB,cAAeC,EAAoB,gBAAiBC,EAAsB,QAAAt8D,EAAS,WAAAu8D,EAAY,OAAAC,CAAQ,EAAGr6D,EAAIs6D,EAAajB,SAAOr5D,EAAI,CAAC,WAAY,YAAa,QAAS,kBAAmB,qBAAsB,OAAQ,WAAY,qBAAsB,UAAW,SAAU,cAAe,cAAe,iBAAkB,gBAAiB,aAAc,gBAAiB,kBAAmB,UAAW,aAAc,QAAQ,CAAC,EAC1uB,KAAM,CAACu6D,EAAaC,CAAc,EAAI,YAAW,EAC3C,CAAE,MAAOhzD,EAAQ,MAAOizD,CAAW,EAAKF,EACxC,CAACG,EAAUC,CAAW,EAAI,YAAW,EACrC,CAAE,MAAOjC,EAAK,MAAOkC,CAAQ,EAAKF,EAClCvY,GAAc0Y,aAAAA,OAAO,IAAI,WAAa,EACtCC,GAAQD,oBAAO,CAAA,CAAE,EACjBE,EAAWF,aAAAA,SACXG,GAAcH,aAAAA,SACpBI,aAAAA,UAAU,IAAM,CACRlhD,GAAQA,IAASghD,EAAS,SAAW,kBAAkBhhD,CAAI,IAC3Dq+C,UAAQ,CAAC,OAAOr+C,EAAMghD,EAAS,OAAO,EAAG,yKAAyK,EAClNA,EAAS,QAAUhhD,EAE/B,EAAO,CAACA,CAAI,CAAC,EAETkhD,aAAAA,UAAU,IAAM,CACRp9D,GAAWA,IAAYm9D,GAAY,UACnC5C,UAAQ,CAAC,OAAOv6D,EAASm9D,GAAY,OAAO,EAAG,+KAA+K,EAC9NA,GAAY,QAAUn9D,EAElC,EAAO,CAACA,CAAO,CAAC,EACZ,MAAM4e,GAASo+C,aAAAA,OAAO,CAElB,mBAAqB9+C,IAAS,CAC1B,KAAM,CAAE,KAAAuX,GAAM,WAAA7qB,GAAY,UAAAI,GAAYJ,GAAa,CAAG,EAAGsT,GAEzD,GAAI89C,EAAa,CACbA,EAAY,CAAE,KAAAvmC,GAAM,UAAAzqB,GAAW,WAAAJ,EAAY,CAAA,EAC3C,MACH,CAED,MAAMwF,GAAO6sD,GAAM,QAAQjyD,EAAS,EACpC,GAAIoF,GAAM,CAENA,GAAK,eAAc,EACnB,MACH,CACDmqD,UAAQ,GAAO,oCAAoC3vD,EAAU,wPAAwP,CACxT,CACT,CAAK,EACDyyD,aAAmB,oBAACxyD,EAAK,KAAO,CAC5B,YAAAy5C,GACA,MAAA2Y,GACA,OAAAr+C,EACR,GAAQ,CAAE,CAAA,EAIN,SAAS0+C,IAAkB,CACnBhB,GACAA,GAEP,CAID,SAASiB,IAAgB,CAChBX,IAILrC,UAAQ,GAAOqC,EAAY,SAAU,CAAA,EACjCP,GACAA,EAAmBO,CAAW,EAErC,CACD,SAASY,GAAc,CACnBb,EAAe,CAAE,KAAM,OAAO,CAAE,CACnC,CACDS,aAAAA,UAAUI,EAAa,CAACthD,EAAMygD,CAAc,CAAC,EAC7C,MAAMc,EAAqBC,aAAW,YAAC,IAAM1C,YAAU,KAAM,OAAQ,OAAQ,WAAa,CACtF,GAAI,CAAC9+C,EACD,OAAO,KAGX,GAAI,OAAOA,GAAS,SAChB,OAAI,UAAUA,CAAI,EAEP,CAAE,KADc,oBAAoBA,CAAI,IAGnD,qBACO,CAAE,IAAKA,IAGlB,GAAIA,aAAgB,sBAChB,MAAO,CAAE,MAAOA,GAGpB,GAAI,cAAcA,CAAI,EAClB,MAAO,CAAE,KAAMA,GAMnB,GAAI,WAEI,OAAOA,CAAI,EAEX,MAAO,CAAE,KADI,MAAM,aAAaA,CAAI,CACvB,EAOrB,GAHA,UAAU,OAAOA,GAAS,SAAU,iFAAiF,EACrH,UAAU,kBAAkBA,CAAI,EAAG,6DAA6D,EAE5F,QAASA,GAAQ,OAAOA,EAAK,KAAQ,SAAU,CAC/C,GAAI,UAAUA,EAAK,GAAG,EAAG,CACrB,KAAM,CAAE,IAAApc,EAAK,EAAGoc,EAAMyhD,GAAcnC,SAAOt/C,EAAM,CAAC,KAAK,CAAC,EAClD0hD,GAAiB,oBAAoB99D,EAAG,EAC9C,OAAO,OAAO,OAAO,CAAE,KAAM89D,EAAc,EAAID,EAAW,CAC7D,CACD,oBACH,CACD,OAAOzhD,CACf,CAAK,EAAG,CAACA,CAAI,CAAC,EACVkhD,aAAAA,UAAU,IAAM,CACZ,MAAMS,GAAcC,uBAAgBL,EAAkB,CAAE,EACxD,OAAAI,GAAY,QACP,KAAME,IAAe,CACtBpB,EAAe,CAAE,KAAM,UAAW,MAAOoB,EAAY,CAAA,CACjE,CAAS,EACI,MAAOrxD,IAAU,CAClBiwD,EAAe,CAAE,KAAM,SAAU,MAAAjwD,EAAO,CAAA,CACpD,CAAS,EACM,IAAM,CACT,kBAAkBmxD,EAAW,CACzC,CACA,EAAO,CAACJ,EAAoBd,CAAc,CAAC,EACvCS,aAAAA,UAAU,IAAM,CACZ,GAAI,SAAOzzD,EAAW,KAGtB,IAAIA,IAAW,GAAO,CAClB4zD,KACA,MACH,CACDD,KACH,EAGD,CAAC3zD,CAAM,CAAC,EAIR,SAASq0D,GAAgB,CAChBnD,IAIDsB,GACAA,EAAmBtB,CAAG,EAE1BoC,GAAM,QAAU,IAAI,MAAMpC,EAAI,QAAQ,EACtCvW,GAAY,QAAQ,YAAYuW,CAAG,EACtC,CAID,SAASoD,GAAc,CACdlB,IAILxC,UAAQ,GAAOwC,EAAS,SAAU,CAAA,EAC9Bd,GACAA,EAAiBc,CAAQ,EAEhC,CACD,SAASmB,GAAgB,CACrBpB,EAAY,CAAE,KAAM,OAAO,CAAE,CAChC,CACDM,aAAAA,UAAUc,EAAe,CAACpB,EAAanzD,CAAM,CAAC,EAC9C,SAASw0D,GAAe,CACpB,GAAI,CAACx0D,EACD,OAEJ,MAAMy0D,GAAqBp+D,EACrB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE2J,CAAM,EAAG3J,CAAO,EAAI2J,EACpD00D,GAAc1D,QAAM,YAAYyD,EAAkB,EACpDlC,IACAmC,GAAY,WAAanC,GAEzBE,IACAiC,GAAY,WAAajC,GAE7B,MAAMvsD,GAAcwuD,GACpB,OAAAxuD,GAAY,QACP,KAAMyuD,IAAY,CACnBxB,EAAY,CAAE,KAAM,UAAW,MAAOwB,EAAS,CAAA,CAC3D,CAAS,EACI,MAAO5xD,IAAU,CACdmD,GAAY,WAGhBitD,EAAY,CAAE,KAAM,SAAU,MAAApwD,EAAO,CAAA,CACjD,CAAS,EACM,IAAM,CACTmD,GAAY,QAAO,CAC/B,CACK,CACDutD,aAAAA,UAAUe,EAGV,CAACn+D,EAAS88D,EAAanzD,CAAM,CAAC,EAC9ByzD,aAAAA,UAAU,IAAM,CACZ,GAAI,SAAOvC,EAAQ,KAGnB,IAAIA,IAAQ,GAAO,CACfoD,IACA,MACH,CACDD,IACH,EAGD,CAACnD,CAAG,CAAC,EACL,SAAS0D,GAAmB,CACxBja,GAAY,QAAQ,UAAU1lC,GAAO,OAAO,EAC5C0lC,GAAY,QAAQ,mBAAmBwV,CAAe,EACtDxV,GAAY,QAAQ,sBAAsByV,EAAkB,CAC/D,CACDqD,aAAAA,UAAUmB,EAAkB,CAACzE,EAAiBC,EAAkB,CAAC,EACjE,SAASyE,EAAaxzD,GAAWH,GAAK,CAClCoyD,GAAM,QAAQjyD,EAAS,EAAIH,EAC9B,CACD,SAAS4zD,EAAezzD,GAAW,CAC/B,OAAOiyD,GAAM,QAAQjyD,EAAS,CACjC,CACD,MAAM0zD,GAAeC,aAAAA,QAAQ,KAAO,CAChC,mBAAA9C,EACA,YAAavX,GAAY,QACzB,YAAA0X,EACA,IAAAnB,EACA,aAAA2D,EACA,WAAAjC,EACA,OAAAC,EACA,eAAAiC,CACR,GAAQ,CAAC5C,EAAoBG,EAAanB,EAAK0B,EAAYC,CAAM,CAAC,EACxDxD,GAAa2F,aAAAA,QAAQ,IAAM,eAAelC,EAAY,IAAM5B,CAAG,EAAG,CAAC4B,EAAY5B,CAAG,CAAC,EACzF,SAAS+D,IAAiB,CACtB,OAAO,MAAM,cAAc,gBAAgB,SAAU,CAAE,MAAOF,IAAgB9E,CAAQ,CACzF,CACD,SAASiF,IAAgB,CACrB,OAAK3iD,EAGoB2+C,GAAQ,KACrB,MAAM,cAAc,QAAS,CAAE,KAAM,WAAa,OAAOiB,GAAY,WAAaA,EAAS,EAAGA,CAAO,EAE7GjB,IAAQ,GACD,MAAM,cAAc,QAAS,CAAE,KAAM,SAAW,OAAOnuD,GAAU,WAAaA,EAAO,EAAGA,CAAK,EAEjGkyD,GAAc,EARV,MAAM,cAAc,QAAS,CAAE,KAAM,WAAa,OAAO7C,GAAW,WAAaA,EAAQ,EAAGA,CAAM,CAShH,CACD,OAAQ,MAAM,cAAc,MAAO,OAAO,OAAO,CAAE,UAAW,KAAK,sBAAuBJ,CAAS,EAAG,IAAKC,EAAU,MAAO,CACnH,iBAAmB,GACvB,CAAA,EAAI5C,EAAU,EAAG6F,GAAa,CAAE,CACzC,CAAC,EACKC,mBAAmB,UAAU,UAAU,CAAC,UAAU,KAAM,UAAU,IAAI,CAAC,EAC7E,SAAS,UAAY,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,UAAU,EAAG,CAAE,SAAU,UAAU,KAAM,UAAW,YAAa,MAAOA,mBAAkB,gBAAiB,UAAU,OAAQ,mBAAoB,UAAU,MAAM,CAAC,QAAS,SAAU,UAAW,MAAM,CAAC,EAAG,KAAM,OAAQ,mBAAoB,UAAU,OAAQ,SAAU,MAAO,QAASA,mBAAkB,OAAQA,mBAAkB,YAAa,UAAU,KAAM,YAAa,UAAU,KAAM,eAAgB,UAAU,KAAM,cAAe,UAAU,KAAM,WAAY,UAAU,KAAM,cAAe,UAAU,KAAM,gBAAiB,UAAU,KAAM,QAAS,UAAU,MAAM,CAC/lB,cAAe,UAAU,IACzB,qBAAsB,UAAU,OAChC,WAAY,UAAU,KACtB,kBAAmB,UAAU,IAC7B,QAAS,UAAU,OACnB,iBAAkB,UAAU,KAC5B,gBAAiB,UAAU,KAC3B,aAAc,UAAU,KACxB,cAAe,UAAU,KACzB,WAAY,UAAU,OACtB,UAAW,UAAU,KACrB,cAAe,UAAU,IACzB,oBAAqB,UAAU,KAC/B,YAAa,UAAU,OACvB,gBAAiB,UAAU,KAC3B,2BAA4B,UAAU,KACtC,OAAQ,UAAU,OAClB,aAAc,UAAU,OACxB,cAAe,UAAU,IACzB,SAAU,UAAU,OACpB,OAAQ,UAAU,KAClB,eAAgB,UAAU,OAC1B,wBAAyB,UAAU,IACnC,oBAAqB,UAAU,OAC/B,aAAc,UAAU,KACxB,eAAgB,UAAU,KAC1B,eAAgB,UAAU,KAC1B,UAAW,UAAU,OACrB,gBAAiB,UAAU,KAC3B,OAAQ,UAAU,GACrB,CAAA,EAAG,OAAQ,UAAU,MAAQ,CAAA,EAClC,MAAA,WAAe,SCpWAnF,eAAAA,aAAAA,cAAc,IAAI,ECFlB,MAAM,GAAI,CACrB,YAAY,CAAE,IAAAoF,EAAK,IAAAC,GAAO,CACtB,KAAK,IAAMD,EACX,KAAK,IAAMC,CACd,CACD,UAAW,CACP,IAAIr9D,EAAM,GAAG,KAAK,GAAG,IACrB,OAAI,KAAK,MAAQ,IACbA,GAAO,KAAK,KAETA,CACV,CACL,CCTe,SAAS,eAAekkD,EAAQ,CAC3C,MAAMh7C,EAAMmyD,aAAAA,SACNiC,EAAep0D,EAAI,QACzB,OAAI,UAAUo0D,CAAY,EACf,IAAMA,EAEV,IAAM,CACT,MAAM5+D,EAAQwlD,IACd,OAAAh7C,EAAI,QAAUxK,EACPA,CACf,CACA,CCZe,SAAS,oBAAqB,CACzC,OAAO6+D,aAAAA,WAAW,eAAe,CACrC,CCFe,SAAS,mBAAoB,CACxC,OAAOA,aAAAA,WAAW,cAAc,CACpC,CCJA,IAAI,UAAazG,YAAQA,WAAK,WAAc,SAAUwC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMh7D,EAAO,CAAE,OAAOA,aAAiB86D,EAAI96D,EAAQ,IAAI86D,EAAE,SAAU90D,EAAS,CAAEA,EAAQhG,CAAK,CAAE,CAAE,CAAI,CAC5G,OAAO,IAAK86D,IAAMA,EAAI,UAAU,SAAU90D,EAASC,EAAQ,CACvD,SAASg1D,GAAUj7D,EAAO,CAAE,GAAI,CAAE0oB,EAAKqyC,EAAU,KAAK/6D,CAAK,CAAC,CAAE,OAAU6a,EAAG,CAAE5U,EAAO4U,CAAC,EAAM,CAC3F,SAASqgD,EAASl7D,EAAO,CAAE,GAAI,CAAE0oB,EAAKqyC,EAAU,MAAS/6D,CAAK,CAAC,CAAI,OAAQ6a,EAAG,CAAE5U,EAAO4U,CAAC,EAAM,CAC9F,SAAS6N,EAAKihB,EAAQ,CAAEA,EAAO,KAAO3jC,EAAQ2jC,EAAO,KAAK,EAAIqxB,EAAMrxB,EAAO,KAAK,EAAE,KAAKsxB,GAAWC,CAAQ,CAAI,CAC9GxyC,GAAMqyC,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAE,CAAA,GAAG,KAAI,CAAE,CAC5E,CAAK,CACL,EACIM,SAAU/C,YAAQA,WAAK,QAAW,SAAU3oC,EAAG5U,EAAG,CAClD,IAAIlW,EAAI,CAAA,EACR,QAASjC,KAAK+sB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG/sB,CAAC,GAAKmY,EAAE,QAAQnY,CAAC,EAAI,IAC9EiC,EAAEjC,CAAC,EAAI+sB,EAAE/sB,CAAC,GACd,GAAI+sB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAStuB,EAAI,EAAGuB,EAAI,OAAO,sBAAsB+sB,CAAC,EAAGtuB,EAAIuB,EAAE,OAAQvB,IAC3D0Z,EAAE,QAAQnY,EAAEvB,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKsuB,EAAG/sB,EAAEvB,CAAC,CAAC,IACzEwD,EAAEjC,EAAEvB,CAAC,CAAC,EAAIsuB,EAAE/sB,EAAEvB,CAAC,CAAC,GAE5B,OAAOwD,CACX,EAOe,SAAS,YAAY+yD,EAAO,CACvC,MAAMoH,EAAkB,qBACxB,UAAUA,EAAiB,4EAA4E,EACvG,MAAMC,EAAiB,oBACvB,UAAUA,EAAgB,iCAAiC,EAC3D,MAAMC,EAAc,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEF,CAAe,EAAGC,CAAc,EAAGrH,CAAK,EACpG,CAAE,KAAA5hD,EAAM,YAAAmuC,EAAa,YAAA0X,EAAa,IAAAnB,EAAG,EAAKwE,EAAa5C,EAAajB,SAAO6D,EAAa,CAAC,OAAQ,cAAe,cAAe,KAAK,CAAC,EAC3I,UAAUxE,GAAK,8DAA8D,EAC7E,MAAMyE,EAAiB,eAAe,IAC9B,OAAOnpD,EAAK,MAAS,SACd0kD,GAAI,eAAe1kD,EAAK,IAAI,EAEhCA,EAAK,IACf,EACKopD,EAAe,eAAe,IAAM,UAAU,KAAM,OAAQ,OAAQ,WAAa,CACnF,MAAM7a,EAAc,MAAM4a,IAC1B,GAAI,CAAC5a,EACD,MAAM,IAAI,MAAM,wBAAwB,EAE5C,KAAM,CAAC75C,CAAG,EAAI65C,EACd,OAAOmW,GAAI,aAAa,IAAI,IAAIhwD,CAAG,CAAC,CACvC,CAAA,CAAC,EACI20D,EAAgB,eAAe,IAAM,UAAU,KAAM,OAAQ,OAAQ,WAAa,CAEpF,OADkB,MAAMD,KACL,CACtB,CAAA,CAAC,EACF,SAASE,EAAQ7wD,EAAO,CACpBA,EAAM,eAAc,EAChBotD,EACA,QAAQ,IAAI,CAACsD,EAAc,EAAIC,EAAc,EAAEC,EAAa,CAAE,CAAC,EAAE,KAAK,CAAC,CAAC/pC,EAAMzqB,EAAWJ,CAAU,IAAM,CACrGoxD,EAAY,CACR,KAAAvmC,EACA,UAAAzqB,EACA,WAAAJ,CACpB,CAAiB,CACjB,CAAa,EAGD05C,EAAY,gBAAgBnuC,EAAK,IAAI,CAE5C,CACD,SAASupD,GAAiB,CACtB,GAAI,CAACvpD,EAAK,OAAS,CAACA,EAAK,MAAM,OAC3B,OAAO,KAEX,KAAM,CAAE,MAAOwpD,CAAU,EAAGxpD,EAC5B,OAAQ,MAAM,cAAc,KAAM,KAAMwpD,EAAS,IAAI,CAACC,EAASC,IAAkB,MAAM,cAAc,YAAa,OAAO,OAAO,CAAE,IAAK,OAAOD,EAAQ,MAAS,SAAWA,EAAQ,KAAOC,EAAc,KAAMD,CAAS,EAAEnD,CAAU,CAAC,CAAE,CAAC,CACzO,CACD,OAAQ,MAAM,cAAc,KAAM,KAC9B,MAAM,cAAc,IAAK,CAAE,KAAM,IAAK,QAASgD,CAAO,EAAItpD,EAAK,KAAK,EACpEupD,EAAgB,CAAA,CACxB,CC5EA,IAAIlE,SAAU/C,YAAQA,WAAK,QAAW,SAAU3oC,EAAG5U,EAAG,CAClD,IAAIlW,EAAI,CAAA,EACR,QAASjC,KAAK+sB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG/sB,CAAC,GAAKmY,EAAE,QAAQnY,CAAC,EAAI,IAC9EiC,EAAEjC,CAAC,EAAI+sB,EAAE/sB,CAAC,GACd,GAAI+sB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAStuB,EAAI,EAAGuB,EAAI,OAAO,sBAAsB+sB,CAAC,EAAGtuB,EAAIuB,EAAE,OAAQvB,IAC3D0Z,EAAE,QAAQnY,EAAEvB,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKsuB,EAAG/sB,EAAEvB,CAAC,CAAC,IACzEwD,EAAEjC,EAAEvB,CAAC,CAAC,EAAIsuB,EAAE/sB,EAAEvB,CAAC,CAAC,GAE5B,OAAOwD,CACX,EAmBA,MAAM,QAAU,SAAS86D,EAAQ/H,EAAO,CACpC,MAAMoH,EAAkB,qBACxB,UAAUA,EAAiB,4EAA4E,EACvG,MAAME,EAAc,OAAO,OAAO,OAAO,OAAO,GAAIF,CAAe,EAAGpH,CAAK,EACrE,CAAE,UAAA4D,EAAW,SAAAC,EAAU,YAAAI,EAAa,YAAaC,GAAkB,cAAeE,EAAoB,IAAAtB,GAAQwE,EAAa5C,EAAajB,SAAO6D,EAAa,CAAC,YAAa,WAAY,cAAe,cAAe,gBAAiB,KAAK,CAAC,EACjP,UAAUxE,EAAK,8DAA8D,EAC7E,KAAM,CAACkF,EAAcC,CAAe,EAAI,YAAW,EAC7C,CAAE,MAAOC,EAAS,MAAOC,CAAY,EAAKH,EAIhD,SAAS/B,GAAgB,CACjB,OAAOiC,EAAY,KAAeA,IAAY,IAG9C9D,GACAA,EAAmB8D,CAAO,CAEjC,CAID,SAAShC,GAAc,CACdiC,IAIL3F,UAAQ,GAAO2F,EAAa,SAAU,CAAA,EAClCjE,IACAA,GAAiBiE,CAAY,EAEpC,CACD,SAASC,GAAe,CACpBH,EAAgB,CAAE,KAAM,OAAO,CAAE,CACpC,CACD5C,aAAAA,UAAU+C,EAAc,CAACH,EAAiBnF,CAAG,CAAC,EAC9C,SAASuF,GAAc,CACnB,GAAI,CAACvF,EAED,OAEJ,MAAMgD,EAAcC,uBAAgBjD,EAAI,WAAY,CAAA,EAC9CL,EAAcqD,EACpB,OAAAA,EAAY,QACP,KAAMwC,GAAgB,CACvBL,EAAgB,CAAE,KAAM,UAAW,MAAOK,CAAa,CAAA,CACnE,CAAS,EACI,MAAO3zD,GAAU,CAClBszD,EAAgB,CAAE,KAAM,SAAU,MAAAtzD,CAAO,CAAA,CACrD,CAAS,EACM,IAAM,kBAAkB8tD,CAAW,CAC7C,CACD4C,aAAAA,UAAUgD,EAAa,CAACJ,EAAiBnF,CAAG,CAAC,EAC7CuC,aAAAA,UAAU,IAAM,CACZ,GAAI6C,IAAY,OAGhB,IAAIA,IAAY,GAAO,CACnBhC,IACA,MACH,CACDD,IACH,EAGD,CAACiC,CAAO,CAAC,EACT,MAAMvB,EAAeC,aAAAA,QAAQ,KAAO,CAChC,YAAA3C,CACR,GAAQ,CAACA,CAAW,CAAC,EACXhD,EAAa2F,aAAAA,QAAQ,IAAM,eAAelC,EAAY,IAAMwD,CAAO,EAAG,CAACxD,EAAYwD,CAAO,CAAC,EACjG,GAAI,CAACA,EACD,OAAO,KAEX,SAASK,GAAgB,CACrB,OAAKL,EAGG,MAAM,cAAc,KAAM,KAAMA,EAAQ,IAAI,CAAC9pD,EAAMoqD,IAAe,MAAM,cAAc,YAAa,CAAE,IAAK,OAAOpqD,EAAK,MAAS,SAAWA,EAAK,KAAOoqD,EAAW,KAAMpqD,EAAM,CAAE,CAAC,EAF7K,IAGd,CACD,OAAQ,MAAM,cAAc,MAAO,OAAO,OAAO,CAAE,UAAW,KAAK,qBAAsBwlD,CAAS,EAAG,IAAKC,CAAQ,EAAI5C,CAAU,EAC5H,MAAM,cAAc,eAAe,SAAU,CAAE,MAAO0F,CAAc,EAAE4B,EAAe,CAAA,CAAC,CAC9F,EACA,QAAQ,UAAY,OAAO,OAAO,OAAO,OAAO,GAAI,UAAU,EAAG,CAAE,UAAW,YAAa,SAAU,MAAO,YAAa,UAAU,KAAM,YAAa,UAAU,KAAM,cAAe,UAAU,KAAM,IAAK,KAAO,CAAA,EACjN,MAAA,UAAe,QCrGA,SAAS,WAAY,CAEhC,QADIE,EAAY,CAAA,EACPC,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCD,EAAUC,CAAE,EAAI,UAAUA,CAAE,EAEhC,IAAIC,EAAoBF,EAAU,OAAO,OAAO,EAChD,GAAIE,EAAkB,QAAU,EAAG,CAC/B,IAAIC,EAAWD,EAAkB,CAAC,EAClC,OAAOC,GAAY,IACtB,CACD,OAAO,SAAoB91D,EAAK,CAC5B61D,EAAkB,QAAQ,SAAU9E,EAAU,CACtC,OAAOA,GAAa,WACpBA,EAAS/wD,CAAG,EAEP+wD,IACLA,EAAS,QAAU/wD,EAEnC,CAAS,CACT,CACA,CC9BA,MAAe8uD,YAAAA,aAAAA,cAAc,IAAI,ECDpB,sBAAwB,CAEjC,SAAU,KACV,iBAAkB,KAElB,KAAM,QACN,KAAM,QACN,IAAK,QACL,MAAO,OACP,UAAW,OAEX,EAAG,KAEH,EAAG,UACH,MAAO,KACP,OAAQ,OAER,IAAK,QAEL,IAAK,KACL,KAAM,KACN,GAAI,KACJ,OAAQ,KACR,KAAM,OACN,MAAO,OACP,KAAM,OAEN,KAAM,KACN,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,QAAS,KACT,GAAI,KACJ,GAAI,KAEJ,EAAG,OACH,GAAI,WACJ,MAAO,KAEP,MAAO,QACP,GAAI,MACJ,GAAI,eACJ,GAAI,OACJ,MAAO,eACP,MAAO,KACP,MAAO,KAEP,QAAS,KAET,OAAQ,SAER,QAAS,KAET,SAAU,IACd,EACa,gBAAkB,WCvDxB,SAAS,UAAUiH,EAAM,CAC5B,OAAOA,KAAQ,qBACnB,CACO,SAAS,iBAAiBlpB,EAAM,CACnC,MAAO,aAAcA,CACzB,CACO,SAAS,qCAAqCA,EAAM,CACvD,OAAK,iBAAiBA,CAAI,EAGnBA,EAAK,SAAS,SAAW,GAAK,KAAKA,EAAK,UAAY,OAAQA,EAAK,SAAS,CAAC,EAFvE,EAGf,CACO,SAAS,kBAAkBA,EAAM,CACpC,MAAMoW,EAAa,CAAA,EACnB,GAAI,iBAAiBpW,CAAI,EAAG,CACxB,KAAM,CAAE,KAAAkpB,CAAM,EAAGlpB,EACXvrB,EAAUy0C,EAAK,MAAM,eAAe,EAC1C,GAAIz0C,EACA2hC,EAAW,KAAO,UAClBA,EAAW,YAAY,EAAI,OAAO3hC,EAAQ,CAAC,CAAC,UAEvC,UAAUy0C,CAAI,EAAG,CACtB,MAAMC,EAAW,sBAAsBD,CAAI,EACvCC,IACA/S,EAAW,KAAO+S,EAEzB,CACJ,CACD,OAAO/S,CACX,CACO,SAAS,kBAAkBpW,EAAM,CACpC,MAAMoW,EAAa,CAAA,EACnB,GAAI,iBAAiBpW,CAAI,GAOrB,GANIA,EAAK,MAAQ,SACboW,EAAW,YAAY,EAAIpW,EAAK,KAEhCA,EAAK,OAAS,SACdoW,EAAW,KAAOpW,EAAK,MAEvB,qCAAqCA,CAAI,EAAG,CAC5C,KAAM,CAACC,CAAK,EAAID,EAAK,SACrB,GAAIC,EAAO,CACP,MAAMmpB,EAAkB,kBAAkBnpB,CAAK,EAC/C,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,EAAImW,CAAU,EAAGgT,CAAe,CACtE,CACJ,MAGG,OAAQppB,IACRoW,EAAW,WAAW,EAAIpW,EAAK,IAGvC,OAAOoW,CACX,CACO,SAAS,cAAcpW,EAAM,CAChC,OAAKA,EAGE,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,kBAAkBA,CAAI,CAAC,EAAG,kBAAkBA,CAAI,CAAC,EAF7E,IAGf,CC1De,SAAS,eAAe,CAAE,UAAAikB,EAAW,KAAAjkB,GAAQ,CACxD,MAAMoW,EAAa6Q,aAAAA,QAAQ,IAAM,cAAcjnB,CAAI,EAAG,CAACA,CAAI,CAAC,EACtDkiB,EAAW+E,aAAAA,QAAQ,IACjB,CAAC,iBAAiBjnB,CAAI,GAGtB,qCAAqCA,CAAI,EAClC,KAEJA,EAAK,SAAS,IAAI,CAACC,EAAOyQ,IAG7B,MAAM,cAAc,eAAgB,CAAE,IAAKA,EAAO,KAAMzQ,CAAK,CAAE,CAClE,EACF,CAACD,CAAI,CAAC,EACT,OAAQ,MAAM,cAAc,OAAQ,OAAO,OAAO,CAAE,UAAWikB,CAAW,EAAE7N,CAAU,EAAG8L,CAAQ,CACrG,CChBe,SAAS,gBAAiB,CACrC,OAAOsF,aAAAA,WAAW,WAAW,CACjC,CCIe,SAAS,YAAa,CACjC,MAAM6B,EAAc,iBACpB,UAAUA,EAAa,8BAA8B,EACrD,KAAM,CAAE,qBAAsBC,EAA2B,uBAAwBC,CAA2B,EAAMF,EAC5G,CAACG,EAAiBC,CAAkB,EAAI,YAAW,EACnD,CAAE,MAAOC,EAAY,MAAOC,CAAe,EAAKH,EAChD,CAAE,mBAAAI,GAAoB,KAAAlxD,CAAM,EAAG2wD,EACrC,SAAS/C,GAAgB,CAChBoD,GAIDH,GACAA,EAA4BG,CAAU,CAE7C,CACD,SAASnD,GAAc,CACdoD,IAIL9G,UAAQ,GAAO8G,EAAgB,SAAU,CAAA,EACrCL,GACAA,EAA0BK,CAAe,EAEhD,CACD,SAASE,GAAmB,CACxBJ,EAAmB,CAAE,KAAM,OAAO,CAAE,CACvC,CACD/D,aAAAA,UAAUmE,EAAkB,CAACJ,EAAoB/wD,CAAI,CAAC,EACtD,SAASoxD,GAAiB,CAKtB,GAJIF,IAIA,CAAClxD,EACD,OAEJ,MAAMytD,EAAcC,uBAAgB1tD,EAAK,cAAe,CAAA,EAClDoqD,EAAcqD,EACpB,OAAAA,EAAY,QACP,KAAM4D,GAAmB,CAC1BN,EAAmB,CAAE,KAAM,UAAW,MAAOM,CAAgB,CAAA,CACzE,CAAS,EACI,MAAO/0D,GAAU,CAClBy0D,EAAmB,CAAE,KAAM,SAAU,MAAAz0D,CAAO,CAAA,CACxD,CAAS,EACM,IAAM,kBAAkB8tD,CAAW,CAC7C,CAeD,OAdA4C,aAAS,UAACoE,EAAgB,CAACF,GAAoBlxD,EAAM+wD,CAAkB,CAAC,EACxE/D,aAAAA,UAAU,IAAM,CACZ,GAAIgE,IAAe,OAGnB,IAAIA,IAAe,GAAO,CACtBnD,IACA,MACH,CACDD,IACH,EAGD,CAACoD,CAAU,CAAC,EACPA,EAGE,MAAM,cAAc,eAAgB,CAAE,UAAW,yCAA0C,KAAMA,CAAU,CAAE,EAFzG,IAGf,CClEA,MAAM,gBAAkBzG,QAAM,eACf,SAAS,WAAW5C,EAAO,CACtC,MAAMgJ,EAAc,iBACpB,UAAUA,EAAa,8BAA8B,EACrD,MAAM1B,EAAc,OAAO,OAAO,OAAO,OAAO,GAAI0B,CAAW,EAAGhJ,CAAK,EACjE,CAAE,WAAA2J,EAAY,iBAAAC,EAAkB,iBAAAC,EAAmB,oBAAmB,EAAI,cAAeC,EAAoB,gBAAiBC,GAAsB,KAAA1xD,EAAM,YAAA2xD,EAAa,gBAAAnqB,EAAiB,OAAA4kB,EAAQ,MAAAlxD,CAAQ,EAAG+zD,EAC3M,CAAE,UAAA2C,CAAW,EAAGjK,EACtB,UAAU3nD,EAAM,6DAA6D,EAC7E,MAAM6xD,EAAgBjF,oBAAO,IAAI,EAIjC,SAASkF,GAAkB,CAClB9xD,GAID0xD,IACAA,GAAqB,iBAAiB1xD,EAAM9E,CAAK,CAAC,CAEzD,CAID,SAAS62D,EAAcz1D,EAAO,CACtB,kBAAkBA,CAAK,IAG3B6tD,UAAQ,GAAO7tD,EAAM,SAAU,CAAA,EAC3Bm1D,GACAA,EAAmBn1D,CAAK,EAE/B,CACD,MAAM01D,EAAiBzD,aAAAA,QAAQ,IAAMvuD,EAAK,YAAY,CAAE,MAAO9E,EAAQs2D,EAAkB,SAAUpF,CAAQ,CAAA,EAAG,CAACoF,EAAkBxxD,EAAMosD,EAAQlxD,CAAK,CAAC,EAC/IQ,EAAW6yD,aAAO,QAAC,IAAMvuD,EAAK,YAAY,CAAE,MAAA9E,EAAO,SAAUkxD,CAAM,CAAE,EAAG,CAACpsD,EAAMosD,EAAQlxD,CAAK,CAAC,EACnG,SAAS+2D,GAAmB,CACxB,GAAI,CAACjyD,EACD,OAGJA,EAAK,QAAO,EACZ,KAAM,CAAE,QAAS0Z,CAAQ,EAAGm4C,EAC5B,GAAI,CAACn4C,EACD,OAEJA,EAAO,MAAQs4C,EAAe,MAC9Bt4C,EAAO,OAASs4C,EAAe,OAC/Bt4C,EAAO,MAAM,MAAQ,GAAG,KAAK,MAAMhe,EAAS,KAAK,CAAC,KAClDge,EAAO,MAAM,OAAS,GAAG,KAAK,MAAMhe,EAAS,MAAM,CAAC,KACpDge,EAAO,MAAM,WAAa,SAC1B,MAAMw4C,EAAgB,CAClB,eAAgBP,EAAc,gBAAgB,aAAe,gBAAgB,OAC7E,cAAej4C,EAAO,WAAW,KAAM,CAAE,MAAO,GAAO,EACvD,SAAUs4C,CACtB,EACYT,IACAW,EAAc,WAAaX,GAE/B,MAAM9D,EAAcztD,EAAK,OAAOkyD,CAAa,EACvC9H,EAAcqD,EACpB,OAAAA,EAAY,QACP,KAAK,IAAM,CACZ/zC,EAAO,MAAM,WAAa,GAC1Bo4C,GACZ,CAAS,EACI,MAAMC,CAAa,EACjB,IAAM,kBAAkB3H,CAAW,CAC7C,CACD4C,aAAAA,UAAUiF,EAGV,CACIV,EACAM,EACAL,EACAxxD,EACA2xD,EACAK,EACAt2D,CACR,CAAK,EACD,MAAMy2D,EAAU7E,aAAAA,YAAY,IAAM,CAC9B,KAAM,CAAE,QAAS5zC,CAAQ,EAAGm4C,EAKxBn4C,IACAA,EAAO,MAAQ,EACfA,EAAO,OAAS,EAE5B,EAAO,CAACm4C,CAAa,CAAC,EAClB7E,oBAAAA,UAAU,IAAMmF,EAAS,CAACA,CAAO,CAAC,EAC1B,MAAM,cAAc,SAAU,CAAE,UAAW,GAAGb,CAAU,WAAY,IAAK,MAAO,IAAK,UAAUM,EAAWC,CAAa,EAAG,MAAO,CACjI,QAAS,QACT,WAAY,MACxB,CAAW,EAAErqB,EAAkB,MAAM,cAAc,WAAY,IAAI,EAAI,IAAI,CAC3E,CCjGe,SAAS,SAAU,CAC9B,MAAMmpB,EAAc,iBACpB,UAAUA,EAAa,8BAA8B,EACrD,KAAM,CAAE,WAAAW,EAAY,gBAAiBI,EAAsB,cAAeD,EAAoB,KAAAzxD,EAAM,OAAAosD,EAAQ,MAAAlxD,CAAQ,EAAGy1D,EACvH,UAAU3wD,EAAM,0DAA0D,EAC1E,KAAM,CAACoyD,GAAUC,CAAW,EAAI,YAAW,EACrC,CAAE,MAAO1mD,EAAK,MAAO2mD,CAAQ,EAAKF,GAIxC,SAASN,GAAkB,CAClB9xD,GAID0xD,GACAA,EAAqB,iBAAiB1xD,EAAM9E,CAAK,CAAC,CAEzD,CAID,SAAS62D,GAAgB,CAChBO,IAID,kBAAkBA,CAAQ,IAG9BnI,UAAQ,GAAOmI,EAAS,SAAU,CAAA,EAC9Bb,GACAA,EAAmBa,CAAQ,GAElC,CACD,MAAM52D,EAAW6yD,aAAO,QAAC,IAAMvuD,EAAK,YAAY,CAAE,MAAA9E,EAAO,SAAUkxD,CAAM,CAAE,EAAG,CAACpsD,EAAMosD,EAAQlxD,CAAK,CAAC,EACnG,SAASq3D,GAAW,CAChBF,EAAY,CAAE,KAAM,OAAO,CAAE,CAChC,CACDrF,aAAS,UAACuF,EAAU,CAACvyD,EAAMqyD,EAAa32D,CAAQ,CAAC,EACjD,SAAS82D,GAAY,CACjB,GAAI,CAACxyD,EACD,OAEJ,MAAMytD,EAAcC,uBAAgB1tD,EAAK,gBAAiB,CAAA,EAC1D,OAAAytD,EAAY,QACP,KAAMrvD,GAAiB,CACT,IAAImsD,QAAM,YAAYvqD,EAAK,WAAYA,EAAK,IAAI,EAE1D,OAAO5B,EAAc1C,CAAQ,EAC7B,KAAM+2D,GAAY,CAEnB,GAAI,EAAEA,aAAmB,YACrB,MAAM,IAAI,MAAM,oCAAoC,EAExDJ,EAAY,CAAE,KAAM,UAAW,MAAOI,CAAS,CAAA,CAC/D,CAAa,EACI,MAAOn2D,GAAU,CAClB+1D,EAAY,CAAE,KAAM,SAAU,MAAA/1D,CAAO,CAAA,CACrD,CAAa,CACb,CAAS,EACI,MAAOA,GAAU,CAClB+1D,EAAY,CAAE,KAAM,SAAU,MAAA/1D,CAAO,CAAA,CACjD,CAAS,EACM,IAAM,kBAAkBmxD,CAAW,CAC7C,CACDT,aAAS,UAACwF,EAAW,CAACxyD,EAAMqyD,EAAa32D,CAAQ,CAAC,EAClDsxD,aAAAA,UAAU,IAAM,CACZ,GAAIrhD,IAAQ,OAGZ,IAAIA,IAAQ,GAAO,CACfomD,IACA,MACH,CACDD,IACH,EAGD,CAACnmD,CAAG,CAAC,EACL,SAAS+mD,EAAoBxnD,EAAS,CAClC,GAAI,CAACA,GAAW,CAACS,EACb,OAGCT,EAAQ,mBACTA,EAAQ,YAAYS,CAAG,EAE3B,KAAM,CAAE,MAAA1K,EAAO,OAAAC,CAAQ,EAAGxF,EAC1BiQ,EAAI,aAAa,QAAS,GAAG1K,CAAK,EAAE,EACpC0K,EAAI,aAAa,SAAU,GAAGzK,CAAM,EAAE,CACzC,CACD,KAAM,CAAE,MAAAD,EAAO,OAAAC,CAAQ,EAAGxF,EAC1B,OAAQ,MAAM,cAAc,MAAO,CAAE,UAAW,GAAG41D,CAAU,QAEzD,IAAM72D,GAAQi4D,EAAoBj4D,CAAG,EAAG,MAAO,CAC3C,QAAS,QACT,gBAAiB,QACjB,SAAU,SACV,MAAAwG,EACA,OAAAC,EACA,WAAY,MACf,CAAA,CAAE,CACX,CCrGA,SAAS,WAAW6E,EAAM,CACtB,MAAO,QAASA,CACpB,CACe,SAAS,WAAY,CAChC,MAAM4qD,EAAc,iBACpB,UAAUA,EAAa,8BAA8B,EACrD,KAAM,CAAE,mBAAAO,EAAoB,eAAAyB,EAAgB,iBAAAC,EAAkB,uBAAAC,EAAwB,yBAAAC,EAA0B,KAAA9yD,EAAM,UAAApF,GAAW,WAAAJ,EAAY,OAAA4xD,EAAQ,MAAAlxD,CAAK,EAAMy1D,EAChK,UAAU3wD,EAAM,iEAAiE,EACjF,KAAM,CAAC+yD,EAAkBC,CAAmB,EAAI,YAAW,EACrD,CAAE,MAAOh2D,EAAa,MAAOi2D,CAAgB,EAAKF,EAClDG,EAAetG,oBAAO,IAAI,EAC1BuG,EAAavG,aAAAA,SACnBzC,UAAQ,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,wBAAwB,EAAG,EAAE,IAAM,EAAG,sGAAsG,EAIrN,SAASyD,GAAgB,CAChB5wD,GAID41D,GACAA,EAAiB51D,CAAW,CAEnC,CAID,SAAS6wD,GAAc,CACdoF,IAIL9I,UAAQ,GAAO8I,EAAiB,SAAU,CAAA,EACtCN,GACAA,EAAeM,CAAgB,EAEtC,CACD,SAASG,GAAmB,CACxBJ,EAAoB,CAAE,KAAM,OAAO,CAAE,CACxC,CACDhG,aAAAA,UAAUoG,EAAkB,CAACpzD,EAAMgzD,CAAmB,CAAC,EACvD,SAASK,GAAkB,CACvB,GAAI,CAACrzD,EACD,OAEJ,MAAMytD,EAAcC,uBAAgB1tD,EAAK,eAAgB,CAAA,EACnDoqD,EAAcqD,EACpB,OAAAA,EAAY,QACP,KAAM6F,GAAoB,CAC3BN,EAAoB,CAAE,KAAM,UAAW,MAAOM,CAAiB,CAAA,CAC3E,CAAS,EACI,MAAOh3D,GAAU,CAClB02D,EAAoB,CAAE,KAAM,SAAU,MAAA12D,CAAO,CAAA,CACzD,CAAS,EACM,IAAM,kBAAkB8tD,CAAW,CAC7C,CACD4C,aAAAA,UAAUqG,EAAiB,CAACrzD,EAAMgzD,CAAmB,CAAC,EACtDhG,aAAAA,UAAU,IAAM,CACZ,GAAIhwD,IAAgB,OAGpB,IAAIA,IAAgB,GAAO,CACvB6wD,IACA,MACH,CACDD,IACH,EAGD,CAAC5wD,CAAW,CAAC,EAIb,MAAM80D,EAAkBxE,aAAAA,YAAY,IAAM,CAClCwF,GACAA,GAEZ,EAAO,CAACA,CAAwB,CAAC,EAIvBf,EAAgBzE,yBAAahxD,GAAU,CACzC6tD,UAAQ,GAAO7tD,EAAM,SAAU,CAAA,EAC3Bu2D,GACAA,EAAuBv2D,CAAK,CAExC,EAAO,CAACu2D,CAAsB,CAAC,EAC3B,SAASU,GAAc,CACnB,MAAMn5D,EAAM+4D,EAAW,QAClB/4D,GAGLA,EAAI,UAAU,IAAI,QAAQ,CAC7B,CACD,SAASo5D,GAAY,CACjB,MAAMp5D,EAAM+4D,EAAW,QAClB/4D,GAGLA,EAAI,UAAU,OAAO,QAAQ,CAChC,CACD,MAAMsB,EAAW6yD,aAAO,QAAC,IAAMvuD,EAAK,YAAY,CAAE,MAAA9E,EAAO,SAAUkxD,CAAM,CAAE,EAAG,CAACpsD,EAAMosD,EAAQlxD,CAAK,CAAC,EACnG,SAASssC,GAAkB,CACvB,GAAI,CAACxnC,GAAQ,CAAChD,EACV,OAEJ,KAAM,CAAE,QAASkV,CAAO,EAAGghD,EAC3B,GAAI,CAAChhD,EACD,OAEJA,EAAM,UAAY,GAClB,MAAMy3B,EAAoB3pC,EAAK,kBAAkB,CAAE,qBAAsB,EAAI,CAAE,EACzE4D,EAAa,CACf,UAAWsO,EACX,kBAAAy3B,EACA,SAAAjuC,CACZ,EACc+xD,EAAclD,QAAM,gBAAgB3mD,CAAU,EAC9CwmD,EAAcqD,EACpB,OAAAA,EAAY,QACP,KAAK,IAAM,CACZ,MAAMrzD,GAAM,SAAS,cAAc,KAAK,EACxCA,GAAI,UAAY,eAChB8X,EAAM,OAAO9X,EAAG,EAChB+4D,EAAW,QAAU/4D,GACrB,MAAMq5D,GAAgBvhD,EAAM,iBAAiB,uBAAuB,EACpE,GAAIg/C,EAAoB,CACpB,IAAIlZ,EAAQ,EACZh7C,EAAY,MAAM,QAAQ,CAAC+I,GAAMoqD,KAAc,CAC3C,GAAI,CAAC,WAAWpqD,EAAI,EAChB,OAEJ,MAAMwhC,GAAQksB,GAAczb,CAAK,EACjC,GAAI,CAACzQ,GACD,OAEJ,MAAMwT,GAAUmW,EAAmB,OAAO,OAAO,CAAE,UAAAt2D,GAC/C,WAAAJ,EACA,UAAA21D,EAAW,EAAEpqD,EAAI,CAAC,EACtBwhC,GAAM,UAAYwT,GAClB/C,GAASjyC,GAAK,KAAOA,GAAK,OAAS,EAAI,CAC3D,CAAiB,CACJ,CAED+rD,GACZ,CAAS,EACI,MAAMC,CAAa,EACjB,IAAM,kBAAkB3H,CAAW,CAC7C,CACDsJ,oBAAAA,gBAAgBlsB,EAAiB,CAC7B0pB,EACAa,EACAD,EACA9xD,EACApF,GACAJ,EACAwC,EACAtB,CACR,CAAK,EAGD,MAAM,cAAc,MAAO,CAAE,UAAW,KAAK,+BAAgC,WAAW,EAAG,UAAW83D,EAAW,YAAaD,EAAa,IAAKL,CAAY,CAAE,CAClK,CClKe,SAAS,iBAAkB,CACtC,MAAMnE,EAAkB,qBACxB,UAAUA,EAAiB,yEAAyE,EACpG,MAAM4B,EAAc,iBACpB,UAAUA,EAAa,8BAA8B,EACrD,MAAM1B,EAAc,OAAO,OAAO,OAAO,OAAO,GAAIF,CAAe,EAAG4B,CAAW,EAC3E,CAAE,mBAAAlF,EAAoB,YAAAvX,EAAa,sBAAuByf,EAA4B,wBAAyBC,EAA8B,6BAA8BC,GAAmC,+BAAgCC,EAAqC,KAAA9zD,EAAM,IAAAyqD,EAAK,YAAAkH,EAAa,OAAAvF,EAAQ,MAAAlxD,EAAQ,CAAI,EAAG+zD,EACxU,UAAUjvD,EAAM,gEAAgE,EAChF,KAAM,CAAC+zD,EAAkBC,CAAmB,EAAI,YAAW,EACrD,CAAE,MAAO5X,EAAa,MAAO6X,CAAgB,EAAKF,EAClDb,EAAetG,oBAAO,IAAI,EAChCzC,UAAQ,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,8BAA8B,EAAG,EAAE,IAAM,EAAG,6GAA6G,EAClO,SAASyD,GAAgB,CAChBxR,GAIDwX,GACAA,EAA6BxX,CAAW,CAE/C,CACD,SAASyR,GAAc,CACdoG,IAIL9J,UAAQ,GAAO8J,EAAiB,SAAU,CAAA,EACtCN,GACAA,EAA2BM,CAAgB,EAElD,CACD,SAAS9C,GAAmB,CACxB6C,EAAoB,CAAE,KAAM,OAAO,CAAE,CACxC,CACDhH,aAAAA,UAAUmE,EAAkB,CAAC6C,EAAqBh0D,CAAI,CAAC,EACvD,SAASk0D,GAAkB,CACvB,GAAI,CAACl0D,EACD,OAEJ,MAAMytD,EAAcC,uBAAgB1tD,EAAK,eAAgB,CAAA,EACnDoqD,EAAcqD,EACpB,OAAAA,EAAY,QACP,KAAM0G,GAAoB,CAC3BH,EAAoB,CAAE,KAAM,UAAW,MAAOG,CAAiB,CAAA,CAC3E,CAAS,EACI,MAAO73D,GAAU,CAClB03D,EAAoB,CAAE,KAAM,SAAU,MAAA13D,CAAO,CAAA,CACzD,CAAS,EACM,IAAM,CACT,kBAAkB8tD,CAAW,CACzC,CACK,CACD4C,aAAS,UAACkH,EAAiB,CAACF,EAAqBh0D,EAAM2xD,CAAW,CAAC,EACnE3E,aAAAA,UAAU,IAAM,CACZ,GAAI5Q,IAAgB,OAGpB,IAAIA,IAAgB,GAAO,CACvByR,IACA,MACH,CACDD,IACH,EAGD,CAACxR,CAAW,CAAC,EACb,SAAS0V,GAAkB,CACnBgC,GACAA,GAEP,CACD,SAAS/B,EAAcz1D,EAAO,CAC1B6tD,UAAQ,GAAO,GAAG7tD,CAAK,EAAE,EACrBu3D,IACAA,GAAkCv3D,CAAK,CAE9C,CACD,MAAMZ,EAAW6yD,aAAO,QAAC,IAAMvuD,EAAK,YAAY,CAAE,MAAA9E,EAAO,SAAUkxD,CAAM,CAAE,EAAG,CAACpsD,EAAMosD,EAAQlxD,CAAK,CAAC,EACnG,SAASk5D,GAAwB,CAC7B,GAAI,CAAC3J,GAAO,CAACzqD,GAAQ,CAACo8C,EAClB,OAEJ,KAAM,CAAE,QAASlqC,CAAO,EAAGghD,EAC3B,GAAI,CAAChhD,EACD,OAEJ,MAAMmiD,EAAiB34D,EAAS,MAAM,CAAE,SAAU,EAAI,CAAE,EAClD44D,EAA4B,CAC9B,qBAAsB,KACtB,oBAAqB,KACrB,IAAKpiD,EACL,KAAM,KACN,KAAAlS,EACA,SAAUq0D,CACtB,EACcE,EAAmB,CACrB,YAAAnY,EACA,kBAAmBqO,EAAI,kBACvB,IAAKv4C,EAEL,gBAAiB,KACjB,mBAAAu5C,EACA,YAAAvX,EACA,KAAAl0C,EACA,YAAA2xD,EACA,SAAU0C,CACtB,EACQniD,EAAM,UAAY,GAClB,GAAI,CACA,IAAIq4C,QAAM,gBAAgB+J,CAAyB,EAAE,OAAOC,CAAgB,EAE5EzC,GACH,OACMx1D,EAAO,CACVy1D,EAAcz1D,CAAK,CACtB,CACD,MAAO,IAAM,CAErB,CACK,CACD0wD,oBAAAA,UAAUoH,EAGV,CAAChY,EAAaqP,EAAoBvX,EAAal0C,EAAM2xD,EAAaj2D,CAAQ,CAAC,EACnE,MAAM,cAAc,MAAO,CAAE,UAAW,KAAK,+BAAgC,iBAAiB,EAAG,IAAKw3D,CAAc,CAAA,CAChI,CCvIA,IAAI9H,SAAU/C,YAAQA,WAAK,QAAW,SAAU3oC,EAAG5U,EAAG,CAClD,IAAIlW,EAAI,CAAA,EACR,QAASjC,KAAK+sB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG/sB,CAAC,GAAKmY,EAAE,QAAQnY,CAAC,EAAI,IAC9EiC,EAAEjC,CAAC,EAAI+sB,EAAE/sB,CAAC,GACd,GAAI+sB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAStuB,EAAI,EAAGuB,EAAI,OAAO,sBAAsB+sB,CAAC,EAAGtuB,EAAIuB,EAAE,OAAQvB,IAC3D0Z,EAAE,QAAQnY,EAAEvB,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKsuB,EAAG/sB,EAAEvB,CAAC,CAAC,IACzEwD,EAAEjC,EAAEvB,CAAC,CAAC,EAAIsuB,EAAE/sB,EAAEvB,CAAC,CAAC,GAE5B,OAAOwD,CACX,EAmBA,MAAM,aAAe,EAMf,KAAO,SAAS4/D,EAAK7M,EAAO,CAC9B,MAAMoH,EAAkB,qBACxB,UAAUA,EAAiB,yEAAyE,EACpG,MAAME,EAAc,OAAO,OAAO,OAAO,OAAO,GAAIF,CAAe,EAAGpH,CAAK,EACrE,CAAE,WAAA2J,EAAa,kBAAmB,8BAAAmD,EAAgC,GAAM,iBAAAlD,EAAkB,UAAAK,GAAW,SAAApI,EAAU,UAAA+B,EAAW,eAAgBmJ,EAAgB,mBAAAxD,EAAoB,iBAAAM,EAAkB,MAAAl1D,EAAQ,2BAA4B,OAAA4E,EAAQ,SAAAsqD,EAAU,QAAAE,EAAU,gBAAiB,OAAAC,EAAS,qBAAsB,sBAAuBgI,EAA4B,wBAAyBC,EAA8B,qBAAsBhD,EAA2B,uBAAwBC,EAA6B,eAAgB8D,EAAqB,iBAAkBC,EAAuB,YAAa/I,EAAkB,cAAeE,EAAoB,6BAA8B8H,EAAmC,+BAAgCC,EAAqC,cAAerC,EAAoB,gBAAiBC,EAAsB,uBAAwBmD,EAA6B,yBAA0BC,EAA+B,UAAWC,GAAgB,WAAYC,GAAiB,IAAAvK,EAAK,aAAA2D,GAAc,sBAAuB6G,GAA6B,GAAM,YAAAtD,GAAc,GAAO,WAAAxF,GAAa,SAAU,gBAAiB+I,EAAuB,GAAM,OAAQC,EAAa,MAAOC,EAAa,aAAc,eAAA/G,EAAgB,MAAAptD,CAAO,EAAGguD,EAAa5C,EAAajB,SAAO6D,EAAa,CAAC,aAAc,gCAAiC,mBAAoB,YAAa,WAAY,YAAa,iBAAkB,qBAAsB,mBAAoB,QAAS,SAAU,WAAY,UAAW,SAAU,wBAAyB,0BAA2B,uBAAwB,yBAA0B,iBAAkB,mBAAoB,cAAe,gBAAiB,+BAAgC,iCAAkC,gBAAiB,kBAAmB,yBAA0B,2BAA4B,YAAa,aAAc,MAAO,eAAgB,wBAAyB,cAAe,aAAc,kBAAmB,SAAU,QAAS,iBAAkB,OAAO,CAAC,EACt/D,CAACoG,EAAWC,CAAY,EAAI,YAAW,EACvC,CAAE,MAAOt1D,EAAM,MAAOu1D,EAAS,EAAKF,EACpCG,GAAc5I,oBAAO,IAAI,EAC/B,UAAUnC,EAAK,0DAA0D,EACzE,MAAM7vD,GAAY,WAAWo6D,EAAe,EAAIA,GAAkB,EAAID,IAAwE,KACxIv6D,GAAaw6D,KAA4E,WAAWD,EAAc,EAAIA,GAAiB,EAAI,MAC3I3I,GAAS+I,IAAgEn1D,EAAOA,EAAK,OAAS,MAC9F9E,GAAQqzD,aAAAA,QAAQ,IAAM,CACxB,GAAI,CAACvuD,EACD,OAAO,KAGX,IAAIy1D,GAAY,EAEhB,MAAMC,GAAmBN,GAA4D,aAErF,GAAIn0D,GAASC,EAAQ,CACjB,MAAMxF,GAAWsE,EAAK,YAAY,CAAE,MAAO,EAAG,SAAUosD,EAAM,CAAE,EAC5DnrD,EACAw0D,GAAYx0D,EAAQvF,GAAS,MAExBwF,IACLu0D,GAAYv0D,EAASxF,GAAS,OAErC,CACD,OAAOg6D,GAAmBD,EAClC,EAAO,CAACv0D,EAAQlB,EAAMosD,GAAQgJ,EAAYn0D,CAAK,CAAC,EAC5C,SAAS00D,IAAO,CACZ,MAAO,IAAM,CACJ,WAAW/6D,EAAS,GAIrB65D,GAAiCpG,GACjCA,EAAezzD,EAAS,CAExC,CACK,CACDoyD,aAAS,UAAC2I,GAAM,CAAClB,EAA+BhK,EAAK7vD,GAAWyzD,CAAc,CAAC,EAI/E,SAAST,IAAgB,CACrB,GAAI7B,EAAoB,CACpB,GAAI,CAAC/rD,GAAQ,CAAC9E,GAEV,OAEJ6wD,EAAmB,iBAAiB/rD,EAAM9E,EAAK,CAAC,CACnD,CACD,GAAIu5D,GAAiCrG,GAAc,CAC/C,GAAI,CAAC,WAAWxzD,EAAS,GAAK,CAAC46D,GAAY,QAEvC,OAEJpH,GAAaxzD,GAAW46D,GAAY,OAAO,CAC9C,CACJ,CAID,SAAS3H,IAAc,CACd0H,KAILpL,UAAQ,GAAOoL,GAAU,SAAU,CAAA,EAC/B1J,GACAA,EAAiB0J,EAAS,EAEjC,CACD,SAASK,IAAY,CACjBN,EAAa,CAAE,KAAM,OAAO,CAAE,CACjC,CACDtI,aAAS,UAAC4I,GAAW,CAACN,EAAc7K,EAAK7vD,EAAS,CAAC,EACnD,SAASi7D,IAAW,CAChB,GAAI,CAACpL,GAAO,CAACjwD,GACT,OAEJ,MAAMizD,GAAcC,uBAAgBjD,EAAI,QAAQjwD,EAAU,CAAC,EACrD4vD,GAAcqD,GACpB,OAAAA,GAAY,QACP,KAAMqI,IAAa,CACpBR,EAAa,CAAE,KAAM,UAAW,MAAOQ,EAAU,CAAA,CAC7D,CAAS,EACI,MAAOx5D,IAAU,CAClBg5D,EAAa,CAAE,KAAM,SAAU,MAAAh5D,EAAO,CAAA,CAClD,CAAS,EACM,IAAM,kBAAkB8tD,EAAW,CAC7C,CACD4C,uBAAU6I,GAAU,CAACP,EAAc7K,EAAK7vD,GAAWJ,GAAY4zD,EAAY,CAAC,EAC5EpB,aAAAA,UAAU,IAAM,CACZ,GAAIhtD,IAAS,OAGb,IAAIA,IAAS,GAAO,CAChB6tD,KACA,MACH,CACDD,KACH,EAGD,CAAC5tD,EAAM9E,EAAK,CAAC,EACb,MAAMozD,GAAeC,aAAAA,QAAQ,IAE7BvuD,GAAQ,WAAWpF,EAAS,GAAKJ,IAAc,WAAW4xD,EAAM,GAAK,WAAWlxD,EAAK,EAC/E,CACE,WAAAo2D,EACA,iBAAAC,EACA,mBAAAL,EACA,iBAAAM,EACA,sBAAuBmC,EACvB,wBAAyBC,EACzB,qBAAsBhD,EACtB,uBAAwBC,EACxB,eAAgB8D,EAChB,iBAAkBC,EAClB,6BAA8Bf,EAC9B,+BAAgCC,EAChC,cAAerC,EACf,gBAAiBC,EACjB,uBAAwBmD,EACxB,yBAA0BC,EAC1B,KAAA90D,EACA,UAAApF,GACA,WAAAJ,GACA,YAAAm3D,GACA,gBAAiBuD,EACjB,OAAA9I,GACA,MAAAlxD,EACH,EACC,KAAM,CACRo2D,EACAC,EACAL,EACAM,EACAmC,EACAC,EACAhD,EACAC,EACA8D,EACAC,EACAf,EACAC,EACArC,EACAC,EACAmD,EACAC,EACA90D,EACApF,GACAJ,GACAm3D,GACAuD,EACA9I,GACAlxD,EACR,CAAK,EACK0tD,GAAa2F,aAAAA,QAAQ,IAAM,eAAelC,EAAY,IAAMrsD,IAAQ9E,GAAQ,iBAAiB8E,EAAM9E,EAAK,EAAI,OAAiB,EAAG,CAACmxD,EAAYrsD,EAAM9E,EAAK,CAAC,EACzJ66D,GAAU,GAAGn7D,EAAS,IAAIM,EAAK,IAAIkxD,EAAM,GACzC4J,GAAiB,GAAGp7D,EAAS,IAAIwxD,EAAM,GAC7C,SAAS6J,IAAkB,CACvB,OAAQ9J,GAAU,CACd,IAAK,SACD,iBAAUuI,EAAgB,mEAAmE,EACtF,MAAM,cAAcA,EAAgB,CAAE,IAAK,GAAGqB,EAAO,SAAS,CAAE,EAE3E,IAAK,OACD,OAAO,KACX,IAAK,MACD,OAAO,MAAM,cAAc,QAAS,CAAE,IAAK,GAAGC,EAAc,MAAM,CAAE,EACxE,IAAK,SACL,QACI,OAAO,MAAM,cAAc,WAAY,CAAE,IAAK,GAAGD,EAAO,UAAW,UAAWnE,EAAW,CAAA,CAChG,CACJ,CACD,SAASpqB,IAAkB,CACvB,OAAK0tB,EAGE,MAAM,cAAc,UAAW,CAAE,IAAK,GAAGa,EAAO,OAAO,CAAE,EAFrD,IAGd,CACD,SAAS3B,IAAwB,CAC7B,OAAKa,GAOE,MAAM,cAAc,gBAAiB,CAAE,IAAK,GAAGc,EAAO,cAAc,CAAE,EANlE,IAOd,CACD,SAASvH,IAAiB,CACtB,OAAQ,MAAM,cAAc,YAAY,SAAU,CAAE,MAAOF,EAAc,EACrE2H,GAAiB,EACjBzuB,GAAiB,EACjB4sB,GAAuB,EACvB5K,CAAQ,CACf,CACD,SAASiF,IAAgB,CACrB,OAAKj0D,GAGDiwD,IAAQ,MAAQzqD,IAAS,QAAaA,IAAS,KACvC,MAAM,cAAc,QAAS,CAAE,KAAM,WAAa,OAAO0rD,GAAY,WAAaA,EAAS,EAAGA,CAAO,EAE7GjB,IAAQ,IAASzqD,IAAS,GACnB,MAAM,cAAc,QAAS,CAAE,KAAM,SAAW,OAAO1D,GAAU,WAAaA,EAAO,EAAGA,CAAK,EAEjGkyD,GAAc,EARV,MAAM,cAAc,QAAS,CAAE,KAAM,WAAa,OAAO7C,GAAW,WAAaA,EAAQ,EAAGA,CAAM,CAShH,CACD,OAAQ,MAAM,cAAc,MAAO,OAAO,OAAO,CAAE,UAAW,KAAK2F,EAAY/F,CAAS,EAAG,mBAAoB/wD,GAAY,IAAK,UAAUgxD,EAAUgK,EAAW,EAAG,MAAO,CAChK,iBAAmB,GAAGt6D,EAAK,GAC5B,gBAAiBq2D,GAAoB,QACrC,SAAU,WACV,SAAU,cACV,UAAW,aACd,CAAA,EAAI3I,EAAU,EAAG6F,GAAa,CAAE,CACzC,EACM,iBAAmB,UAAU,UAAU,CAAC,UAAU,KAAM,UAAU,IAAI,CAAC,EAC7E,KAAK,UAAY,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI,UAAU,EAAG,CAAE,iBAAkB,UAAU,OAAQ,UAAW,MAAO,SAAU,UAAU,KAAM,UAAW,YAAa,eAAgB,UAAU,KAAM,mBAAoB,UAAU,KAAM,iBAAkB,UAAU,OAAQ,MAAO,iBAAkB,OAAQ,UAAU,OAAQ,mBAAoB,UAAU,OAAQ,SAAU,MAAO,QAAS,iBAAkB,OAAQ,iBAAkB,eAAgB,UAAU,KAAM,iBAAkB,UAAU,KAAM,YAAa,UAAU,KAAM,cAAe,UAAU,KAAM,cAAe,UAAU,KAAM,gBAAiB,UAAU,KAAM,uBAAwB,UAAU,KAAM,yBAA0B,UAAU,KAAM,UAAW,YAAa,WAAY,aAAc,IAAK,MAAO,sBAAuB,UAAU,KAAM,YAAa,UAAU,KAAM,WAAY,aAAc,gBAAiB,UAAU,KAAM,OAAQ,SAAU,MAAO,UAAU,OAAQ,MAAO,UAAU,MAAM,CAAE,EACh8B,MAAA,OAAe,KCpQf,IAAI,OAAUpG,YAAQA,WAAK,QAAW,SAAU3oC,EAAG5U,EAAG,CAClD,IAAIlW,EAAI,CAAA,EACR,QAASjC,KAAK+sB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG/sB,CAAC,GAAKmY,EAAE,QAAQnY,CAAC,EAAI,IAC9EiC,EAAEjC,CAAC,EAAI+sB,EAAE/sB,CAAC,GACd,GAAI+sB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAStuB,EAAI,EAAGuB,EAAI,OAAO,sBAAsB+sB,CAAC,EAAGtuB,EAAIuB,EAAE,OAAQvB,IAC3D0Z,EAAE,QAAQnY,EAAEvB,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKsuB,EAAG/sB,EAAEvB,CAAC,CAAC,IACzEwD,EAAEjC,EAAEvB,CAAC,CAAC,EAAIsuB,EAAE/sB,EAAEvB,CAAC,CAAC,GAE5B,OAAOwD,CACX,EAYA,MAAM,UAAY,SAASshE,EAAUvO,EAAO,CACxC,MAAMoH,EAAkB,qBACxB,UAAUA,EAAiB,yEAAyE,EACpG,MAAME,EAAc,OAAO,OAAO,OAAO,OAAO,GAAIF,CAAe,EAAGpH,CAAK,EACrE,CAAE,UAAA4D,EAAW,YAAArX,EAAa,YAAA0X,EAAa,UAAWmJ,GAAgB,WAAYC,CAAkB,EAAG/F,EACnGr0D,EAAY,WAAWo6D,CAAe,EAAIA,EAAkB,EAAID,IAAwE,KACxIv6D,EAAaw6D,IAA4E,WAAWD,EAAc,EAAIA,GAAiB,EAAI,MACjJ,SAAS1F,EAAQ7wD,EAAO,CACpBA,EAAM,eAAc,EAChB,GAAC,WAAW5D,CAAS,GAAK,CAACJ,KAG3BoxD,EACAA,EAAY,CACR,UAAAhxD,EACA,WAAAJ,CAChB,CAAa,EAGD05C,EAAY,SAAS15C,CAAU,EAEtC,CACI,MAAuE27D,EAAY,OAAOxO,EAAO,CAAC,YAAa,aAAa,CAAC,EAClI,OAEA,MAAM,cAAc,IAAK,CAAE,UAAW,KAAK,uBAAwB4D,CAAS,EAAG,KAAM/wD,EAAa,IAAM,OAAW,QAAS60D,CAAS,EACjI,MAAM,cAAcmF,OAAM,OAAO,OAAO,CAAE,EAAE2B,EAAW,CAAE,WAAY,6BAA8B,8BAA+B,GAAO,sBAAuB,GAAO,gBAAiB,EAAK,CAAE,CAAC,CAAC,CACzM,EACA,YAAe,UCzCf,uBACA5L,QAAM,oBAAoB,UAAY","x_google_ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]}