@takeshape/purchase-order-chat 1.51.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-CYwqEJpJ.js","sources":["../../../node_modules/.pnpm/pdfjs-dist@5.5.207/node_modules/pdfjs-dist/legacy/build/pdf.mjs"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2024 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/**\n * pdfjsVersion = 5.5.207\n * pdfjsBuild = 527964698\n */\n/******/ var __webpack_modules__ = ({\n\n/***/ 9306\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\nvar tryToString = __webpack_require__(6823);\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ },\n\n/***/ 6194\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar has = (__webpack_require__(2248).has);\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 3506\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isPossiblePrototype = __webpack_require__(3925);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n/***/ },\n\n/***/ 7080\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar has = (__webpack_require__(4402).has);\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 3463\n(module) {\n\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n\n\n/***/ },\n\n/***/ 4328\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar WeakMapHelpers = __webpack_require__(4995);\n\nvar weakmap = new WeakMapHelpers.WeakMap();\nvar set = WeakMapHelpers.set;\nvar remove = WeakMapHelpers.remove;\n\nmodule.exports = function (key) {\n set(weakmap, key, 1);\n remove(weakmap, key);\n return key;\n};\n\n\n/***/ },\n\n/***/ 6557\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar has = (__webpack_require__(4995).has);\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 679\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isPrototypeOf = __webpack_require__(1625);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n\n\n/***/ },\n\n/***/ 3972\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (argument === undefined || isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n\n\n/***/ },\n\n/***/ 8551\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n\n\n/***/ },\n\n/***/ 4154\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n if (classof(argument) === 'Uint8Array') return argument;\n throw new $TypeError('Argument is not an Uint8Array');\n};\n\n\n/***/ },\n\n/***/ 7811\n(module) {\n\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n\n/***/ },\n\n/***/ 7394\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar classof = __webpack_require__(2195);\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n\n\n/***/ },\n\n/***/ 3238\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(7811);\nvar arrayBufferByteLength = __webpack_require__(7394);\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n try {\n // eslint-disable-next-line no-new -- thrower\n new DataView(O);\n return false;\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ },\n\n/***/ 5169\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isDetached = __webpack_require__(3238);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n\n\n/***/ },\n\n/***/ 5636\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar toIndex = __webpack_require__(7696);\nvar notDetached = __webpack_require__(5169);\nvar arrayBufferByteLength = __webpack_require__(7394);\nvar detachTransferable = __webpack_require__(4483);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n\n\n/***/ },\n\n/***/ 4644\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(7811);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar globalThis = __webpack_require__(4576);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar hasOwn = __webpack_require__(9297);\nvar classof = __webpack_require__(6955);\nvar tryToString = __webpack_require__(6823);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar defineBuiltIn = __webpack_require__(6840);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar isPrototypeOf = __webpack_require__(1625);\nvar getPrototypeOf = __webpack_require__(2787);\nvar setPrototypeOf = __webpack_require__(2967);\nvar wellKnownSymbol = __webpack_require__(8227);\nvar uid = __webpack_require__(3392);\nvar InternalStateModule = __webpack_require__(1181);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ },\n\n/***/ 5370\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar lengthOfArrayLike = __webpack_require__(6198);\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\n\n/***/ },\n\n/***/ 9617\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIndexedObject = __webpack_require__(5397);\nvar toAbsoluteIndex = __webpack_require__(5610);\nvar lengthOfArrayLike = __webpack_require__(6198);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ },\n\n/***/ 4527\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar isArray = __webpack_require__(4376);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n\n\n/***/ },\n\n/***/ 7680\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nmodule.exports = uncurryThis([].slice);\n\n\n/***/ },\n\n/***/ 2804\n(module) {\n\n\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n // TODO: use `Object.create(null)` in `core-js@4`\n var result = {};\n var index = 0;\n for (; index < 64; index++) result[characters.charAt(index)] = index;\n return result;\n};\n\nmodule.exports = {\n i2c: base64Alphabet,\n c2i: inverse(base64Alphabet),\n i2cUrl: base64UrlAlphabet,\n c2iUrl: inverse(base64UrlAlphabet)\n};\n\n\n/***/ },\n\n/***/ 6319\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar anObject = __webpack_require__(8551);\nvar iteratorClose = __webpack_require__(9539);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n\n\n/***/ },\n\n/***/ 2195\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ },\n\n/***/ 6955\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(2140);\nvar isCallable = __webpack_require__(4901);\nvar classofRaw = __webpack_require__(2195);\nvar wellKnownSymbol = __webpack_require__(8227);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ },\n\n/***/ 7740\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar hasOwn = __webpack_require__(9297);\nvar ownKeys = __webpack_require__(5031);\nvar getOwnPropertyDescriptorModule = __webpack_require__(7347);\nvar definePropertyModule = __webpack_require__(4913);\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\n\n/***/ },\n\n/***/ 2211\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ },\n\n/***/ 2529\n(module) {\n\n\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n\n\n/***/ },\n\n/***/ 6699\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar definePropertyModule = __webpack_require__(4913);\nvar createPropertyDescriptor = __webpack_require__(6980);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ },\n\n/***/ 6980\n(module) {\n\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ },\n\n/***/ 4659\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar definePropertyModule = __webpack_require__(4913);\nvar createPropertyDescriptor = __webpack_require__(6980);\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n\n\n/***/ },\n\n/***/ 2106\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar makeBuiltIn = __webpack_require__(283);\nvar defineProperty = __webpack_require__(4913);\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n\n\n/***/ },\n\n/***/ 6840\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\nvar definePropertyModule = __webpack_require__(4913);\nvar makeBuiltIn = __webpack_require__(283);\nvar defineGlobalProperty = __webpack_require__(9433);\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n\n\n/***/ },\n\n/***/ 6279\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar defineBuiltIn = __webpack_require__(6840);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n\n\n/***/ },\n\n/***/ 9433\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n\n\n/***/ },\n\n/***/ 3724\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n\n\n/***/ },\n\n/***/ 4483\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar getBuiltInNodeModule = __webpack_require__(9429);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n\n\n/***/ },\n\n/***/ 4055\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar isObject = __webpack_require__(34);\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ },\n\n/***/ 6837\n(module) {\n\n\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n\n\n/***/ },\n\n/***/ 5002\n(module) {\n\n\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n\n\n/***/ },\n\n/***/ 8727\n(module) {\n\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ },\n\n/***/ 6193\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar ENVIRONMENT = __webpack_require__(4215);\n\nmodule.exports = ENVIRONMENT === 'NODE';\n\n\n/***/ },\n\n/***/ 2839\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n\n\n/***/ },\n\n/***/ 9519\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar userAgent = __webpack_require__(2839);\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n\n\n/***/ },\n\n/***/ 4215\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* global Bun, Deno -- detection */\nvar globalThis = __webpack_require__(4576);\nvar userAgent = __webpack_require__(2839);\nvar classof = __webpack_require__(2195);\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n\n\n/***/ },\n\n/***/ 8574\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n\n\n/***/ },\n\n/***/ 6518\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar getOwnPropertyDescriptor = (__webpack_require__(7347).f);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar defineBuiltIn = __webpack_require__(6840);\nvar defineGlobalProperty = __webpack_require__(9433);\nvar copyConstructorProperties = __webpack_require__(7740);\nvar isForced = __webpack_require__(2796);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ },\n\n/***/ 9039\n(module) {\n\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ },\n\n/***/ 8745\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n\n\n/***/ },\n\n/***/ 6080\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(7476);\nvar aCallable = __webpack_require__(9306);\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ },\n\n/***/ 616\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n/***/ },\n\n/***/ 9565\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n\n/***/ },\n\n/***/ 350\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar hasOwn = __webpack_require__(9297);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ },\n\n/***/ 6706\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar aCallable = __webpack_require__(9306);\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n\n\n/***/ },\n\n/***/ 7476\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classofRaw = __webpack_require__(2195);\nvar uncurryThis = __webpack_require__(9504);\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n/***/ },\n\n/***/ 9504\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n\n\n/***/ },\n\n/***/ 944\n(module) {\n\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n var alphabet = options && options.alphabet;\n if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n throw new $TypeError('Incorrect `alphabet` option');\n};\n\n\n/***/ },\n\n/***/ 9429\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar IS_NODE = __webpack_require__(6193);\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n\n\n/***/ },\n\n/***/ 7751\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar isCallable = __webpack_require__(4901);\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n\n\n/***/ },\n\n/***/ 1767\n(module) {\n\n\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n\n\n/***/ },\n\n/***/ 8646\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar getIteratorMethod = __webpack_require__(851);\n\nmodule.exports = function (obj, stringHandling) {\n if (!stringHandling || typeof obj !== 'string') anObject(obj);\n var method = getIteratorMethod(obj);\n return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n\n\n/***/ },\n\n/***/ 851\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\nvar getMethod = __webpack_require__(5966);\nvar isNullOrUndefined = __webpack_require__(4117);\nvar Iterators = __webpack_require__(6269);\nvar wellKnownSymbol = __webpack_require__(8227);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n\n\n/***/ },\n\n/***/ 81\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar tryToString = __webpack_require__(6823);\nvar getIteratorMethod = __webpack_require__(851);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n/***/ },\n\n/***/ 5966\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aCallable = __webpack_require__(9306);\nvar isNullOrUndefined = __webpack_require__(4117);\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n/***/ },\n\n/***/ 3789\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar call = __webpack_require__(9565);\nvar toIntegerOrInfinity = __webpack_require__(1291);\nvar getIteratorDirect = __webpack_require__(1767);\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n\n\n/***/ },\n\n/***/ 4576\n(module) {\n\n\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ },\n\n/***/ 9297\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar toObject = __webpack_require__(8981);\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ },\n\n/***/ 421\n(module) {\n\n\nmodule.exports = {};\n\n\n/***/ },\n\n/***/ 397\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ },\n\n/***/ 5917\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar fails = __webpack_require__(9039);\nvar createElement = __webpack_require__(4055);\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n\n\n/***/ },\n\n/***/ 7055\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar fails = __webpack_require__(9039);\nvar classof = __webpack_require__(2195);\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n/***/ },\n\n/***/ 3167\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar setPrototypeOf = __webpack_require__(2967);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ },\n\n/***/ 3706\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar isCallable = __webpack_require__(4901);\nvar store = __webpack_require__(7629);\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ },\n\n/***/ 1181\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_WEAK_MAP = __webpack_require__(8622);\nvar globalThis = __webpack_require__(4576);\nvar isObject = __webpack_require__(34);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar hasOwn = __webpack_require__(9297);\nvar shared = __webpack_require__(7629);\nvar sharedKey = __webpack_require__(6119);\nvar hiddenKeys = __webpack_require__(421);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ },\n\n/***/ 4209\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar wellKnownSymbol = __webpack_require__(8227);\nvar Iterators = __webpack_require__(6269);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ },\n\n/***/ 4376\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(2195);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n\n\n/***/ },\n\n/***/ 1108\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n\n\n/***/ },\n\n/***/ 4901\n(module) {\n\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n\n\n/***/ },\n\n/***/ 2796\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\nvar isCallable = __webpack_require__(4901);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ },\n\n/***/ 4117\n(module) {\n\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n\n\n/***/ },\n\n/***/ 34\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ },\n\n/***/ 3925\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n\n\n/***/ },\n\n/***/ 6395\n(module) {\n\n\nmodule.exports = false;\n\n\n/***/ },\n\n/***/ 5810\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\nvar getInternalState = (__webpack_require__(1181).get);\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n\n\n/***/ },\n\n/***/ 757\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\nvar isCallable = __webpack_require__(4901);\nvar isPrototypeOf = __webpack_require__(1625);\nvar USE_SYMBOL_AS_UID = __webpack_require__(7040);\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n/***/ },\n\n/***/ 507\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n\n\n/***/ },\n\n/***/ 2652\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar bind = __webpack_require__(6080);\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar tryToString = __webpack_require__(6823);\nvar isArrayIteratorMethod = __webpack_require__(4209);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar isPrototypeOf = __webpack_require__(1625);\nvar getIterator = __webpack_require__(81);\nvar getIteratorMethod = __webpack_require__(851);\nvar iteratorClose = __webpack_require__(9539);\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n\n\n/***/ },\n\n/***/ 1385\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar iteratorClose = __webpack_require__(9539);\n\nmodule.exports = function (iters, kind, value) {\n for (var i = iters.length - 1; i >= 0; i--) {\n if (iters[i] === undefined) continue;\n try {\n value = iteratorClose(iters[i].iterator, kind, value);\n } catch (error) {\n kind = 'throw';\n value = error;\n }\n }\n if (kind === 'throw') throw value;\n return value;\n};\n\n\n/***/ },\n\n/***/ 9539\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getMethod = __webpack_require__(5966);\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n\n/***/ },\n\n/***/ 9462\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar create = __webpack_require__(2360);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar defineBuiltIns = __webpack_require__(6279);\nvar wellKnownSymbol = __webpack_require__(8227);\nvar InternalStateModule = __webpack_require__(1181);\nvar getMethod = __webpack_require__(5966);\nvar IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);\nvar createIterResultObject = __webpack_require__(2529);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorCloseAll = __webpack_require__(1385);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (state.openIters) try {\n iteratorCloseAll(state.openIters, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (iterator) iteratorClose(iterator, NORMAL);\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n\n\n/***/ },\n\n/***/ 684\n(module) {\n\n\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n // eslint-disable-next-line es/no-iterator -- required for testing\n var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n if (method) try {\n method.call({ next: null }, argument).next();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ },\n\n/***/ 4549\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n var Iterator = globalThis.Iterator;\n var IteratorPrototype = Iterator && Iterator.prototype;\n var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n var CLOSED = false;\n\n if (method) try {\n method.call({\n next: function () { return { done: true }; },\n 'return': function () { CLOSED = true; }\n }, -1);\n } catch (error) {\n // https://bugs.webkit.org/show_bug.cgi?id=291195\n if (!(error instanceof ExpectedError)) CLOSED = false;\n }\n\n if (!CLOSED) return method;\n};\n\n\n/***/ },\n\n/***/ 7657\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar create = __webpack_require__(2360);\nvar getPrototypeOf = __webpack_require__(2787);\nvar defineBuiltIn = __webpack_require__(6840);\nvar wellKnownSymbol = __webpack_require__(8227);\nvar IS_PURE = __webpack_require__(6395);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ },\n\n/***/ 6269\n(module) {\n\n\nmodule.exports = {};\n\n\n/***/ },\n\n/***/ 6198\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toLength = __webpack_require__(8014);\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n\n/***/ },\n\n/***/ 283\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar fails = __webpack_require__(9039);\nvar isCallable = __webpack_require__(4901);\nvar hasOwn = __webpack_require__(9297);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(350).CONFIGURABLE);\nvar inspectSource = __webpack_require__(3706);\nvar InternalStateModule = __webpack_require__(1181);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n/***/ },\n\n/***/ 2248\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n\n\n/***/ },\n\n/***/ 741\n(module) {\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n\n/***/ },\n\n/***/ 7819\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable es/no-json -- safe */\nvar fails = __webpack_require__(9039);\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n // eslint-disable-next-line es/no-json-rawjson -- feature detection\n var raw = JSON.rawJSON(unsafeInt);\n // eslint-disable-next-line es/no-json-israwjson -- feature detection\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n\n\n/***/ },\n\n/***/ 6043\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aCallable = __webpack_require__(9306);\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ },\n\n/***/ 2603\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toString = __webpack_require__(655);\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n/***/ },\n\n/***/ 4149\n(module) {\n\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n\n\n/***/ },\n\n/***/ 2360\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(8551);\nvar definePropertiesModule = __webpack_require__(6801);\nvar enumBugKeys = __webpack_require__(8727);\nvar hiddenKeys = __webpack_require__(421);\nvar html = __webpack_require__(397);\nvar documentCreateElement = __webpack_require__(4055);\nvar sharedKey = __webpack_require__(6119);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n/***/ },\n\n/***/ 6801\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);\nvar definePropertyModule = __webpack_require__(4913);\nvar anObject = __webpack_require__(8551);\nvar toIndexedObject = __webpack_require__(5397);\nvar objectKeys = __webpack_require__(1072);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n\n/***/ },\n\n/***/ 4913\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IE8_DOM_DEFINE = __webpack_require__(5917);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);\nvar anObject = __webpack_require__(8551);\nvar toPropertyKey = __webpack_require__(6969);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ },\n\n/***/ 7347\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar call = __webpack_require__(9565);\nvar propertyIsEnumerableModule = __webpack_require__(8773);\nvar createPropertyDescriptor = __webpack_require__(6980);\nvar toIndexedObject = __webpack_require__(5397);\nvar toPropertyKey = __webpack_require__(6969);\nvar hasOwn = __webpack_require__(9297);\nvar IE8_DOM_DEFINE = __webpack_require__(5917);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ },\n\n/***/ 8480\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar internalObjectKeys = __webpack_require__(1828);\nvar enumBugKeys = __webpack_require__(8727);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ },\n\n/***/ 3717\n(__unused_webpack_module, exports) {\n\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ },\n\n/***/ 2787\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar hasOwn = __webpack_require__(9297);\nvar isCallable = __webpack_require__(4901);\nvar toObject = __webpack_require__(8981);\nvar sharedKey = __webpack_require__(6119);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(2211);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n/***/ },\n\n/***/ 1625\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ },\n\n/***/ 1828\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar hasOwn = __webpack_require__(9297);\nvar toIndexedObject = __webpack_require__(5397);\nvar indexOf = (__webpack_require__(9617).indexOf);\nvar hiddenKeys = __webpack_require__(421);\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n\n/***/ },\n\n/***/ 1072\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar internalObjectKeys = __webpack_require__(1828);\nvar enumBugKeys = __webpack_require__(8727);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ },\n\n/***/ 8773\n(__unused_webpack_module, exports) {\n\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ },\n\n/***/ 2967\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar isObject = __webpack_require__(34);\nvar requireObjectCoercible = __webpack_require__(7750);\nvar aPossiblePrototype = __webpack_require__(3506);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ },\n\n/***/ 4270\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ },\n\n/***/ 5031\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\nvar uncurryThis = __webpack_require__(9504);\nvar getOwnPropertyNamesModule = __webpack_require__(8480);\nvar getOwnPropertySymbolsModule = __webpack_require__(3717);\nvar anObject = __webpack_require__(8551);\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ },\n\n/***/ 8235\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar hasOwn = __webpack_require__(9297);\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n\n\n/***/ },\n\n/***/ 1103\n(module) {\n\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ },\n\n/***/ 7750\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isNullOrUndefined = __webpack_require__(4117);\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 9286\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar SetHelpers = __webpack_require__(4402);\nvar iterate = __webpack_require__(8469);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 3440\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar SetHelpers = __webpack_require__(4402);\nvar clone = __webpack_require__(9286);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSet = __webpack_require__(8469);\nvar iterateSimple = __webpack_require__(507);\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(result, e)) remove(result, e);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 4402\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n\n\n/***/ },\n\n/***/ 8750\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar SetHelpers = __webpack_require__(4402);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSet = __webpack_require__(8469);\nvar iterateSimple = __webpack_require__(507);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n\n\n/***/ },\n\n/***/ 4449\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar has = (__webpack_require__(4402).has);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSet = __webpack_require__(8469);\nvar iterateSimple = __webpack_require__(507);\nvar iteratorClose = __webpack_require__(9539);\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n\n\n/***/ },\n\n/***/ 3838\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar size = __webpack_require__(5170);\nvar iterate = __webpack_require__(8469);\nvar getSetRecord = __webpack_require__(3789);\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n\n\n/***/ },\n\n/***/ 8527\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar has = (__webpack_require__(4402).has);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSimple = __webpack_require__(507);\nvar iteratorClose = __webpack_require__(9539);\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n\n\n/***/ },\n\n/***/ 8469\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar iterateSimple = __webpack_require__(507);\nvar SetHelpers = __webpack_require__(4402);\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n\n\n/***/ },\n\n/***/ 4916\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n // also covered engines with\n // https://bugs.webkit.org/show_bug.cgi?id=272679\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set([1, 2]);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n\n\n/***/ },\n\n/***/ 9835\n(module) {\n\n\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n try {\n // eslint-disable-next-line es/no-set -- needed for test\n var baseSet = new Set();\n var setLike = {\n size: 0,\n has: function () { return true; },\n keys: function () {\n // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n return Object.defineProperty({}, 'next', {\n get: function () {\n baseSet.clear();\n baseSet.add(4);\n return function () {\n return { done: true };\n };\n }\n });\n }\n };\n var result = baseSet[METHOD_NAME](setLike);\n\n return result.size === 1 && result.values().next().value === 4;\n } catch (error) {\n return false;\n }\n};\n\n\n/***/ },\n\n/***/ 5170\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar SetHelpers = __webpack_require__(4402);\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n\n\n/***/ },\n\n/***/ 3650\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar SetHelpers = __webpack_require__(4402);\nvar clone = __webpack_require__(9286);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSimple = __webpack_require__(507);\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 4204\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar add = (__webpack_require__(4402).add);\nvar clone = __webpack_require__(9286);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSimple = __webpack_require__(507);\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 6119\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar shared = __webpack_require__(5745);\nvar uid = __webpack_require__(3392);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ },\n\n/***/ 7629\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar IS_PURE = __webpack_require__(6395);\nvar globalThis = __webpack_require__(4576);\nvar defineGlobalProperty = __webpack_require__(9433);\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.48.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n\n/***/ },\n\n/***/ 5745\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar store = __webpack_require__(7629);\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n\n\n/***/ },\n\n/***/ 1548\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar fails = __webpack_require__(9039);\nvar V8 = __webpack_require__(9519);\nvar ENVIRONMENT = __webpack_require__(4215);\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n\n\n/***/ },\n\n/***/ 4495\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(9519);\nvar fails = __webpack_require__(9039);\nvar globalThis = __webpack_require__(4576);\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ },\n\n/***/ 5610\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ },\n\n/***/ 5854\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toPrimitive = __webpack_require__(2777);\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n\n\n/***/ },\n\n/***/ 7696\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\nvar toLength = __webpack_require__(8014);\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n\n\n/***/ },\n\n/***/ 5397\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(7055);\nvar requireObjectCoercible = __webpack_require__(7750);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ },\n\n/***/ 1291\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar trunc = __webpack_require__(741);\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n/***/ },\n\n/***/ 8014\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ },\n\n/***/ 8981\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar requireObjectCoercible = __webpack_require__(7750);\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n\n/***/ },\n\n/***/ 9590\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n\n\n/***/ },\n\n/***/ 2777\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar isObject = __webpack_require__(34);\nvar isSymbol = __webpack_require__(757);\nvar getMethod = __webpack_require__(5966);\nvar ordinaryToPrimitive = __webpack_require__(4270);\nvar wellKnownSymbol = __webpack_require__(8227);\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ },\n\n/***/ 6969\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toPrimitive = __webpack_require__(2777);\nvar isSymbol = __webpack_require__(757);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n\n/***/ },\n\n/***/ 2140\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar wellKnownSymbol = __webpack_require__(8227);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ },\n\n/***/ 655\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n\n\n/***/ },\n\n/***/ 6823\n(module) {\n\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n/***/ },\n\n/***/ 3392\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ },\n\n/***/ 9143\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar anObjectOrUndefined = __webpack_require__(3972);\nvar aString = __webpack_require__(3463);\nvar hasOwn = __webpack_require__(9297);\nvar base64Map = __webpack_require__(2804);\nvar getAlphabetOption = __webpack_require__(944);\nvar notDetached = __webpack_require__(5169);\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n var length = string.length;\n for (;index < length; index++) {\n var chr = at(string, index);\n if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n var chunkLength = chunk.length;\n\n if (chunkLength < 4) {\n chunk += chunkLength === 2 ? 'AA' : 'A';\n }\n\n var triplet = (alphabet[at(chunk, 0)] << 18)\n + (alphabet[at(chunk, 1)] << 12)\n + (alphabet[at(chunk, 2)] << 6)\n + alphabet[at(chunk, 3)];\n\n var chunkBytes = [\n (triplet >> 16) & 255,\n (triplet >> 8) & 255,\n triplet & 255\n ];\n\n if (chunkLength === 2) {\n if (throwOnExtraBits && chunkBytes[1] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0]];\n }\n\n if (chunkLength === 3) {\n if (throwOnExtraBits && chunkBytes[2] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0], chunkBytes[1]];\n }\n\n return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n var elementsLength = elements.length;\n for (var index = 0; index < elementsLength; index++) {\n bytes[written + index] = elements[index];\n }\n return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n aString(string);\n anObjectOrUndefined(options);\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n throw new TypeError('Incorrect `lastChunkHandling` option');\n }\n\n if (into) notDetached(into.buffer);\n\n var stringLength = string.length;\n var bytes = into || [];\n var written = 0;\n var read = 0;\n var chunk = '';\n var index = 0;\n\n if (maxLength) while (true) {\n index = skipAsciiWhitespace(string, index);\n if (index === stringLength) {\n if (chunk.length > 0) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n if (lastChunkHandling === 'loose') {\n if (chunk.length === 1) {\n throw new SyntaxError('Malformed padding: exactly one additional character');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n } else {\n throw new SyntaxError('Missing padding');\n }\n }\n read = stringLength;\n break;\n }\n var chr = at(string, index);\n ++index;\n if (chr === '=') {\n if (chunk.length < 2) {\n throw new SyntaxError('Padding is too early');\n }\n index = skipAsciiWhitespace(string, index);\n if (chunk.length === 2) {\n if (index === stringLength) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n throw new SyntaxError('Malformed padding: only one =');\n }\n if (at(string, index) === '=') {\n ++index;\n index = skipAsciiWhitespace(string, index);\n }\n }\n if (index < stringLength) {\n throw new SyntaxError('Unexpected character after padding');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n read = stringLength;\n break;\n }\n if (!hasOwn(alphabet, chr)) {\n throw new SyntaxError('Unexpected character');\n }\n var remainingBytes = maxLength - written;\n if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n break;\n }\n\n chunk += chr;\n if (chunk.length === 4) {\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n chunk = '';\n read = index;\n if (written === maxLength) {\n break;\n }\n }\n }\n\n return { bytes: bytes, read: read, written: written };\n};\n\n\n/***/ },\n\n/***/ 2303\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar parseInt = globalThis.parseInt;\nvar min = Math.min;\nvar NOT_HEX = /[^\\da-f]/i;\nvar exec = uncurryThis(NOT_HEX.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (string, into) {\n var stringLength = string.length;\n if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n var bytes = into || new Uint8Array(maxLength);\n var read = 0;\n var written = 0;\n while (written < maxLength) {\n var hexits = stringSlice(string, read, read += 2);\n if (exec(NOT_HEX, hexits)) throw new SyntaxError('String should only contain hex characters');\n bytes[written++] = parseInt(hexits, 16);\n }\n return { bytes: bytes, read: read };\n};\n\n\n/***/ },\n\n/***/ 7416\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\nvar wellKnownSymbol = __webpack_require__(8227);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IS_PURE = __webpack_require__(6395);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'https://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'https://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('https://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\n});\n\n\n/***/ },\n\n/***/ 7040\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(4495);\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n\n\n/***/ },\n\n/***/ 8686\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar fails = __webpack_require__(9039);\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n\n\n/***/ },\n\n/***/ 2812\n(module) {\n\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n\n\n/***/ },\n\n/***/ 8622\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar isCallable = __webpack_require__(4901);\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n/***/ },\n\n/***/ 4995\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n\n\n/***/ },\n\n/***/ 8227\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar shared = __webpack_require__(5745);\nvar hasOwn = __webpack_require__(9297);\nvar uid = __webpack_require__(3392);\nvar NATIVE_SYMBOL = __webpack_require__(4495);\nvar USE_SYMBOL_AS_UID = __webpack_require__(7040);\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ },\n\n/***/ 6573\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar isDetached = __webpack_require__(3238);\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n\n\n/***/ },\n\n/***/ 7936\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar $transfer = __webpack_require__(5636);\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n\n\n/***/ },\n\n/***/ 8100\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar $transfer = __webpack_require__(5636);\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n\n\n/***/ },\n\n/***/ 4114\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar toObject = __webpack_require__(8981);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar setArrayLength = __webpack_require__(4527);\nvar doesNotExceedSafeInteger = __webpack_require__(6837);\nvar fails = __webpack_require__(9039);\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n\n\n/***/ },\n\n/***/ 8111\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar anInstance = __webpack_require__(679);\nvar anObject = __webpack_require__(8551);\nvar isCallable = __webpack_require__(4901);\nvar getPrototypeOf = __webpack_require__(2787);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar createProperty = __webpack_require__(4659);\nvar fails = __webpack_require__(9039);\nvar hasOwn = __webpack_require__(9297);\nvar wellKnownSymbol = __webpack_require__(8227);\nvar IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IS_PURE = __webpack_require__(6395);\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n\n\n/***/ },\n\n/***/ 9314\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar notANaN = __webpack_require__(4149);\nvar toPositiveInteger = __webpack_require__(9590);\nvar iteratorClose = __webpack_require__(9539);\nvar createIteratorProxy = __webpack_require__(9462);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar IS_PURE = __webpack_require__(6395);\n\nvar DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);\nvar dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);\n\nvar FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining;\n try {\n remaining = toPositiveInteger(notANaN(+limit));\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (dropWithoutClosingOnEarlyError) return call(dropWithoutClosingOnEarlyError, this, remaining);\n\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n\n\n/***/ },\n\n/***/ 1148\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n every: function every(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n\n\n/***/ },\n\n/***/ 2489\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar createIteratorProxy = __webpack_require__(9462);\nvar callWithSafeIterationClosing = __webpack_require__(6319);\nvar IS_PURE = __webpack_require__(6395);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });\nvar filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n filter: function filter(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n\n\n/***/ },\n\n/***/ 116\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {\n find: function find(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n\n\n/***/ },\n\n/***/ 531\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar getIteratorFlattenable = __webpack_require__(8646);\nvar createIteratorProxy = __webpack_require__(9462);\nvar iteratorClose = __webpack_require__(9539);\nvar IS_PURE = __webpack_require__(6395);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\n// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n// https://bugs.webkit.org/show_bug.cgi?id=297532\nfunction throwsOnIteratorWithoutReturn() {\n try {\n // eslint-disable-next-line es/no-map, es/no-iterator, es/no-iterator-prototype-flatmap -- required for testing\n var it = Iterator.prototype.flatMap.call(new Map([[4, 5]]).entries(), function (v) { return v; });\n it.next();\n it['return']();\n } catch (error) {\n return true;\n }\n}\n\nvar FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE\n && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });\nvar flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);\n\nvar FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError\n || throwsOnIteratorWithoutReturn();\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n\n\n/***/ },\n\n/***/ 7588\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n forEach: function forEach(fn) {\n anObject(this);\n try {\n aCallable(fn);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n\n\n/***/ },\n\n/***/ 1701\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar createIteratorProxy = __webpack_require__(9462);\nvar callWithSafeIterationClosing = __webpack_require__(6319);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar IS_PURE = __webpack_require__(6395);\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n map: function map(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n }\n});\n\n\n/***/ },\n\n/***/ 8237\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar apply = __webpack_require__(8745);\nvar fails = __webpack_require__(9039);\n\nvar $TypeError = TypeError;\n\n// https://bugs.webkit.org/show_bug.cgi?id=291651\nvar FAILS_ON_INITIAL_UNDEFINED = fails(function () {\n // eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing\n [].keys().reduce(function () { /* empty */ }, undefined);\n});\n\nvar reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n try {\n aCallable(reducer);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n if (reduceWithoutClosingOnEarlyError) {\n return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);\n }\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n\n\n/***/ },\n\n/***/ 3579\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n some: function some(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n\n\n/***/ },\n\n/***/ 4972\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar notANaN = __webpack_require__(4149);\nvar toPositiveInteger = __webpack_require__(9590);\nvar createIteratorProxy = __webpack_require__(9462);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar IS_PURE = __webpack_require__(6395);\n\nvar takeWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('take', RangeError);\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n if (!this.remaining--) {\n this.done = true;\n return iteratorClose(iterator, 'normal', undefined);\n }\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.take\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || takeWithoutClosingOnEarlyError }, {\n take: function take(limit) {\n anObject(this);\n var remaining;\n try {\n remaining = toPositiveInteger(notANaN(+limit));\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (takeWithoutClosingOnEarlyError) return call(takeWithoutClosingOnEarlyError, this, remaining);\n\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n\n\n/***/ },\n\n/***/ 9112\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar globalThis = __webpack_require__(4576);\nvar getBuiltIn = __webpack_require__(7751);\nvar uncurryThis = __webpack_require__(9504);\nvar call = __webpack_require__(9565);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar isArray = __webpack_require__(4376);\nvar hasOwn = __webpack_require__(9297);\nvar toString = __webpack_require__(655);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar createProperty = __webpack_require__(4659);\nvar fails = __webpack_require__(9039);\nvar parseJSONString = __webpack_require__(8235);\nvar NATIVE_SYMBOL = __webpack_require__(4495);\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') i = this.skip(IS_DIGIT, i + 1);\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n\n\n/***/ },\n\n/***/ 3110\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar getBuiltIn = __webpack_require__(7751);\nvar apply = __webpack_require__(8745);\nvar call = __webpack_require__(9565);\nvar uncurryThis = __webpack_require__(9504);\nvar fails = __webpack_require__(9039);\nvar isArray = __webpack_require__(4376);\nvar isCallable = __webpack_require__(4901);\nvar isRawJSON = __webpack_require__(5810);\nvar isSymbol = __webpack_require__(757);\nvar classof = __webpack_require__(2195);\nvar toString = __webpack_require__(655);\nvar arraySlice = __webpack_require__(7680);\nvar parseJSONString = __webpack_require__(8235);\nvar uid = __webpack_require__(3392);\nvar NATIVE_SYMBOL = __webpack_require__(4495);\nvar NATIVE_RAW_JSON = __webpack_require__(7819);\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar numberToString = uncurryThis(1.1.toString);\n\nvar surrogates = /[\\uD800-\\uDFFF]/g;\nvar lowSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar hiSurrogates = /^[\\uDC00-\\uDFFF]$/;\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n} : $stringify;\n\nvar fixIllFormedJSON = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(lowSurrogates, match) && !exec(hiSurrogates, next)) || (exec(hiSurrogates, match) && !exec(lowSurrogates, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar getReplacerFunction = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = stringifyWithProperSymbolsConversion(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);\n\n if (NATIVE_RAW_JSON) return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(json, i);\n if (chr === '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) === MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n\n\n/***/ },\n\n/***/ 2731\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar aCallable = __webpack_require__(9306);\nvar aMap = __webpack_require__(6194);\nvar MapHelpers = __webpack_require__(2248);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n aMap(this);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n // CanonicalizeKeyedCollectionKey\n if (key === 0 && 1 / key === -Infinity) key = 0;\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 5367\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar aMap = __webpack_require__(6194);\nvar MapHelpers = __webpack_require__(2248);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(aMap(this), key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 3068\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\n// based on Shewchuk's algorithm for exactly floating point addition\n// adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs\nvar $ = __webpack_require__(6518);\nvar uncurryThis = __webpack_require__(9504);\nvar iterate = __webpack_require__(2652);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar $Infinity = Infinity;\nvar $NaN = NaN;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar push = uncurryThis([].push);\n\nvar POW_2_1023 = pow(2, 1023);\nvar MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740992\nvar MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308\nvar MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292\n\nvar NOT_A_NUMBER = {};\nvar MINUS_INFINITY = {};\nvar PLUS_INFINITY = {};\nvar MINUS_ZERO = {};\nvar FINITE = {};\n\n// prerequisite: abs(x) >= abs(y)\nvar twosum = function (x, y) {\n var hi = x + y;\n var lo = y - (hi - x);\n return { hi: hi, lo: lo };\n};\n\n// `Math.sumPrecise` method\n// https://github.com/tc39/proposal-math-sum\n$({ target: 'Math', stat: true }, {\n // eslint-disable-next-line max-statements -- ok\n sumPrecise: function sumPrecise(items) {\n var numbers = [];\n var count = 0;\n var state = MINUS_ZERO;\n\n iterate(items, function (n) {\n if (++count >= MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');\n if (typeof n != 'number') throw new $TypeError('Value is not a number');\n if (state !== NOT_A_NUMBER) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (n !== n) state = NOT_A_NUMBER;\n else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;\n else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;\n else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {\n state = FINITE;\n push(numbers, n);\n }\n }\n });\n\n switch (state) {\n case NOT_A_NUMBER: return $NaN;\n case MINUS_INFINITY: return -$Infinity;\n case PLUS_INFINITY: return $Infinity;\n case MINUS_ZERO: return -0;\n }\n\n var partials = [];\n var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount\n var x, y, sum, hi, lo, tmp;\n\n for (var i = 0; i < numbers.length; i++) {\n x = numbers[i];\n var actuallyUsedPartials = 0;\n for (var j = 0; j < partials.length; j++) {\n y = partials[j];\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n if (abs(hi) === $Infinity) {\n var sign = hi === $Infinity ? 1 : -1;\n overflow += sign;\n\n x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n }\n if (lo !== 0) partials[actuallyUsedPartials++] = lo;\n x = hi;\n }\n partials.length = actuallyUsedPartials;\n if (x !== 0) push(partials, x);\n }\n\n // compute the exact sum of partials, stopping once we lose precision\n var n = partials.length - 1;\n hi = 0;\n lo = 0;\n\n if (overflow !== 0) {\n var next = n >= 0 ? partials[n] : 0;\n n--;\n if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {\n return overflow > 0 ? $Infinity : -$Infinity;\n }\n // here we actually have to do the arithmetic\n // drop a factor of 2 so we can do it without overflow\n // assert(abs(overflow) === 1)\n sum = twosum(overflow * POW_2_1023, next / 2);\n hi = sum.hi;\n lo = sum.lo;\n lo *= 2;\n if (abs(2 * hi) === $Infinity) {\n // rounding to the maximum value\n if (hi > 0) {\n return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;\n } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;\n }\n\n if (lo !== 0) {\n partials[++n] = lo;\n lo = 0;\n }\n\n hi *= 2;\n }\n\n while (n >= 0) {\n sum = twosum(hi, partials[n--]);\n hi = sum.hi;\n lo = sum.lo;\n if (lo !== 0) break;\n }\n\n if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y === x - hi) hi = x;\n }\n\n return hi;\n }\n});\n\n\n/***/ },\n\n/***/ 1689\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar apply = __webpack_require__(8745);\nvar slice = __webpack_require__(7680);\nvar newPromiseCapabilityModule = __webpack_require__(6043);\nvar aCallable = __webpack_require__(9306);\nvar perform = __webpack_require__(1103);\n\nvar Promise = globalThis.Promise;\n\nvar ACCEPT_ARGUMENTS = false;\n// Avoiding the use of polyfills of the previous iteration of this proposal\n// that does not accept arguments of the callback\nvar FORCED = !Promise || !Promise['try'] || perform(function () {\n Promise['try'](function (argument) {\n ACCEPT_ARGUMENTS = argument === 8;\n }, 8);\n}).error || !ACCEPT_ARGUMENTS;\n\n// `Promise.try` method\n// https://tc39.es/ecma262/#sec-promise.try\n$({ target: 'Promise', stat: true, forced: FORCED }, {\n 'try': function (callbackfn /* , ...args */) {\n var args = arguments.length > 1 ? slice(arguments, 1) : [];\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(function () {\n return apply(aCallable(callbackfn), undefined, args);\n });\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n\n\n/***/ },\n\n/***/ 4628\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar newPromiseCapabilityModule = __webpack_require__(6043);\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n\n\n/***/ },\n\n/***/ 7642\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar difference = __webpack_require__(3440);\nvar fails = __webpack_require__(9039);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n // https://bugs.webkit.org/show_bug.cgi?id=288595\n var setLike = {\n size: 1,\n has: function () { return true; },\n keys: function () {\n var index = 0;\n return {\n next: function () {\n var done = index++ > 1;\n if (baseSet.has(1)) baseSet.clear();\n return { done: done, value: 2 };\n }\n };\n }\n };\n // eslint-disable-next-line es/no-set -- testing\n var baseSet = new Set([1, 2, 3, 4]);\n // eslint-disable-next-line es/no-set-prototype-difference -- testing\n return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n difference: difference\n});\n\n\n/***/ },\n\n/***/ 8004\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar fails = __webpack_require__(9039);\nvar intersection = __webpack_require__(8750);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n\n\n/***/ },\n\n/***/ 3853\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar isDisjointFrom = __webpack_require__(4449);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n\n\n/***/ },\n\n/***/ 5876\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar isSubsetOf = __webpack_require__(3838);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n\n\n/***/ },\n\n/***/ 2475\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar isSupersetOf = __webpack_require__(8527);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n\n\n/***/ },\n\n/***/ 5024\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar symmetricDifference = __webpack_require__(3650);\nvar setMethodGetKeysBeforeCloning = __webpack_require__(9835);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n symmetricDifference: symmetricDifference\n});\n\n\n/***/ },\n\n/***/ 1698\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar union = __webpack_require__(4204);\nvar setMethodGetKeysBeforeCloning = __webpack_require__(9835);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n union: union\n});\n\n\n/***/ },\n\n/***/ 9577\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar ArrayBufferViewCore = __webpack_require__(4644);\nvar isBigIntArray = __webpack_require__(1108);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar toIntegerOrInfinity = __webpack_require__(1291);\nvar toBigInt = __webpack_require__(5854);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n try {\n // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](-0.5, 1);\n } catch (error) {\n return true;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new (getTypedArrayConstructor(O))(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n\n\n/***/ },\n\n/***/ 5213\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar arrayFromConstructorAndList = __webpack_require__(5370);\nvar $fromBase64 = __webpack_require__(9143);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64 || !function () {\n // Webkit not throw an error on odd length string\n try {\n Uint8Array.fromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n Uint8Array.fromBase64('', null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.fromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n fromBase64: function fromBase64(string /* , options */) {\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);\n return arrayFromConstructorAndList(Uint8Array, result.bytes);\n }\n});\n\n\n/***/ },\n\n/***/ 6632\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar $fromBase64 = __webpack_require__(9143);\nvar anUint8Array = __webpack_require__(4154);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {\n var target = new Uint8Array([255, 255, 255, 255, 255]);\n try {\n target.setFromBase64('', null);\n return;\n } catch (error) { /* empty */ }\n // Webkit not throw an error on odd length string\n try {\n target.setFromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n target.setFromBase64('MjYyZg===');\n } catch (error) {\n return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n }\n}();\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n setFromBase64: function setFromBase64(string /* , options */) {\n anUint8Array(this);\n\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n return { read: result.read, written: result.written };\n }\n});\n\n\n/***/ },\n\n/***/ 4226\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar aString = __webpack_require__(3463);\nvar anUint8Array = __webpack_require__(4154);\nvar notDetached = __webpack_require__(5169);\nvar $fromHex = __webpack_require__(2303);\n\n// Should not throw an error on length-tracking views over ResizableArrayBuffer\n// https://issues.chromium.org/issues/454630441\nfunction throwsOnLengthTrackingView() {\n try {\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing\n var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing\n new Uint8Array(rab).setFromHex('cafed00d');\n } catch (error) {\n return true;\n }\n}\n\n// `Uint8Array.prototype.setFromHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {\n setFromHex: function setFromHex(string) {\n anUint8Array(this);\n aString(string);\n notDetached(this.buffer);\n var read = $fromHex(string, this).read;\n return { read: read, written: read / 2 };\n }\n});\n\n\n/***/ },\n\n/***/ 9486\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar anObjectOrUndefined = __webpack_require__(3972);\nvar anUint8Array = __webpack_require__(4154);\nvar notDetached = __webpack_require__(5169);\nvar base64Map = __webpack_require__(2804);\nvar getAlphabetOption = __webpack_require__(944);\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {\n try {\n var target = new Uint8Array();\n target.toBase64(null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.prototype.toBase64` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toBase64: function toBase64(/* options */) {\n var array = anUint8Array(this);\n var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var omitPadding = !!options && !!options.omitPadding;\n notDetached(this.buffer);\n\n var result = '';\n var i = 0;\n var length = array.length;\n var triplet;\n\n var at = function (shift) {\n return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n };\n\n for (; i + 2 < length; i += 3) {\n triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n result += at(3) + at(2) + at(1) + at(0);\n }\n if (i + 2 === length) {\n triplet = (array[i] << 16) + (array[i + 1] << 8);\n result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n } else if (i + 1 === length) {\n triplet = array[i] << 16;\n result += at(3) + at(2) + (omitPadding ? '' : '==');\n }\n\n return result;\n }\n});\n\n\n/***/ },\n\n/***/ 456\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar anUint8Array = __webpack_require__(4154);\nvar notDetached = __webpack_require__(5169);\n\nvar numberToString = uncurryThis(1.1.toString);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {\n try {\n var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n return target.toHex() === 'ffffffffffffffff';\n } catch (error) {\n return false;\n }\n})();\n\n// `Uint8Array.prototype.toHex` method\n// https://github.com/tc39/proposal-arraybuffer-base64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toHex: function toHex() {\n anUint8Array(this);\n notDetached(this.buffer);\n var result = '';\n for (var i = 0, length = this.length; i < length; i++) {\n var hex = numberToString(this[i], 16);\n result += hex.length === 1 ? '0' + hex : hex;\n }\n return result;\n }\n});\n\n\n/***/ },\n\n/***/ 9452\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar aCallable = __webpack_require__(9306);\nvar aWeakMap = __webpack_require__(6557);\nvar aWeakKey = __webpack_require__(4328);\nvar WeakMapHelpers = __webpack_require__(4995);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\nvar FORCED = IS_PURE || !function () {\n try {\n // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing\n if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n } catch (error) {\n // FF144 Nightly - Beta 3 bug\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n return error instanceof TypeError;\n }\n}();\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n aWeakMap(this);\n aWeakKey(key);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 8454\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar aWeakMap = __webpack_require__(6557);\nvar WeakMapHelpers = __webpack_require__(4995);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(aWeakMap(this), key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 4979\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar getBuiltIn = __webpack_require__(7751);\nvar createPropertyDescriptor = __webpack_require__(6980);\nvar defineProperty = (__webpack_require__(4913).f);\nvar hasOwn = __webpack_require__(9297);\nvar anInstance = __webpack_require__(679);\nvar inheritIfRequired = __webpack_require__(3167);\nvar normalizeStringArgument = __webpack_require__(2603);\nvar DOMExceptionConstants = __webpack_require__(5002);\nvar clearErrorStack = __webpack_require__(8574);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IS_PURE = __webpack_require__(6395);\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n\n\n/***/ },\n\n/***/ 4603\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar defineBuiltIn = __webpack_require__(6840);\nvar uncurryThis = __webpack_require__(9504);\nvar toString = __webpack_require__(655);\nvar validateArgumentsLength = __webpack_require__(2812);\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n\n\n/***/ },\n\n/***/ 7566\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar defineBuiltIn = __webpack_require__(6840);\nvar uncurryThis = __webpack_require__(9504);\nvar toString = __webpack_require__(655);\nvar validateArgumentsLength = __webpack_require__(2812);\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n\n\n/***/ },\n\n/***/ 8721\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar uncurryThis = __webpack_require__(9504);\nvar defineBuiltInAccessor = __webpack_require__(2106);\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n\n\n/***/ },\n\n/***/ 5781\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar getBuiltIn = __webpack_require__(7751);\nvar validateArgumentsLength = __webpack_require__(2812);\nvar toString = __webpack_require__(655);\nvar USE_NATIVE_URL = __webpack_require__(7416);\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n\n\n/***/ }\n\n/******/ });\n/************************************************************************/\n/******/ // The module cache\n/******/ var __webpack_module_cache__ = {};\n/******/ \n/******/ // The require function\n/******/ function __webpack_require__(moduleId) {\n/******/ \t// Check if module is in cache\n/******/ \tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \tif (cachedModule !== undefined) {\n/******/ \t\treturn cachedModule.exports;\n/******/ \t}\n/******/ \t// Create a new module (and put it into the cache)\n/******/ \tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t// no module.id needed\n/******/ \t\t// no module.loaded needed\n/******/ \t\texports: {}\n/******/ \t};\n/******/ \n/******/ \t// Execute the module function\n/******/ \t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \n/******/ \t// Return the exports of the module\n/******/ \treturn module.exports;\n/******/ }\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__webpack_require__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js\nvar es_array_push = __webpack_require__(4114);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.detached.js\nvar es_array_buffer_detached = __webpack_require__(6573);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer.js\nvar es_array_buffer_transfer = __webpack_require__(8100);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js\nvar es_array_buffer_transfer_to_fixed_length = __webpack_require__(7936);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js\nvar es_iterator_constructor = __webpack_require__(8111);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.reduce.js\nvar es_iterator_reduce = __webpack_require__(8237);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert.js\nvar es_map_get_or_insert = __webpack_require__(5367);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert-computed.js\nvar es_map_get_or_insert_computed = __webpack_require__(2731);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.math.sum-precise.js\nvar es_math_sum_precise = __webpack_require__(3068);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.with.js\nvar es_typed_array_with = __webpack_require__(9577);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.set-from-base64.js\nvar es_uint8_array_set_from_base64 = __webpack_require__(6632);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.set-from-hex.js\nvar es_uint8_array_set_from_hex = __webpack_require__(4226);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.to-base64.js\nvar es_uint8_array_to_base64 = __webpack_require__(9486);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.to-hex.js\nvar es_uint8_array_to_hex = __webpack_require__(456);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.parse.js\nvar web_url_parse = __webpack_require__(5781);\n;// ./src/shared/util.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_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 IS_EDITING: 0x80,\n OPLIST: 0x100\n};\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15,\n POPUP: 16,\n SIGNATURE: 101,\n COMMENT: 102\n};\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 HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_THICKNESS: 32,\n HIGHLIGHT_FREE: 33,\n HIGHLIGHT_SHOW_ALL: 34,\n DRAW_STEP: 41\n};\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};\nconst MeshFigureType = {\n TRIANGLES: 1,\n LATTICE: 2,\n PATCH: 3\n};\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};\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\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};\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\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};\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};\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\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};\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\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 setStrokeTransparent: 92,\n setFillTransparent: 93,\n rawFillPath: 94\n};\nconst DrawOPS = {\n moveTo: 0,\n lineTo: 1,\n curveTo: 2,\n quadraticCurveTo: 3,\n closePath: 4\n};\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\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.info(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.warn(`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 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 ? URL.parse(url, baseUrl) : URL.parse(url);\n return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;\n}\nfunction updateUrlHash(url, hash, allowRel = false) {\n const res = URL.parse(url);\n if (res) {\n res.hash = hash;\n return res.href;\n }\n if (allowRel && createValidAbsoluteUrl(url, \"http://example.com\")) {\n return url.split(\"#\", 1)[0] + `${hash ? `#${hash}` : \"\"}`;\n }\n return \"\";\n}\nfunction stripPath(str) {\n return str.substring(str.lastIndexOf(\"/\") + 1);\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 this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nclass ResponseException extends BaseException {\n constructor(msg, status, missing) {\n super(msg, \"ResponseException\");\n this.status = status;\n this.missing = missing;\n }\n}\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\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 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 isImageDecoderSupported() {\n return shadow(this, \"isImageDecoderSupported\", typeof ImageDecoder !== \"undefined\");\n }\n static get isFloat16ArraySupported() {\n return shadow(this, \"isFloat16ArraySupported\", typeof Float16Array !== \"undefined\");\n }\n static get isSanitizerSupported() {\n return shadow(this, \"isSanitizerSupported\", typeof Sanitizer !== \"undefined\");\n }\n static get platform() {\n const {\n platform,\n userAgent\n } = navigator;\n return shadow(this, \"platform\", {\n isAndroid: userAgent.includes(\"Android\"),\n isLinux: platform.includes(\"Linux\"),\n isMac: platform.includes(\"Mac\"),\n isWindows: platform.includes(\"Win\"),\n isFirefox: userAgent.includes(\"Firefox\")\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nconst hexNumbers = Array.from(Array(256).keys(), 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 domMatrixToTransform(dm) {\n return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];\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[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\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 multiplyByDOMMatrix(m, md) {\n return [m[0] * md.a + m[2] * md.b, m[1] * md.a + m[3] * md.b, m[0] * md.c + m[2] * md.d, m[1] * md.c + m[3] * md.d, m[0] * md.e + m[2] * md.f + m[4], m[1] * md.e + m[3] * md.f + m[5]];\n }\n static applyTransform(p, m, pos = 0) {\n const p0 = p[pos];\n const p1 = p[pos + 1];\n p[pos] = p0 * m[0] + p1 * m[2] + m[4];\n p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];\n }\n static applyTransformToBezier(p, transform, pos = 0) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n for (let i = 0; i < 6; i += 2) {\n const pI = p[pos + i];\n const pI1 = p[pos + i + 1];\n p[pos + i] = pI * m0 + pI1 * m2 + m4;\n p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;\n }\n }\n static applyInverseTransform(p, m) {\n const p0 = p[0];\n const p1 = p[1];\n const d = m[0] * m[3] - m[1] * m[2];\n p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n }\n static axialAlignedBoundingBox(rect, transform, output) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n const r0 = rect[0];\n const r1 = rect[1];\n const r2 = rect[2];\n const r3 = rect[3];\n let a0 = m0 * r0 + m4;\n let a2 = a0;\n let a1 = m0 * r2 + m4;\n let a3 = a1;\n let b0 = m3 * r1 + m5;\n let b2 = b0;\n let b1 = m3 * r3 + m5;\n let b3 = b1;\n if (m1 !== 0 || m2 !== 0) {\n const m1r0 = m1 * r0;\n const m1r2 = m1 * r2;\n const m2r1 = m2 * r1;\n const m2r3 = m2 * r3;\n a0 += m2r1;\n a3 += m2r1;\n a1 += m2r3;\n a2 += m2r3;\n b0 += m1r0;\n b3 += m1r0;\n b1 += m1r2;\n b2 += m1r2;\n }\n output[0] = Math.min(output[0], a0, a1, a2, a3);\n output[1] = Math.min(output[1], b0, b1, b2, b3);\n output[2] = Math.max(output[2], a0, a1, a2, a3);\n output[3] = Math.max(output[3], b0, b1, b2, b3);\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(matrix, output) {\n const m0 = matrix[0];\n const m1 = matrix[1];\n const m2 = matrix[2];\n const m3 = matrix[3];\n const a = m0 ** 2 + m1 ** 2;\n const b = m0 * m2 + m1 * m3;\n const c = m2 ** 2 + m3 ** 2;\n const first = (a + c) / 2;\n const second = Math.sqrt(first ** 2 - (a * c - b ** 2));\n output[0] = Math.sqrt(first + second || 1);\n output[1] = Math.sqrt(first - second || 1);\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 pointBoundingBox(x, y, minMax) {\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n static rectBoundingBox(x0, y0, x1, y1, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x1);\n minMax[1] = Math.min(minMax[1], y0, y1);\n minMax[2] = Math.max(minMax[2], x0, x1);\n minMax[3] = Math.max(minMax[3], y0, y1);\n }\n static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);\n }\n return;\n }\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);\n }\n}\nconst PDFStringTranslateTable = (/* unused pure expression or super */ null && ([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, keepEscapeSequence = false) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\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 const decoded = decoder.decode(buffer);\n if (keepEscapeSequence || !decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\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 charCode = str.charCodeAt(i);\n if (!keepEscapeSequence && charCode === 0x1b) {\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\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 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 if (!(date instanceof Date)) {\n date = new Date(date);\n }\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}\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) => p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2));\n}\nfunction getUuid() {\n if (typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n crypto.getRandomValues(buf);\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nfunction _isValidExplicitDest(validRef, validName, dest) {\n if (!Array.isArray(dest) || dest.length < 2) {\n return false;\n }\n const [page, zoom, ...args] = dest;\n if (!validRef(page) && !Number.isInteger(page)) {\n return false;\n }\n if (!validName(zoom)) {\n return false;\n }\n const argsLen = args.length;\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (argsLen < 2 || argsLen > 3) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return argsLen === 0;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (argsLen > 1) {\n return false;\n }\n break;\n case \"FitR\":\n if (argsLen !== 4) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (const arg of args) {\n if (typeof arg === \"number\" || allowNull && arg === null) {\n continue;\n }\n return false;\n }\n return true;\n}\nconst makeArr = () => [];\nconst makeMap = () => new Map();\nconst makeObj = () => Object.create(null);\nfunction MathClamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\nif (typeof Response.prototype.bytes !== \"function\") {\n Response.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\nif (typeof AbortSignal.any !== \"function\") {\n AbortSignal.any = function (iterable) {\n const ac = new AbortController();\n const {\n signal\n } = ac;\n for (const s of iterable) {\n if (s.aborted) {\n ac.abort(s.reason);\n return signal;\n }\n }\n for (const s of iterable) {\n s.addEventListener(\"abort\", () => {\n ac.abort(s.reason);\n }, {\n signal\n });\n }\n return signal;\n };\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js\nvar es_iterator_every = __webpack_require__(1148);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js\nvar es_iterator_map = __webpack_require__(1701);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.delete.js\nvar web_url_search_params_delete = __webpack_require__(4603);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.has.js\nvar web_url_search_params_has = __webpack_require__(7566);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js\nvar web_url_search_params_size = __webpack_require__(8721);\n;// ./src/display/xfa_text.js\n\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}\n\n;// ./src/display/xfa_layer.js\n\n\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 isNotForRichText = intent !== \"richText\";\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 (isNotForRichText) {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n if (root.children.length === 0) {\n if (root.value) {\n const node = document.createTextNode(root.value);\n rootHtml.append(node);\n if (isNotForRichText && XfaText.shouldBuildText(root.name)) {\n textDivs.push(node);\n }\n }\n return {\n textDivs\n };\n }\n const stack = [[root, -1, rootHtml]];\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?.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (isNotForRichText && 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}\n\n;// ./src/display/display_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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}\nasync function fetchData(url, type = \"text\") {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n switch (type) {\n case \"blob\":\n return response.blob();\n case \"bytes\":\n return response.bytes();\n case \"json\":\n return response.json();\n }\n return response.text();\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n request.responseType = type === \"bytes\" ? \"arraybuffer\" : type;\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n switch (type) {\n case \"bytes\":\n resolve(new Uint8Array(request.response));\n return;\n case \"blob\":\n case \"json\":\n resolve(request.response);\n return;\n }\n resolve(request.responseText);\n return;\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass PageViewport {\n constructor({\n viewBox,\n userUnit,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.userUnit = userUnit;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n scale *= userUnit;\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 dims = this.viewBox;\n return shadow(this, \"rawDims\", {\n pageWidth: dims[2] - dims[0],\n pageHeight: dims[3] - dims[1],\n pageX: dims[0],\n pageY: dims[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 userUnit: this.userUnit,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n const p = [x, y];\n Util.applyTransform(p, this.transform);\n return p;\n }\n convertToViewportRectangle(rect) {\n const topLeft = [rect[0], rect[1]];\n Util.applyTransform(topLeft, this.transform);\n const bottomRight = [rect[2], rect[3]];\n Util.applyTransform(bottomRight, this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n const p = [x, y];\n Util.applyInverseTransform(p, this.transform);\n return p;\n }\n}\nclass RenderingCancelledException extends BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\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) {\n [url] = url.split(/[#?]/, 1);\n return stripPath(url);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const getURL = urlString => {\n try {\n return new URL(urlString);\n } catch {\n try {\n return new URL(decodeURIComponent(urlString));\n } catch {\n try {\n return new URL(urlString, \"https://foo.bar\");\n } catch {\n try {\n return new URL(decodeURIComponent(urlString), \"https://foo.bar\");\n } catch {\n return null;\n }\n }\n }\n }\n };\n const newURL = getURL(url);\n if (!newURL) {\n return defaultFilename;\n }\n const decode = name => {\n try {\n let decoded = decodeURIComponent(name);\n if (decoded.includes(\"/\")) {\n decoded = stripPath(decoded);\n if (/^\\.pdf$/i.test(decoded)) {\n return name;\n }\n }\n return decoded;\n } catch {\n return name;\n }\n };\n const pdfRegex = /\\.pdf$/i;\n const filename = stripPath(newURL.pathname);\n if (pdfRegex.test(filename)) {\n return decode(filename);\n }\n if (newURL.searchParams.size > 0) {\n const getLast = iterator => [...iterator].findLast(v => pdfRegex.test(v));\n const name = getLast(newURL.searchParams.values()) ?? getLast(newURL.searchParams.keys());\n if (name) {\n return decode(name);\n }\n }\n if (newURL.hash) {\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const hashFilename = reFilename.exec(newURL.hash);\n if (hashFilename) {\n return decode(hashFilename[0]);\n }\n }\n return defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n 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 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}\nfunction isValidFetchUrl(url, baseUrl) {\n const res = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n return /https?:/.test(res?.protocol ?? \"\");\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction stopEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nclass PDFDateString {\n static #regex;\n static toDateObject(input) {\n if (input instanceof Date) {\n return input;\n }\n if (!input || typeof input !== \"string\") {\n return null;\n }\n this.#regex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = this.#regex.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}\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 userUnit: 1,\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 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 span.style.colorScheme = \"only light\";\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 = FeatureTest.isCSSRoundSupported;\n const w = `var(--total-scale-factor) * ${pageWidth}px`,\n h = `var(--total-scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(down, ${w}, var(--scale-round-x))` : `calc(${w})`,\n heightStr = useRound ? `round(down, ${h}, var(--scale-round-y))` : `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}\nclass OutputScale {\n constructor() {\n const {\n pixelRatio\n } = OutputScale;\n this.sx = pixelRatio;\n this.sy = pixelRatio;\n }\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n get symmetric() {\n return this.sx === this.sy;\n }\n limitCanvas(width, height, maxPixels, maxDim, capAreaFactor = -1) {\n let maxAreaScale = Infinity,\n maxWidthScale = Infinity,\n maxHeightScale = Infinity;\n maxPixels = OutputScale.capPixels(maxPixels, capAreaFactor);\n if (maxPixels > 0) {\n maxAreaScale = Math.sqrt(maxPixels / (width * height));\n }\n if (maxDim !== -1) {\n maxWidthScale = maxDim / width;\n maxHeightScale = maxDim / height;\n }\n const maxScale = Math.min(maxAreaScale, maxWidthScale, maxHeightScale);\n if (this.sx > maxScale || this.sy > maxScale) {\n this.sx = maxScale;\n this.sy = maxScale;\n return true;\n }\n return false;\n }\n static get pixelRatio() {\n return globalThis.devicePixelRatio || 1;\n }\n static capPixels(maxPixels, capAreaFactor) {\n if (capAreaFactor >= 0) {\n const winPixels = Math.ceil(window.screen.availWidth * window.screen.availHeight * this.pixelRatio ** 2 * (1 + capAreaFactor / 100));\n return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;\n }\n return maxPixels;\n }\n}\nconst SupportedImageMimeTypes = [\"image/apng\", \"image/avif\", \"image/bmp\", \"image/gif\", \"image/jpeg\", \"image/png\", \"image/svg+xml\", \"image/webp\", \"image/x-icon\"];\nclass ColorScheme {\n static get isDarkMode() {\n return shadow(this, \"isDarkMode\", !!window?.matchMedia?.(\"(prefers-color-scheme: dark)\").matches);\n }\n}\nclass CSSConstants {\n static get commentForegroundColor() {\n const element = document.createElement(\"span\");\n element.classList.add(\"comment\", \"sidebar\");\n const {\n style\n } = element;\n style.width = style.height = \"0\";\n style.display = \"none\";\n style.color = \"var(--comment-fg-color)\";\n document.body.append(element);\n const {\n color\n } = window.getComputedStyle(element);\n element.remove();\n return shadow(this, \"commentForegroundColor\", getRGB(color));\n }\n}\nfunction applyOpacity(r, g, b, opacity) {\n opacity = MathClamp(opacity ?? 1, 0, 1);\n const white = 255 * (1 - opacity);\n r = Math.round(r * opacity + white);\n g = Math.round(g * opacity + white);\n b = Math.round(b * opacity + white);\n return [r, g, b];\n}\nfunction RGBToHSL(rgb, output) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (max === min) {\n output[0] = output[1] = 0;\n } else {\n const d = max - min;\n output[1] = l < 0.5 ? d / (max + min) : d / (2 - max - min);\n switch (max) {\n case r:\n output[0] = ((g - b) / d + (g < b ? 6 : 0)) * 60;\n break;\n case g:\n output[0] = ((b - r) / d + 2) * 60;\n break;\n case b:\n output[0] = ((r - g) / d + 4) * 60;\n break;\n }\n }\n output[2] = l;\n}\nfunction HSLToRGB(hsl, output) {\n const h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(h / 60 % 2 - 1));\n const m = l - c / 2;\n switch (Math.floor(h / 60)) {\n case 0:\n output[0] = c + m;\n output[1] = x + m;\n output[2] = m;\n break;\n case 1:\n output[0] = x + m;\n output[1] = c + m;\n output[2] = m;\n break;\n case 2:\n output[0] = m;\n output[1] = c + m;\n output[2] = x + m;\n break;\n case 3:\n output[0] = m;\n output[1] = x + m;\n output[2] = c + m;\n break;\n case 4:\n output[0] = x + m;\n output[1] = m;\n output[2] = c + m;\n break;\n case 5:\n case 6:\n output[0] = c + m;\n output[1] = m;\n output[2] = x + m;\n break;\n }\n}\nfunction computeLuminance(x) {\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n}\nfunction contrastRatio(hsl1, hsl2, output) {\n HSLToRGB(hsl1, output);\n output.map(computeLuminance);\n const lum1 = 0.2126 * output[0] + 0.7152 * output[1] + 0.0722 * output[2];\n HSLToRGB(hsl2, output);\n output.map(computeLuminance);\n const lum2 = 0.2126 * output[0] + 0.7152 * output[1] + 0.0722 * output[2];\n return lum1 > lum2 ? (lum1 + 0.05) / (lum2 + 0.05) : (lum2 + 0.05) / (lum1 + 0.05);\n}\nconst contrastCache = new Map();\nfunction findContrastColor(baseColor, fixedColor) {\n const key = baseColor[0] + baseColor[1] * 0x100 + baseColor[2] * 0x10000 + fixedColor[0] * 0x1000000 + fixedColor[1] * 0x100000000 + fixedColor[2] * 0x10000000000;\n let cachedValue = contrastCache.get(key);\n if (cachedValue) {\n return cachedValue;\n }\n const array = new Float32Array(9);\n const output = array.subarray(0, 3);\n const baseHSL = array.subarray(3, 6);\n RGBToHSL(baseColor, baseHSL);\n const fixedHSL = array.subarray(6, 9);\n RGBToHSL(fixedColor, fixedHSL);\n const isFixedColorDark = fixedHSL[2] < 0.5;\n const minContrast = isFixedColorDark ? 12 : 4.5;\n baseHSL[2] = isFixedColorDark ? Math.sqrt(baseHSL[2]) : 1 - Math.sqrt(1 - baseHSL[2]);\n if (contrastRatio(baseHSL, fixedHSL, output) < minContrast) {\n let start, end;\n if (isFixedColorDark) {\n start = baseHSL[2];\n end = 1;\n } else {\n start = 0;\n end = baseHSL[2];\n }\n const PRECISION = 0.005;\n while (end - start > PRECISION) {\n const mid = baseHSL[2] = (start + end) / 2;\n if (isFixedColorDark === contrastRatio(baseHSL, fixedHSL, output) < minContrast) {\n start = mid;\n } else {\n end = mid;\n }\n }\n baseHSL[2] = isFixedColorDark ? end : start;\n }\n HSLToRGB(baseHSL, output);\n cachedValue = Util.makeHexColor(Math.round(output[0] * 255), Math.round(output[1] * 255), Math.round(output[2] * 255));\n contrastCache.set(key, cachedValue);\n return cachedValue;\n}\nfunction renderRichText({\n html,\n dir,\n className\n}, container) {\n const fragment = document.createDocumentFragment();\n if (typeof html === \"string\") {\n const p = document.createElement(\"p\");\n p.dir = dir || \"auto\";\n const lines = html.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 fragment.append(p);\n } else {\n XfaLayer.render({\n xfaHtml: html,\n div: fragment,\n intent: \"richText\"\n });\n }\n fragment.firstElementChild.classList.add(\"richText\", className);\n container.append(fragment);\n}\nfunction makePathFromDrawOPS(data) {\n const path = new Path2D();\n if (!data) {\n return path;\n }\n for (let i = 0, ii = data.length; i < ii;) {\n switch (data[i++]) {\n case DrawOPS.moveTo:\n path.moveTo(data[i++], data[i++]);\n break;\n case DrawOPS.lineTo:\n path.lineTo(data[i++], data[i++]);\n break;\n case DrawOPS.curveTo:\n path.bezierCurveTo(data[i++], data[i++], data[i++], data[i++], data[i++], data[i++]);\n break;\n case DrawOPS.quadraticCurveTo:\n path.quadraticCurveTo(data[i++], data[i++], data[i++], data[i++]);\n break;\n case DrawOPS.closePath:\n path.closePath();\n break;\n default:\n warn(`Unrecognized drawing path operator: ${data[i - 1]}`);\n break;\n }\n }\n return path;\n}\nclass PagesMapper {\n #idToPageNumber = null;\n #pageNumberToId = null;\n #prevPageNumbers = null;\n #pagesNumber = 0;\n #listeners = [];\n #copiedPageIds = null;\n #copiedPageNumbers = null;\n get pagesNumber() {\n return this.#pagesNumber;\n }\n set pagesNumber(n) {\n if (this.#pagesNumber === n) {\n return;\n }\n this.#pagesNumber = n;\n this.#reset();\n }\n #reset() {\n this.#pageNumberToId = null;\n this.#idToPageNumber = null;\n }\n addListener(listener) {\n this.#listeners.push(listener);\n }\n removeListener(listener) {\n const index = this.#listeners.indexOf(listener);\n if (index >= 0) {\n this.#listeners.splice(index, 1);\n }\n }\n #updateListeners(data) {\n for (const listener of this.#listeners) {\n listener(data);\n }\n }\n #init(mustInit) {\n if (this.#pageNumberToId) {\n return;\n }\n const n = this.#pagesNumber;\n const pageNumberToId = this.#pageNumberToId = new Uint32Array(n);\n this.#prevPageNumbers = new Int32Array(pageNumberToId);\n const idToPageNumber = this.#idToPageNumber = new Map();\n if (mustInit) {\n for (let i = 1; i <= n; i++) {\n pageNumberToId[i - 1] = i;\n idToPageNumber.set(i, [i]);\n }\n }\n }\n #updateIdToPageNumber() {\n const idToPageNumber = this.#idToPageNumber;\n const pageNumberToId = this.#pageNumberToId;\n idToPageNumber.clear();\n for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n const id = pageNumberToId[i];\n const pageNumbers = idToPageNumber.get(id);\n if (pageNumbers) {\n pageNumbers.push(i + 1);\n } else {\n idToPageNumber.set(id, [i + 1]);\n }\n }\n }\n movePages(selectedPages, pagesToMove, index) {\n this.#init(true);\n const pageNumberToId = this.#pageNumberToId;\n const idToPageNumber = this.#idToPageNumber;\n const movedCount = pagesToMove.length;\n const mappedPagesToMove = new Uint32Array(movedCount);\n let removedBeforeTarget = 0;\n for (let i = 0; i < movedCount; i++) {\n const pageIndex = pagesToMove[i] - 1;\n mappedPagesToMove[i] = pageNumberToId[pageIndex];\n if (pageIndex < index) {\n removedBeforeTarget += 1;\n }\n }\n const pagesNumber = this.#pagesNumber;\n let adjustedTarget = index - removedBeforeTarget;\n const remainingLen = pagesNumber - movedCount;\n adjustedTarget = MathClamp(adjustedTarget, 0, remainingLen);\n for (let i = 0, r = 0; i < pagesNumber; i++) {\n if (!selectedPages.has(i + 1)) {\n pageNumberToId[r++] = pageNumberToId[i];\n }\n }\n pageNumberToId.copyWithin(adjustedTarget + movedCount, adjustedTarget, remainingLen);\n pageNumberToId.set(mappedPagesToMove, adjustedTarget);\n this.#setPrevPageNumbers(idToPageNumber, null);\n this.#updateIdToPageNumber();\n this.#updateListeners({\n type: \"move\"\n });\n if (pageNumberToId.every((id, i) => id === i + 1)) {\n this.#reset();\n }\n }\n deletePages(pagesToDelete) {\n this.#init(true);\n const pageNumberToId = this.#pageNumberToId;\n const prevIdToPageNumber = this.#idToPageNumber;\n this.pagesNumber -= pagesToDelete.length;\n this.#init(false);\n const newPageNumberToId = this.#pageNumberToId;\n let sourceIndex = 0;\n let destIndex = 0;\n for (const pageNumber of pagesToDelete) {\n const pageIndex = pageNumber - 1;\n if (pageIndex !== sourceIndex) {\n newPageNumberToId.set(pageNumberToId.subarray(sourceIndex, pageIndex), destIndex);\n destIndex += pageIndex - sourceIndex;\n }\n sourceIndex = pageIndex + 1;\n }\n if (sourceIndex < pageNumberToId.length) {\n newPageNumberToId.set(pageNumberToId.subarray(sourceIndex), destIndex);\n }\n this.#setPrevPageNumbers(prevIdToPageNumber, null);\n this.#updateIdToPageNumber();\n this.#updateListeners({\n type: \"delete\",\n pageNumbers: pagesToDelete\n });\n }\n copyPages(pagesToCopy) {\n this.#init(true);\n this.#copiedPageNumbers = pagesToCopy;\n this.#copiedPageIds = pagesToCopy.map(pageNumber => this.#pageNumberToId[pageNumber - 1]);\n this.#updateListeners({\n type: \"copy\",\n pageNumbers: pagesToCopy\n });\n }\n pastePages(index) {\n this.#init(true);\n const pageNumberToId = this.#pageNumberToId;\n const prevIdToPageNumber = this.#idToPageNumber;\n const copiedPageNumbers = this.#copiedPageNumbers;\n const copiedPageMapping = new Map();\n let base = index;\n for (const pageNumber of copiedPageNumbers) {\n copiedPageMapping.set(++base, pageNumber);\n }\n this.pagesNumber += copiedPageNumbers.length;\n this.#init(false);\n const newPageNumberToId = this.#pageNumberToId;\n newPageNumberToId.set(pageNumberToId.subarray(0, index), 0);\n newPageNumberToId.set(this.#copiedPageIds, index);\n newPageNumberToId.set(pageNumberToId.subarray(index), index + copiedPageNumbers.length);\n this.#setPrevPageNumbers(prevIdToPageNumber, copiedPageMapping);\n this.#updateIdToPageNumber();\n this.#updateListeners({\n type: \"paste\"\n });\n this.#copiedPageIds = null;\n }\n #setPrevPageNumbers(prevIdToPageNumber, copiedPageMapping) {\n const prevPageNumbers = this.#prevPageNumbers;\n const newPageNumberToId = this.#pageNumberToId;\n const idsIndices = new Map();\n for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n const oldPageNumber = copiedPageMapping?.get(i + 1);\n if (oldPageNumber) {\n prevPageNumbers[i] = -oldPageNumber;\n continue;\n }\n const id = newPageNumberToId[i];\n const j = idsIndices.get(id) || 0;\n prevPageNumbers[i] = prevIdToPageNumber.get(id)?.[j];\n idsIndices.set(id, j + 1);\n }\n }\n hasBeenAltered() {\n return this.#pageNumberToId !== null;\n }\n getPageMappingForSaving() {\n const idToPageNumber = this.#idToPageNumber;\n let nCopy = 0;\n for (const pageNumbers of idToPageNumber.values()) {\n nCopy = Math.max(nCopy, pageNumbers.length);\n }\n const extractParams = new Array(nCopy);\n for (let i = 0; i < nCopy; i++) {\n extractParams[i] = {\n document: null,\n pageIndices: [],\n includePages: []\n };\n }\n for (const [id, pageNumbers] of idToPageNumber) {\n for (let i = 0, ii = pageNumbers.length; i < ii; i++) {\n extractParams[i].includePages.push([id - 1, pageNumbers[i] - 1]);\n }\n }\n for (const {\n includePages,\n pageIndices\n } of extractParams) {\n includePages.sort((a, b) => a[0] - b[0]);\n for (let i = 0, ii = includePages.length; i < ii; i++) {\n pageIndices.push(includePages[i][1]);\n includePages[i] = includePages[i][0];\n }\n }\n return extractParams;\n }\n getPrevPageNumber(pageNumber) {\n return this.#prevPageNumbers[pageNumber - 1] ?? 0;\n }\n getPageNumber(id) {\n return this.#idToPageNumber ? this.#idToPageNumber.get(id)?.[0] ?? 0 : id;\n }\n getPageId(pageNumber) {\n return this.#pageNumberToId?.[pageNumber - 1] ?? pageNumber;\n }\n getMapping() {\n return this.#pageNumberToId.subarray(0, this.pagesNumber);\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.take.js\nvar es_iterator_take = __webpack_require__(4972);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.with-resolvers.js\nvar es_promise_with_resolvers = __webpack_require__(4628);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js\nvar es_set_difference_v2 = __webpack_require__(7642);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js\nvar es_set_intersection_v2 = __webpack_require__(8004);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\nvar es_set_is_disjoint_from_v2 = __webpack_require__(3853);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js\nvar es_set_is_subset_of_v2 = __webpack_require__(5876);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js\nvar es_set_is_superset_of_v2 = __webpack_require__(2475);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\nvar es_set_symmetric_difference_v2 = __webpack_require__(5024);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js\nvar es_set_union_v2 = __webpack_require__(1698);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.get-or-insert.js\nvar es_weak_map_get_or_insert = __webpack_require__(8454);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.get-or-insert-computed.js\nvar es_weak_map_get_or_insert_computed = __webpack_require__(9452);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-exception.stack.js\nvar web_dom_exception_stack = __webpack_require__(4979);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.stringify.js\nvar es_json_stringify = __webpack_require__(3110);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js\nvar es_iterator_drop = __webpack_require__(9314);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js\nvar es_iterator_some = __webpack_require__(3579);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.parse.js\nvar es_json_parse = __webpack_require__(9112);\n;// ./src/display/editor/toolbar.js\n\nclass EditorToolbar {\n #toolbar = null;\n #colorPicker = null;\n #editor;\n #buttons = null;\n #altText = null;\n #comment = null;\n #commentButtonDivider = null;\n #signatureDescriptionButton = null;\n static #l10nRemove = null;\n constructor(editor) {\n this.#editor = editor;\n EditorToolbar.#l10nRemove ||= Object.freeze({\n freetext: \"pdfjs-editor-remove-freetext-button\",\n highlight: \"pdfjs-editor-remove-highlight-button\",\n ink: \"pdfjs-editor-remove-ink-button\",\n stamp: \"pdfjs-editor-remove-stamp-button\",\n signature: \"pdfjs-editor-remove-signature-button\"\n });\n }\n render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.classList.add(\"editToolbar\", \"hidden\");\n editToolbar.setAttribute(\"role\", \"toolbar\");\n const signal = this.#editor._uiManager._signal;\n if (signal instanceof AbortSignal && !signal.aborted) {\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown, {\n signal\n });\n }\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n const position = this.#editor.toolbarPosition;\n if (position) {\n const {\n style\n } = editToolbar;\n const x = this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0];\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;\n }\n return editToolbar;\n }\n get div() {\n return this.#toolbar;\n }\n static #pointerDown(e) {\n e.stopPropagation();\n }\n #focusIn(e) {\n this.#editor._focusEventsAllowed = false;\n stopEvent(e);\n }\n #focusOut(e) {\n this.#editor._focusEventsAllowed = true;\n stopEvent(e);\n }\n #addListenersToElement(element) {\n const signal = this.#editor._uiManager._signal;\n if (!(signal instanceof AbortSignal) || signal.aborted) {\n return false;\n }\n element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n return true;\n }\n hide() {\n this.#toolbar.classList.add(\"hidden\");\n this.#colorPicker?.hideDropdown();\n }\n show() {\n this.#toolbar.classList.remove(\"hidden\");\n this.#altText?.shown();\n this.#comment?.shown();\n }\n addDeleteButton() {\n const {\n editorType,\n _uiManager\n } = this.#editor;\n const button = document.createElement(\"button\");\n button.classList.add(\"basic\", \"deleteButton\");\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", EditorToolbar.#l10nRemove[editorType]);\n if (this.#addListenersToElement(button)) {\n button.addEventListener(\"click\", e => {\n _uiManager.delete();\n }, {\n signal: _uiManager._signal\n });\n }\n this.#buttons.append(button);\n }\n get #divider() {\n const divider = document.createElement(\"div\");\n divider.className = \"divider\";\n return divider;\n }\n async addAltText(altText) {\n const button = await altText.render();\n this.#addListenersToElement(button);\n this.#buttons.append(button, this.#divider);\n this.#altText = altText;\n }\n addComment(comment, beforeElement = null) {\n if (this.#comment) {\n return;\n }\n const button = comment.renderForToolbar();\n if (!button) {\n return;\n }\n this.#addListenersToElement(button);\n const divider = this.#commentButtonDivider = this.#divider;\n if (!beforeElement) {\n this.#buttons.append(button, divider);\n } else {\n this.#buttons.insertBefore(button, beforeElement);\n this.#buttons.insertBefore(divider, beforeElement);\n }\n this.#comment = comment;\n comment.toolbar = this;\n }\n addColorPicker(colorPicker) {\n if (this.#colorPicker) {\n return;\n }\n this.#colorPicker = colorPicker;\n const button = colorPicker.renderButton();\n this.#addListenersToElement(button);\n this.#buttons.append(button, this.#divider);\n }\n async addEditSignatureButton(signatureManager) {\n const button = this.#signatureDescriptionButton = await signatureManager.renderEditButton(this.#editor);\n this.#addListenersToElement(button);\n this.#buttons.append(button, this.#divider);\n }\n removeButton(name) {\n switch (name) {\n case \"comment\":\n this.#comment?.removeToolbarCommentButton();\n this.#comment = null;\n this.#commentButtonDivider?.remove();\n this.#commentButtonDivider = null;\n break;\n }\n }\n async addButton(name, tool) {\n switch (name) {\n case \"colorPicker\":\n if (tool) {\n this.addColorPicker(tool);\n }\n break;\n case \"altText\":\n if (tool) {\n await this.addAltText(tool);\n }\n break;\n case \"editSignature\":\n if (tool) {\n await this.addEditSignatureButton(tool);\n }\n break;\n case \"delete\":\n this.addDeleteButton();\n break;\n case \"comment\":\n if (tool) {\n this.addComment(tool);\n }\n break;\n }\n }\n async addButtonBefore(name, tool, beforeSelector) {\n if (!tool && name === \"comment\") {\n return;\n }\n const beforeElement = this.#buttons.querySelector(beforeSelector);\n if (!beforeElement) {\n return;\n }\n if (name === \"comment\") {\n this.addComment(tool, beforeElement);\n }\n }\n updateEditSignatureButton(description) {\n if (this.#signatureDescriptionButton) {\n this.#signatureDescriptionButton.title = description;\n }\n }\n remove() {\n this.#toolbar.remove();\n this.#colorPicker?.destroy();\n this.#colorPicker = null;\n }\n}\nclass FloatingToolbar {\n #buttons = null;\n #toolbar = null;\n #uiManager;\n constructor(uiManager) {\n this.#uiManager = uiManager;\n }\n #render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.className = \"editToolbar\";\n editToolbar.setAttribute(\"role\", \"toolbar\");\n const signal = this.#uiManager._signal;\n if (signal instanceof AbortSignal && !signal.aborted) {\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n }\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n if (this.#uiManager.hasCommentManager()) {\n this.#makeButton(\"commentButton\", `pdfjs-comment-floating-button`, \"pdfjs-comment-floating-button-label\", () => {\n this.#uiManager.commentSelection(\"floating_button\");\n });\n }\n this.#makeButton(\"highlightButton\", `pdfjs-highlight-floating-button1`, \"pdfjs-highlight-floating-button-label\", () => {\n this.#uiManager.highlightSelection(\"floating_button\");\n });\n return editToolbar;\n }\n #getLastPoint(boxes, isLTR) {\n let lastY = 0;\n let lastX = 0;\n for (const box of boxes) {\n const y = box.y + box.height;\n if (y < lastY) {\n continue;\n }\n const x = box.x + (isLTR ? box.width : 0);\n if (y > lastY) {\n lastX = x;\n lastY = y;\n continue;\n }\n if (isLTR) {\n if (x > lastX) {\n lastX = x;\n }\n } else if (x < lastX) {\n lastX = x;\n }\n }\n return [isLTR ? 1 - lastX : lastX, lastY];\n }\n show(parent, boxes, isLTR) {\n const [x, y] = this.#getLastPoint(boxes, isLTR);\n const {\n style\n } = this.#toolbar ||= this.#render();\n parent.append(this.#toolbar);\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * y}% + var(--editor-toolbar-vert-offset))`;\n }\n hide() {\n this.#toolbar.remove();\n }\n #makeButton(buttonClass, l10nId, labelL10nId, clickHandler) {\n const button = document.createElement(\"button\");\n button.classList.add(\"basic\", buttonClass);\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", l10nId);\n const span = document.createElement(\"span\");\n button.append(span);\n span.className = \"visuallyHidden\";\n span.setAttribute(\"data-l10n-id\", labelL10nId);\n const signal = this.#uiManager._signal;\n if (signal instanceof AbortSignal && !signal.aborted) {\n button.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n button.addEventListener(\"click\", clickHandler, {\n signal\n });\n }\n this.#buttons.append(button);\n }\n}\n\n;// ./src/display/editor/tools.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nclass CurrentPointers {\n static #pointerId = NaN;\n static #pointerIds = null;\n static #moveTimestamp = NaN;\n static #pointerType = null;\n static initializeAndAddPointerId(pointerId) {\n (CurrentPointers.#pointerIds ||= new Set()).add(pointerId);\n }\n static setPointer(pointerType, pointerId) {\n CurrentPointers.#pointerId ||= pointerId;\n CurrentPointers.#pointerType ??= pointerType;\n }\n static setTimeStamp(timeStamp) {\n CurrentPointers.#moveTimestamp = timeStamp;\n }\n static isSamePointerId(pointerId) {\n return CurrentPointers.#pointerId === pointerId;\n }\n static isSamePointerIdOrRemove(pointerId) {\n if (CurrentPointers.#pointerId === pointerId) {\n return true;\n }\n CurrentPointers.#pointerIds?.delete(pointerId);\n return false;\n }\n static isSamePointerType(pointerType) {\n return CurrentPointers.#pointerType === pointerType;\n }\n static isInitializedAndDifferentPointerType(pointerType) {\n return CurrentPointers.#pointerType !== null && !CurrentPointers.isSamePointerType(pointerType);\n }\n static isSameTimeStamp(timeStamp) {\n return CurrentPointers.#moveTimestamp === timeStamp;\n }\n static isUsingMultiplePointers() {\n return CurrentPointers.#pointerIds?.size >= 1;\n }\n static clearPointerType() {\n CurrentPointers.#pointerType = null;\n }\n static clearPointerIds() {\n CurrentPointers.#pointerId = NaN;\n CurrentPointers.#pointerIds = null;\n }\n static clearTimeStamp() {\n CurrentPointers.#moveTimestamp = NaN;\n }\n}\nclass IdManager {\n #id = 0;\n get id() {\n return `${AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = getUuid();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox=\"0 0 1 1\" width=\"1\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"1\" height=\"1\" style=\"fill:red;\"/></svg>`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\", {\n willReadFrequently: true\n });\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 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 image = await fetchData(rawData, \"blob\");\n } else if (rawData instanceof File) {\n image = data.file = rawData;\n } else if (rawData instanceof Blob) {\n image = 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 warn(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 getFromBlob(id, blobPromise) {\n const blob = await blobPromise;\n return this.#get(id, blob);\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 if (data.blobPromise) {\n const {\n blobPromise\n } = data;\n delete data.blobPromise;\n return this.getFromBlob(data.id, blobPromise);\n }\n return this.getFromUrl(data.url);\n }\n getFromCanvas(id, canvas) {\n this.#cache ||= new Map();\n let data = this.#cache.get(id);\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n const offscreen = new OffscreenCanvas(canvas.width, canvas.height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(canvas, 0, 0);\n data = {\n bitmap: offscreen.transferToImageBitmap(),\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 1,\n isSvg: false\n };\n this.#cache.set(id, data);\n this.#cache.set(data.id, data);\n return data;\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 const {\n bitmap\n } = data;\n if (!data.url && !data.file) {\n const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n const ctx = canvas.getContext(\"bitmaprenderer\");\n ctx.transferFromImageBitmap(bitmap);\n data.blobPromise = canvas.convertToBlob();\n }\n bitmap.close?.();\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 post,\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 post,\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 const {\n undo,\n post\n } = this.#commands[this.#position];\n undo();\n post?.();\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 const {\n cmd,\n post\n } = this.#commands[this.#position];\n cmd();\n post?.();\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 cleanType(type) {\n if (this.#position === -1) {\n return;\n }\n for (let i = this.#position; i >= 0; i--) {\n if (this.#commands[i].type !== type) {\n this.#commands.splice(i + 1, this.#position - i);\n this.#position = i;\n return;\n }\n }\n this.#commands.length = 0;\n this.#position = -1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = 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, event)();\n if (!bubbles) {\n stopEvent(event);\n }\n }\n}\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 getColorValues(colors);\n return shadow(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = 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.makeHexColor(...rgb);\n }\n}\nclass AnnotationEditorUIManager {\n #abortController = new AbortController();\n #activeEditor = null;\n #allEditableAnnotations = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #changedExistingAnnotations = null;\n #commandManager = new CommandManager();\n #commentManager = null;\n #copyPasteAC = null;\n #currentDrawingSession = null;\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n _editorUndoBar = null;\n #enableHighlightFloatingButton = false;\n #enableUpdatedAddImage = false;\n #enableNewAltTextWhenAddingImage = false;\n #filterFactory = null;\n #focusMainContainerTimeoutId = null;\n #focusManagerAC = null;\n #highlightColors = null;\n #highlightWhenShiftUp = false;\n #floatingToolbar = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isPointerDown = false;\n #isWaiting = false;\n #keyboardManagerAC = null;\n #lastActiveElement = null;\n #mainHighlightColorPicker = null;\n #missingCanvases = null;\n #mlManager = null;\n #mode = AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #selectedTextNode = null;\n #signatureManager = null;\n #pageColors = null;\n #showAllStates = null;\n #pdfDocument = null;\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false,\n hasSelectedText: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n #viewerAlert = null;\n #updateModeCapability = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => self.#container.contains(document.activeElement) && document.activeElement.tagName !== \"BUTTON\" && self.hasSomethingToControl();\n const textInputChecker = (_self, {\n target: el\n }) => {\n if (el instanceof HTMLInputElement) {\n const {\n type\n } = el;\n return type !== \"text\" && type !== \"number\";\n }\n return true;\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll, {\n checker: textInputChecker\n }], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo, {\n checker: textInputChecker\n }], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo, {\n checker: textInputChecker\n }], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete, {\n checker: textInputChecker\n }], [[\"Enter\", \"mac+Enter\"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(el) && !self.isEnterHandled\n }], [[\" \", \"mac+ \"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(document.activeElement)\n }], [[\"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, viewerAlert, altTextManager, commentManager, signatureManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, enableNewAltTextWhenAddingImage, mlManager, editorUndoBar, supportsPinchToZoom) {\n const signal = this._signal = this.#abortController.signal;\n this.#container = container;\n this.#viewer = viewer;\n this.#viewerAlert = viewerAlert;\n this.#altTextManager = altTextManager;\n this.#commentManager = commentManager;\n this.#signatureManager = signatureManager;\n this.#pdfDocument = pdfDocument;\n this._eventBus = eventBus;\n eventBus._on(\"editingaction\", this.onEditingAction.bind(this), {\n signal\n });\n eventBus._on(\"pagechanging\", this.onPageChanging.bind(this), {\n signal\n });\n eventBus._on(\"scalechanging\", this.onScaleChanging.bind(this), {\n signal\n });\n eventBus._on(\"rotationchanging\", this.onRotationChanging.bind(this), {\n signal\n });\n eventBus._on(\"setpreference\", this.onSetPreference.bind(this), {\n signal\n });\n eventBus._on(\"switchannotationeditorparams\", evt => this.updateParams(evt.type, evt.value), {\n signal\n });\n window.addEventListener(\"pointerdown\", () => {\n this.#isPointerDown = true;\n }, {\n capture: true,\n signal\n });\n window.addEventListener(\"pointerup\", () => {\n this.#isPointerDown = false;\n }, {\n capture: true,\n signal\n });\n window.addEventListener(\"beforeunload\", this.#beforeUnload.bind(this), {\n capture: true,\n signal\n });\n this.#addSelectionListener();\n this.#addDragAndDropListeners();\n this.#addKeyboardManager();\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.#highlightColors = highlightColors || null;\n this.#enableHighlightFloatingButton = enableHighlightFloatingButton;\n this.#enableUpdatedAddImage = enableUpdatedAddImage;\n this.#enableNewAltTextWhenAddingImage = enableNewAltTextWhenAddingImage;\n this.#mlManager = mlManager || null;\n this.viewParameters = {\n realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n this.isShiftKeyDown = false;\n this._editorUndoBar = editorUndoBar || null;\n this._supportsPinchToZoom = supportsPinchToZoom !== false;\n commentManager?.setSidebarUiManager(this);\n }\n destroy() {\n this.#updateModeCapability?.resolve();\n this.#updateModeCapability = null;\n this.#abortController?.abort();\n this.#abortController = null;\n this._signal = null;\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.#missingCanvases?.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager?.destroy();\n this.#commentManager?.destroy();\n this.#signatureManager?.destroy();\n this.#floatingToolbar?.hide();\n this.#floatingToolbar = null;\n this.#mainHighlightColorPicker?.destroy();\n this.#mainHighlightColorPicker = null;\n this.#allEditableAnnotations = null;\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n this.#focusMainContainerTimeoutId = null;\n }\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n this.#translationTimeoutId = null;\n }\n this._editorUndoBar?.destroy();\n this.#pdfDocument = null;\n }\n combinedSignal(ac) {\n return AbortSignal.any([this._signal, ac.signal]);\n }\n get mlManager() {\n return this.#mlManager;\n }\n get useNewAltTextFlow() {\n return this.#enableUpdatedAddImage;\n }\n get useNewAltTextWhenAddingImage() {\n return this.#enableNewAltTextWhenAddingImage;\n }\n get hcmFilter() {\n return shadow(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return shadow(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n get _highlightColors() {\n return shadow(this, \"_highlightColors\", this.#highlightColors ? new Map(this.#highlightColors.split(\",\").map(pair => {\n pair = pair.split(\"=\").map(x => x.trim());\n pair[1] = pair[1].toUpperCase();\n return pair;\n })) : null);\n }\n get highlightColors() {\n const {\n _highlightColors\n } = this;\n if (!_highlightColors) {\n return shadow(this, \"highlightColors\", null);\n }\n const map = new Map();\n const hasHCM = !!this.#pageColors;\n for (const [name, color] of _highlightColors) {\n const isNameForHCM = name.endsWith(\"_HCM\");\n if (hasHCM && isNameForHCM) {\n map.set(name.replace(\"_HCM\", \"\"), color);\n continue;\n }\n if (!hasHCM && !isNameForHCM) {\n map.set(name, color);\n }\n }\n return shadow(this, \"highlightColors\", map);\n }\n get highlightColorNames() {\n return shadow(this, \"highlightColorNames\", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null);\n }\n getNonHCMColor(color) {\n if (!this._highlightColors) {\n return color;\n }\n const colorName = this.highlightColorNames.get(color);\n return this._highlightColors.get(colorName) || color;\n }\n getNonHCMColorName(color) {\n return this.highlightColorNames.get(color) || color;\n }\n setCurrentDrawingSession(layer) {\n if (layer) {\n this.unselectAll();\n this.disableUserSelect(true);\n } else {\n this.disableUserSelect(false);\n }\n this.#currentDrawingSession = layer;\n }\n setMainHighlightColorPicker(colorPicker) {\n this.#mainHighlightColorPicker = colorPicker;\n }\n editAltText(editor, firstTime = false) {\n this.#altTextManager?.editAltText(this, editor, firstTime);\n }\n hasCommentManager() {\n return !!this.#commentManager;\n }\n editComment(editor, posX, posY, options) {\n this.#commentManager?.showDialog(this, editor, posX, posY, options);\n }\n selectComment(pageIndex, uid) {\n const layer = this.#allLayers.get(pageIndex);\n const editor = layer?.getEditorByUID(uid);\n editor?.toggleComment(true, true);\n }\n updateComment(editor) {\n this.#commentManager?.updateComment(editor.getData());\n }\n updatePopupColor(editor) {\n this.#commentManager?.updatePopupColor(editor);\n }\n removeComment(editor) {\n this.#commentManager?.removeComments([editor.uid]);\n }\n deleteComment(editor, savedData) {\n const undo = () => {\n editor.comment = savedData;\n };\n const cmd = () => {\n this._editorUndoBar?.show(undo, \"comment\");\n this.toggleComment(null);\n editor.comment = null;\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n toggleComment(editor, isSelected, visibility = undefined) {\n this.#commentManager?.toggleCommentPopup(editor, isSelected, visibility);\n }\n makeCommentColor(color, opacity) {\n return color && this.#commentManager?.makeCommentColor(color, opacity) || null;\n }\n getCommentDialogElement() {\n return this.#commentManager?.dialogElement || null;\n }\n async waitForEditorsRendered(pageNumber) {\n if (this.#allLayers.has(pageNumber - 1)) {\n return;\n }\n const {\n resolve,\n promise\n } = Promise.withResolvers();\n const onEditorsRendered = evt => {\n if (evt.pageNumber === pageNumber) {\n this._eventBus._off(\"editorsrendered\", onEditorsRendered);\n resolve();\n }\n };\n this._eventBus.on(\"editorsrendered\", onEditorsRendered);\n await promise;\n }\n getSignature(editor) {\n this.#signatureManager?.getSignature({\n uiManager: this,\n editor\n });\n }\n get signatureManager() {\n return this.#signatureManager;\n }\n switchToMode(mode, callback) {\n this._eventBus.on(\"annotationeditormodechanged\", callback, {\n once: true,\n signal: this._signal\n });\n this._eventBus.dispatch(\"showannotationeditorui\", {\n source: this,\n mode\n });\n }\n setPreference(name, value) {\n this._eventBus.dispatch(\"setpreference\", {\n source: this,\n name,\n value\n });\n }\n onSetPreference({\n name,\n value\n }) {\n switch (name) {\n case \"enableNewAltTextWhenAddingImage\":\n this.#enableNewAltTextWhenAddingImage = value;\n break;\n }\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n deletePage(id) {\n for (const editor of this.getEditors(id)) {\n editor.remove();\n }\n this.#allLayers.delete(id);\n if (this.#currentPageIndex === id) {\n this.#currentPageIndex = 0;\n }\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 * PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n this.#currentDrawingSession?.onScaleChanging();\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n #getAnchorElementForSelection({\n anchorNode\n }) {\n return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode;\n }\n #getLayerForTextLayer(textLayer) {\n const {\n currentLayer\n } = this;\n if (currentLayer.hasTextLayer(textLayer)) {\n return currentLayer;\n }\n for (const layer of this.#allLayers.values()) {\n if (layer.hasTextLayer(textLayer)) {\n return layer;\n }\n }\n return null;\n }\n highlightSelection(methodOfCreation = \"\", comment = false) {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const {\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset\n } = selection;\n const text = selection.toString();\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n selection.empty();\n const layer = this.#getLayerForTextLayer(textLayer);\n const isNoneMode = this.#mode === AnnotationEditorType.NONE;\n const callback = () => {\n const editor = layer?.createAndAddNewEditor({\n x: 0,\n y: 0\n }, false, {\n methodOfCreation,\n boxes,\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset,\n text\n });\n if (isNoneMode) {\n this.showAllEditors(\"highlight\", true, true);\n }\n if (comment) {\n editor?.editComment();\n }\n };\n if (isNoneMode) {\n this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback);\n return;\n }\n callback();\n }\n commentSelection(methodOfCreation = \"\") {\n this.highlightSelection(methodOfCreation, true);\n }\n #beforeUnload(e) {\n this.commitOrRemove();\n this.currentLayer?.endDrawingSession(false);\n }\n #displayFloatingToolbar() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n this.#floatingToolbar ||= new FloatingToolbar(this);\n this.#floatingToolbar.show(textLayer, boxes, this.direction === \"ltr\");\n }\n getAndRemoveDataFromAnnotationStorage(annotationId) {\n if (!this.#annotationStorage) {\n return null;\n }\n const key = `${AnnotationEditorPrefix}${annotationId}`;\n const storedValue = this.#annotationStorage.getRawValue(key);\n if (storedValue) {\n this.#annotationStorage.remove(key);\n }\n return storedValue;\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 a11yAlert(messageId, args = null) {\n const viewerAlert = this.#viewerAlert;\n if (!viewerAlert) {\n return;\n }\n viewerAlert.setAttribute(\"data-l10n-id\", messageId);\n if (args) {\n viewerAlert.setAttribute(\"data-l10n-args\", JSON.stringify(args));\n } else {\n viewerAlert.removeAttribute(\"data-l10n-args\");\n }\n }\n #selectionChange() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n if (this.#selectedTextNode) {\n this.#floatingToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n const {\n anchorNode\n } = selection;\n if (anchorNode === this.#selectedTextNode) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n if (!textLayer) {\n if (this.#selectedTextNode) {\n this.#floatingToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n this.#floatingToolbar?.hide();\n this.#selectedTextNode = anchorNode;\n this.#dispatchUpdateStates({\n hasSelectedText: true\n });\n if (this.#mode !== AnnotationEditorType.HIGHLIGHT && this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.showAllEditors(\"highlight\", true, true);\n }\n this.#highlightWhenShiftUp = this.isShiftKeyDown;\n if (!this.isShiftKeyDown) {\n const activeLayer = this.#mode === AnnotationEditorType.HIGHLIGHT ? this.#getLayerForTextLayer(textLayer) : null;\n activeLayer?.toggleDrawing();\n if (this.#isPointerDown) {\n const ac = new AbortController();\n const signal = this.combinedSignal(ac);\n const pointerup = e => {\n if (e.type === \"pointerup\" && e.button !== 0) {\n return;\n }\n ac.abort();\n activeLayer?.toggleDrawing(true);\n if (e.type === \"pointerup\") {\n this.#onSelectEnd(\"main_toolbar\");\n }\n };\n window.addEventListener(\"pointerup\", pointerup, {\n signal\n });\n window.addEventListener(\"blur\", pointerup, {\n signal\n });\n } else {\n activeLayer?.toggleDrawing(true);\n this.#onSelectEnd(\"main_toolbar\");\n }\n }\n }\n #onSelectEnd(methodOfCreation = \"\") {\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.highlightSelection(methodOfCreation);\n } else if (this.#enableHighlightFloatingButton) {\n this.#displayFloatingToolbar();\n }\n }\n #addSelectionListener() {\n document.addEventListener(\"selectionchange\", this.#selectionChange.bind(this), {\n signal: this._signal\n });\n }\n #addFocusManager() {\n if (this.#focusManagerAC) {\n return;\n }\n this.#focusManagerAC = new AbortController();\n const signal = this.combinedSignal(this.#focusManagerAC);\n window.addEventListener(\"focus\", this.focus.bind(this), {\n signal\n });\n window.addEventListener(\"blur\", this.blur.bind(this), {\n signal\n });\n }\n #removeFocusManager() {\n this.#focusManagerAC?.abort();\n this.#focusManagerAC = null;\n }\n blur() {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\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 signal: this._signal\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n if (this.#keyboardManagerAC) {\n return;\n }\n this.#keyboardManagerAC = new AbortController();\n const signal = this.combinedSignal(this.#keyboardManagerAC);\n window.addEventListener(\"keydown\", this.keydown.bind(this), {\n signal\n });\n window.addEventListener(\"keyup\", this.keyup.bind(this), {\n signal\n });\n }\n #removeKeyboardManager() {\n this.#keyboardManagerAC?.abort();\n this.#keyboardManagerAC = null;\n }\n #addCopyPasteListeners() {\n if (this.#copyPasteAC) {\n return;\n }\n this.#copyPasteAC = new AbortController();\n const signal = this.combinedSignal(this.#copyPasteAC);\n document.addEventListener(\"copy\", this.copy.bind(this), {\n signal\n });\n document.addEventListener(\"cut\", this.cut.bind(this), {\n signal\n });\n document.addEventListener(\"paste\", this.paste.bind(this), {\n signal\n });\n }\n #removeCopyPasteListeners() {\n this.#copyPasteAC?.abort();\n this.#copyPasteAC = null;\n }\n #addDragAndDropListeners() {\n const signal = this._signal;\n document.addEventListener(\"dragover\", this.dragOver.bind(this), {\n signal\n });\n document.addEventListener(\"drop\", this.drop.bind(this), {\n signal\n });\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.setEditingState(true);\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.setEditingState(false);\n }\n dragOver(event) {\n for (const {\n type\n } of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(type)) {\n event.dataTransfer.dropEffect = \"copy\";\n event.preventDefault();\n return;\n }\n }\n }\n }\n drop(event) {\n for (const item of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n event.preventDefault();\n return;\n }\n }\n }\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 async 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 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 = await 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 warn(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = true;\n }\n if (this.#mode !== AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n keyup(event) {\n if (this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n }\n }\n onEditingAction({\n name\n }) {\n switch (name) {\n case \"undo\":\n case \"redo\":\n case \"delete\":\n case \"selectAll\":\n this[name]();\n break;\n case \"highlightSelection\":\n this.highlightSelection(\"context_menu\");\n break;\n case \"commentSelection\":\n this.commentSelection(\"context_menu\");\n break;\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 if (this.#mode === AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]);\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.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== 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.#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.id;\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 async updateMode(mode, editId = null, isFromUser = false, isFromKeyboard = false, mustEnterInEditMode = false, editComment = false) {\n if (this.#mode === mode) {\n return;\n }\n if (this.#updateModeCapability) {\n await this.#updateModeCapability.promise;\n if (!this.#updateModeCapability) {\n return;\n }\n }\n this.#updateModeCapability = Promise.withResolvers();\n this.#currentDrawingSession?.commitOrRemove();\n if (this.#mode === AnnotationEditorType.POPUP) {\n this.#commentManager?.hideSidebar();\n }\n this.#commentManager?.destroyPopup();\n this.#mode = mode;\n if (mode === AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n for (const editor of this.#allEditors.values()) {\n editor.hideStandaloneCommentButton();\n }\n this._editorUndoBar?.hide();\n this.toggleComment(null);\n this.#updateModeCapability.resolve();\n return;\n }\n for (const editor of this.#allEditors.values()) {\n editor.addStandaloneCommentButton();\n }\n if (mode === AnnotationEditorType.SIGNATURE) {\n await this.#signatureManager?.loadSignatures();\n }\n if (isFromUser) {\n CurrentPointers.clearPointerType();\n }\n this.setEditingState(true);\n await this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (mode === AnnotationEditorType.POPUP) {\n this.#allEditableAnnotations ||= await this.#pdfDocument.getAnnotationsByType(new Set(this.#editorTypes.map(editorClass => editorClass._editorType)));\n const elementIds = new Set();\n const allComments = [];\n for (const editor of this.#allEditors.values()) {\n const {\n annotationElementId,\n hasComment,\n deleted\n } = editor;\n if (annotationElementId) {\n elementIds.add(annotationElementId);\n }\n if (hasComment && !deleted) {\n allComments.push(editor.getData());\n }\n }\n for (const annotation of this.#allEditableAnnotations) {\n const {\n id,\n popupRef,\n contentsObj\n } = annotation;\n if (popupRef && contentsObj?.str && !elementIds.has(id) && !this.#deletedAnnotationsElementIds.has(id)) {\n allComments.push(annotation);\n }\n }\n this.#commentManager?.showSidebar(allComments);\n }\n if (!editId) {\n if (isFromKeyboard) {\n this.addNewEditorFromKeyboard();\n }\n this.#updateModeCapability.resolve();\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.uid === editId) {\n this.setSelected(editor);\n if (editComment) {\n editor.editComment();\n } else if (mustEnterInEditMode) {\n editor.enterInEditMode();\n } else {\n editor.focus();\n }\n } else {\n editor.unselect();\n }\n }\n this.#updateModeCapability.resolve();\n }\n addNewEditorFromKeyboard() {\n if (this.currentLayer.canCreateNewEmptyEditor()) {\n this.currentLayer.addNewEditor();\n }\n }\n updateToolbar(options) {\n if (options.mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n ...options\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n switch (type) {\n case AnnotationEditorParamsType.CREATE:\n this.currentLayer.addNewEditor(value);\n return;\n case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n this._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data: {\n type: \"highlight\",\n action: \"toggle_visibility\"\n }\n }\n });\n (this.#showAllStates ||= new Map()).set(type, value);\n this.showAllEditors(\"highlight\", value);\n break;\n }\n if (this.hasSelection) {\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n } else {\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n }\n showAllEditors(type, visible, updateButton = false) {\n for (const editor of this.#allEditors.values()) {\n if (editor.editorType === type) {\n editor.show(visible);\n }\n }\n const state = this.#showAllStates?.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true;\n if (state !== visible) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]);\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 async #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n const promises = [];\n for (const layer of this.#allLayers.values()) {\n promises.push(layer.enable());\n }\n await Promise.all(promises);\n for (const editor of this.#allEditors.values()) {\n editor.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 for (const editor of this.#allEditors.values()) {\n editor.disable();\n }\n }\n }\n *getEditors(pageIndex) {\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n yield editor;\n }\n }\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 if (editor.div.contains(document.activeElement)) {\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n }\n this.#focusMainContainerTimeoutId = setTimeout(() => {\n this.focusMainContainer();\n this.#focusMainContainerTimeoutId = null;\n }, 0);\n }\n this.#allEditors.delete(editor.id);\n if (editor.annotationElementId) {\n this.#missingCanvases?.delete(editor.annotationElementId);\n }\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 this.addChangedExistingAnnotation(editor);\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 this.removeChangedExistingAnnotation(editor);\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 this.addToAnnotationStorage(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 get #lastSelectedEditor() {\n let ed = null;\n for (ed of this.#selectedEditors) {}\n return ed;\n }\n updateUI(editor) {\n if (this.#lastSelectedEditor === editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n updateUIForDefaultProperties(editorType) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\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 this.updateToolbar({\n mode: editor.mode,\n editId: editor.uid\n });\n this.#currentDrawingSession?.commitOrRemove();\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 get firstSelectedEditor() {\n return this.#selectedEditors.values().next().value;\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 get isEnterHandled() {\n return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n this._editorUndoBar?.hide();\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 cleanUndoStack(type) {\n this.#commandManager.cleanType(type);\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 const drawingEditor = this.currentLayer?.endDrawingSession(true);\n if (!this.hasSelection && !drawingEditor) {\n return;\n }\n const editors = drawingEditor ? [drawingEditor] : [...this.#selectedEditors];\n const cmd = () => {\n this._editorUndoBar?.show(undo, editors.length === 1 ? editors[0].editorType : editors.length);\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 for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\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: this.hasSelection\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 if (this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n }\n if (this.#currentDrawingSession?.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 editor.translationDone();\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n editor.translationDone();\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n editor.translationDone();\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 get isEditorHandlingKeyboard() {\n return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();\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 isEditingMode() {\n return this.#mode !== AnnotationEditorType.NONE;\n }\n get imageManager() {\n return shadow(this, \"imageManager\", new ImageManager());\n }\n getSelectionBoxes(textLayer) {\n if (!textLayer) {\n return null;\n }\n const selection = document.getSelection();\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n if (!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer)) {\n return null;\n }\n }\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n let rotator;\n switch (textLayer.getAttribute(\"data-main-rotation\")) {\n case \"90\":\n rotator = (x, y, w, h) => ({\n x: (y - layerY) / parentHeight,\n y: 1 - (x + w - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n case \"180\":\n rotator = (x, y, w, h) => ({\n x: 1 - (x + w - layerX) / parentWidth,\n y: 1 - (y + h - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n case \"270\":\n rotator = (x, y, w, h) => ({\n x: 1 - (y + h - layerY) / parentHeight,\n y: (x - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n default:\n rotator = (x, y, w, h) => ({\n x: (x - layerX) / parentWidth,\n y: (y - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n }\n const boxes = [];\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n const range = selection.getRangeAt(i);\n if (range.collapsed) {\n continue;\n }\n for (const {\n x,\n y,\n width,\n height\n } of range.getClientRects()) {\n if (width === 0 || height === 0) {\n continue;\n }\n boxes.push(rotator(x, y, width, height));\n }\n }\n return boxes.length === 0 ? null : boxes;\n }\n addChangedExistingAnnotation({\n annotationElementId,\n id\n }) {\n (this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id);\n }\n removeChangedExistingAnnotation({\n annotationElementId\n }) {\n this.#changedExistingAnnotations?.delete(annotationElementId);\n }\n renderAnnotationElement(annotation) {\n const editorId = this.#changedExistingAnnotations?.get(annotation.data.id);\n if (!editorId) {\n return;\n }\n const editor = this.#annotationStorage.getRawValue(editorId);\n if (!editor) {\n return;\n }\n if (this.#mode === AnnotationEditorType.NONE && !editor.hasBeenModified) {\n return;\n }\n editor.renderAnnotationElement(annotation);\n }\n setMissingCanvas(annotationId, annotationElementId, canvas) {\n const editor = this.#missingCanvases?.get(annotationId);\n if (!editor) {\n return;\n }\n editor.setCanvas(annotationElementId, canvas);\n this.#missingCanvases.delete(annotationId);\n }\n addMissingCanvas(annotationId, editor) {\n (this.#missingCanvases ||= new Map()).set(annotationId, editor);\n }\n}\n\n;// ./src/display/editor/alt_text.js\n\nclass AltText {\n #altText = null;\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextButtonLabel = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #altTextWasFromKeyBoard = false;\n #badge = null;\n #editor = null;\n #guessedText = null;\n #textWithDisclaimer = null;\n #useNewAltTextFlow = false;\n static #l10nNewButton = null;\n static _l10n = null;\n constructor(editor) {\n this.#editor = editor;\n this.#useNewAltTextFlow = editor._uiManager.useNewAltTextFlow;\n AltText.#l10nNewButton ||= Object.freeze({\n added: \"pdfjs-editor-new-alt-text-added-button\",\n \"added-label\": \"pdfjs-editor-new-alt-text-added-button-label\",\n missing: \"pdfjs-editor-new-alt-text-missing-button\",\n \"missing-label\": \"pdfjs-editor-new-alt-text-missing-button-label\",\n review: \"pdfjs-editor-new-alt-text-to-review-button\",\n \"review-label\": \"pdfjs-editor-new-alt-text-to-review-button-label\"\n });\n }\n static initialize(l10n) {\n AltText._l10n ??= l10n;\n }\n async render() {\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n altText.tabIndex = \"0\";\n const label = this.#altTextButtonLabel = document.createElement(\"span\");\n altText.append(label);\n if (this.#useNewAltTextFlow) {\n altText.classList.add(\"new\");\n altText.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton.missing);\n label.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[\"missing-label\"]);\n } else {\n altText.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button\");\n label.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button-label\");\n }\n const signal = this.#editor._uiManager._signal;\n altText.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n signal\n });\n const onClick = event => {\n event.preventDefault();\n this.#editor._uiManager.editAltText(this.#editor);\n if (this.#useNewAltTextFlow) {\n this.#editor._reportTelemetry({\n action: \"pdfjs.image.alt_text.image_status_label_clicked\",\n data: {\n label: this.#label\n }\n });\n }\n };\n altText.addEventListener(\"click\", onClick, {\n capture: true,\n signal\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n this.#altTextWasFromKeyBoard = true;\n onClick(event);\n }\n }, {\n signal\n });\n await this.#setState();\n return altText;\n }\n get #label() {\n return this.#altText && \"added\" || this.#altText === null && this.guessedText && \"review\" || \"missing\";\n }\n finish() {\n if (!this.#altTextButton) {\n return;\n }\n this.#altTextButton.focus({\n focusVisible: this.#altTextWasFromKeyBoard\n });\n this.#altTextWasFromKeyBoard = false;\n }\n isEmpty() {\n if (this.#useNewAltTextFlow) {\n return this.#altText === null;\n }\n return !this.#altText && !this.#altTextDecorative;\n }\n hasData() {\n if (this.#useNewAltTextFlow) {\n return this.#altText !== null || !!this.#guessedText;\n }\n return this.isEmpty();\n }\n get guessedText() {\n return this.#guessedText;\n }\n async setGuessedText(guessedText) {\n if (this.#altText !== null) {\n return;\n }\n this.#guessedText = guessedText;\n this.#textWithDisclaimer = await AltText._l10n.get(\"pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer\", {\n generatedAltText: guessedText\n });\n this.#setState();\n }\n toggleAltTextBadge(visibility = false) {\n if (!this.#useNewAltTextFlow || this.#altText) {\n this.#badge?.remove();\n this.#badge = null;\n return;\n }\n if (!this.#badge) {\n const badge = this.#badge = document.createElement(\"div\");\n badge.className = \"noAltTextBadge\";\n this.#editor.div.append(badge);\n }\n this.#badge.classList.toggle(\"hidden\", !visibility);\n }\n serialize(isForCopying) {\n let altText = this.#altText;\n if (!isForCopying && this.#guessedText === altText) {\n altText = this.#textWithDisclaimer;\n }\n return {\n altText,\n decorative: this.#altTextDecorative,\n guessedText: this.#guessedText,\n textWithDisclaimer: this.#textWithDisclaimer\n };\n }\n get data() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set data({\n altText,\n decorative,\n guessedText,\n textWithDisclaimer,\n cancel = false\n }) {\n if (guessedText) {\n this.#guessedText = guessedText;\n this.#textWithDisclaimer = textWithDisclaimer;\n }\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n if (!cancel) {\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n }\n this.#setState();\n }\n toggle(enabled = false) {\n if (!this.#altTextButton) {\n return;\n }\n if (!enabled && this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextButton.disabled = !enabled;\n }\n shown() {\n this.#editor._reportTelemetry({\n action: \"pdfjs.image.alt_text.image_status_label_displayed\",\n data: {\n label: this.#label\n }\n });\n }\n destroy() {\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextButtonLabel = null;\n this.#altTextTooltip = null;\n this.#badge?.remove();\n this.#badge = null;\n }\n async #setState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (this.#useNewAltTextFlow) {\n button.classList.toggle(\"done\", !!this.#altText);\n button.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[this.#label]);\n this.#altTextButtonLabel?.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[`${this.#label}-label`]);\n if (!this.#altText) {\n this.#altTextTooltip?.remove();\n return;\n }\n } else {\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n button.classList.add(\"done\");\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-edit-button\");\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 tooltip.id = `alt-text-tooltip-${this.#editor.id}`;\n const DELAY_TO_SHOW_TOOLTIP = 100;\n const signal = this.#editor._uiManager._signal;\n signal.addEventListener(\"abort\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }, {\n once: true\n });\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this.#editor._reportTelemetry({\n action: \"alt_text_tooltip\"\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n }, {\n signal\n });\n button.addEventListener(\"mouseleave\", () => {\n if (this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextTooltip?.classList.remove(\"show\");\n }, {\n signal\n });\n }\n if (this.#altTextDecorative) {\n tooltip.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-decorative-tooltip\");\n } else {\n tooltip.removeAttribute(\"data-l10n-id\");\n tooltip.textContent = this.#altText;\n }\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n const element = this.#editor.getElementForAltText();\n element?.setAttribute(\"aria-describedby\", tooltip.id);\n }\n}\n\n;// ./src/display/editor/comment.js\n\nclass Comment {\n #commentStandaloneButton = null;\n #commentToolbarButton = null;\n #commentWasFromKeyBoard = false;\n #editor = null;\n #initialText = null;\n #richText = null;\n #text = null;\n #date = null;\n #deleted = false;\n #popupPosition = null;\n constructor(editor) {\n this.#editor = editor;\n }\n renderForToolbar() {\n const button = this.#commentToolbarButton = document.createElement(\"button\");\n button.className = \"comment\";\n return this.#render(button, false);\n }\n renderForStandalone() {\n const button = this.#commentStandaloneButton = document.createElement(\"button\");\n button.className = \"annotationCommentButton\";\n const position = this.#editor.commentButtonPosition;\n if (position) {\n const {\n style\n } = button;\n style.insetInlineEnd = `calc(${100 * (this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0])}% - var(--comment-button-dim))`;\n style.top = `calc(${100 * position[1]}% - var(--comment-button-dim))`;\n const color = this.#editor.commentButtonColor;\n if (color) {\n style.backgroundColor = color;\n }\n }\n return this.#render(button, true);\n }\n focusButton() {\n setTimeout(() => {\n (this.#commentStandaloneButton ?? this.#commentToolbarButton)?.focus();\n }, 0);\n }\n onUpdatedColor() {\n if (!this.#commentStandaloneButton) {\n return;\n }\n const color = this.#editor.commentButtonColor;\n if (color) {\n this.#commentStandaloneButton.style.backgroundColor = color;\n }\n this.#editor._uiManager.updatePopupColor(this.#editor);\n }\n get commentButtonWidth() {\n return (this.#commentStandaloneButton?.getBoundingClientRect().width ?? 0) / this.#editor.parent.boundingClientRect.width;\n }\n get commentPopupPositionInLayer() {\n if (this.#popupPosition) {\n return this.#popupPosition;\n }\n if (!this.#commentStandaloneButton) {\n return null;\n }\n const {\n x,\n y,\n height\n } = this.#commentStandaloneButton.getBoundingClientRect();\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = this.#editor.parent.boundingClientRect;\n return [(x - parentX) / parentWidth, (y + height - parentY) / parentHeight];\n }\n set commentPopupPositionInLayer(pos) {\n this.#popupPosition = pos;\n }\n hasDefaultPopupPosition() {\n return this.#popupPosition === null;\n }\n removeStandaloneCommentButton() {\n this.#commentStandaloneButton?.remove();\n this.#commentStandaloneButton = null;\n }\n removeToolbarCommentButton() {\n this.#commentToolbarButton?.remove();\n this.#commentToolbarButton = null;\n }\n setCommentButtonStates({\n selected,\n hasPopup\n }) {\n if (!this.#commentStandaloneButton) {\n return;\n }\n this.#commentStandaloneButton.classList.toggle(\"selected\", selected);\n this.#commentStandaloneButton.ariaExpanded = hasPopup;\n }\n #render(comment, isStandalone) {\n if (!this.#editor._uiManager.hasCommentManager()) {\n return null;\n }\n comment.tabIndex = \"0\";\n comment.ariaHasPopup = \"dialog\";\n if (isStandalone) {\n comment.ariaControls = \"commentPopup\";\n comment.setAttribute(\"data-l10n-id\", \"pdfjs-show-comment-button\");\n } else {\n comment.ariaControlsElements = [this.#editor._uiManager.getCommentDialogElement()];\n comment.setAttribute(\"data-l10n-id\", \"pdfjs-editor-add-comment-button\");\n }\n const signal = this.#editor._uiManager._signal;\n if (!(signal instanceof AbortSignal) || signal.aborted) {\n return comment;\n }\n comment.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n if (isStandalone) {\n comment.addEventListener(\"focusin\", e => {\n this.#editor._focusEventsAllowed = false;\n stopEvent(e);\n }, {\n capture: true,\n signal\n });\n comment.addEventListener(\"focusout\", e => {\n this.#editor._focusEventsAllowed = true;\n stopEvent(e);\n }, {\n capture: true,\n signal\n });\n }\n comment.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n signal\n });\n const onClick = event => {\n event.preventDefault();\n if (comment === this.#commentToolbarButton) {\n this.edit();\n } else {\n this.#editor.toggleComment(true);\n }\n };\n comment.addEventListener(\"click\", onClick, {\n capture: true,\n signal\n });\n comment.addEventListener(\"keydown\", event => {\n if (event.target === comment && event.key === \"Enter\") {\n this.#commentWasFromKeyBoard = true;\n onClick(event);\n }\n }, {\n signal\n });\n comment.addEventListener(\"pointerenter\", () => {\n this.#editor.toggleComment(false, true);\n }, {\n signal\n });\n comment.addEventListener(\"pointerleave\", () => {\n this.#editor.toggleComment(false, false);\n }, {\n signal\n });\n return comment;\n }\n edit(options) {\n const position = this.commentPopupPositionInLayer;\n let posX, posY;\n if (position) {\n [posX, posY] = position;\n } else {\n [posX, posY] = this.#editor.commentButtonPosition;\n const {\n width,\n height,\n x,\n y\n } = this.#editor;\n posX = x + posX * width;\n posY = y + posY * height;\n }\n const parentDimensions = this.#editor.parent.boundingClientRect;\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = parentDimensions;\n this.#editor._uiManager.editComment(this.#editor, parentX + posX * parentWidth, parentY + posY * parentHeight, {\n ...options,\n parentDimensions\n });\n }\n finish() {\n if (!this.#commentToolbarButton) {\n return;\n }\n this.#commentToolbarButton.focus({\n focusVisible: this.#commentWasFromKeyBoard\n });\n this.#commentWasFromKeyBoard = false;\n }\n isDeleted() {\n return this.#deleted || this.#text === \"\";\n }\n isEmpty() {\n return this.#text === null;\n }\n hasBeenEdited() {\n return this.isDeleted() || this.#text !== this.#initialText;\n }\n serialize() {\n return this.data;\n }\n get data() {\n return {\n text: this.#text,\n richText: this.#richText,\n date: this.#date,\n deleted: this.isDeleted()\n };\n }\n set data(text) {\n if (text !== this.#text) {\n this.#richText = null;\n }\n if (text === null) {\n this.#text = \"\";\n this.#deleted = true;\n return;\n }\n this.#text = text;\n this.#date = new Date();\n this.#deleted = false;\n }\n restoreData({\n text,\n richText,\n date\n }) {\n this.#text = text;\n this.#richText = richText;\n this.#date = date;\n this.#deleted = false;\n }\n setInitialText(text, richText = null) {\n this.#initialText = text;\n this.data = text;\n this.#date = null;\n this.#richText = richText;\n }\n shown() {}\n destroy() {\n this.#commentToolbarButton?.remove();\n this.#commentToolbarButton = null;\n this.#commentStandaloneButton?.remove();\n this.#commentStandaloneButton = null;\n this.#text = \"\";\n this.#richText = null;\n this.#date = null;\n this.#editor = null;\n this.#commentWasFromKeyBoard = false;\n this.#deleted = false;\n }\n}\n\n;// ./src/display/touch_manager.js\n\nclass TouchManager {\n #container;\n #isPinching = false;\n #isPinchingStopped = null;\n #isPinchingDisabled;\n #onPinchStart;\n #onPinching;\n #onPinchEnd;\n #pointerDownAC = null;\n #signal;\n #touchInfo = null;\n #touchManagerAC;\n #touchMoveAC = null;\n constructor({\n container,\n isPinchingDisabled = null,\n isPinchingStopped = null,\n onPinchStart = null,\n onPinching = null,\n onPinchEnd = null,\n signal\n }) {\n this.#container = container;\n this.#isPinchingStopped = isPinchingStopped;\n this.#isPinchingDisabled = isPinchingDisabled;\n this.#onPinchStart = onPinchStart;\n this.#onPinching = onPinching;\n this.#onPinchEnd = onPinchEnd;\n this.#touchManagerAC = new AbortController();\n this.#signal = AbortSignal.any([signal, this.#touchManagerAC.signal]);\n container.addEventListener(\"touchstart\", this.#onTouchStart.bind(this), {\n passive: false,\n signal: this.#signal\n });\n }\n get MIN_TOUCH_DISTANCE_TO_PINCH() {\n return 35 / OutputScale.pixelRatio;\n }\n #onTouchStart(evt) {\n if (this.#isPinchingDisabled?.()) {\n return;\n }\n if (evt.touches.length === 1) {\n if (this.#pointerDownAC) {\n return;\n }\n const pointerDownAC = this.#pointerDownAC = new AbortController();\n const signal = AbortSignal.any([this.#signal, pointerDownAC.signal]);\n const container = this.#container;\n const opts = {\n capture: true,\n signal,\n passive: false\n };\n const cancelPointerDown = e => {\n if (e.pointerType === \"touch\") {\n this.#pointerDownAC?.abort();\n this.#pointerDownAC = null;\n }\n };\n container.addEventListener(\"pointerdown\", e => {\n if (e.pointerType === \"touch\") {\n stopEvent(e);\n cancelPointerDown(e);\n }\n }, opts);\n container.addEventListener(\"pointerup\", cancelPointerDown, opts);\n container.addEventListener(\"pointercancel\", cancelPointerDown, opts);\n return;\n }\n if (!this.#touchMoveAC) {\n this.#touchMoveAC = new AbortController();\n const signal = AbortSignal.any([this.#signal, this.#touchMoveAC.signal]);\n const container = this.#container;\n const opt = {\n signal,\n capture: false,\n passive: false\n };\n container.addEventListener(\"touchmove\", this.#onTouchMove.bind(this), opt);\n const onTouchEnd = this.#onTouchEnd.bind(this);\n container.addEventListener(\"touchend\", onTouchEnd, opt);\n container.addEventListener(\"touchcancel\", onTouchEnd, opt);\n opt.capture = true;\n container.addEventListener(\"pointerdown\", stopEvent, opt);\n container.addEventListener(\"pointermove\", stopEvent, opt);\n container.addEventListener(\"pointercancel\", stopEvent, opt);\n container.addEventListener(\"pointerup\", stopEvent, opt);\n this.#onPinchStart?.();\n }\n stopEvent(evt);\n if (evt.touches.length !== 2 || this.#isPinchingStopped?.()) {\n this.#touchInfo = null;\n return;\n }\n let [touch0, touch1] = evt.touches;\n if (touch0.identifier > touch1.identifier) {\n [touch0, touch1] = [touch1, touch0];\n }\n this.#touchInfo = {\n touch0X: touch0.screenX,\n touch0Y: touch0.screenY,\n touch1X: touch1.screenX,\n touch1Y: touch1.screenY\n };\n }\n #onTouchMove(evt) {\n if (!this.#touchInfo || evt.touches.length !== 2) {\n return;\n }\n stopEvent(evt);\n let [touch0, touch1] = evt.touches;\n if (touch0.identifier > touch1.identifier) {\n [touch0, touch1] = [touch1, touch0];\n }\n const {\n screenX: screen0X,\n screenY: screen0Y\n } = touch0;\n const {\n screenX: screen1X,\n screenY: screen1Y\n } = touch1;\n const touchInfo = this.#touchInfo;\n const {\n touch0X: pTouch0X,\n touch0Y: pTouch0Y,\n touch1X: pTouch1X,\n touch1Y: pTouch1Y\n } = touchInfo;\n const prevGapX = pTouch1X - pTouch0X;\n const prevGapY = pTouch1Y - pTouch0Y;\n const currGapX = screen1X - screen0X;\n const currGapY = screen1Y - screen0Y;\n const distance = Math.hypot(currGapX, currGapY) || 1;\n const pDistance = Math.hypot(prevGapX, prevGapY) || 1;\n if (!this.#isPinching && Math.abs(pDistance - distance) <= TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH) {\n return;\n }\n touchInfo.touch0X = screen0X;\n touchInfo.touch0Y = screen0Y;\n touchInfo.touch1X = screen1X;\n touchInfo.touch1Y = screen1Y;\n if (!this.#isPinching) {\n this.#isPinching = true;\n return;\n }\n const origin = [(screen0X + screen1X) / 2, (screen0Y + screen1Y) / 2];\n this.#onPinching?.(origin, pDistance, distance);\n }\n #onTouchEnd(evt) {\n if (evt.touches.length >= 2) {\n return;\n }\n if (this.#touchMoveAC) {\n this.#touchMoveAC.abort();\n this.#touchMoveAC = null;\n this.#onPinchEnd?.();\n }\n if (!this.#touchInfo) {\n return;\n }\n stopEvent(evt);\n this.#touchInfo = null;\n this.#isPinching = false;\n }\n destroy() {\n this.#touchManagerAC?.abort();\n this.#touchManagerAC = null;\n this.#pointerDownAC?.abort();\n this.#pointerDownAC = null;\n }\n}\n\n;// ./src/display/editor/editor.js\n\n\n\n\n\n\n\n\n\nclass AnnotationEditor {\n #accessibilityData = null;\n #allResizerDivs = null;\n #altText = null;\n #comment = null;\n #commentStandaloneButton = null;\n #disabled = false;\n #dragPointerId = null;\n #dragPointerType = \"\";\n #resizersDiv = null;\n #lastPointerCoords = null;\n #savedDimensions = null;\n #fakeAnnotation = null;\n #focusAC = null;\n #focusedResizerName = \"\";\n #hasBeenClicked = false;\n #initialRect = null;\n #isEditing = false;\n #isInEditMode = false;\n #isResizerEnabledForKeyboard = false;\n #moveInDOMTimeout = null;\n #prevDragX = 0;\n #prevDragY = 0;\n #telemetryTimeouts = null;\n #touchManager = null;\n isSelected = false;\n _isCopy = false;\n _editToolbar = null;\n _initialOptions = Object.create(null);\n _initialData = null;\n _isVisible = true;\n _uiManager = null;\n _focusEventsAllowed = true;\n static _l10n = null;\n static _l10nResizer = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new ColorManager();\n static _zIndex = 1;\n static _telemetryTimeout = 1000;\n static get _resizerKeyboardManager() {\n const resize = AnnotationEditor.prototype._resizeWithKeyboard;\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_resizerKeyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], resize, {\n args: [-small, 0]\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], resize, {\n args: [-big, 0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], resize, {\n args: [small, 0]\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], resize, {\n args: [big, 0]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], resize, {\n args: [0, -small]\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], resize, {\n args: [0, -big]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], resize, {\n args: [0, small]\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], resize, {\n args: [0, big]\n }], [[\"Escape\", \"mac+Escape\"], AnnotationEditor.prototype._stopResizingWithKeyboard]]));\n }\n constructor(parameters) {\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 this.annotationElementId = parameters.annotationElementId || null;\n this.creationDate = parameters.creationDate || new Date();\n this.modificationDate = parameters.modificationDate || null;\n this.canAddComment = true;\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 updatePageIndex(newPageIndex) {\n this.pageIndex = newPageIndex;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n get mode() {\n return Object.getPrototypeOf(this).constructor._editorType;\n }\n static get isDrawer() {\n return false;\n }\n static get _defaultLineColor() {\n return 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, _uiManager) {\n AnnotationEditor._l10n ??= l10n;\n AnnotationEditor._l10nResizer ||= Object.freeze({\n topLeft: \"pdfjs-editor-resizer-top-left\",\n topMiddle: \"pdfjs-editor-resizer-top-middle\",\n topRight: \"pdfjs-editor-resizer-top-right\",\n middleRight: \"pdfjs-editor-resizer-middle-right\",\n bottomRight: \"pdfjs-editor-resizer-bottom-right\",\n bottomMiddle: \"pdfjs-editor-resizer-bottom-middle\",\n bottomLeft: \"pdfjs-editor-resizer-bottom-left\",\n middleLeft: \"pdfjs-editor-resizer-middle-left\"\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 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 get uid() {\n return this.annotationElementId || this.id;\n }\n get isEnterHandled() {\n return true;\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 } else {\n this.#stopResizing();\n this.#fakeAnnotation?.remove();\n this.#fakeAnnotation = null;\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 if (!this.isInEditMode()) {\n return;\n }\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 _moveAfterPaste(baseX, baseY) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this._onTranslated();\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._onTranslating(this.x, this.y);\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#initialRect ||= [this.x, this.y, this.width, this.height];\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n translationDone() {\n this._onTranslated(this.x, this.y);\n }\n drag(tx, ty) {\n this.#initialRect ||= [this.x, this.y, this.width, this.height];\n const {\n div,\n parentDimensions: [parentWidth, parentHeight]\n } = this;\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 const {\n style\n } = div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this._onTranslating(x, y);\n div.scrollIntoView({\n block: \"nearest\"\n });\n }\n _onTranslating(x, y) {}\n _onTranslated(x, y) {}\n get _hasBeenMoved() {\n return !!this.#initialRect && (this.#initialRect[0] !== this.x || this.#initialRect[1] !== this.y);\n }\n get _hasBeenResized() {\n return !!this.#initialRect && (this.#initialRect[2] !== this.width || this.#initialRect[3] !== this.height);\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 get _mustFixPosition() {\n return true;\n }\n fixAndSetPosition(rotation = this.rotation) {\n const {\n div: {\n style\n },\n pageDimensions: [pageWidth, pageHeight]\n } = this;\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 if (this._mustFixPosition) {\n switch (rotation) {\n case 0:\n x = MathClamp(x, 0, pageWidth - width);\n y = MathClamp(y, 0, pageHeight - height);\n break;\n case 90:\n x = MathClamp(x, 0, pageWidth - height);\n y = MathClamp(y, width, pageHeight);\n break;\n case 180:\n x = MathClamp(x, width, pageWidth);\n y = MathClamp(y, height, pageHeight);\n break;\n case 270:\n x = MathClamp(x, height, pageWidth);\n y = MathClamp(y, 0, pageHeight - width);\n break;\n }\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\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 return [pageWidth * parentScale, pageHeight * parentScale];\n }\n setDims() {\n const {\n div: {\n style\n },\n width,\n height\n } = this;\n style.width = `${(100 * width).toFixed(2)}%`;\n style.height = `${(100 * height).toFixed(2)}%`;\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 = this._willKeepAspectRatio ? [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"] : [\"topLeft\", \"topMiddle\", \"topRight\", \"middleRight\", \"bottomRight\", \"bottomMiddle\", \"bottomLeft\", \"middleLeft\"];\n const signal = this._uiManager._signal;\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.setAttribute(\"data-resizer-name\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name), {\n signal\n });\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.tabIndex = -1;\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#altText?.toggle(false);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n this.#lastPointerCoords = [event.screenX, event.screenY];\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n this.parent.togglePointerEvents(false);\n window.addEventListener(\"pointermove\", this.#resizerPointermove.bind(this, name), {\n passive: true,\n capture: true,\n signal\n });\n window.addEventListener(\"touchmove\", stopEvent, {\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\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 ac.abort();\n this.parent.togglePointerEvents(true);\n this.#altText?.toggle(true);\n this._isDraggable = savedDraggable;\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n this.#addResizeToUndoStack();\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n #resize(x, y, width, height) {\n this.width = width;\n this.height = height;\n this.x = x;\n this.y = y;\n this.setDims();\n this.fixAndSetPosition();\n this._onResized();\n }\n _onResized() {}\n #addResizeToUndoStack() {\n if (!this.#savedDimensions) {\n return;\n }\n const {\n savedX,\n savedY,\n savedWidth,\n savedHeight\n } = this.#savedDimensions;\n this.#savedDimensions = null;\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: this.#resize.bind(this, newX, newY, newWidth, newHeight),\n undo: this.#resize.bind(this, savedX, savedY, savedWidth, savedHeight),\n mustExec: true\n });\n }\n static _round(x) {\n return Math.round(x * 10000) / 10000;\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 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 = AnnotationEditor._round(savedX + transfOppositePoint[0]);\n const oppositeY = AnnotationEditor._round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let deltaX, deltaY;\n if (!event.fromKeyboard) {\n const {\n screenX,\n screenY\n } = event;\n const [lastScreenX, lastScreenY] = this.#lastPointerCoords;\n [deltaX, deltaY] = this.screenToPageTranslation(screenX - lastScreenX, screenY - lastScreenY);\n this.#lastPointerCoords[0] = screenX;\n this.#lastPointerCoords[1] = screenY;\n } else {\n ({\n deltaX,\n deltaY\n } = event);\n }\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 = MathClamp(Math.abs(oppositePoint[0] - point[0] - deltaX), minWidth, 1) / savedWidth;\n } else {\n ratioY = MathClamp(Math.abs(oppositePoint[1] - point[1] - deltaY), minHeight, 1) / savedHeight;\n }\n const newWidth = AnnotationEditor._round(savedWidth * ratioX);\n const newHeight = AnnotationEditor._round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.#initialRect ||= [this.x, this.y, this.width, this.height];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims();\n this.fixAndSetPosition();\n this._onResizing();\n }\n _onResizing() {}\n altTextFinish() {\n this.#altText?.finish();\n }\n get toolbarButtons() {\n return null;\n }\n async addEditToolbar() {\n if (this._editToolbar || this.#isInEditMode) {\n return this._editToolbar;\n }\n this._editToolbar = new EditorToolbar(this);\n this.div.append(this._editToolbar.render());\n const {\n toolbarButtons\n } = this;\n if (toolbarButtons) {\n for (const [name, tool] of toolbarButtons) {\n await this._editToolbar.addButton(name, tool);\n }\n }\n if (!this.hasComment) {\n this._editToolbar.addButton(\"comment\", this.addCommentButton());\n }\n this._editToolbar.addButton(\"delete\");\n return this._editToolbar;\n }\n addCommentButtonInToolbar() {\n this._editToolbar?.addButtonBefore(\"comment\", this.addCommentButton(), \".deleteButton\");\n }\n removeCommentButtonFromToolbar() {\n this._editToolbar?.removeButton(\"comment\");\n }\n removeEditToolbar() {\n this._editToolbar?.remove();\n this._editToolbar = null;\n this.#altText?.destroy();\n }\n addContainer(container) {\n const editToolbarDiv = this._editToolbar?.div;\n if (editToolbarDiv) {\n editToolbarDiv.before(container);\n } else {\n this.div.append(container);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n createAltText() {\n if (!this.#altText) {\n AltText.initialize(AnnotationEditor._l10n);\n this.#altText = new AltText(this);\n if (this.#accessibilityData) {\n this.#altText.data = this.#accessibilityData;\n this.#accessibilityData = null;\n }\n }\n return this.#altText;\n }\n get altTextData() {\n return this.#altText?.data;\n }\n set altTextData(data) {\n if (!this.#altText) {\n return;\n }\n this.#altText.data = data;\n }\n get guessedAltText() {\n return this.#altText?.guessedText;\n }\n async setGuessedAltText(text) {\n await this.#altText?.setGuessedText(text);\n }\n serializeAltText(isForCopying) {\n return this.#altText?.serialize(isForCopying);\n }\n hasAltText() {\n return !!this.#altText && !this.#altText.isEmpty();\n }\n hasAltTextData() {\n return this.#altText?.hasData() ?? false;\n }\n focusCommentButton() {\n this.#comment?.focusButton();\n }\n addCommentButton() {\n return this.canAddComment ? this.#comment ||= new Comment(this) : null;\n }\n addStandaloneCommentButton() {\n if (!this._uiManager.hasCommentManager()) {\n return;\n }\n if (this.#commentStandaloneButton) {\n if (this._uiManager.isEditingMode()) {\n this.#commentStandaloneButton.classList.remove(\"hidden\");\n }\n return;\n }\n if (!this.hasComment) {\n return;\n }\n this.#commentStandaloneButton = this.#comment.renderForStandalone();\n this.div.append(this.#commentStandaloneButton);\n }\n removeStandaloneCommentButton() {\n this.#comment.removeStandaloneCommentButton();\n this.#commentStandaloneButton = null;\n }\n hideStandaloneCommentButton() {\n this.#commentStandaloneButton?.classList.add(\"hidden\");\n }\n get comment() {\n if (!this.#comment) {\n return null;\n }\n const {\n data: {\n richText,\n text,\n date,\n deleted\n }\n } = this.#comment;\n return {\n text,\n richText,\n date,\n deleted,\n color: this.getNonHCMColor(),\n opacity: this.opacity ?? 1\n };\n }\n set comment(value) {\n this.#comment ||= new Comment(this);\n if (typeof value === \"object\" && value !== null) {\n this.#comment.restoreData(value);\n } else {\n this.#comment.data = value;\n }\n if (this.hasComment) {\n this.removeCommentButtonFromToolbar();\n this.addStandaloneCommentButton();\n this._uiManager.updateComment(this);\n } else {\n this.addCommentButtonInToolbar();\n this.removeStandaloneCommentButton();\n this._uiManager.removeComment(this);\n }\n }\n setCommentData({\n comment,\n popupRef,\n richText\n }) {\n if (!popupRef) {\n return;\n }\n this.#comment ||= new Comment(this);\n this.#comment.setInitialText(comment, richText);\n if (!this.annotationElementId) {\n return;\n }\n const storedData = this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);\n if (storedData) {\n this.updateFromAnnotationLayer(storedData);\n }\n }\n get hasEditedComment() {\n return this.#comment?.hasBeenEdited();\n }\n get hasDeletedComment() {\n return this.#comment?.isDeleted();\n }\n get hasComment() {\n return !!this.#comment && !this.#comment.isEmpty() && !this.#comment.isDeleted();\n }\n async editComment(options) {\n this.#comment ||= new Comment(this);\n this.#comment.edit(options);\n }\n toggleComment(isSelected, visibility = undefined) {\n if (this.hasComment) {\n this._uiManager.toggleComment(this, isSelected, visibility);\n }\n }\n setSelectedCommentButton(selected) {\n this.#comment.setSelectedButton(selected);\n }\n addComment(serialized) {\n if (this.hasEditedComment) {\n const DEFAULT_POPUP_WIDTH = 180;\n const DEFAULT_POPUP_HEIGHT = 100;\n const [,,, trY] = serialized.rect;\n const [pageWidth] = this.pageDimensions;\n const [pageX] = this.pageTranslation;\n const blX = pageX + pageWidth + 1;\n const blY = trY - DEFAULT_POPUP_HEIGHT;\n const trX = blX + DEFAULT_POPUP_WIDTH;\n serialized.popup = {\n contents: this.comment.text,\n deleted: this.comment.deleted,\n rect: [blX, blY, trX, trY]\n };\n }\n }\n updateFromAnnotationLayer({\n popup: {\n contents,\n deleted\n }\n }) {\n this.#comment.data = deleted ? null : contents;\n }\n get parentBoundingClientRect() {\n return this.parent.boundingClientRect;\n }\n render() {\n const div = this.div = document.createElement(\"div\");\n div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n div.className = this.name;\n div.setAttribute(\"id\", this.id);\n div.tabIndex = this.#disabled ? -1 : 0;\n div.setAttribute(\"role\", \"application\");\n if (this.defaultL10nId) {\n div.setAttribute(\"data-l10n-id\", this.defaultL10nId);\n }\n if (!this._isVisible) {\n div.classList.add(\"hidden\");\n }\n this.setInForeground();\n this.#addFocusListeners();\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n bindEvents(this, div, [\"keydown\", \"pointerdown\", \"dblclick\"]);\n if (this.isResizable && this._uiManager._supportsPinchToZoom) {\n this.#touchManager ||= new TouchManager({\n container: div,\n isPinchingDisabled: () => !this.isSelected,\n onPinchStart: this.#touchPinchStartCallback.bind(this),\n onPinching: this.#touchPinchCallback.bind(this),\n onPinchEnd: this.#touchPinchEndCallback.bind(this),\n signal: this._uiManager._signal\n });\n }\n this.addStandaloneCommentButton();\n this._uiManager._editorUndoBar?.hide();\n return div;\n }\n #touchPinchStartCallback() {\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\n this.#altText?.toggle(false);\n this.parent.togglePointerEvents(false);\n }\n #touchPinchCallback(_origin, prevDistance, distance) {\n const slowDownFactor = 0.7;\n let factor = slowDownFactor * (distance / prevDistance) + 1 - slowDownFactor;\n if (factor === 1) {\n return;\n }\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 [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 factor = Math.max(Math.min(factor, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n const newWidth = AnnotationEditor._round(savedWidth * factor);\n const newHeight = AnnotationEditor._round(savedHeight * factor);\n if (newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.#initialRect ||= [savedX, savedY, savedWidth, savedHeight];\n const transfCenterPoint = transf(savedWidth / 2, savedHeight / 2);\n const centerX = AnnotationEditor._round(savedX + transfCenterPoint[0]);\n const centerY = AnnotationEditor._round(savedY + transfCenterPoint[1]);\n const newTransfCenterPoint = transf(newWidth / 2, newHeight / 2);\n this.x = centerX - newTransfCenterPoint[0];\n this.y = centerY - newTransfCenterPoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.setDims();\n this.fixAndSetPosition();\n this._onResizing();\n }\n #touchPinchEndCallback() {\n this.#altText?.toggle(true);\n this.parent.togglePointerEvents(true);\n this.#addResizeToUndoStack();\n }\n pointerdown(event) {\n const {\n isMac\n } = FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n if (this._isDraggable) {\n this.#setUpDragSession(event);\n return;\n }\n this.#selectOnPointerEvent(event);\n }\n #selectOnPointerEvent(event) {\n const {\n isMac\n } = 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 #setUpDragSession(event) {\n const {\n isSelected\n } = this;\n this._uiManager.setUpDragSession();\n let hasDraggingStarted = false;\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n const opts = {\n capture: true,\n passive: false,\n signal\n };\n const cancelDrag = e => {\n ac.abort();\n this.#dragPointerId = null;\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n this.#selectOnPointerEvent(e);\n }\n if (hasDraggingStarted) {\n this._onStopDragging();\n }\n };\n if (isSelected) {\n this.#prevDragX = event.clientX;\n this.#prevDragY = event.clientY;\n this.#dragPointerId = event.pointerId;\n this.#dragPointerType = event.pointerType;\n window.addEventListener(\"pointermove\", e => {\n if (!hasDraggingStarted) {\n hasDraggingStarted = true;\n this._uiManager.toggleComment(this, true, false);\n this._onStartDragging();\n }\n const {\n clientX: x,\n clientY: y,\n pointerId\n } = e;\n if (pointerId !== this.#dragPointerId) {\n stopEvent(e);\n return;\n }\n const [tx, ty] = this.screenToPageTranslation(x - this.#prevDragX, y - this.#prevDragY);\n this.#prevDragX = x;\n this.#prevDragY = y;\n this._uiManager.dragSelectedEditors(tx, ty);\n }, opts);\n window.addEventListener(\"touchmove\", stopEvent, opts);\n window.addEventListener(\"pointerdown\", e => {\n if (e.pointerType === this.#dragPointerType) {\n if (this.#touchManager || e.isPrimary) {\n cancelDrag(e);\n }\n }\n stopEvent(e);\n }, opts);\n }\n const pointerUpCallback = e => {\n if (!this.#dragPointerId || this.#dragPointerId === e.pointerId) {\n cancelDrag(e);\n return;\n }\n stopEvent(e);\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n _onStartDragging() {}\n _onStopDragging() {}\n moveInDOM() {\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n }\n this.#moveInDOMTimeout = setTimeout(() => {\n this.#moveInDOMTimeout = null;\n this.parent?.moveEditorInDOM(this);\n }, 0);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n this._onTranslated();\n }\n getRect(tx, ty, rotation = this.rotation) {\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 (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 getPDFRect() {\n return this.getRect(0, 0);\n }\n getNonHCMColor() {\n return this.color && AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));\n }\n onUpdatedColor() {\n this.#comment?.onUpdatedColor();\n }\n getData() {\n const {\n comment: {\n text: str,\n color,\n date,\n opacity,\n deleted,\n richText\n },\n uid: id,\n pageIndex,\n creationDate,\n modificationDate\n } = this;\n return {\n id,\n pageIndex,\n rect: this.getPDFRect(),\n richText,\n contentsObj: {\n str\n },\n creationDate,\n modificationDate: date || modificationDate,\n popupRef: !deleted,\n color,\n opacity\n };\n }\n onceAdded(focus) {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return false;\n }\n this.parent.setEditingState(false);\n this.#isInEditMode = true;\n return true;\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return false;\n }\n this.parent.setEditingState(true);\n this.#isInEditMode = false;\n return true;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return this.#isResizerEnabledForKeyboard;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n get isOnScreen() {\n const {\n top,\n left,\n bottom,\n right\n } = this.getClientDimensions();\n const {\n innerHeight,\n innerWidth\n } = window;\n return left < innerWidth && right > 0 && top < innerHeight && bottom > 0;\n }\n #addFocusListeners() {\n if (this.#focusAC || !this.div) {\n return;\n }\n this.#focusAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#focusAC);\n this.div.addEventListener(\"focusin\", this.focusin.bind(this), {\n signal\n });\n this.div.addEventListener(\"focusout\", this.focusout.bind(this), {\n signal\n });\n }\n rebuild() {\n this.#addFocusListeners();\n }\n rotate(_angle) {}\n resize() {}\n serializeDeleted() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex,\n popupRef: this._initialData?.popupRef || \"\"\n };\n }\n serialize(isForCopying = false, context = null) {\n return {\n annotationType: this.mode,\n pageIndex: this.pageIndex,\n rect: this.getPDFRect(),\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId,\n popupRef: this._initialData?.popupRef || \"\"\n };\n }\n static async deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager,\n annotationElementId: data.annotationElementId,\n creationDate: data.creationDate,\n modificationDate: data.modificationDate\n });\n editor.rotation = data.rotation;\n editor.#accessibilityData = data.accessibilityData;\n editor._isCopy = data.isCopy || false;\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 get hasBeenModified() {\n return !!this.annotationElementId && (this.deleted || this.serialize() !== null);\n }\n remove() {\n this.#focusAC?.abort();\n this.#focusAC = null;\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.hideCommentPopup();\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n this.#moveInDOMTimeout = null;\n }\n this.#stopResizing();\n this.removeEditToolbar();\n if (this.#telemetryTimeouts) {\n for (const timeout of this.#telemetryTimeouts.values()) {\n clearTimeout(timeout);\n }\n this.#telemetryTimeouts = null;\n }\n this.parent = null;\n this.#touchManager?.destroy();\n this.#touchManager = null;\n this.#fakeAnnotation?.remove();\n this.#fakeAnnotation = 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 get toolbarPosition() {\n return null;\n }\n get commentButtonPosition() {\n return this._uiManager.direction === \"ltr\" ? [1, 0] : [0, 0];\n }\n get commentButtonPositionInPage() {\n const {\n commentButtonPosition: [posX, posY]\n } = this;\n const [blX, blY, trX, trY] = this.getPDFRect();\n return [AnnotationEditor._round(blX + (trX - blX) * posX), AnnotationEditor._round(blY + (trY - blY) * (1 - posY))];\n }\n get commentButtonColor() {\n return this._uiManager.makeCommentColor(this.getNonHCMColor(), this.opacity);\n }\n get commentPopupPosition() {\n return this.#comment.commentPopupPositionInLayer;\n }\n set commentPopupPosition(pos) {\n this.#comment.commentPopupPositionInLayer = pos;\n }\n hasDefaultPopupPosition() {\n return this.#comment.hasDefaultPopupPosition();\n }\n get commentButtonWidth() {\n return this.#comment.commentButtonWidth;\n }\n get elementBeforePopup() {\n return this.div;\n }\n setCommentButtonStates(options) {\n this.#comment?.setCommentButtonStates(options);\n }\n keydown(event) {\n if (!this.isResizable || event.target !== this.div || event.key !== \"Enter\") {\n return;\n }\n this._uiManager.setSelected(this);\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\n const children = this.#resizersDiv.children;\n if (!this.#allResizerDivs) {\n this.#allResizerDivs = Array.from(children);\n const boundResizerKeydown = this.#resizerKeydown.bind(this);\n const boundResizerBlur = this.#resizerBlur.bind(this);\n const signal = this._uiManager._signal;\n for (const div of this.#allResizerDivs) {\n const name = div.getAttribute(\"data-resizer-name\");\n div.setAttribute(\"role\", \"spinbutton\");\n div.addEventListener(\"keydown\", boundResizerKeydown, {\n signal\n });\n div.addEventListener(\"blur\", boundResizerBlur, {\n signal\n });\n div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name), {\n signal\n });\n div.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n }\n }\n const first = this.#allResizerDivs[0];\n let firstPosition = 0;\n for (const div of children) {\n if (div === first) {\n break;\n }\n firstPosition++;\n }\n const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4);\n if (nextFirstPosition !== firstPosition) {\n if (nextFirstPosition < firstPosition) {\n for (let i = 0; i < firstPosition - nextFirstPosition; i++) {\n this.#resizersDiv.append(this.#resizersDiv.firstElementChild);\n }\n } else if (nextFirstPosition > firstPosition) {\n for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n this.#resizersDiv.firstElementChild.before(this.#resizersDiv.lastElementChild);\n }\n }\n let i = 0;\n for (const child of children) {\n const div = this.#allResizerDivs[i++];\n const name = div.getAttribute(\"data-resizer-name\");\n child.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n }\n }\n this.#setResizerTabIndex(0);\n this.#isResizerEnabledForKeyboard = true;\n this.#resizersDiv.firstElementChild.focus({\n focusVisible: true\n });\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n #resizerKeydown(event) {\n AnnotationEditor._resizerKeyboardManager.exec(this, event);\n }\n #resizerBlur(event) {\n if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) {\n this.#stopResizing();\n }\n }\n #resizerFocus(name) {\n this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : \"\";\n }\n #setResizerTabIndex(value) {\n if (!this.#allResizerDivs) {\n return;\n }\n for (const div of this.#allResizerDivs) {\n div.tabIndex = value;\n }\n }\n _resizeWithKeyboard(x, y) {\n if (!this.#isResizerEnabledForKeyboard) {\n return;\n }\n this.#resizerPointermove(this.#focusedResizerName, {\n deltaX: x,\n deltaY: y,\n fromKeyboard: true\n });\n }\n #stopResizing() {\n this.#isResizerEnabledForKeyboard = false;\n this.#setResizerTabIndex(-1);\n this.#addResizeToUndoStack();\n }\n _stopResizingWithKeyboard() {\n this.#stopResizing();\n this.div.focus();\n }\n select() {\n if (this.isSelected && this._editToolbar) {\n this._editToolbar.show();\n return;\n }\n this.isSelected = true;\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n if (!this._editToolbar) {\n this.addEditToolbar().then(() => {\n if (this.div?.classList.contains(\"selectedEditor\")) {\n this._editToolbar?.show();\n }\n });\n return;\n }\n this._editToolbar?.show();\n this.#altText?.toggleAltTextBadge(false);\n }\n focus() {\n if (this.div && !this.div.contains(document.activeElement)) {\n setTimeout(() => this.div?.focus({\n preventScroll: true\n }), 0);\n }\n }\n unselect() {\n if (!this.isSelected) {\n return;\n }\n this.isSelected = false;\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 preventScroll: true\n });\n }\n this._editToolbar?.hide();\n this.#altText?.toggleAltTextBadge(true);\n this.hideCommentPopup();\n }\n hideCommentPopup() {\n if (this.hasComment) {\n this._uiManager.toggleComment(null);\n }\n }\n updateParams(type, value) {}\n disableEditing() {}\n enableEditing() {}\n get canChangeContent() {\n return false;\n }\n enterInEditMode() {\n if (!this.canChangeContent) {\n return;\n }\n this.enableEditMode();\n this.div.focus();\n }\n dblclick(event) {\n if (event.target.nodeName === \"BUTTON\") {\n return;\n }\n this.enterInEditMode();\n this.parent.updateToolbar({\n mode: this.constructor._editorType,\n editId: this.uid\n });\n }\n getElementForAltText() {\n return this.div;\n }\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 static get MIN_SIZE() {\n return 16;\n }\n static canCreateNewEmptyEditor() {\n return true;\n }\n get telemetryInitialData() {\n return {\n action: \"added\"\n };\n }\n get telemetryFinalData() {\n return null;\n }\n _reportTelemetry(data, mustWait = false) {\n if (mustWait) {\n this.#telemetryTimeouts ||= new Map();\n const {\n action\n } = data;\n let timeout = this.#telemetryTimeouts.get(action);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n this._reportTelemetry(data);\n this.#telemetryTimeouts.delete(action);\n if (this.#telemetryTimeouts.size === 0) {\n this.#telemetryTimeouts = null;\n }\n }, AnnotationEditor._telemetryTimeout);\n this.#telemetryTimeouts.set(action, timeout);\n return;\n }\n data.type ||= this.editorType;\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data\n }\n });\n }\n show(visible = this._isVisible) {\n this.div.classList.toggle(\"hidden\", !visible);\n this._isVisible = visible;\n }\n enable() {\n if (this.div) {\n this.div.tabIndex = 0;\n }\n this.#disabled = false;\n }\n disable() {\n if (this.div) {\n this.div.tabIndex = -1;\n }\n this.#disabled = true;\n }\n updateFakeAnnotationElement(annotationLayer) {\n if (!this.#fakeAnnotation && !this.deleted) {\n this.#fakeAnnotation = annotationLayer.addFakeAnnotation(this);\n return;\n }\n if (this.deleted) {\n this.#fakeAnnotation.remove();\n this.#fakeAnnotation = null;\n return;\n }\n if (this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized) {\n this.#fakeAnnotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this.comment\n });\n }\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n let content = annotation.container.querySelector(\".annotationContent\");\n if (!content) {\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n annotation.container.prepend(content);\n } else if (content.nodeName === \"CANVAS\") {\n const canvas = content;\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n canvas.before(content);\n }\n return content;\n }\n resetAnnotationElement(annotation) {\n const {\n firstElementChild\n } = annotation.container;\n if (firstElementChild?.nodeName === \"DIV\" && firstElementChild.classList.contains(\"annotationContent\")) {\n firstElementChild.remove();\n }\n }\n}\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return this.serializeDeleted();\n }\n}\n\n;// ./src/shared/murmurhash3.js\n\n\n\n\n\n\n\n\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 (ArrayBuffer.isView(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Invalid data format, must be a string or TypedArray.\");\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}\n\n;// ./src/display/annotation_storage.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfer: undefined\n});\nclass AnnotationStorage {\n #modified = false;\n #modifiedIds = null;\n #editorsMap = null;\n #storage = new Map();\n onSetModified = null;\n onResetModified = null;\n onAnnotationEditor = null;\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 const storedValue = this.#storage.get(key);\n if (storedValue === undefined) {\n return;\n }\n if (storedValue instanceof AnnotationEditor) {\n this.#editorsMap.delete(storedValue.annotationElementId);\n }\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 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 AnnotationEditor) {\n (this.#editorsMap ||= new Map()).set(value.annotationElementId, value);\n if (typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n }\n has(key) {\n return this.#storage.has(key);\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 MurmurHash3_64(),\n transfer = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof AnnotationEditor ? val.serialize(false, context) : val;\n if (val.page) {\n val.pageIndex = val.page._pageIndex;\n delete val.page;\n }\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 transfer.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfer\n } : SerializableEmpty;\n }\n get editorStats() {\n let stats = null;\n const typeToEditor = new Map();\n let numberOfEditedComments = 0;\n let numberOfDeletedComments = 0;\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor)) {\n if (value.popup) {\n if (value.popup.deleted) {\n numberOfDeletedComments += 1;\n } else {\n numberOfEditedComments += 1;\n }\n }\n continue;\n }\n if (value.isCommentDeleted) {\n numberOfDeletedComments += 1;\n } else if (value.hasEditedComment) {\n numberOfEditedComments += 1;\n }\n const editorStats = value.telemetryFinalData;\n if (!editorStats) {\n continue;\n }\n const {\n type\n } = editorStats;\n if (!typeToEditor.has(type)) {\n typeToEditor.set(type, Object.getPrototypeOf(value).constructor);\n }\n stats ||= Object.create(null);\n const map = stats[type] ||= new Map();\n for (const [key, val] of Object.entries(editorStats)) {\n if (key === \"type\") {\n continue;\n }\n const counters = map.getOrInsertComputed(key, makeMap);\n counters.set(val, (counters.get(val) ?? 0) + 1);\n }\n }\n if (numberOfDeletedComments > 0 || numberOfEditedComments > 0) {\n stats ||= Object.create(null);\n stats.comments = {\n deleted: numberOfDeletedComments,\n edited: numberOfEditedComments\n };\n }\n if (!stats) {\n return null;\n }\n for (const [type, editor] of typeToEditor) {\n stats[type] = editor.computeTelemetryFinalData(stats[type]);\n }\n return stats;\n }\n resetModifiedIds() {\n this.#modifiedIds = null;\n }\n updateEditor(annotationId, data) {\n const value = this.#editorsMap?.get(annotationId);\n if (value) {\n value.updateFromAnnotationLayer(data);\n return true;\n }\n return false;\n }\n getEditor(annotationId) {\n return this.#editorsMap?.get(annotationId) || null;\n }\n get modifiedIds() {\n if (this.#modifiedIds) {\n return this.#modifiedIds;\n }\n const ids = [];\n if (this.#editorsMap) {\n for (const value of this.#editorsMap.values()) {\n if (!value.serialize()) {\n continue;\n }\n ids.push(value.annotationElementId);\n }\n }\n return this.#modifiedIds = {\n ids: new Set(ids),\n hash: ids.join(\",\")\n };\n }\n [Symbol.iterator]() {\n return this.#storage.entries();\n }\n}\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable = SerializableEmpty;\n constructor(parent) {\n super();\n const {\n serializable\n } = parent;\n if (serializable === SerializableEmpty) {\n return;\n }\n const {\n map,\n hash,\n transfer\n } = serializable;\n const clone = structuredClone(map, transfer ? {\n transfer\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfer: []\n };\n }\n get print() {\n unreachable(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n get modifiedIds() {\n return shadow(this, \"modifiedIds\", {\n ids: new Set(),\n hash: \"\"\n });\n }\n}\n\n;// ./src/display/font_loader.js\n\n\n\n\n\n\n\n\n\n\n\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({\n systemFontInfo: info,\n disableFontFace,\n _inspectFont\n }) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n assert(!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 _inspectFont?.(info);\n } catch {\n warn(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n 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);\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 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 shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n return shadow(this, \"isSyncFontLoadingSupported\", isNodeJS || FeatureTest.platform.isFirefox);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n 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 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 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, 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}\nclass FontFaceObject {\n #fontData;\n constructor(translatedData, inspectFont = null, extra, charProcOperatorList) {\n this.compiledGlyphs = Object.create(null);\n this.#fontData = translatedData;\n this._inspectFont = inspectFont;\n if (extra) {\n Object.assign(this, extra);\n }\n if (charProcOperatorList) {\n this.charProcOperatorList = charProcOperatorList;\n }\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 url = `url(data:${this.mimetype};base64,${this.data.toBase64()});`;\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 const objId = this.loadedName + \"_path_\" + character;\n let cmds;\n try {\n cmds = objs.get(objId);\n } catch (ex) {\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n }\n const path = makePathFromDrawOPS(cmds?.path);\n if (!this.fontExtraProperties) {\n objs.delete(objId);\n }\n return this.compiledGlyphs[character] = path;\n }\n get black() {\n return this.#fontData.black;\n }\n get bold() {\n return this.#fontData.bold;\n }\n get disableFontFace() {\n return this.#fontData.disableFontFace ?? false;\n }\n set disableFontFace(value) {\n shadow(this, \"disableFontFace\", !!value);\n }\n get fontExtraProperties() {\n return this.#fontData.fontExtraProperties ?? false;\n }\n get isInvalidPDFjsFont() {\n return this.#fontData.isInvalidPDFjsFont;\n }\n get isType3Font() {\n return this.#fontData.isType3Font;\n }\n get italic() {\n return this.#fontData.italic;\n }\n get missingFile() {\n return this.#fontData.missingFile;\n }\n get remeasure() {\n return this.#fontData.remeasure;\n }\n get vertical() {\n return this.#fontData.vertical;\n }\n get ascent() {\n return this.#fontData.ascent;\n }\n get defaultWidth() {\n return this.#fontData.defaultWidth;\n }\n get descent() {\n return this.#fontData.descent;\n }\n get bbox() {\n return this.#fontData.bbox;\n }\n set bbox(bbox) {\n shadow(this, \"bbox\", bbox);\n }\n get fontMatrix() {\n return this.#fontData.fontMatrix;\n }\n get fallbackName() {\n return this.#fontData.fallbackName;\n }\n get loadedName() {\n return this.#fontData.loadedName;\n }\n get mimetype() {\n return this.#fontData.mimetype;\n }\n get name() {\n return this.#fontData.name;\n }\n get data() {\n return this.#fontData.data;\n }\n clearData() {\n this.#fontData.clearData();\n }\n get cssFontInfo() {\n return this.#fontData.cssFontInfo;\n }\n get systemFontInfo() {\n return this.#fontData.systemFontInfo;\n }\n get defaultVMetrics() {\n return this.#fontData.defaultVMetrics;\n }\n}\n\n;// ./src/shared/obj-bin-transform.js\n\n\n\n\n\n\n\n\n\n\nclass CssFontInfo {\n #buffer;\n #view;\n #decoder;\n static strings = [\"fontFamily\", \"fontWeight\", \"italicAngle\"];\n static write(info) {\n const encoder = new TextEncoder();\n const encodedStrings = {};\n let stringsLength = 0;\n for (const prop of CssFontInfo.strings) {\n const encoded = encoder.encode(info[prop]);\n encodedStrings[prop] = encoded;\n stringsLength += 4 + encoded.length;\n }\n const buffer = new ArrayBuffer(stringsLength);\n const data = new Uint8Array(buffer);\n const view = new DataView(buffer);\n let offset = 0;\n for (const prop of CssFontInfo.strings) {\n const encoded = encodedStrings[prop];\n const length = encoded.length;\n view.setUint32(offset, length);\n data.set(encoded, offset + 4);\n offset += 4 + length;\n }\n assert(offset === buffer.byteLength, \"CssFontInfo.write: Buffer overflow\");\n return buffer;\n }\n constructor(buffer) {\n this.#buffer = buffer;\n this.#view = new DataView(this.#buffer);\n this.#decoder = new TextDecoder();\n }\n #readString(index) {\n assert(index < CssFontInfo.strings.length, \"Invalid string index\");\n let offset = 0;\n for (let i = 0; i < index; i++) {\n offset += this.#view.getUint32(offset) + 4;\n }\n const length = this.#view.getUint32(offset);\n return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n }\n get fontFamily() {\n return this.#readString(0);\n }\n get fontWeight() {\n return this.#readString(1);\n }\n get italicAngle() {\n return this.#readString(2);\n }\n}\nclass SystemFontInfo {\n #buffer;\n #view;\n #decoder;\n static strings = [\"css\", \"loadedName\", \"baseFontName\", \"src\"];\n static write(info) {\n const encoder = new TextEncoder();\n const encodedStrings = {};\n let stringsLength = 0;\n for (const prop of SystemFontInfo.strings) {\n const encoded = encoder.encode(info[prop]);\n encodedStrings[prop] = encoded;\n stringsLength += 4 + encoded.length;\n }\n stringsLength += 4;\n let encodedStyleStyle,\n encodedStyleWeight,\n lengthEstimate = 1 + stringsLength;\n if (info.style) {\n encodedStyleStyle = encoder.encode(info.style.style);\n encodedStyleWeight = encoder.encode(info.style.weight);\n lengthEstimate += 4 + encodedStyleStyle.length + 4 + encodedStyleWeight.length;\n }\n const buffer = new ArrayBuffer(lengthEstimate);\n const data = new Uint8Array(buffer);\n const view = new DataView(buffer);\n let offset = 0;\n view.setUint8(offset++, info.guessFallback ? 1 : 0);\n view.setUint32(offset, 0);\n offset += 4;\n stringsLength = 0;\n for (const prop of SystemFontInfo.strings) {\n const encoded = encodedStrings[prop];\n const length = encoded.length;\n stringsLength += 4 + length;\n view.setUint32(offset, length);\n data.set(encoded, offset + 4);\n offset += 4 + length;\n }\n view.setUint32(offset - stringsLength - 4, stringsLength);\n if (info.style) {\n view.setUint32(offset, encodedStyleStyle.length);\n data.set(encodedStyleStyle, offset + 4);\n offset += 4 + encodedStyleStyle.length;\n view.setUint32(offset, encodedStyleWeight.length);\n data.set(encodedStyleWeight, offset + 4);\n offset += 4 + encodedStyleWeight.length;\n }\n assert(offset <= buffer.byteLength, \"SubstitionInfo.write: Buffer overflow\");\n return buffer.transferToFixedLength(offset);\n }\n constructor(buffer) {\n this.#buffer = buffer;\n this.#view = new DataView(this.#buffer);\n this.#decoder = new TextDecoder();\n }\n get guessFallback() {\n return this.#view.getUint8(0) !== 0;\n }\n #readString(index) {\n assert(index < SystemFontInfo.strings.length, \"Invalid string index\");\n let offset = 5;\n for (let i = 0; i < index; i++) {\n offset += this.#view.getUint32(offset) + 4;\n }\n const length = this.#view.getUint32(offset);\n return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n }\n get css() {\n return this.#readString(0);\n }\n get loadedName() {\n return this.#readString(1);\n }\n get baseFontName() {\n return this.#readString(2);\n }\n get src() {\n return this.#readString(3);\n }\n get style() {\n let offset = 1;\n offset += 4 + this.#view.getUint32(offset);\n const styleLength = this.#view.getUint32(offset);\n const style = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, styleLength));\n offset += 4 + styleLength;\n const weightLength = this.#view.getUint32(offset);\n const weight = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, weightLength));\n return {\n style,\n weight\n };\n }\n}\nclass FontInfo {\n static bools = [\"black\", \"bold\", \"disableFontFace\", \"fontExtraProperties\", \"isInvalidPDFjsFont\", \"isType3Font\", \"italic\", \"missingFile\", \"remeasure\", \"vertical\"];\n static numbers = [\"ascent\", \"defaultWidth\", \"descent\"];\n static strings = [\"fallbackName\", \"loadedName\", \"mimetype\", \"name\"];\n static #OFFSET_NUMBERS = Math.ceil(this.bools.length * 2 / 8);\n static #OFFSET_BBOX = this.#OFFSET_NUMBERS + this.numbers.length * 8;\n static #OFFSET_FONT_MATRIX = this.#OFFSET_BBOX + 1 + 2 * 4;\n static #OFFSET_DEFAULT_VMETRICS = this.#OFFSET_FONT_MATRIX + 1 + 8 * 6;\n static #OFFSET_STRINGS = this.#OFFSET_DEFAULT_VMETRICS + 1 + 2 * 3;\n #buffer;\n #decoder;\n #view;\n constructor({\n data,\n extra\n }) {\n this.#buffer = data;\n this.#decoder = new TextDecoder();\n this.#view = new DataView(this.#buffer);\n if (extra) {\n Object.assign(this, extra);\n }\n }\n #readBoolean(index) {\n assert(index < FontInfo.bools.length, \"Invalid boolean index\");\n const byteOffset = Math.floor(index / 4);\n const bitOffset = index * 2 % 8;\n const value = this.#view.getUint8(byteOffset) >> bitOffset & 0x03;\n return value === 0x00 ? undefined : value === 0x02;\n }\n get black() {\n return this.#readBoolean(0);\n }\n get bold() {\n return this.#readBoolean(1);\n }\n get disableFontFace() {\n return this.#readBoolean(2);\n }\n get fontExtraProperties() {\n return this.#readBoolean(3);\n }\n get isInvalidPDFjsFont() {\n return this.#readBoolean(4);\n }\n get isType3Font() {\n return this.#readBoolean(5);\n }\n get italic() {\n return this.#readBoolean(6);\n }\n get missingFile() {\n return this.#readBoolean(7);\n }\n get remeasure() {\n return this.#readBoolean(8);\n }\n get vertical() {\n return this.#readBoolean(9);\n }\n #readNumber(index) {\n assert(index < FontInfo.numbers.length, \"Invalid number index\");\n return this.#view.getFloat64(FontInfo.#OFFSET_NUMBERS + index * 8);\n }\n get ascent() {\n return this.#readNumber(0);\n }\n get defaultWidth() {\n return this.#readNumber(1);\n }\n get descent() {\n return this.#readNumber(2);\n }\n get bbox() {\n let offset = FontInfo.#OFFSET_BBOX;\n const numCoords = this.#view.getUint8(offset);\n if (numCoords === 0) {\n return undefined;\n }\n offset += 1;\n const bbox = [];\n for (let i = 0; i < 4; i++) {\n bbox.push(this.#view.getInt16(offset, true));\n offset += 2;\n }\n return bbox;\n }\n get fontMatrix() {\n let offset = FontInfo.#OFFSET_FONT_MATRIX;\n const numPoints = this.#view.getUint8(offset);\n if (numPoints === 0) {\n return undefined;\n }\n offset += 1;\n const fontMatrix = [];\n for (let i = 0; i < 6; i++) {\n fontMatrix.push(this.#view.getFloat64(offset, true));\n offset += 8;\n }\n return fontMatrix;\n }\n get defaultVMetrics() {\n let offset = FontInfo.#OFFSET_DEFAULT_VMETRICS;\n const numMetrics = this.#view.getUint8(offset);\n if (numMetrics === 0) {\n return undefined;\n }\n offset += 1;\n const defaultVMetrics = [];\n for (let i = 0; i < 3; i++) {\n defaultVMetrics.push(this.#view.getInt16(offset, true));\n offset += 2;\n }\n return defaultVMetrics;\n }\n #readString(index) {\n assert(index < FontInfo.strings.length, \"Invalid string index\");\n let offset = FontInfo.#OFFSET_STRINGS + 4;\n for (let i = 0; i < index; i++) {\n offset += this.#view.getUint32(offset) + 4;\n }\n const length = this.#view.getUint32(offset);\n const stringData = new Uint8Array(length);\n stringData.set(new Uint8Array(this.#buffer, offset + 4, length));\n return this.#decoder.decode(stringData);\n }\n get fallbackName() {\n return this.#readString(0);\n }\n get loadedName() {\n return this.#readString(1);\n }\n get mimetype() {\n return this.#readString(2);\n }\n get name() {\n return this.#readString(3);\n }\n get data() {\n let offset = FontInfo.#OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + systemFontInfoLength;\n const cssFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + cssFontInfoLength;\n const length = this.#view.getUint32(offset);\n if (length === 0) {\n return undefined;\n }\n return new Uint8Array(this.#buffer, offset + 4, length);\n }\n clearData() {\n let offset = FontInfo.#OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + systemFontInfoLength;\n const cssFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + cssFontInfoLength;\n const length = this.#view.getUint32(offset);\n const data = new Uint8Array(this.#buffer, offset + 4, length);\n data.fill(0);\n this.#view.setUint32(offset, 0);\n }\n get cssFontInfo() {\n let offset = FontInfo.#OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + systemFontInfoLength;\n const cssFontInfoLength = this.#view.getUint32(offset);\n if (cssFontInfoLength === 0) {\n return null;\n }\n const cssFontInfoData = new Uint8Array(cssFontInfoLength);\n cssFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, cssFontInfoLength));\n return new CssFontInfo(cssFontInfoData.buffer);\n }\n get systemFontInfo() {\n let offset = FontInfo.#OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n if (systemFontInfoLength === 0) {\n return null;\n }\n const systemFontInfoData = new Uint8Array(systemFontInfoLength);\n systemFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, systemFontInfoLength));\n return new SystemFontInfo(systemFontInfoData.buffer);\n }\n static write(font) {\n const systemFontInfoBuffer = font.systemFontInfo ? SystemFontInfo.write(font.systemFontInfo) : null;\n const cssFontInfoBuffer = font.cssFontInfo ? CssFontInfo.write(font.cssFontInfo) : null;\n const encoder = new TextEncoder();\n const encodedStrings = {};\n let stringsLength = 0;\n for (const prop of FontInfo.strings) {\n encodedStrings[prop] = encoder.encode(font[prop]);\n stringsLength += 4 + encodedStrings[prop].length;\n }\n const lengthEstimate = FontInfo.#OFFSET_STRINGS + 4 + stringsLength + 4 + (systemFontInfoBuffer ? systemFontInfoBuffer.byteLength : 0) + 4 + (cssFontInfoBuffer ? cssFontInfoBuffer.byteLength : 0) + 4 + (font.data ? font.data.length : 0);\n const buffer = new ArrayBuffer(lengthEstimate);\n const data = new Uint8Array(buffer);\n const view = new DataView(buffer);\n let offset = 0;\n const numBools = FontInfo.bools.length;\n let boolByte = 0,\n boolBit = 0;\n for (let i = 0; i < numBools; i++) {\n const value = font[FontInfo.bools[i]];\n const bits = value === undefined ? 0x00 : value ? 0x02 : 0x01;\n boolByte |= bits << boolBit;\n boolBit += 2;\n if (boolBit === 8 || i === numBools - 1) {\n view.setUint8(offset++, boolByte);\n boolByte = 0;\n boolBit = 0;\n }\n }\n assert(offset === FontInfo.#OFFSET_NUMBERS, \"FontInfo.write: Boolean properties offset mismatch\");\n for (const prop of FontInfo.numbers) {\n view.setFloat64(offset, font[prop]);\n offset += 8;\n }\n assert(offset === FontInfo.#OFFSET_BBOX, \"FontInfo.write: Number properties offset mismatch\");\n if (font.bbox) {\n view.setUint8(offset++, 4);\n for (const coord of font.bbox) {\n view.setInt16(offset, coord, true);\n offset += 2;\n }\n } else {\n view.setUint8(offset++, 0);\n offset += 2 * 4;\n }\n assert(offset === FontInfo.#OFFSET_FONT_MATRIX, \"FontInfo.write: BBox properties offset mismatch\");\n if (font.fontMatrix) {\n view.setUint8(offset++, 6);\n for (const point of font.fontMatrix) {\n view.setFloat64(offset, point, true);\n offset += 8;\n }\n } else {\n view.setUint8(offset++, 0);\n offset += 8 * 6;\n }\n assert(offset === FontInfo.#OFFSET_DEFAULT_VMETRICS, \"FontInfo.write: FontMatrix properties offset mismatch\");\n if (font.defaultVMetrics) {\n view.setUint8(offset++, 1);\n for (const metric of font.defaultVMetrics) {\n view.setInt16(offset, metric, true);\n offset += 2;\n }\n } else {\n view.setUint8(offset++, 0);\n offset += 3 * 2;\n }\n assert(offset === FontInfo.#OFFSET_STRINGS, \"FontInfo.write: DefaultVMetrics properties offset mismatch\");\n view.setUint32(FontInfo.#OFFSET_STRINGS, 0);\n offset += 4;\n for (const prop of FontInfo.strings) {\n const encoded = encodedStrings[prop];\n const length = encoded.length;\n view.setUint32(offset, length);\n data.set(encoded, offset + 4);\n offset += 4 + length;\n }\n view.setUint32(FontInfo.#OFFSET_STRINGS, offset - FontInfo.#OFFSET_STRINGS - 4);\n if (!systemFontInfoBuffer) {\n view.setUint32(offset, 0);\n offset += 4;\n } else {\n const length = systemFontInfoBuffer.byteLength;\n view.setUint32(offset, length);\n assert(offset + 4 + length <= buffer.byteLength, \"FontInfo.write: Buffer overflow at systemFontInfo\");\n data.set(new Uint8Array(systemFontInfoBuffer), offset + 4);\n offset += 4 + length;\n }\n if (!cssFontInfoBuffer) {\n view.setUint32(offset, 0);\n offset += 4;\n } else {\n const length = cssFontInfoBuffer.byteLength;\n view.setUint32(offset, length);\n assert(offset + 4 + length <= buffer.byteLength, \"FontInfo.write: Buffer overflow at cssFontInfo\");\n data.set(new Uint8Array(cssFontInfoBuffer), offset + 4);\n offset += 4 + length;\n }\n if (font.data === undefined) {\n view.setUint32(offset, 0);\n offset += 4;\n } else {\n view.setUint32(offset, font.data.length);\n data.set(font.data, offset + 4);\n offset += 4 + font.data.length;\n }\n assert(offset <= buffer.byteLength, \"FontInfo.write: Buffer overflow\");\n return buffer.transferToFixedLength(offset);\n }\n}\nclass PatternInfo {\n static #KIND = 0;\n static #HAS_BBOX = 1;\n static #HAS_BACKGROUND = 2;\n static #SHADING_TYPE = 3;\n static #N_COORD = 4;\n static #N_COLOR = 8;\n static #N_STOP = 12;\n static #N_FIGURES = 16;\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(buffer);\n this.data = new Uint8Array(buffer);\n }\n static write(ir) {\n let kind,\n bbox = null,\n coords = [],\n colors = [],\n colorStops = [],\n figures = [],\n shadingType = null,\n background = null;\n switch (ir[0]) {\n case \"RadialAxial\":\n kind = ir[1] === \"axial\" ? 1 : 2;\n bbox = ir[2];\n colorStops = ir[3];\n if (kind === 1) {\n coords.push(...ir[4], ...ir[5]);\n } else {\n coords.push(ir[4][0], ir[4][1], ir[6], ir[5][0], ir[5][1], ir[7]);\n }\n break;\n case \"Mesh\":\n kind = 3;\n shadingType = ir[1];\n coords = ir[2];\n colors = ir[3];\n figures = ir[4] || [];\n bbox = ir[6];\n background = ir[7];\n break;\n default:\n throw new Error(`Unsupported pattern type: ${ir[0]}`);\n }\n const nCoord = Math.floor(coords.length / 2);\n const nColor = Math.floor(colors.length / 3);\n const nStop = colorStops.length;\n const nFigures = figures.length;\n let figuresSize = 0;\n for (const figure of figures) {\n figuresSize += 1;\n figuresSize = Math.ceil(figuresSize / 4) * 4;\n figuresSize += 4 + figure.coords.length * 4;\n figuresSize += 4 + figure.colors.length * 4;\n if (figure.verticesPerRow !== undefined) {\n figuresSize += 4;\n }\n }\n const byteLen = 20 + nCoord * 8 + nColor * 3 + nStop * 8 + (bbox ? 16 : 0) + (background ? 3 : 0) + figuresSize;\n const buffer = new ArrayBuffer(byteLen);\n const dataView = new DataView(buffer);\n const u8data = new Uint8Array(buffer);\n dataView.setUint8(PatternInfo.#KIND, kind);\n dataView.setUint8(PatternInfo.#HAS_BBOX, bbox ? 1 : 0);\n dataView.setUint8(PatternInfo.#HAS_BACKGROUND, background ? 1 : 0);\n dataView.setUint8(PatternInfo.#SHADING_TYPE, shadingType);\n dataView.setUint32(PatternInfo.#N_COORD, nCoord, true);\n dataView.setUint32(PatternInfo.#N_COLOR, nColor, true);\n dataView.setUint32(PatternInfo.#N_STOP, nStop, true);\n dataView.setUint32(PatternInfo.#N_FIGURES, nFigures, true);\n let offset = 20;\n const coordsView = new Float32Array(buffer, offset, nCoord * 2);\n coordsView.set(coords);\n offset += nCoord * 8;\n u8data.set(colors, offset);\n offset += nColor * 3;\n for (const [pos, hex] of colorStops) {\n dataView.setFloat32(offset, pos, true);\n offset += 4;\n dataView.setUint32(offset, parseInt(hex.slice(1), 16), true);\n offset += 4;\n }\n if (bbox) {\n for (const v of bbox) {\n dataView.setFloat32(offset, v, true);\n offset += 4;\n }\n }\n if (background) {\n u8data.set(background, offset);\n offset += 3;\n }\n for (let i = 0; i < figures.length; i++) {\n const figure = figures[i];\n dataView.setUint8(offset, figure.type);\n offset += 1;\n offset = Math.ceil(offset / 4) * 4;\n dataView.setUint32(offset, figure.coords.length, true);\n offset += 4;\n const figureCoordsView = new Int32Array(buffer, offset, figure.coords.length);\n figureCoordsView.set(figure.coords);\n offset += figure.coords.length * 4;\n dataView.setUint32(offset, figure.colors.length, true);\n offset += 4;\n const colorsView = new Int32Array(buffer, offset, figure.colors.length);\n colorsView.set(figure.colors);\n offset += figure.colors.length * 4;\n if (figure.verticesPerRow !== undefined) {\n dataView.setUint32(offset, figure.verticesPerRow, true);\n offset += 4;\n }\n }\n return buffer;\n }\n getIR() {\n const dataView = this.view;\n const kind = this.data[PatternInfo.#KIND];\n const hasBBox = !!this.data[PatternInfo.#HAS_BBOX];\n const hasBackground = !!this.data[PatternInfo.#HAS_BACKGROUND];\n const nCoord = dataView.getUint32(PatternInfo.#N_COORD, true);\n const nColor = dataView.getUint32(PatternInfo.#N_COLOR, true);\n const nStop = dataView.getUint32(PatternInfo.#N_STOP, true);\n const nFigures = dataView.getUint32(PatternInfo.#N_FIGURES, true);\n let offset = 20;\n const coords = new Float32Array(this.buffer, offset, nCoord * 2);\n offset += nCoord * 8;\n const colors = new Uint8Array(this.buffer, offset, nColor * 3);\n offset += nColor * 3;\n const stops = [];\n for (let i = 0; i < nStop; ++i) {\n const p = dataView.getFloat32(offset, true);\n offset += 4;\n const rgb = dataView.getUint32(offset, true);\n offset += 4;\n stops.push([p, `#${rgb.toString(16).padStart(6, \"0\")}`]);\n }\n let bbox = null;\n if (hasBBox) {\n bbox = [];\n for (let i = 0; i < 4; ++i) {\n bbox.push(dataView.getFloat32(offset, true));\n offset += 4;\n }\n }\n let background = null;\n if (hasBackground) {\n background = new Uint8Array(this.buffer, offset, 3);\n offset += 3;\n }\n const figures = [];\n for (let i = 0; i < nFigures; ++i) {\n const type = dataView.getUint8(offset);\n offset += 1;\n offset = Math.ceil(offset / 4) * 4;\n const coordsLength = dataView.getUint32(offset, true);\n offset += 4;\n const figureCoords = new Int32Array(this.buffer, offset, coordsLength);\n offset += coordsLength * 4;\n const colorsLength = dataView.getUint32(offset, true);\n offset += 4;\n const figureColors = new Int32Array(this.buffer, offset, colorsLength);\n offset += colorsLength * 4;\n const figure = {\n type,\n coords: figureCoords,\n colors: figureColors\n };\n if (type === MeshFigureType.LATTICE) {\n figure.verticesPerRow = dataView.getUint32(offset, true);\n offset += 4;\n }\n figures.push(figure);\n }\n if (kind === 1) {\n return [\"RadialAxial\", \"axial\", bbox, stops, Array.from(coords.slice(0, 2)), Array.from(coords.slice(2, 4)), null, null];\n }\n if (kind === 2) {\n return [\"RadialAxial\", \"radial\", bbox, stops, [coords[0], coords[1]], [coords[3], coords[4]], coords[2], coords[5]];\n }\n if (kind === 3) {\n const shadingType = this.data[PatternInfo.#SHADING_TYPE];\n let bounds = null;\n if (coords.length > 0) {\n let minX = coords[0],\n maxX = coords[0];\n let minY = coords[1],\n maxY = coords[1];\n for (let i = 0; i < coords.length; i += 2) {\n const x = coords[i],\n y = coords[i + 1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n bounds = [minX, minY, maxX, maxY];\n }\n return [\"Mesh\", shadingType, coords, colors, figures, bounds, bbox, background];\n }\n throw new Error(`Unsupported pattern kind: ${kind}`);\n }\n}\nclass FontPathInfo {\n static write(path) {\n let data;\n let buffer;\n if (FeatureTest.isFloat16ArraySupported) {\n buffer = new ArrayBuffer(path.length * 2);\n data = new Float16Array(buffer);\n } else {\n buffer = new ArrayBuffer(path.length * 4);\n data = new Float32Array(buffer);\n }\n data.set(path);\n return buffer;\n }\n #buffer;\n constructor(buffer) {\n this.#buffer = buffer;\n }\n get path() {\n if (FeatureTest.isFloat16ArraySupported) {\n return new Float16Array(this.#buffer);\n }\n return new Float32Array(this.#buffer);\n }\n}\n\n;// ./src/display/api_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val;\n }\n if (typeof val === \"string\") {\n if (isNodeJS) {\n if (/^[a-z][a-z0-9\\-+.]+:/i.test(val)) {\n return new URL(val);\n }\n const url = process.getBuiltinModule(\"url\");\n return new URL(url.pathToFileURL(val));\n }\n const url = URL.parse(val, window.location);\n if (url) {\n return url;\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 (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 stringToBytes(val);\n }\n if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === \"object\" && !isNaN(val?.length)) {\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}\nfunction getFactoryUrlProp(val) {\n if (typeof val !== \"string\") {\n return null;\n }\n if (val.endsWith(\"/\")) {\n return val;\n }\n throw new Error(`Invalid factory url: \"${val}\" must include trailing slash.`);\n}\nconst isRefProxy = v => typeof v === \"object\" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;\nconst isNameProxy = v => typeof v === \"object\" && typeof v?.name === \"string\";\nconst isValidExplicitDest = _isValidExplicitDest.bind(null, isRefProxy, isNameProxy);\nclass LoopbackPort {\n #listeners = new Map();\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, options = null) {\n let rmAbort = null;\n if (options?.signal instanceof AbortSignal) {\n const {\n signal\n } = options;\n if (signal.aborted) {\n warn(\"LoopbackPort - cannot use an `aborted` signal.\");\n return;\n }\n const onAbort = () => this.removeEventListener(name, listener);\n rmAbort = () => signal.removeEventListener(\"abort\", onAbort);\n signal.addEventListener(\"abort\", onAbort);\n }\n this.#listeners.set(listener, rmAbort);\n }\n removeEventListener(name, listener) {\n const rmAbort = this.#listeners.get(listener);\n rmAbort?.();\n this.#listeners.delete(listener);\n }\n terminate() {\n for (const [, rmAbort] of this.#listeners) {\n rmAbort?.();\n }\n this.#listeners.clear();\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.try.js\nvar es_promise_try = __webpack_require__(1689);\n;// ./src/shared/message_handler.js\n\n\n\nconst CallbackKind = {\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\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 onFn() {}\nfunction wrapReason(ex) {\n if (ex instanceof AbortException || ex instanceof InvalidPDFException || ex instanceof PasswordException || ex instanceof ResponseException || ex instanceof UnknownErrorException) {\n return ex;\n }\n if (!(ex instanceof Error || typeof ex === \"object\" && ex !== null)) {\n unreachable('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (ex.name) {\n case \"AbortException\":\n return new AbortException(ex.message);\n case \"InvalidPDFException\":\n return new InvalidPDFException(ex.message);\n case \"PasswordException\":\n return new PasswordException(ex.message, ex.code);\n case \"ResponseException\":\n return new ResponseException(ex.message, ex.status, ex.missing);\n case \"UnknownErrorException\":\n return new UnknownErrorException(ex.message, ex.details);\n }\n return new UnknownErrorException(ex.message, ex.toString());\n}\nclass MessageHandler {\n #messageAC = new AbortController();\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 comObj.addEventListener(\"message\", this.#onMessage.bind(this), {\n signal: this.#messageAC.signal\n });\n }\n #onMessage({\n data\n }) {\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 sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n Promise.try(action, data.data).then(function (result) {\n comObj.postMessage({\n sourceName,\n targetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\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 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 = Promise.withResolvers();\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 = Promise.withResolvers();\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 = Promise.withResolvers();\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 assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = Promise.withResolvers();\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 = Promise.withResolvers();\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 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: Promise.withResolvers(),\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 Promise.try(action, data.data, streamSink).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 Promise.try(streamSink.onPull || onFn).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 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 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 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 const dataReason = wrapReason(data.reason);\n Promise.try(streamSink.onCancel || onFn, dataReason).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(dataReason);\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.#messageAC?.abort();\n this.#messageAC = null;\n }\n}\n\n;// ./src/display/canvas_factory.js\n\nclass BaseCanvasFactory {\n #enableHWA = false;\n constructor({\n enableHWA = false\n }) {\n this.#enableHWA = enableHWA;\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 willReadFrequently: !this.#enableHWA\n })\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 unreachable(\"Abstract method `_createCanvas` called.\");\n }\n}\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document,\n enableHWA = false\n }) {\n super({\n enableHWA\n });\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}\n\n;// ./src/display/cmap_reader_factory.js\n\n\n\n\n\n\n\n\n\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error(\"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 return this._fetch(url).then(cMapData => ({\n cMapData,\n isCompressed: this.isCompressed\n })).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n async _fetch(url) {\n const data = await fetchData(url, this.isCompressed ? \"bytes\" : \"text\");\n return data instanceof Uint8Array ? data : stringToBytes(data);\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js\nvar es_iterator_filter = __webpack_require__(2489);\n;// ./src/display/filter_factory.js\n\n\n\n\n\n\nclass BaseFilterFactory {\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addAlphaFilter(map) {\n return \"none\";\n }\n addLuminosityFilter(map) {\n return \"none\";\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nclass DOMFilterFactory extends BaseFilterFactory {\n #baseUrl;\n #_cache;\n #_defs;\n #docId;\n #document;\n #_hcmCache;\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 #hcmCache() {\n return this.#_hcmCache ||= 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 #createTables(maps) {\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 const table = buffer.join(\",\");\n return [table, table, table];\n }\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 return [bufferR.join(\",\"), bufferG.join(\",\"), bufferB.join(\",\")];\n }\n #createUrl(id) {\n if (this.#baseUrl === undefined) {\n this.#baseUrl = \"\";\n const url = this.#document.URL;\n if (url !== this.#document.baseURI) {\n if (isDataScheme(url)) {\n warn('#createUrl: ignore \"data:\"-URL for performance reasons.');\n } else {\n this.#baseUrl = updateUrlHash(url, \"\");\n }\n }\n }\n return `url(${this.#baseUrl}#${id})`;\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 const [tableR, tableG, tableB] = this.#createTables(maps);\n const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;\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 = this.#createUrl(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 const filterName = \"base\";\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return info.url;\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 = info.filter = 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 info.url = this.#createUrl(id);\n return info.url;\n }\n addAlphaFilter(map) {\n let value = this.#cache.get(map);\n if (value) {\n return value;\n }\n const [tableA] = this.#createTables([map]);\n const key = `alpha_${tableA}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_alpha_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapAlphaConversion(tableA, filter);\n return url;\n }\n addLuminosityFilter(map) {\n let value = this.#cache.get(map || \"luminosity\");\n if (value) {\n return value;\n }\n let tableA, key;\n if (map) {\n [tableA] = this.#createTables([map]);\n key = `luminosity_${tableA}`;\n } else {\n key = \"luminosity\";\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addLuminosityConversion(filter);\n if (map) {\n this.#addTransferMapAlphaConversion(tableA, filter);\n }\n return url;\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\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_${filterName}_filter`;\n const filter = info.filter = 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 info.url = this.#createUrl(id);\n return info.url;\n }\n destroy(keepHCM = false) {\n if (keepHCM && this.#_hcmCache?.size) {\n return;\n }\n this.#_defs?.parentNode.parentNode.remove();\n this.#_defs = null;\n this.#_cache?.clear();\n this.#_cache = null;\n this.#_hcmCache?.clear();\n this.#_hcmCache = null;\n this.#id = 0;\n }\n #addLuminosityConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0\");\n filter.append(feColorMatrix);\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 #addTransferMapAlphaConversion(aTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncA\", aTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\n\n;// ./src/display/standard_fontdata_factory.js\n\n\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error(\"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._fetch(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n async _fetch(url) {\n return fetchData(url, \"bytes\");\n }\n}\n\n;// ./src/display/wasm_factory.js\n\n\nclass BaseWasmFactory {\n constructor({\n baseUrl = null\n }) {\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error(\"Ensure that the `wasmUrl` API parameter is provided.\");\n }\n if (!filename) {\n throw new Error(\"Wasm filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetch(url).catch(reason => {\n throw new Error(`Unable to load wasm data at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMWasmFactory extends BaseWasmFactory {\n async _fetch(url) {\n return fetchData(url, \"bytes\");\n }\n}\n\n;// ./src/display/node_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nif (isNodeJS) {\n let canvas;\n try {\n const require = process.getBuiltinModule(\"module\").createRequire(import.meta.url);\n try {\n canvas = require(\"@napi-rs/canvas\");\n } catch (ex) {\n warn(`Cannot load \"@napi-rs/canvas\" package: \"${ex}\".`);\n }\n } catch (ex) {\n warn(`Cannot access the \\`require\\` function: \"${ex}\".`);\n }\n if (!globalThis.DOMMatrix) {\n if (canvas?.DOMMatrix) {\n globalThis.DOMMatrix = canvas.DOMMatrix;\n } else {\n warn(\"Cannot polyfill `DOMMatrix`, rendering may be broken.\");\n }\n }\n if (!globalThis.ImageData) {\n if (canvas?.ImageData) {\n globalThis.ImageData = canvas.ImageData;\n } else {\n warn(\"Cannot polyfill `ImageData`, rendering may be broken.\");\n }\n }\n if (!globalThis.Path2D) {\n if (canvas?.Path2D) {\n globalThis.Path2D = canvas.Path2D;\n } else {\n warn(\"Cannot polyfill `Path2D`, rendering may be broken.\");\n }\n }\n if (!globalThis.navigator?.language) {\n globalThis.navigator = {\n language: \"en-US\",\n platform: \"\",\n userAgent: \"\"\n };\n }\n}\nasync function node_utils_fetchData(url) {\n const fs = process.getBuiltinModule(\"fs\");\n const data = await fs.promises.readFile(url);\n return new Uint8Array(data);\n}\nclass NodeFilterFactory extends BaseFilterFactory {}\nclass NodeCanvasFactory extends BaseCanvasFactory {\n _createCanvas(width, height) {\n const require = process.getBuiltinModule(\"module\").createRequire(import.meta.url);\n const canvas = require(\"@napi-rs/canvas\");\n return canvas.createCanvas(width, height);\n }\n}\nclass NodeCMapReaderFactory extends BaseCMapReaderFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\nclass NodeStandardFontDataFactory extends BaseStandardFontDataFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\nclass NodeWasmFactory extends BaseWasmFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js\nvar es_iterator_for_each = __webpack_require__(7588);\n;// ./src/display/canvas_dependency_tracker.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst FORCED_DEPENDENCY_LABEL = \"__forcedDependency\";\nconst {\n floor,\n ceil\n} = Math;\nfunction expandBBox(array, index, minX, minY, maxX, maxY) {\n array[index * 4 + 0] = Math.min(array[index * 4 + 0], minX);\n array[index * 4 + 1] = Math.min(array[index * 4 + 1], minY);\n array[index * 4 + 2] = Math.max(array[index * 4 + 2], maxX);\n array[index * 4 + 3] = Math.max(array[index * 4 + 3], maxY);\n}\nconst EMPTY_BBOX = new Uint32Array(new Uint8Array([255, 255, 0, 0]).buffer)[0];\nclass BBoxReader {\n #bboxes;\n #coords;\n constructor(bboxes, coords) {\n this.#bboxes = bboxes;\n this.#coords = coords;\n }\n get length() {\n return this.#bboxes.length;\n }\n isEmpty(i) {\n return this.#bboxes[i] === EMPTY_BBOX;\n }\n minX(i) {\n return this.#coords[i * 4 + 0] / 256;\n }\n minY(i) {\n return this.#coords[i * 4 + 1] / 256;\n }\n maxX(i) {\n return (this.#coords[i * 4 + 2] + 1) / 256;\n }\n maxY(i) {\n return (this.#coords[i * 4 + 3] + 1) / 256;\n }\n}\nconst ensureDebugMetadata = (map, key) => map?.getOrInsertComputed(key, () => ({\n dependencies: new Set(),\n isRenderingOperation: false\n}));\nclass CanvasDependencyTracker {\n #simple = {\n __proto__: null\n };\n #incremental = {\n __proto__: null,\n transform: [],\n moveText: [],\n sameLineText: [],\n [FORCED_DEPENDENCY_LABEL]: []\n };\n #namedDependencies = new Map();\n #savesStack = [];\n #markedContentStack = [];\n #baseTransformStack = [[1, 0, 0, 1, 0, 0]];\n #clipBox = [-Infinity, -Infinity, Infinity, Infinity];\n #pendingBBox = new Float64Array([Infinity, Infinity, -Infinity, -Infinity]);\n #pendingBBoxIdx = -1;\n #pendingDependencies = new Set();\n #operations = new Map();\n #fontBBoxTrustworthy = new Map();\n #canvasWidth;\n #canvasHeight;\n #bboxesCoords;\n #bboxes;\n #debugMetadata;\n constructor(canvas, operationsCount, recordDebugMetadata = false) {\n this.#canvasWidth = canvas.width;\n this.#canvasHeight = canvas.height;\n this.#initializeBBoxes(operationsCount);\n if (recordDebugMetadata) {\n this.#debugMetadata = new Map();\n }\n }\n growOperationsCount(operationsCount) {\n if (operationsCount >= this.#bboxes.length) {\n this.#initializeBBoxes(operationsCount, this.#bboxes);\n }\n }\n #initializeBBoxes(operationsCount, oldBBoxes) {\n const buffer = new ArrayBuffer(operationsCount * 4);\n this.#bboxesCoords = new Uint8ClampedArray(buffer);\n this.#bboxes = new Uint32Array(buffer);\n if (oldBBoxes && oldBBoxes.length > 0) {\n this.#bboxes.set(oldBBoxes);\n this.#bboxes.fill(EMPTY_BBOX, oldBBoxes.length);\n } else {\n this.#bboxes.fill(EMPTY_BBOX);\n }\n }\n save(opIdx) {\n this.#simple = {\n __proto__: this.#simple\n };\n this.#incremental = {\n __proto__: this.#incremental,\n transform: {\n __proto__: this.#incremental.transform\n },\n moveText: {\n __proto__: this.#incremental.moveText\n },\n sameLineText: {\n __proto__: this.#incremental.sameLineText\n },\n [FORCED_DEPENDENCY_LABEL]: {\n __proto__: this.#incremental[FORCED_DEPENDENCY_LABEL]\n }\n };\n this.#clipBox = {\n __proto__: this.#clipBox\n };\n this.#savesStack.push(opIdx);\n return this;\n }\n restore(opIdx) {\n const previous = Object.getPrototypeOf(this.#simple);\n if (previous === null) {\n return this;\n }\n this.#simple = previous;\n this.#incremental = Object.getPrototypeOf(this.#incremental);\n this.#clipBox = Object.getPrototypeOf(this.#clipBox);\n const lastSave = this.#savesStack.pop();\n if (lastSave !== undefined) {\n ensureDebugMetadata(this.#debugMetadata, opIdx)?.dependencies.add(lastSave);\n this.#bboxes[opIdx] = this.#bboxes[lastSave];\n }\n return this;\n }\n recordOpenMarker(idx) {\n this.#savesStack.push(idx);\n return this;\n }\n getOpenMarker() {\n if (this.#savesStack.length === 0) {\n return null;\n }\n return this.#savesStack.at(-1);\n }\n recordCloseMarker(opIdx) {\n const lastSave = this.#savesStack.pop();\n if (lastSave !== undefined) {\n ensureDebugMetadata(this.#debugMetadata, opIdx)?.dependencies.add(lastSave);\n this.#bboxes[opIdx] = this.#bboxes[lastSave];\n }\n return this;\n }\n beginMarkedContent(opIdx) {\n this.#markedContentStack.push(opIdx);\n return this;\n }\n endMarkedContent(opIdx) {\n const lastSave = this.#markedContentStack.pop();\n if (lastSave !== undefined) {\n ensureDebugMetadata(this.#debugMetadata, opIdx)?.dependencies.add(lastSave);\n this.#bboxes[opIdx] = this.#bboxes[lastSave];\n }\n return this;\n }\n pushBaseTransform(ctx) {\n this.#baseTransformStack.push(Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform()));\n return this;\n }\n popBaseTransform() {\n if (this.#baseTransformStack.length > 1) {\n this.#baseTransformStack.pop();\n }\n return this;\n }\n recordSimpleData(name, idx) {\n this.#simple[name] = idx;\n return this;\n }\n recordIncrementalData(name, idx) {\n this.#incremental[name].push(idx);\n return this;\n }\n resetIncrementalData(name, idx) {\n this.#incremental[name].length = 0;\n return this;\n }\n recordNamedData(name, idx) {\n this.#namedDependencies.set(name, idx);\n return this;\n }\n recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n this.#simple[name] = this.#namedDependencies.get(depName) ?? fallbackIdx;\n }\n recordFutureForcedDependency(name, idx) {\n this.recordIncrementalData(FORCED_DEPENDENCY_LABEL, idx);\n return this;\n }\n inheritSimpleDataAsFutureForcedDependencies(names) {\n for (const name of names) {\n if (name in this.#simple) {\n this.recordFutureForcedDependency(name, this.#simple[name]);\n }\n }\n return this;\n }\n inheritPendingDependenciesAsFutureForcedDependencies() {\n for (const dep of this.#pendingDependencies) {\n this.recordFutureForcedDependency(FORCED_DEPENDENCY_LABEL, dep);\n }\n return this;\n }\n resetBBox(idx) {\n if (this.#pendingBBoxIdx !== idx) {\n this.#pendingBBoxIdx = idx;\n this.#pendingBBox[0] = Infinity;\n this.#pendingBBox[1] = Infinity;\n this.#pendingBBox[2] = -Infinity;\n this.#pendingBBox[3] = -Infinity;\n }\n return this;\n }\n recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());\n const clipBox = [Infinity, Infinity, -Infinity, -Infinity];\n Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, clipBox);\n const intersection = Util.intersect(this.#clipBox, clipBox);\n if (intersection) {\n this.#clipBox[0] = intersection[0];\n this.#clipBox[1] = intersection[1];\n this.#clipBox[2] = intersection[2];\n this.#clipBox[3] = intersection[3];\n } else {\n this.#clipBox[0] = this.#clipBox[1] = Infinity;\n this.#clipBox[2] = this.#clipBox[3] = -Infinity;\n }\n return this;\n }\n recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n const clipBox = this.#clipBox;\n if (clipBox[0] === Infinity) {\n return this;\n }\n const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());\n if (clipBox[0] === -Infinity) {\n Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, this.#pendingBBox);\n return this;\n }\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, bbox);\n this.#pendingBBox[0] = Math.min(this.#pendingBBox[0], Math.max(bbox[0], clipBox[0]));\n this.#pendingBBox[1] = Math.min(this.#pendingBBox[1], Math.max(bbox[1], clipBox[1]));\n this.#pendingBBox[2] = Math.max(this.#pendingBBox[2], Math.min(bbox[2], clipBox[2]));\n this.#pendingBBox[3] = Math.max(this.#pendingBBox[3], Math.min(bbox[3], clipBox[3]));\n return this;\n }\n recordCharacterBBox(idx, ctx, font, scale = 1, x = 0, y = 0, getMeasure) {\n const fontBBox = font.bbox;\n let isBBoxTrustworthy;\n let computedBBox;\n if (fontBBox) {\n isBBoxTrustworthy = fontBBox[2] !== fontBBox[0] && fontBBox[3] !== fontBBox[1] && this.#fontBBoxTrustworthy.get(font);\n if (isBBoxTrustworthy !== false) {\n computedBBox = [0, 0, 0, 0];\n Util.axialAlignedBoundingBox(fontBBox, font.fontMatrix, computedBBox);\n if (scale !== 1 || x !== 0 || y !== 0) {\n Util.scaleMinMax([scale, 0, 0, -scale, x, y], computedBBox);\n }\n if (isBBoxTrustworthy) {\n return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);\n }\n }\n }\n if (!getMeasure) {\n return this.recordFullPageBBox(idx);\n }\n const measure = getMeasure();\n if (fontBBox && computedBBox && isBBoxTrustworthy === undefined) {\n isBBoxTrustworthy = computedBBox[0] <= x - measure.actualBoundingBoxLeft && computedBBox[2] >= x + measure.actualBoundingBoxRight && computedBBox[1] <= y - measure.actualBoundingBoxAscent && computedBBox[3] >= y + measure.actualBoundingBoxDescent;\n this.#fontBBoxTrustworthy.set(font, isBBoxTrustworthy);\n if (isBBoxTrustworthy) {\n return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);\n }\n }\n return this.recordBBox(idx, ctx, x - measure.actualBoundingBoxLeft, x + measure.actualBoundingBoxRight, y - measure.actualBoundingBoxAscent, y + measure.actualBoundingBoxDescent);\n }\n recordFullPageBBox(idx) {\n this.#pendingBBox[0] = Math.max(0, this.#clipBox[0]);\n this.#pendingBBox[1] = Math.max(0, this.#clipBox[1]);\n this.#pendingBBox[2] = Math.min(this.#canvasWidth, this.#clipBox[2]);\n this.#pendingBBox[3] = Math.min(this.#canvasHeight, this.#clipBox[3]);\n return this;\n }\n getSimpleIndex(dependencyName) {\n return this.#simple[dependencyName];\n }\n recordDependencies(idx, dependencyNames) {\n const pendingDependencies = this.#pendingDependencies;\n const simple = this.#simple;\n const incremental = this.#incremental;\n for (const name of dependencyNames) {\n if (name in this.#simple) {\n pendingDependencies.add(simple[name]);\n } else if (name in incremental) {\n incremental[name].forEach(pendingDependencies.add, pendingDependencies);\n }\n }\n return this;\n }\n recordNamedDependency(idx, name) {\n if (this.#namedDependencies.has(name)) {\n this.#pendingDependencies.add(this.#namedDependencies.get(name));\n }\n return this;\n }\n recordOperation(idx, preserve = false) {\n this.recordDependencies(idx, [FORCED_DEPENDENCY_LABEL]);\n if (this.#debugMetadata) {\n const metadata = ensureDebugMetadata(this.#debugMetadata, idx);\n const {\n dependencies\n } = metadata;\n this.#pendingDependencies.forEach(dependencies.add, dependencies);\n this.#savesStack.forEach(dependencies.add, dependencies);\n this.#markedContentStack.forEach(dependencies.add, dependencies);\n dependencies.delete(idx);\n metadata.isRenderingOperation = true;\n }\n if (this.#pendingBBoxIdx === idx) {\n const minX = floor(this.#pendingBBox[0] * 256 / this.#canvasWidth);\n const minY = floor(this.#pendingBBox[1] * 256 / this.#canvasHeight);\n const maxX = ceil(this.#pendingBBox[2] * 256 / this.#canvasWidth);\n const maxY = ceil(this.#pendingBBox[3] * 256 / this.#canvasHeight);\n expandBBox(this.#bboxesCoords, idx, minX, minY, maxX, maxY);\n for (const depIdx of this.#pendingDependencies) {\n if (depIdx !== idx) {\n expandBBox(this.#bboxesCoords, depIdx, minX, minY, maxX, maxY);\n }\n }\n for (const saveIdx of this.#savesStack) {\n if (saveIdx !== idx) {\n expandBBox(this.#bboxesCoords, saveIdx, minX, minY, maxX, maxY);\n }\n }\n for (const saveIdx of this.#markedContentStack) {\n if (saveIdx !== idx) {\n expandBBox(this.#bboxesCoords, saveIdx, minX, minY, maxX, maxY);\n }\n }\n if (!preserve) {\n this.#pendingDependencies.clear();\n this.#pendingBBoxIdx = -1;\n }\n }\n return this;\n }\n recordShowTextOperation(idx, preserve = false) {\n const deps = Array.from(this.#pendingDependencies);\n this.recordOperation(idx, preserve);\n this.recordIncrementalData(\"sameLineText\", idx);\n for (const dep of deps) {\n this.recordIncrementalData(\"sameLineText\", dep);\n }\n return this;\n }\n bboxToClipBoxDropOperation(idx, preserve = false) {\n if (this.#pendingBBoxIdx === idx) {\n this.#pendingBBoxIdx = -1;\n this.#clipBox[0] = Math.max(this.#clipBox[0], this.#pendingBBox[0]);\n this.#clipBox[1] = Math.max(this.#clipBox[1], this.#pendingBBox[1]);\n this.#clipBox[2] = Math.min(this.#clipBox[2], this.#pendingBBox[2]);\n this.#clipBox[3] = Math.min(this.#clipBox[3], this.#pendingBBox[3]);\n if (!preserve) {\n this.#pendingDependencies.clear();\n }\n }\n return this;\n }\n _takePendingDependencies() {\n const pendingDependencies = this.#pendingDependencies;\n this.#pendingDependencies = new Set();\n return pendingDependencies;\n }\n _extractOperation(idx) {\n const operation = this.#operations.get(idx);\n this.#operations.delete(idx);\n return operation;\n }\n _pushPendingDependencies(dependencies) {\n for (const dep of dependencies) {\n this.#pendingDependencies.add(dep);\n }\n }\n take() {\n this.#fontBBoxTrustworthy.clear();\n return new BBoxReader(this.#bboxes, this.#bboxesCoords);\n }\n takeDebugMetadata() {\n return this.#debugMetadata;\n }\n}\nclass CanvasNestedDependencyTracker {\n #dependencyTracker;\n #opIdx;\n #ignoreBBoxes;\n #nestingLevel = 0;\n #savesLevel = 0;\n constructor(dependencyTracker, opIdx, ignoreBBoxes) {\n if (dependencyTracker instanceof CanvasNestedDependencyTracker && dependencyTracker.#ignoreBBoxes === !!ignoreBBoxes) {\n return dependencyTracker;\n }\n this.#dependencyTracker = dependencyTracker;\n this.#opIdx = opIdx;\n this.#ignoreBBoxes = !!ignoreBBoxes;\n }\n growOperationsCount() {\n throw new Error(\"Unreachable\");\n }\n save(opIdx) {\n this.#savesLevel++;\n this.#dependencyTracker.save(this.#opIdx);\n return this;\n }\n restore(opIdx) {\n if (this.#savesLevel > 0) {\n this.#dependencyTracker.restore(this.#opIdx);\n this.#savesLevel--;\n }\n return this;\n }\n recordOpenMarker(idx) {\n this.#nestingLevel++;\n return this;\n }\n getOpenMarker() {\n return this.#nestingLevel > 0 ? this.#opIdx : this.#dependencyTracker.getOpenMarker();\n }\n recordCloseMarker(idx) {\n this.#nestingLevel--;\n return this;\n }\n beginMarkedContent(opIdx) {\n return this;\n }\n endMarkedContent(opIdx) {\n return this;\n }\n pushBaseTransform(ctx) {\n this.#dependencyTracker.pushBaseTransform(ctx);\n return this;\n }\n popBaseTransform() {\n this.#dependencyTracker.popBaseTransform();\n return this;\n }\n recordSimpleData(name, idx) {\n this.#dependencyTracker.recordSimpleData(name, this.#opIdx);\n return this;\n }\n recordIncrementalData(name, idx) {\n this.#dependencyTracker.recordIncrementalData(name, this.#opIdx);\n return this;\n }\n resetIncrementalData(name, idx) {\n this.#dependencyTracker.resetIncrementalData(name, this.#opIdx);\n return this;\n }\n recordNamedData(name, idx) {\n return this;\n }\n recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n this.#dependencyTracker.recordSimpleDataFromNamed(name, depName, this.#opIdx);\n return this;\n }\n recordFutureForcedDependency(name, idx) {\n this.#dependencyTracker.recordFutureForcedDependency(name, this.#opIdx);\n return this;\n }\n inheritSimpleDataAsFutureForcedDependencies(names) {\n this.#dependencyTracker.inheritSimpleDataAsFutureForcedDependencies(names);\n return this;\n }\n inheritPendingDependenciesAsFutureForcedDependencies() {\n this.#dependencyTracker.inheritPendingDependenciesAsFutureForcedDependencies();\n return this;\n }\n resetBBox(idx) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.resetBBox(this.#opIdx);\n }\n return this;\n }\n recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordClipBox(this.#opIdx, ctx, minX, maxX, minY, maxY);\n }\n return this;\n }\n recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordBBox(this.#opIdx, ctx, minX, maxX, minY, maxY);\n }\n return this;\n }\n recordCharacterBBox(idx, ctx, font, scale, x, y, getMeasure) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordCharacterBBox(this.#opIdx, ctx, font, scale, x, y, getMeasure);\n }\n return this;\n }\n recordFullPageBBox(idx) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordFullPageBBox(this.#opIdx);\n }\n return this;\n }\n getSimpleIndex(dependencyName) {\n return this.#dependencyTracker.getSimpleIndex(dependencyName);\n }\n recordDependencies(idx, dependencyNames) {\n this.#dependencyTracker.recordDependencies(this.#opIdx, dependencyNames);\n return this;\n }\n recordNamedDependency(idx, name) {\n this.#dependencyTracker.recordNamedDependency(this.#opIdx, name);\n return this;\n }\n recordOperation(idx) {\n this.#dependencyTracker.recordOperation(this.#opIdx, true);\n return this;\n }\n recordShowTextOperation(idx) {\n this.#dependencyTracker.recordShowTextOperation(this.#opIdx, true);\n return this;\n }\n bboxToClipBoxDropOperation(idx) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.bboxToClipBoxDropOperation(this.#opIdx, true);\n }\n return this;\n }\n take() {\n throw new Error(\"Unreachable\");\n }\n takeDebugMetadata() {\n throw new Error(\"Unreachable\");\n }\n}\nconst Dependencies = {\n stroke: [\"path\", \"transform\", \"filter\", \"strokeColor\", \"strokeAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"dash\"],\n fill: [\"path\", \"transform\", \"filter\", \"fillColor\", \"fillAlpha\", \"globalCompositeOperation\", \"SMask\"],\n imageXObject: [\"transform\", \"SMask\", \"filter\", \"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\"],\n rawFillPath: [\"filter\", \"fillColor\", \"fillAlpha\"],\n showText: [\"transform\", \"leading\", \"charSpacing\", \"wordSpacing\", \"hScale\", \"textRise\", \"moveText\", \"textMatrix\", \"font\", \"fontObj\", \"filter\", \"fillColor\", \"textRenderingMode\", \"SMask\", \"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\", \"sameLineText\"],\n transform: [\"transform\"],\n transformAndFill: [\"transform\", \"fillColor\"]\n};\n\n;// ./src/display/pattern_helper.js\n\n\n\n\n\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\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 isModifyingCurrentTransform() {\n return false;\n }\n getPattern() {\n 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 isOriginBased() {\n return this._p0[0] === 0 && this._p0[1] === 0 && (!this.isRadial() || this._p1[0] === 0 && this._p1[1] === 0);\n }\n isRadial() {\n return this._type === \"radial\";\n }\n _createGradient(ctx, transform = null) {\n let grad;\n let firstPoint = this._p0;\n let secondPoint = this._p1;\n if (transform) {\n firstPoint = firstPoint.slice();\n secondPoint = secondPoint.slice();\n Util.applyTransform(firstPoint, transform);\n Util.applyTransform(secondPoint, transform);\n }\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(firstPoint[0], firstPoint[1], secondPoint[0], secondPoint[1]);\n } else if (this._type === \"radial\") {\n let r0 = this._r0;\n let r1 = this._r1;\n if (transform) {\n const scale = new Float32Array(2);\n Util.singularValueDecompose2dScale(transform, scale);\n r0 *= scale[0];\n r1 *= scale[0];\n }\n grad = ctx.createRadialGradient(firstPoint[0], firstPoint[1], r0, secondPoint[0], secondPoint[1], 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 if (this.isOriginBased()) {\n let transf = Util.transform(inverse, owner.baseTransform);\n if (this.matrix) {\n transf = Util.transform(transf, this.matrix);\n }\n const precision = 1e-3;\n const n1 = Math.hypot(transf[0], transf[1]);\n const n2 = Math.hypot(transf[2], transf[3]);\n const ps = (transf[0] * transf[2] + transf[1] * transf[3]) / (n1 * n2);\n if (Math.abs(ps) < precision) {\n if (this.isRadial()) {\n if (Math.abs(n1 - n2) < precision) {\n return this._createGradient(ctx, transf);\n }\n } else {\n return this._createGradient(ctx, transf);\n }\n }\n }\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, 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);\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.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 MeshFigureType.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 MeshFigureType.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[6];\n this._background = IR[7];\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);\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 isModifyingCurrentTransform() {\n return true;\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n const scale = new Float32Array(2);\n if (pathType === PathType.SHADING) {\n Util.singularValueDecompose2dScale(getCurrentTransform(ctx), scale);\n } else if (this.matrix) {\n Util.singularValueDecompose2dScale(this.matrix, scale);\n const [matrixScaleX, matrixScaleY] = scale;\n Util.singularValueDecompose2dScale(owner.baseTransform, scale);\n scale[0] *= matrixScaleX;\n scale[1] *= matrixScaleY;\n } else {\n Util.singularValueDecompose2dScale(owner.baseTransform, scale);\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, ctx, canvasGraphicsFactory, baseTransform) {\n this.color = IR[1];\n this.operatorList = IR[2];\n this.matrix = IR[3];\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.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner, opIdx) {\n const {\n bbox,\n operatorList,\n paintType,\n tilingType,\n color,\n canvasGraphicsFactory\n } = this;\n let {\n xstep,\n ystep\n } = this;\n xstep = Math.abs(xstep);\n ystep = Math.abs(ystep);\n info(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const width = x1 - x0;\n const height = y1 - y0;\n const scale = new Float32Array(2);\n Util.singularValueDecompose2dScale(this.matrix, scale);\n const [matrixScaleX, matrixScaleY] = scale;\n Util.singularValueDecompose2dScale(this.baseTransform, scale);\n const combinedScaleX = matrixScaleX * scale[0];\n const combinedScaleY = matrixScaleY * scale[1];\n let canvasWidth = width,\n canvasHeight = height,\n redrawHorizontally = false,\n redrawVertically = false;\n const xScaledStep = Math.ceil(xstep * combinedScaleX);\n const yScaledStep = Math.ceil(ystep * combinedScaleY);\n const xScaledWidth = Math.ceil(width * combinedScaleX);\n const yScaledHeight = Math.ceil(height * combinedScaleY);\n if (xScaledStep >= xScaledWidth) {\n canvasWidth = xstep;\n } else {\n redrawHorizontally = true;\n }\n if (yScaledStep >= yScaledHeight) {\n canvasHeight = ystep;\n } else {\n redrawVertically = true;\n }\n const dimx = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx, opIdx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n tmpCtx.translate(-dimx.scale * x0, -dimy.scale * y0);\n graphics.transform(0, dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n graphics.dependencyTracker?.save();\n this.clipBbox(graphics, x0, y0, x1, y1);\n graphics.baseTransform = getCurrentTransform(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n graphics.dependencyTracker?.restore();\n tmpCtx.restore();\n if (redrawHorizontally || redrawVertically) {\n const image = tmpCanvas.canvas;\n if (redrawHorizontally) {\n canvasWidth = xstep;\n }\n if (redrawVertically) {\n canvasHeight = ystep;\n }\n const dimx2 = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy2 = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n const xSize = dimx2.size;\n const ySize = dimy2.size;\n const tmpCanvas2 = owner.cachedCanvases.getCanvas(\"pattern-workaround\", xSize, ySize);\n const tmpCtx2 = tmpCanvas2.context;\n const ii = redrawHorizontally ? Math.floor(width / xstep) : 0;\n const jj = redrawVertically ? Math.floor(height / ystep) : 0;\n for (let i = 0; i <= ii; i++) {\n for (let j = 0; j <= jj; j++) {\n tmpCtx2.drawImage(image, xSize * i, ySize * j, xSize, ySize, 0, 0, xSize, ySize);\n }\n }\n return {\n canvas: tmpCanvas2.canvas,\n scaleX: dimx2.scale,\n scaleY: dimy2.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\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 Util.axialAlignedBoundingBox([x0, y0, x1, y1], getCurrentTransform(graphics.ctx), graphics.current.minMax);\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 {\n fillStyle,\n strokeStyle\n } = this.ctx;\n context.fillStyle = current.fillColor = fillStyle;\n context.strokeStyle = current.strokeColor = strokeStyle;\n break;\n case PaintType.UNCOLORED:\n context.fillStyle = context.strokeStyle = color;\n current.fillColor = current.strokeColor = color;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n isModifyingCurrentTransform() {\n return false;\n }\n getPattern(ctx, owner, inverse, pathType, opIdx) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner, opIdx);\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}\n\n;// ./src/shared/image_utils.js\n/* unused harmony import specifier */ var image_utils_ImageKind;\n/* unused harmony import specifier */ var image_utils_FeatureTest;\n\n\n\n\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case image_utils_ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case image_utils_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 = 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 xorMask = zeroMapping ^ oneMapping;\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, destPos += 8) {\n const elem = src[srcPos];\n dest[destPos] = zeroMapping ^ -(elem >> 7 & 1) & xorMask;\n dest[destPos + 1] = zeroMapping ^ -(elem >> 6 & 1) & xorMask;\n dest[destPos + 2] = zeroMapping ^ -(elem >> 5 & 1) & xorMask;\n dest[destPos + 3] = zeroMapping ^ -(elem >> 4 & 1) & xorMask;\n dest[destPos + 4] = zeroMapping ^ -(elem >> 3 & 1) & xorMask;\n dest[destPos + 5] = zeroMapping ^ -(elem >> 2 & 1) & xorMask;\n dest[destPos + 6] = zeroMapping ^ -(elem >> 1 & 1) & xorMask;\n dest[destPos + 7] = zeroMapping ^ -(elem & 1) & xorMask;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; ++j, ++destPos) {\n dest[destPos] = zeroMapping ^ -(elem >> 7 - j & 1) & xorMask;\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 len = width * height * 3;\n const len32 = len >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n const alphaMask = image_utils_FeatureTest.isLittleEndian ? 0xff000000 : 0xff;\n if (image_utils_FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i],\n s2 = src32[i + 1],\n s3 = src32[i + 2];\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | alphaMask;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | alphaMask;\n dest[destPos + 3] = s3 >>> 8 | alphaMask;\n }\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | alphaMask;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i],\n s2 = src32[i + 1],\n s3 = src32[i + 2];\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | alphaMask;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | alphaMask;\n dest[destPos + 3] = s3 << 8 | alphaMask;\n }\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | alphaMask;\n }\n }\n return {\n srcPos: srcPos + len,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (image_utils_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;// ./src/display/canvas.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst FULL_CHUNK_HEIGHT = 16;\nconst SCALE_MATRIX = new DOMMatrix();\nconst XY = new Float32Array(2);\nconst MIN_MAX_INIT = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]);\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 () {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function () {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function (x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function (x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function (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 (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 () {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function (angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function (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] = 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}\nclass CanvasExtraState {\n alphaIsShape = false;\n fontSize = 0;\n fontSizeScale = 1;\n textMatrix = null;\n textMatrixScale = 1;\n fontMatrix = FONT_IDENTITY_MATRIX;\n leading = 0;\n x = 0;\n y = 0;\n lineX = 0;\n lineY = 0;\n charSpacing = 0;\n wordSpacing = 0;\n textHScale = 1;\n textRenderingMode = TextRenderingMode.FILL;\n textRise = 0;\n fillColor = \"#000000\";\n strokeColor = \"#000000\";\n patternFill = false;\n patternStroke = false;\n fillAlpha = 1;\n strokeAlpha = 1;\n lineWidth = 1;\n activeSMask = null;\n transferMaps = \"none\";\n constructor(width, height, preInit) {\n preInit?.(this);\n this.clipBox = new Float32Array([0, 0, width, height]);\n this.minMax = MIN_MAX_INIT.slice();\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n clone.minMax = this.minMax.slice();\n return clone;\n }\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = this.minMax.slice();\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n Util.singularValueDecompose2dScale(transform, XY);\n const xStrokePad = XY[0] * this.lineWidth / 2;\n const yStrokePad = XY[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.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minMax[0] === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox.set(box, 0);\n this.minMax.set(MIN_MAX_INIT, 0);\n }\n getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n return Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (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 === 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 = 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 === 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 === 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 } = 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 const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n if (interpolate) {\n return true;\n }\n Util.singularValueDecompose2dScale(transform, XY);\n const actualScale = Math.fround(OutputScale.pixelRatio * PixelsPerInch.PDF_TO_CSS_UNITS);\n return XY[0] <= actualScale && XY[1] <= actualScale;\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, dependencyTracker) {\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.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\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 this.dependencyTracker = dependencyTracker ?? null;\n }\n getObject(opIdx, data, fallback = null) {\n if (typeof data === \"string\") {\n this.dependencyTracker?.recordNamedDependency(opIdx, data);\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(...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 = getCurrentTransform(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper, operationsFilter) {\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, fnArgs;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n if (!operationsFilter || operationsFilter(i)) {\n fnId = fnArray[i];\n fnArgs = argsArray[i] ?? null;\n if (fnId !== OPS.dependency) {\n if (fnArgs === null) {\n this[fnId](i);\n } else {\n this[fnId](i, ...fnArgs);\n }\n } else {\n for (const depObjId of fnArgs) {\n this.dependencyTracker?.recordNamedData(depObjId, 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 }\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.current.activeSMask = null;\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 ?? img.displayWidth;\n const height = img.height ?? img.displayHeight;\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(opIdx, 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 = 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.getOrInsertComputed(mainKey, makeMap);\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 this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);\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.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const minMax = MIN_MAX_INIT.slice();\n Util.axialAlignedBoundingBox([0, 0, width, height], maskToCanvas, minMax);\n const [minX, minY, maxX, maxY] = minMax;\n const drawnWidth = Math.round(maxX - minX) || 1;\n const drawnHeight = Math.round(maxY - minY) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = minX;\n const offsetY = minY;\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(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.transform(getCurrentTransformInverse(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL, opIdx) : 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 this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(opIdx, width) {\n this.dependencyTracker?.recordSimpleData(\"lineWidth\", opIdx);\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(opIdx, style) {\n this.dependencyTracker?.recordSimpleData(\"lineCap\", opIdx);\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(opIdx, style) {\n this.dependencyTracker?.recordSimpleData(\"lineJoin\", opIdx);\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(opIdx, limit) {\n this.dependencyTracker?.recordSimpleData(\"miterLimit\", opIdx);\n this.ctx.miterLimit = limit;\n }\n setDash(opIdx, dashArray, dashPhase) {\n this.dependencyTracker?.recordSimpleData(\"dash\", opIdx);\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(opIdx, intent) {}\n setFlatness(opIdx, flatness) {}\n setGState(opIdx, states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(opIdx, value);\n break;\n case \"LC\":\n this.setLineCap(opIdx, value);\n break;\n case \"LJ\":\n this.setLineJoin(opIdx, value);\n break;\n case \"ML\":\n this.setMiterLimit(opIdx, value);\n break;\n case \"D\":\n this.setDash(opIdx, value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(opIdx, value);\n break;\n case \"FL\":\n this.setFlatness(opIdx, value);\n break;\n case \"Font\":\n this.setFont(opIdx, value[0], value[1]);\n break;\n case \"CA\":\n this.dependencyTracker?.recordSimpleData(\"strokeAlpha\", opIdx);\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.dependencyTracker?.recordSimpleData(\"fillAlpha\", opIdx);\n this.ctx.globalAlpha = this.current.fillAlpha = value;\n break;\n case \"BM\":\n this.dependencyTracker?.recordSimpleData(\"globalCompositeOperation\", opIdx);\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.dependencyTracker?.recordSimpleData(\"SMask\", opIdx);\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.dependencyTracker?.recordSimpleData(\"filter\", opIdx);\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(opIdx) {\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 const ctx = this.ctx = scratchCanvas.context;\n ctx.setTransform(this.suspendedCtx.getTransform());\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState(opIdx, [[\"BM\", \"source-over\"]]);\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 this.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 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 this.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 }\n genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n let maskCanvas = maskCtx.canvas;\n let maskX = layerOffsetX - maskOffsetX;\n let maskY = layerOffsetY - maskOffsetY;\n if (backdrop) {\n if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {\n const canvas = this.cachedCanvases.getCanvas(\"maskExtension\", width, height);\n const ctx = canvas.context;\n ctx.drawImage(maskCanvas, -maskX, -maskY);\n ctx.globalCompositeOperation = \"destination-atop\";\n ctx.fillStyle = backdrop;\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = \"source-over\";\n maskCanvas = canvas.canvas;\n maskX = maskY = 0;\n } else {\n maskCtx.save();\n maskCtx.globalAlpha = 1;\n maskCtx.setTransform(1, 0, 0, 1, 0, 0);\n const clip = new Path2D();\n clip.rect(maskX, maskY, width, height);\n maskCtx.clip(clip);\n maskCtx.globalCompositeOperation = \"destination-atop\";\n maskCtx.fillStyle = backdrop;\n maskCtx.fillRect(maskX, maskY, width, height);\n maskCtx.restore();\n }\n }\n layerCtx.save();\n layerCtx.globalAlpha = 1;\n layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n if (subtype === \"Alpha\" && transferMap) {\n layerCtx.filter = this.filterFactory.addAlphaFilter(transferMap);\n } else if (subtype === \"Luminosity\") {\n layerCtx.filter = this.filterFactory.addLuminosityFilter(transferMap);\n }\n const clip = new Path2D();\n clip.rect(layerOffsetX, layerOffsetY, width, height);\n layerCtx.clip(clip);\n layerCtx.globalCompositeOperation = \"destination-in\";\n layerCtx.drawImage(maskCanvas, maskX, maskY, width, height, layerOffsetX, layerOffsetY, width, height);\n layerCtx.restore();\n }\n save(opIdx) {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n }\n this.ctx.save();\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.dependencyTracker?.save(opIdx);\n }\n restore(opIdx) {\n this.dependencyTracker?.restore(opIdx);\n if (this.stateStack.length === 0) {\n if (this.inSMaskMode) {\n this.endSMaskMode();\n }\n return;\n }\n this.current = this.stateStack.pop();\n this.ctx.restore();\n if (this.inSMaskMode) {\n copyCtxState(this.suspendedCtx, this.ctx);\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n transform(opIdx, a, b, c, d, e, f) {\n this.dependencyTracker?.recordIncrementalData(\"transform\", opIdx);\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(opIdx, op, data, minMax) {\n let [path] = data;\n if (!minMax) {\n path ||= data[0] = new Path2D();\n this[op](opIdx, path);\n return;\n }\n if (this.dependencyTracker !== null) {\n const outerExtraSize = op === OPS.stroke ? this.current.lineWidth / 2 : 0;\n this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx, this.ctx, minMax[0] - outerExtraSize, minMax[2] + outerExtraSize, minMax[1] - outerExtraSize, minMax[3] + outerExtraSize).recordDependencies(opIdx, [\"transform\"]);\n }\n if (!(path instanceof Path2D)) {\n path = data[0] = makePathFromDrawOPS(path);\n }\n Util.axialAlignedBoundingBox(minMax, getCurrentTransform(this.ctx), this.current.minMax);\n this[op](opIdx, path);\n this._pathStartIdx = opIdx;\n }\n closePath(opIdx) {\n this.ctx.closePath();\n }\n stroke(opIdx, path, 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 const baseTransform = strokeColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);\n if (baseTransform) {\n const newPath = new Path2D();\n newPath.addPath(path, ctx.getTransform().invertSelf().multiplySelf(baseTransform));\n path = newPath;\n }\n this.rescaleAndStroke(path, false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(path, true);\n }\n }\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.stroke);\n if (consumePath) {\n this.consumePath(opIdx, path, this.current.getClippedPathBoundingBox(PathType.STROKE, getCurrentTransform(this.ctx)));\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke(opIdx, path) {\n this.stroke(opIdx, path);\n }\n fill(opIdx, path, 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 const baseTransform = fillColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;\n this.dependencyTracker?.save(opIdx);\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);\n if (baseTransform) {\n const newPath = new Path2D();\n newPath.addPath(path, ctx.getTransform().invertSelf().multiplySelf(baseTransform));\n path = newPath;\n }\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(path, \"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill(path);\n }\n }\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.fill);\n if (needRestore) {\n ctx.restore();\n this.dependencyTracker?.restore(opIdx);\n }\n if (consumePath) {\n this.consumePath(opIdx, path, intersect);\n }\n }\n eoFill(opIdx, path) {\n this.pendingEOFill = true;\n this.fill(opIdx, path);\n }\n fillStroke(opIdx, path) {\n this.fill(opIdx, path, false);\n this.stroke(opIdx, path, false);\n this.consumePath(opIdx, path);\n }\n eoFillStroke(opIdx, path) {\n this.pendingEOFill = true;\n this.fillStroke(opIdx, path);\n }\n closeFillStroke(opIdx, path) {\n this.fillStroke(opIdx, path);\n }\n closeEOFillStroke(opIdx, path) {\n this.pendingEOFill = true;\n this.fillStroke(opIdx, path);\n }\n endPath(opIdx, path) {\n this.consumePath(opIdx, path);\n }\n rawFillPath(opIdx, path) {\n this.ctx.fill(path);\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.rawFillPath).recordOperation(opIdx);\n }\n clip(opIdx) {\n this.dependencyTracker?.recordFutureForcedDependency(\"clipMode\", opIdx);\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip(opIdx) {\n this.dependencyTracker?.recordFutureForcedDependency(\"clipMode\", opIdx);\n this.pendingClip = EO_CLIP;\n }\n beginText(opIdx) {\n this.current.textMatrix = null;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n this.dependencyTracker?.recordOpenMarker(opIdx).resetIncrementalData(\"sameLineText\").resetIncrementalData(\"moveText\", opIdx);\n }\n endText(opIdx) {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (this.dependencyTracker) {\n const {\n dependencyTracker\n } = this;\n if (paths !== undefined) {\n dependencyTracker.recordFutureForcedDependency(\"textClip\", dependencyTracker.getOpenMarker()).recordFutureForcedDependency(\"textClip\", opIdx);\n }\n dependencyTracker.recordCloseMarker(opIdx);\n }\n if (paths !== undefined) {\n const newPath = new Path2D();\n const invTransf = ctx.getTransform().invertSelf();\n for (const {\n transform,\n x,\n y,\n fontSize,\n path\n } of paths) {\n if (!path) {\n continue;\n }\n newPath.addPath(path, new DOMMatrix(transform).preMultiplySelf(invTransf).translate(x, y).scale(fontSize, -fontSize));\n }\n ctx.clip(newPath);\n }\n delete this.pendingTextPaths;\n }\n setCharSpacing(opIdx, spacing) {\n this.dependencyTracker?.recordSimpleData(\"charSpacing\", opIdx);\n this.current.charSpacing = spacing;\n }\n setWordSpacing(opIdx, spacing) {\n this.dependencyTracker?.recordSimpleData(\"wordSpacing\", opIdx);\n this.current.wordSpacing = spacing;\n }\n setHScale(opIdx, scale) {\n this.dependencyTracker?.recordSimpleData(\"hScale\", opIdx);\n this.current.textHScale = scale / 100;\n }\n setLeading(opIdx, leading) {\n this.dependencyTracker?.recordSimpleData(\"leading\", opIdx);\n this.current.leading = -leading;\n }\n setFont(opIdx, fontRefName, size) {\n this.dependencyTracker?.recordSimpleData(\"font\", opIdx).recordSimpleDataFromNamed(\"fontObj\", fontRefName, opIdx);\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 || FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n 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(opIdx, mode) {\n this.dependencyTracker?.recordSimpleData(\"textRenderingMode\", opIdx);\n this.current.textRenderingMode = mode;\n }\n setTextRise(opIdx, rise) {\n this.dependencyTracker?.recordSimpleData(\"textRise\", opIdx);\n this.current.textRise = rise;\n }\n moveText(opIdx, x, y) {\n this.dependencyTracker?.resetIncrementalData(\"sameLineText\").recordIncrementalData(\"moveText\", opIdx);\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(opIdx, x, y) {\n this.setLeading(opIdx, -y);\n this.moveText(opIdx, x, y);\n }\n setTextMatrix(opIdx, matrix) {\n this.dependencyTracker?.resetIncrementalData(\"sameLineText\").recordSimpleData(\"textMatrix\", opIdx);\n const {\n current\n } = this;\n current.textMatrix = matrix;\n current.textMatrixScale = Math.hypot(matrix[0], matrix[1]);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n }\n nextLine(opIdx) {\n this.moveText(opIdx, 0, this.current.leading);\n this.dependencyTracker?.recordIncrementalData(\"moveText\", this.dependencyTracker.getSimpleIndex(\"leading\") ?? opIdx);\n }\n #getScaledPath(path, currentTransform, transform) {\n const newPath = new Path2D();\n newPath.addPath(path, new DOMMatrix(transform).invertSelf().multiplySelf(currentTransform));\n return newPath;\n }\n paintChar(opIdx, character, x, y, patternFillTransform, patternStrokeTransform) {\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 & TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n const patternStroke = current.patternStroke && !font.missingFile;\n let path;\n if ((font.disableFontFace || isAddToPathSet || patternFill || patternStroke) && !font.missingFile) {\n path = font.getPathGenerator(this.commonObjs, character);\n }\n if (path && (font.disableFontFace || patternFill || patternStroke)) {\n ctx.save();\n ctx.translate(x, y);\n ctx.scale(fontSize, -fontSize);\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font);\n let currentTransform;\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (patternFillTransform) {\n currentTransform = ctx.getTransform();\n ctx.setTransform(...patternFillTransform);\n const scaledPath = this.#getScaledPath(path, currentTransform, patternFillTransform);\n ctx.fill(scaledPath);\n } else {\n ctx.fill(path);\n }\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (patternStrokeTransform) {\n currentTransform ||= ctx.getTransform();\n ctx.setTransform(...patternStrokeTransform);\n const {\n a,\n b,\n c,\n d\n } = currentTransform;\n const invPatternTransform = Util.inverseTransform(patternStrokeTransform);\n const transf = Util.transform([a, b, c, d, 0, 0], invPatternTransform);\n Util.singularValueDecompose2dScale(transf, XY);\n ctx.lineWidth *= Math.max(XY[0], XY[1]) / fontSize;\n ctx.stroke(this.#getScaledPath(path, currentTransform, patternStrokeTransform));\n } else {\n ctx.lineWidth /= fontSize;\n ctx.stroke(path);\n }\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y, () => ctx.measureText(character));\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (this.dependencyTracker) {\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y, () => ctx.measureText(character)).recordDependencies(opIdx, Dependencies.stroke);\n }\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: getCurrentTransform(ctx),\n x,\n y,\n fontSize,\n path\n });\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y);\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 shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(opIdx, glyphs) {\n if (this.dependencyTracker) {\n this.dependencyTracker.recordDependencies(opIdx, Dependencies.showText).resetBBox(opIdx);\n if (this.current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) {\n this.dependencyTracker.recordFutureForcedDependency(\"textClip\", opIdx).inheritPendingDependenciesAsFutureForcedDependencies();\n }\n }\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n this.showType3Text(opIdx, glyphs);\n this.dependencyTracker?.recordShowTextOperation(opIdx);\n return undefined;\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n this.dependencyTracker?.recordOperation(opIdx);\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 === TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n if (current.textMatrix) {\n ctx.transform(...current.textMatrix);\n }\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 patternFillTransform, patternStrokeTransform;\n const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const needsFill = fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE;\n const needsStroke = fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE;\n if (needsFill && current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);\n patternFillTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n if (needsStroke && current.patternStroke) {\n ctx.save();\n const pattern = current.strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);\n patternStrokeTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.strokeStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n if (needsStroke) {\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 const joinedChars = chars.join(\"\");\n ctx.fillText(joinedChars, 0, 0);\n if (this.dependencyTracker !== null) {\n const measure = ctx.measureText(joinedChars);\n this.dependencyTracker.recordBBox(opIdx, this.ctx, -measure.actualBoundingBoxLeft, measure.actualBoundingBoxRight, -measure.actualBoundingBoxAscent, measure.actualBoundingBoxDescent).recordShowTextOperation(opIdx);\n }\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 let measure;\n if (font.remeasure && width > 0) {\n measure = ctx.measureText(character);\n const measuredWidth = measure.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 this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, measure ? {\n bbox: null\n } : font, fontSize / fontSizeScale, scaledX, scaledY, () => measure ?? ctx.measureText(character));\n } else {\n this.paintChar(opIdx, character, scaledX, scaledY, patternFillTransform, patternStrokeTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(opIdx, accent.fontChar, scaledAccentX, scaledAccentY, patternFillTransform, patternStrokeTransform);\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 this.dependencyTracker?.recordShowTextOperation(opIdx);\n return undefined;\n }\n showType3Text(opIdx, 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 || FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === 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 if (current.textMatrix) {\n ctx.transform(...current.textMatrix);\n }\n ctx.translate(current.x, current.y + current.textRise);\n ctx.scale(textHScale, fontDirection);\n const dependencyTracker = this.dependencyTracker;\n this.dependencyTracker = dependencyTracker ? new CanvasNestedDependencyTracker(dependencyTracker, opIdx) : null;\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 warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n } else if (this.contentVisible) {\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const p = [glyph.width, 0];\n Util.applyTransform(p, fontMatrix);\n width = p[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n if (dependencyTracker) {\n this.dependencyTracker = dependencyTracker;\n }\n }\n setCharWidth(opIdx, xWidth, yWidth) {}\n setCharWidthAndBounds(opIdx, xWidth, yWidth, llx, lly, urx, ury) {\n const clip = new Path2D();\n clip.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip(clip);\n this.dependencyTracker?.recordBBox(opIdx, this.ctx, llx, urx, lly, ury).recordClipBox(opIdx, this.ctx, llx, urx, lly, ury);\n this.endPath(opIdx);\n }\n getColorN_Pattern(opIdx, IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: (ctx, renderingOpIdx) => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n }, undefined, undefined, this.dependencyTracker ? new CanvasNestedDependencyTracker(this.dependencyTracker, renderingOpIdx, true) : null)\n };\n pattern = new TilingPattern(IR, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(opIdx, IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN(opIdx, ...args) {\n this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n this.current.strokeColor = this.getColorN_Pattern(opIdx, args);\n this.current.patternStroke = true;\n }\n setFillColorN(opIdx, ...args) {\n this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n this.current.fillColor = this.getColorN_Pattern(opIdx, args);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(opIdx, color) {\n this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n this.ctx.strokeStyle = this.current.strokeColor = color;\n this.current.patternStroke = false;\n }\n setStrokeTransparent(opIdx) {\n this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n this.ctx.strokeStyle = this.current.strokeColor = \"transparent\";\n this.current.patternStroke = false;\n }\n setFillRGBColor(opIdx, color) {\n this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n this.ctx.fillStyle = this.current.fillColor = color;\n this.current.patternFill = false;\n }\n setFillTransparent(opIdx) {\n this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n this.ctx.fillStyle = this.current.fillColor = \"transparent\";\n this.current.patternFill = false;\n }\n _getPattern(opIdx, objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = getShadingPattern(this.getObject(opIdx, objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(opIdx, objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save(opIdx);\n const pattern = this._getPattern(opIdx, objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING, opIdx);\n const inv = getCurrentTransformInverse(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const minMax = MIN_MAX_INIT.slice();\n Util.axialAlignedBoundingBox([0, 0, width, height], inv, minMax);\n const [x0, y0, x1, y1] = minMax;\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.dependencyTracker?.resetBBox(opIdx).recordFullPageBBox(opIdx).recordDependencies(opIdx, Dependencies.transform).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore(opIdx);\n }\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(opIdx, matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save(opIdx);\n this.baseTransformStack.push(this.baseTransform);\n if (matrix) {\n this.transform(opIdx, ...matrix);\n }\n this.baseTransform = getCurrentTransform(this.ctx);\n if (bbox) {\n Util.axialAlignedBoundingBox(bbox, this.baseTransform, this.current.minMax);\n const [x0, y0, x1, y1] = bbox;\n const clip = new Path2D();\n clip.rect(x0, y0, x1 - x0, y1 - y0);\n this.ctx.clip(clip);\n this.dependencyTracker?.recordClipBox(opIdx, this.ctx, x0, x1, y0, y1);\n this.endPath(opIdx);\n }\n }\n paintFormXObjectEnd(opIdx) {\n if (!this.contentVisible) {\n return;\n }\n this.restore(opIdx);\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(opIdx, group) {\n if (!this.contentVisible) {\n return;\n }\n this.save(opIdx);\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n info(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n warn(\"Knockout groups not supported.\");\n }\n const currentTransform = 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 = MIN_MAX_INIT.slice();\n Util.axialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx), bounds);\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n const drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n const drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\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.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n let clip = new Path2D();\n const [x0, y0, x1, y1] = group.bbox;\n clip.rect(x0, y0, x1 - x0, y1 - y0);\n if (group.matrix) {\n const path = new Path2D();\n path.addPath(clip, new DOMMatrix(group.matrix));\n clip = path;\n }\n groupCtx.clip(clip);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n }\n if (!group.smask || this.dependencyTracker) {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies([\"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\"]).pushBaseTransform(currentCtx);\n this.setGState(opIdx, [[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1], [\"TR\", null]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(opIdx, 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 this.dependencyTracker?.popBaseTransform();\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore(opIdx);\n if (this.dependencyTracker) {\n this.ctx.restore();\n }\n } else {\n this.ctx.restore();\n const currentMtx = getCurrentTransform(this.ctx);\n this.restore(opIdx);\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = MIN_MAX_INIT.slice();\n Util.axialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx, dirtyBox);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(opIdx, id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save(opIdx);\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (rect) {\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 Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx), XY);\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(XY[0], 0, 0, -XY[1], 0, height * XY[1]);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.endPath(opIdx);\n const clip = new Path2D();\n clip.rect(rect[0], rect[1], width, height);\n this.ctx.clip(clip);\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(opIdx, ...transform);\n this.transform(opIdx, ...matrix);\n }\n endAnnotation(opIdx) {\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(opIdx, img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(opIdx, img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const mask = this._createMaskCanvas(opIdx, 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 this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, mask.offsetX, mask.offsetX + maskCanvas.width, mask.offsetY, mask.offsetY + maskCanvas.height).recordOperation(opIdx);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(opIdx, img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(opIdx, img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = getCurrentTransform(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(opIdx, img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n this.dependencyTracker?.resetBBox(opIdx);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n ctx.drawImage(mask.canvas, trans[4], trans[5]);\n this.dependencyTracker?.recordBBox(opIdx, this.ctx, trans[4], trans[4] + mask.canvas.width, trans[5], trans[5] + mask.canvas.height);\n }\n ctx.restore();\n this.compose();\n this.dependencyTracker?.recordOperation(opIdx);\n }\n paintImageMaskXObjectGroup(opIdx, 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 this.dependencyTracker?.resetBBox(opIdx).recordDependencies(opIdx, Dependencies.transformAndFill);\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(opIdx, data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx) : 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 this.dependencyTracker?.recordBBox(opIdx, ctx, 0, width, 0, height);\n ctx.restore();\n }\n this.compose();\n this.dependencyTracker?.recordOperation(opIdx);\n }\n paintImageXObject(opIdx, objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(opIdx, objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(opIdx, imgData);\n }\n paintImageXObjectRepeat(opIdx, objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(opIdx, objId);\n if (!imgData) {\n 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(opIdx, 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(opIdx, 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(opIdx);\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\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, getCurrentTransformInverse(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);\n this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, ctx, 0, width, -height, 0).recordDependencies(opIdx, Dependencies.imageXObject).recordOperation(opIdx);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore(opIdx);\n }\n paintInlineImageXObjectGroup(opIdx, 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 this.dependencyTracker?.resetBBox(opIdx);\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 this.dependencyTracker?.recordBBox(opIdx, ctx, 0, 1, -1, 0);\n ctx.restore();\n }\n this.dependencyTracker?.recordOperation(opIdx);\n this.compose();\n }\n paintSolidColorImageMask(opIdx) {\n if (!this.contentVisible) {\n return;\n }\n this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, 0, 1, 0, 1).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(opIdx, tag) {}\n markPointProps(opIdx, tag, properties) {}\n beginMarkedContent(opIdx, tag) {\n this.dependencyTracker?.beginMarkedContent(opIdx);\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(opIdx, tag, properties) {\n this.dependencyTracker?.beginMarkedContent(opIdx);\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(opIdx) {\n this.dependencyTracker?.endMarkedContent(opIdx);\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat(opIdx) {}\n endCompat(opIdx) {}\n consumePath(opIdx, path, 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(path, \"evenodd\");\n } else {\n ctx.clip(path);\n }\n }\n this.pendingClip = null;\n this.dependencyTracker?.bboxToClipBoxDropOperation(opIdx).recordFutureForcedDependency(\"clipPath\", opIdx);\n } else {\n this.dependencyTracker?.recordOperation(opIdx);\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = 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(path, saveRestore) {\n const {\n ctx,\n current: {\n lineWidth\n }\n } = this;\n const [scaleX, scaleY] = this.getScaleForStroking();\n if (scaleX === scaleY) {\n ctx.lineWidth = (lineWidth || 1) * scaleX;\n ctx.stroke(path);\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n SCALE_MATRIX.a = 1 / scaleX;\n SCALE_MATRIX.d = 1 / scaleY;\n const newPath = new Path2D();\n newPath.addPath(path, SCALE_MATRIX);\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.lineWidth = lineWidth || 1;\n ctx.stroke(newPath);\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}\nfor (const op in OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n;// ./src/display/worker_options.js\nclass GlobalWorkerOptions {\n static #port = null;\n static #src = \"\";\n static get workerPort() {\n return this.#port;\n }\n static set workerPort(val) {\n if (!(typeof Worker !== \"undefined\" && val instanceof Worker) && val !== null) {\n throw new Error(\"Invalid `workerPort` type.\");\n }\n this.#port = val;\n }\n static get workerSrc() {\n return this.#src;\n }\n static set workerSrc(val) {\n if (typeof val !== \"string\") {\n throw new Error(\"Invalid `workerSrc` type.\");\n }\n this.#src = val;\n }\n}\n\n;// ./src/display/metadata.js\nclass Metadata {\n #map;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#map = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#map.get(name) ?? null;\n }\n [Symbol.iterator]() {\n return this.#map.entries();\n }\n}\n\n;// ./src/display/optional_content_config.js\n\n\n\n\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #isDisplay = false;\n #isPrint = false;\n #userSet = false;\n #visible = true;\n constructor(renderingIntent, {\n name,\n intent,\n usage,\n rbGroups\n }) {\n this.#isDisplay = !!(renderingIntent & RenderingIntentFlag.DISPLAY);\n this.#isPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n this.name = name;\n this.intent = intent;\n this.usage = usage;\n this.rbGroups = rbGroups;\n }\n get visible() {\n if (this.#userSet) {\n return this.#visible;\n }\n if (!this.#visible) {\n return false;\n }\n const {\n print,\n view\n } = this.usage;\n if (this.#isDisplay) {\n return view?.viewState !== \"OFF\";\n } else if (this.#isPrint) {\n return print?.printState !== \"OFF\";\n }\n return true;\n }\n _setVisible(internal, visible, userSet = false) {\n if (internal !== INTERNAL) {\n unreachable(\"Internal method `_setVisible` called.\");\n }\n this.#userSet = userSet;\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data, renderingIntent = RenderingIntentFlag.DISPLAY) {\n this.renderingIntent = renderingIntent;\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(renderingIntent, group));\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 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 info(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n 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 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 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 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 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 warn(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n warn(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true, preserveRB = true) {\n const group = this.#groups.get(id);\n if (!group) {\n warn(`Optional content group not found: ${id}`);\n return;\n }\n if (preserveRB && visible && group.rbGroups.length) {\n for (const rbGroup of group.rbGroups) {\n for (const otherId of rbGroup) {\n if (otherId !== id) {\n this.#groups.get(otherId)?._setVisible(INTERNAL, false, true);\n }\n }\n }\n }\n group._setVisible(INTERNAL, !!visible, true);\n this.#cachedGetHash = null;\n }\n setOCGState({\n state,\n preserveRB\n }) {\n let operator;\n for (const elem of state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n const group = this.#groups.get(elem);\n if (!group) {\n continue;\n }\n switch (operator) {\n case \"ON\":\n this.setVisibility(elem, true, preserveRB);\n break;\n case \"OFF\":\n this.setVisibility(elem, false, preserveRB);\n break;\n case \"Toggle\":\n this.setVisibility(elem, !group.visible, preserveRB);\n break;\n }\n }\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 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 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 [Symbol.iterator]() {\n return this.#groups.entries();\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js\nvar es_iterator_find = __webpack_require__(116);\n;// ./src/shared/base_pdf_stream.js\n\n\n\n\n\n\n\n\n\nclass BasePDFStream {\n #PDFStreamReader = null;\n #PDFStreamRangeReader = null;\n _fullReader = null;\n _rangeReaders = new Set();\n _source = null;\n constructor(source, PDFStreamReader, PDFStreamRangeReader) {\n this._source = source;\n this.#PDFStreamReader = PDFStreamReader;\n this.#PDFStreamRangeReader = PDFStreamRangeReader;\n }\n get _progressiveDataLength() {\n return this._fullReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullReader, \"BasePDFStream.getFullReader can only be called once.\");\n return this._fullReader = new this.#PDFStreamReader(this);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new this.#PDFStreamRangeReader(this, begin, end);\n this._rangeReaders.add(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullReader?.cancel(reason);\n for (const reader of new Set(this._rangeReaders)) {\n reader.cancel(reason);\n }\n }\n}\nclass BasePDFStreamReader {\n onProgress = null;\n _contentLength = 0;\n _filename = null;\n _headersCapability = Promise.withResolvers();\n _isRangeSupported = false;\n _isStreamingSupported = false;\n _loaded = 0;\n _stream = null;\n constructor(stream) {\n this._stream = stream;\n }\n _callOnProgress() {\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\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 unreachable(\"Abstract method `read` called\");\n }\n cancel(reason) {\n unreachable(\"Abstract method `cancel` called\");\n }\n}\nclass BasePDFStreamRangeReader {\n _stream = null;\n constructor(stream, begin, end) {\n this._stream = stream;\n }\n async read() {\n unreachable(\"Abstract method `read` called\");\n }\n cancel(reason) {\n unreachable(\"Abstract method `cancel` called\");\n }\n}\n\n;// ./src/display/transport_stream.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getArrayBuffer(val) {\n return val instanceof Uint8Array && val.byteLength === val.buffer.byteLength ? val.buffer : new Uint8Array(val).buffer;\n}\nfunction endRequests() {\n for (const capability of this._requests) {\n capability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n}\nclass PDFDataTransportStream extends BasePDFStream {\n _progressiveDone = false;\n _queuedChunks = [];\n constructor(source) {\n super(source, PDFDataTransportStreamReader, PDFDataTransportStreamRangeReader);\n const {\n pdfDataRangeTransport\n } = source;\n const {\n initialData,\n progressiveDone\n } = pdfDataRangeTransport;\n if (initialData?.length > 0) {\n const buffer = getArrayBuffer(initialData);\n this._queuedChunks.push(buffer);\n }\n this._progressiveDone = progressiveDone;\n pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this.#onReceiveData(begin, chunk);\n });\n pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this.#onReceiveData(undefined, chunk);\n });\n pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._fullReader?.progressiveDone();\n this._progressiveDone = true;\n });\n pdfDataRangeTransport.transportReady();\n }\n #onReceiveData(begin, chunk) {\n const buffer = getArrayBuffer(chunk);\n if (begin === undefined) {\n if (this._fullReader) {\n this._fullReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const rangeReader = this._rangeReaders.keys().find(r => r._begin === begin);\n assert(rangeReader, \"#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n rangeReader._enqueue(buffer);\n }\n }\n getFullReader() {\n const reader = super.getFullReader();\n this._queuedChunks = null;\n return reader;\n }\n getRangeReader(begin, end) {\n const reader = super.getRangeReader(begin, end);\n if (reader) {\n reader.onDone = () => this._rangeReaders.delete(reader);\n this._source.pdfDataRangeTransport.requestDataRange(begin, end);\n }\n return reader;\n }\n cancelAllRequests(reason) {\n super.cancelAllRequests(reason);\n this._source.pdfDataRangeTransport.abort();\n }\n}\nclass PDFDataTransportStreamReader extends BasePDFStreamReader {\n #endRequests = endRequests.bind(this);\n _done = false;\n _queuedChunks = null;\n _requests = [];\n constructor(stream) {\n super(stream);\n const {\n pdfDataRangeTransport,\n disableRange,\n disableStream\n } = stream._source;\n const {\n length,\n contentDispositionFilename\n } = pdfDataRangeTransport;\n this._queuedChunks = stream._queuedChunks || [];\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._done = stream._progressiveDone;\n this._contentLength = length;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n if (isPdfFile(contentDispositionFilename)) {\n this._filename = contentDispositionFilename;\n }\n this._headersCapability.resolve();\n const loaded = this._loaded;\n Promise.resolve().then(() => {\n if (loaded > 0 && this._loaded === loaded) {\n this._callOnProgress();\n }\n });\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n this._callOnProgress();\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this.#endRequests();\n }\n progressiveDone() {\n this._done ||= true;\n if (this._queuedChunks.length === 0) {\n this.#endRequests();\n }\n }\n}\nclass PDFDataTransportStreamRangeReader extends BasePDFStreamRangeReader {\n #endRequests = endRequests.bind(this);\n onDone = null;\n _begin = -1;\n _done = false;\n _queuedChunk = null;\n _requests = [];\n constructor(stream, begin, end) {\n super(stream, begin, end);\n this._begin = begin;\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 capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n this.#endRequests();\n }\n this._done = true;\n this.onDone?.();\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this.#endRequests();\n this.onDone?.();\n }\n}\n\n;// ./src/display/content_disposition.js\n\n\n\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 = 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;// ./src/display/network_utils.js\n\n\n\n\nfunction createHeaders(isHttp, httpHeaders) {\n const headers = new Headers();\n if (!isHttp || !httpHeaders || typeof httpHeaders !== \"object\") {\n return headers;\n }\n for (const key in httpHeaders) {\n const val = httpHeaders[key];\n if (val !== undefined) {\n headers.append(key, val);\n }\n }\n return headers;\n}\nfunction getResponseOrigin(url) {\n return URL.parse(url)?.origin ?? null;\n}\nfunction validateRangeRequestCapabilities({\n responseHeaders,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(responseHeaders.get(\"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 (responseHeaders.get(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = responseHeaders.get(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(responseHeaders) {\n const contentDisposition = responseHeaders.get(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if (isPdfFile(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseError(status, url) {\n return new ResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url.href}\".`, status, status === 404 || status === 0 && url.protocol === \"file:\");\n}\nfunction ensureResponseOrigin(rangeOrigin, origin) {\n if (rangeOrigin !== origin) {\n throw new Error(`Expected range response-origin \"${rangeOrigin}\" to match \"${origin}\".`);\n }\n}\n\n;// ./src/display/fetch_stream.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction fetchUrl(url, headers, withCredentials, abortController) {\n return fetch(url, {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n });\n}\nfunction ensureResponseStatus(status, url) {\n if (status !== 200 && status !== 206) {\n throw createResponseError(status, url);\n }\n}\nfunction fetch_stream_getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n throw new Error(`getArrayBuffer - unexpected data: ${val}`);\n}\nclass PDFFetchStream extends BasePDFStream {\n _responseOrigin = null;\n constructor(source) {\n super(source, PDFFetchStreamReader, PDFFetchStreamRangeReader);\n const {\n httpHeaders,\n url\n } = source;\n assert(/https?:/.test(url.protocol), \"PDFFetchStream only supports http(s):// URLs.\");\n this.headers = createHeaders(true, httpHeaders);\n }\n}\nclass PDFFetchStreamReader extends BasePDFStreamReader {\n _abortController = new AbortController();\n _reader = null;\n constructor(stream) {\n super(stream);\n const {\n disableRange,\n disableStream,\n length,\n rangeChunkSize,\n url,\n withCredentials\n } = stream._source;\n this._contentLength = length;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n const headers = new Headers(stream.headers);\n fetchUrl(url, headers, withCredentials, this._abortController).then(response => {\n stream._responseOrigin = getResponseOrigin(response.url);\n ensureResponseStatus(response.status, url);\n this._reader = response.body.getReader();\n const responseHeaders = response.headers;\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: true,\n rangeChunkSize,\n disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n this._headersCapability.resolve();\n }).catch(this._headersCapability.reject);\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._callOnProgress();\n return {\n value: fetch_stream_getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader extends BasePDFStreamRangeReader {\n _abortController = new AbortController();\n _readCapability = Promise.withResolvers();\n _reader = null;\n constructor(stream, begin, end) {\n super(stream, begin, end);\n const {\n url,\n withCredentials\n } = stream._source;\n const headers = new Headers(stream.headers);\n headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n fetchUrl(url, headers, withCredentials, this._abortController).then(response => {\n const responseOrigin = getResponseOrigin(response.url);\n ensureResponseOrigin(responseOrigin, stream._responseOrigin);\n ensureResponseStatus(response.status, url);\n this._reader = response.body.getReader();\n this._readCapability.resolve();\n }).catch(this._readCapability.reject);\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 return {\n value: fetch_stream_getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n;// ./src/display/network.js\n\n\n\n\n\n\n\n\n\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction network_getArrayBuffer(val) {\n return typeof val !== \"string\" ? val : stringToBytes(val).buffer;\n}\nclass PDFNetworkStream extends BasePDFStream {\n #pendingRequests = new WeakMap();\n _responseOrigin = null;\n constructor(source) {\n super(source, PDFNetworkStreamReader, PDFNetworkStreamRangeReader);\n const {\n httpHeaders,\n url\n } = source;\n this.url = url;\n this.isHttp = /https?:/.test(url.protocol);\n this.headers = createHeaders(this.isHttp, httpHeaders);\n }\n _request(args) {\n const xhr = new XMLHttpRequest();\n const pendingRequest = {\n validateStatus: null,\n onHeadersReceived: args.onHeadersReceived,\n onDone: args.onDone,\n onError: args.onError,\n onProgress: args.onProgress\n };\n this.#pendingRequests.set(xhr, pendingRequest);\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this._source.withCredentials;\n for (const [key, val] of this.headers) {\n xhr.setRequestHeader(key, val);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.validateStatus = status => status === PARTIAL_CONTENT_RESPONSE || status === OK_RESPONSE;\n } else {\n pendingRequest.validateStatus = status => status === OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n assert(args.onError, \"Expected `onError` callback to be provided.\");\n xhr.onerror = () => args.onError(xhr.status);\n xhr.onreadystatechange = this.#onStateChange.bind(this, xhr);\n xhr.onprogress = this.#onProgress.bind(this, xhr);\n xhr.send(null);\n return xhr;\n }\n #onProgress(xhr, evt) {\n const pendingRequest = this.#pendingRequests.get(xhr);\n pendingRequest?.onProgress?.(evt);\n }\n #onStateChange(xhr, evt) {\n const pendingRequest = this.#pendingRequests.get(xhr);\n if (!pendingRequest) {\n return;\n }\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 (!this.#pendingRequests.has(xhr)) {\n return;\n }\n this.#pendingRequests.delete(xhr);\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n if (!pendingRequest.validateStatus(xhrStatus)) {\n pendingRequest.onError(xhr.status);\n return;\n }\n const chunk = network_getArrayBuffer(xhr.response);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n if (/bytes (\\d+)-(\\d+)\\/(\\d+)/.test(rangeHeader)) {\n pendingRequest.onDone(chunk);\n } else {\n warn(`Missing or invalid \"Content-Range\" header.`);\n pendingRequest.onError(0);\n }\n } else if (chunk) {\n pendingRequest.onDone(chunk);\n } else {\n pendingRequest.onError(xhr.status);\n }\n }\n _abortRequest(xhr) {\n if (this.#pendingRequests.has(xhr)) {\n this.#pendingRequests.delete(xhr);\n xhr.abort();\n }\n }\n getRangeReader(begin, end) {\n const reader = super.getRangeReader(begin, end);\n if (reader) {\n reader.onClosed = () => this._rangeReaders.delete(reader);\n }\n return reader;\n }\n}\nclass PDFNetworkStreamReader extends BasePDFStreamReader {\n #endRequests = endRequests.bind(this);\n _cachedChunks = [];\n _done = false;\n _requests = [];\n _storedError = null;\n constructor(stream) {\n super(stream);\n const {\n length\n } = stream._source;\n this._contentLength = length;\n this._fullRequestXhr = stream._request({\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 }\n #onHeadersReceived() {\n const stream = this._stream;\n const {\n disableRange,\n rangeChunkSize\n } = stream._source;\n const fullRequestXhr = this._fullRequestXhr;\n stream._responseOrigin = getResponseOrigin(fullRequestXhr.responseURL);\n const rawResponseHeaders = fullRequestXhr.getAllResponseHeaders();\n const responseHeaders = new Headers(rawResponseHeaders ? rawResponseHeaders.trimStart().replace(/[^\\S ]+$/, \"\").split(/[\\r\\n]+/).map(x => {\n const [key, ...val] = x.split(\": \");\n return [key, val.join(\": \")];\n }) : []);\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: stream.isHttp,\n rangeChunkSize,\n disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (this._isRangeSupported) {\n stream._abortRequest(fullRequestXhr);\n }\n this._headersCapability.resolve();\n }\n #onDone(chunk) {\n if (this._requests.length > 0) {\n const capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(chunk);\n }\n this._done = true;\n if (this._cachedChunks.length === 0) {\n this.#endRequests();\n }\n }\n #onError(status) {\n this._storedError = createResponseError(status, this._stream.url);\n this._headersCapability.reject(this._storedError);\n for (const capability of this._requests) {\n capability.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 async read() {\n await this._headersCapability.promise;\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersCapability.reject(reason);\n this.#endRequests();\n this._stream._abortRequest(this._fullRequestXhr);\n this._fullRequestXhr = null;\n }\n}\nclass PDFNetworkStreamRangeReader extends BasePDFStreamRangeReader {\n #endRequests = endRequests.bind(this);\n onClosed = null;\n _done = false;\n _queuedChunk = null;\n _requests = [];\n _storedError = null;\n constructor(stream, begin, end) {\n super(stream, begin, end);\n this._requestXhr = stream._request({\n begin,\n end,\n onHeadersReceived: this.#onHeadersReceived.bind(this),\n onDone: this.#onDone.bind(this),\n onError: this.#onError.bind(this),\n onProgress: null\n });\n }\n #onHeadersReceived() {\n const responseOrigin = getResponseOrigin(this._requestXhr?.responseURL);\n try {\n ensureResponseOrigin(responseOrigin, this._stream._responseOrigin);\n } catch (ex) {\n this._storedError = ex;\n this.#onError(0);\n }\n }\n #onDone(chunk) {\n if (this._requests.length > 0) {\n const capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n this.#endRequests();\n this.onClosed?.();\n }\n #onError(status) {\n this._storedError ??= createResponseError(status, this._stream.url);\n for (const capability of this._requests) {\n capability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this.#endRequests();\n this._stream._abortRequest(this._requestXhr);\n this.onClosed?.();\n }\n}\n\n;// ./src/display/node_stream.js\n\n\n\n\n\nfunction getReadableStream(readStream) {\n const {\n Readable\n } = process.getBuiltinModule(\"stream\");\n if (typeof Readable.toWeb === \"function\") {\n return Readable.toWeb(readStream);\n }\n const require = process.getBuiltinModule(\"module\").createRequire(import.meta.url);\n const polyfill = require(\"node-readable-to-web-readable-stream\");\n return polyfill.makeDefaultReadableStreamFromNodeReadable(readStream);\n}\nclass PDFNodeStream extends BasePDFStream {\n constructor(source) {\n super(source, PDFNodeStreamReader, PDFNodeStreamRangeReader);\n const {\n url\n } = source;\n assert(url.protocol === \"file:\", \"PDFNodeStream only supports file:// URLs.\");\n }\n}\nclass PDFNodeStreamReader extends BasePDFStreamReader {\n _reader = null;\n constructor(stream) {\n super(stream);\n const {\n disableRange,\n disableStream,\n length,\n rangeChunkSize,\n url\n } = stream._source;\n this._contentLength = length;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n const fs = process.getBuiltinModule(\"fs\");\n fs.promises.lstat(url).then(stat => {\n const readStream = fs.createReadStream(url);\n const readableStream = getReadableStream(readStream);\n this._reader = readableStream.getReader();\n const {\n size\n } = stat;\n if (size <= 2 * rangeChunkSize) {\n this._isRangeSupported = false;\n }\n this._contentLength = size;\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n this._headersCapability.resolve();\n }).catch(error => {\n if (error.code === \"ENOENT\") {\n error = createResponseError(0, url);\n }\n this._headersCapability.reject(error);\n });\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._callOnProgress();\n return {\n value: fetch_stream_getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n }\n}\nclass PDFNodeStreamRangeReader extends BasePDFStreamRangeReader {\n _readCapability = Promise.withResolvers();\n _reader = null;\n constructor(stream, begin, end) {\n super(stream, begin, end);\n const {\n url\n } = stream._source;\n const fs = process.getBuiltinModule(\"fs\");\n try {\n const readStream = fs.createReadStream(url, {\n start: begin,\n end: end - 1\n });\n const readableStream = getReadableStream(readStream);\n this._reader = readableStream.getReader();\n this._readCapability.resolve();\n } catch (error) {\n this._readCapability.reject(error);\n }\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 return {\n value: fetch_stream_getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n }\n}\n\n;// ./src/display/pdf_objects.js\n\n\n\nconst INITIAL_DATA = Symbol(\"INITIAL_DATA\");\nconst dataObj = () => ({\n ...Promise.withResolvers(),\n data: INITIAL_DATA\n});\nclass PDFObjects {\n #objs = new Map();\n #ensureObj(objId) {\n return this.#objs.getOrInsertComputed(objId, dataObj);\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs.get(objId);\n if (!obj || obj.data === INITIAL_DATA) {\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.get(objId);\n return !!obj && obj.data !== INITIAL_DATA;\n }\n delete(objId) {\n const obj = this.#objs.get(objId);\n if (!obj || obj.data === INITIAL_DATA) {\n return false;\n }\n this.#objs.delete(objId);\n return true;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.resolve();\n }\n clear() {\n for (const {\n data\n } of this.#objs.values()) {\n data?.bitmap?.close();\n }\n this.#objs.clear();\n }\n *[Symbol.iterator]() {\n for (const [objId, {\n data\n }] of this.#objs) {\n if (data !== INITIAL_DATA) {\n yield [objId, data];\n }\n }\n }\n}\n\n;// ./src/display/text_layer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nclass TextLayer {\n #capability = Promise.withResolvers();\n #container = null;\n #disableProcessItems = false;\n #fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n #lang = null;\n #layoutTextParams = null;\n #pageHeight = 0;\n #pageWidth = 0;\n #reader = null;\n #rootContainer = null;\n #rotation = 0;\n #scale = 0;\n #styleCache = Object.create(null);\n #textContentItemsStr = [];\n #textContentSource = null;\n #textDivs = [];\n #textDivProperties = new WeakMap();\n #transform = null;\n static #ascentCache = new Map();\n static #canvasContexts = new Map();\n static #canvasCtxFonts = new WeakMap();\n static #minFontSize = null;\n static #pendingTextLayers = new Set();\n constructor({\n textContentSource,\n container,\n viewport\n }) {\n if (textContentSource instanceof ReadableStream) {\n this.#textContentSource = textContentSource;\n } else if (typeof textContentSource === \"object\") {\n this.#textContentSource = new ReadableStream({\n start(controller) {\n controller.enqueue(textContentSource);\n controller.close();\n }\n });\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n this.#container = this.#rootContainer = container;\n this.#scale = viewport.scale * OutputScale.pixelRatio;\n this.#rotation = viewport.rotation;\n this.#layoutTextParams = {\n div: null,\n properties: null,\n ctx: null\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 TextLayer.#ensureMinFontSizeComputed();\n container.style.setProperty(\"--min-font-size\", TextLayer.#minFontSize);\n setLayerDimensions(container, viewport);\n this.#capability.promise.finally(() => {\n TextLayer.#pendingTextLayers.delete(this);\n this.#layoutTextParams = null;\n this.#styleCache = null;\n }).catch(() => {});\n }\n static get fontFamilyMap() {\n const {\n isWindows,\n isFirefox\n } = FeatureTest.platform;\n return shadow(this, \"fontFamilyMap\", new Map([[\"sans-serif\", `${isWindows && isFirefox ? \"Calibri, \" : \"\"}sans-serif`], [\"monospace\", `${isWindows && isFirefox ? \"Lucida Console, \" : \"\"}monospace`]]));\n }\n render() {\n const pump = () => {\n this.#reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n this.#capability.resolve();\n return;\n }\n this.#lang ??= value.lang;\n Object.assign(this.#styleCache, value.styles);\n this.#processItems(value.items);\n pump();\n }, this.#capability.reject);\n };\n this.#reader = this.#textContentSource.getReader();\n TextLayer.#pendingTextLayers.add(this);\n pump();\n return this.#capability.promise;\n }\n update({\n viewport,\n onBefore = null\n }) {\n const scale = viewport.scale * OutputScale.pixelRatio;\n const rotation = viewport.rotation;\n if (rotation !== this.#rotation) {\n onBefore?.();\n this.#rotation = rotation;\n setLayerDimensions(this.#rootContainer, {\n rotation\n });\n }\n if (scale !== this.#scale) {\n onBefore?.();\n this.#scale = scale;\n const params = {\n div: null,\n properties: null,\n ctx: TextLayer.#getCtx(this.#lang)\n };\n for (const div of this.#textDivs) {\n params.properties = this.#textDivProperties.get(div);\n params.div = div;\n this.#layout(params);\n }\n }\n }\n cancel() {\n const abortEx = new AbortException(\"TextLayer task cancelled.\");\n this.#reader?.cancel(abortEx).catch(() => {});\n this.#reader = null;\n this.#capability.reject(abortEx);\n }\n get textDivs() {\n return this.#textDivs;\n }\n get textContentItemsStr() {\n return this.#textContentItemsStr;\n }\n #processItems(items) {\n if (this.#disableProcessItems) {\n return;\n }\n this.#layoutTextParams.ctx ??= TextLayer.#getCtx(this.#lang);\n const textDivs = this.#textDivs,\n textContentItemsStr = this.#textContentItemsStr;\n for (const item of items) {\n if (textDivs.length > MAX_TEXT_DIVS_TO_RENDER) {\n warn(\"Ignoring additional textDivs for performance reasons.\");\n this.#disableProcessItems = true;\n return;\n }\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) {\n this.#container.setAttribute(\"id\", `${item.id}`);\n }\n if (item.tag === \"Artifact\") {\n this.#container.ariaHidden = true;\n }\n parent.append(this.#container);\n } else if (item.type === \"endMarkedContent\") {\n this.#container = this.#container.parentNode;\n }\n continue;\n }\n textContentItemsStr.push(item.str);\n this.#appendText(item);\n }\n }\n #appendText(geom) {\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 this.#textDivs.push(textDiv);\n const tx = Util.transform(this.#transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = this.#styleCache[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n let fontFamily = this.#fontInspectorEnabled && style.fontSubstitution || style.fontFamily;\n fontFamily = TextLayer.fontFamilyMap.get(fontFamily) || fontFamily;\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * TextLayer.#getAscent(fontFamily, style, this.#lang);\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 divStyle = textDiv.style;\n divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;\n divStyle.setProperty(\"--font-height\", `${fontHeight.toFixed(2)}px`);\n divStyle.fontFamily = fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (this.#fontInspectorEnabled) {\n textDiv.dataset.fontName = style.fontSubstitutionLoadedName || 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 this.#textDivProperties.set(textDiv, textDivProperties);\n this.#layoutTextParams.div = textDiv;\n this.#layoutTextParams.properties = textDivProperties;\n this.#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 #layout(params) {\n const {\n div,\n properties,\n ctx\n } = params;\n const {\n style\n } = div;\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n TextLayer.#ensureCtxFont(ctx, fontSize * this.#scale, fontFamily);\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n style.setProperty(\"--scale-x\", canvasWidth * this.#scale / width);\n }\n }\n if (properties.angle !== 0) {\n style.setProperty(\"--rotate\", `${properties.angle}deg`);\n }\n }\n static cleanup() {\n if (this.#pendingTextLayers.size > 0) {\n return;\n }\n this.#ascentCache.clear();\n for (const {\n canvas\n } of this.#canvasContexts.values()) {\n canvas.remove();\n }\n this.#canvasContexts.clear();\n }\n static #getCtx(lang = null) {\n let ctx = this.#canvasContexts.get(lang ||= \"\");\n if (!ctx) {\n const canvas = document.createElement(\"canvas\");\n canvas.className = \"hiddenCanvasElement\";\n canvas.lang = lang;\n document.body.append(canvas);\n ctx = canvas.getContext(\"2d\", {\n alpha: false,\n willReadFrequently: true\n });\n this.#canvasContexts.set(lang, ctx);\n this.#canvasCtxFonts.set(ctx, {\n size: 0,\n family: \"\"\n });\n }\n return ctx;\n }\n static #ensureCtxFont(ctx, size, family) {\n const cached = this.#canvasCtxFonts.get(ctx);\n if (size === cached.size && family === cached.family) {\n return;\n }\n ctx.font = `${size}px ${family}`;\n cached.size = size;\n cached.family = family;\n }\n static #ensureMinFontSizeComputed() {\n if (this.#minFontSize !== null) {\n return;\n }\n const div = document.createElement(\"div\");\n div.style.opacity = 0;\n div.style.lineHeight = 1;\n div.style.fontSize = \"1px\";\n div.style.position = \"absolute\";\n div.textContent = \"X\";\n document.body.append(div);\n this.#minFontSize = div.getBoundingClientRect().height;\n div.remove();\n }\n static #getAscent(fontFamily, style, lang) {\n const cachedAscent = this.#ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = this.#getCtx(lang);\n ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE;\n this.#ensureCtxFont(ctx, DEFAULT_FONT_SIZE, fontFamily);\n const metrics = ctx.measureText(\"\");\n const ascent = metrics.fontBoundingBoxAscent;\n const descent = Math.abs(metrics.fontBoundingBoxDescent);\n ctx.canvas.width = ctx.canvas.height = 0;\n let ratio = 0.8;\n if (ascent) {\n ratio = ascent / (ascent + descent);\n } else {\n if (FeatureTest.platform.isFirefox) {\n warn(\"Enable the `dom.textMetrics.fontBoundingBox.enabled` preference \" + \"in `about:config` to improve TextLayer rendering.\");\n }\n if (style.ascent) {\n ratio = style.ascent;\n } else if (style.descent) {\n ratio = 1 + style.descent;\n }\n }\n this.#ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n}\n\n;// ./src/display/api.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nfunction getDocument(src = {}) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if (src instanceof ArrayBuffer || ArrayBuffer.isView(src)) {\n src = {\n data: src\n };\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 : 2 ** 16;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = getFactoryUrlProp(src.cMapUrl);\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || (isNodeJS ? NodeCMapReaderFactory : DOMCMapReaderFactory);\n const iccUrl = getFactoryUrlProp(src.iccUrl);\n const standardFontDataUrl = getFactoryUrlProp(src.standardFontDataUrl);\n const StandardFontDataFactory = src.StandardFontDataFactory || (isNodeJS ? NodeStandardFontDataFactory : DOMStandardFontDataFactory);\n const wasmUrl = getFactoryUrlProp(src.wasmUrl);\n const WasmFactory = src.WasmFactory || (isNodeJS ? NodeWasmFactory : DOMWasmFactory);\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 : !isNodeJS;\n const isImageDecoderSupported = typeof src.isImageDecoderSupported === \"boolean\" ? src.isImageDecoderSupported : !isNodeJS && (FeatureTest.platform.isFirefox || !globalThis.chrome);\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : 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 CanvasFactory = src.CanvasFactory || (isNodeJS ? NodeCanvasFactory : DOMCanvasFactory);\n const FilterFactory = src.FilterFactory || (isNodeJS ? NodeFilterFactory : DOMFilterFactory);\n const enableHWA = src.enableHWA === true;\n const useWasm = src.useWasm !== false;\n const pagesMapper = src.pagesMapper || new PagesMapper();\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : !!(CMapReaderFactory === DOMCMapReaderFactory && StandardFontDataFactory === DOMStandardFontDataFactory && WasmFactory === DOMWasmFactory && cMapUrl && standardFontDataUrl && wasmUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI) && isValidFetchUrl(wasmUrl, document.baseURI));\n const styleElement = null;\n setVerbosityLevel(verbosity);\n const transportFactory = {\n canvasFactory: new CanvasFactory({\n ownerDocument,\n enableHWA\n }),\n filterFactory: new FilterFactory({\n docId,\n ownerDocument\n }),\n cMapReaderFactory: useWorkerFetch ? null : new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n }),\n standardFontDataFactory: useWorkerFetch ? null : new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n }),\n wasmFactory: useWorkerFetch ? null : new WasmFactory({\n baseUrl: wasmUrl\n })\n };\n if (!worker) {\n worker = PDFWorker.create({\n verbosity,\n port: GlobalWorkerOptions.workerPort\n });\n task._worker = worker;\n }\n const docParams = {\n docId,\n apiVersion: \"5.5.207\",\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 isImageDecoderSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n useWasm,\n useWorkerFetch,\n cMapUrl,\n iccUrl,\n standardFontDataUrl,\n wasmUrl\n }\n };\n const transportParams = {\n ownerDocument,\n pdfBug,\n styleElement,\n enableHWA,\n loadingParams: {\n disableAutoFetch,\n enableXfa\n }\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerIdPromise = worker.messageHandler.sendWithPromise(\"GetDocRequest\", docParams, data ? [data.buffer] : null);\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream({\n pdfDataRangeTransport: rangeTransport,\n disableRange,\n disableStream\n });\n } else if (!data) {\n if (!url) {\n throw new Error(\"getDocument - no `url` parameter provided.\");\n }\n const NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : isNodeJS ? PDFNodeStream : PDFNetworkStream;\n networkStream = new NetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n return workerIdPromise.then(workerId => {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory, pagesMapper);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n _capability = Promise.withResolvers();\n _transport = null;\n _worker = null;\n docId = `d${PDFDocumentLoadingTask.#docId++}`;\n destroyed = false;\n onPassword = null;\n onProgress = null;\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 this._worker?.destroy();\n this._worker = null;\n }\n async getData() {\n return this._transport.getData();\n }\n}\nclass PDFDataRangeTransport {\n #capability = Promise.withResolvers();\n #progressiveDoneListeners = [];\n #progressiveReadListeners = [];\n #rangeListeners = [];\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 Object.defineProperty(this, \"onDataProgress\", {\n value: () => {\n deprecated(\"`PDFDataRangeTransport.prototype.onDataProgress` - method was \" + \"removed, since loading progress is now reported automatically \" + \"through the `PDFDataTransportStream` class (and related code).\");\n }\n });\n }\n addRangeListener(listener) {\n this.#rangeListeners.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 onDataProgressiveRead(chunk) {\n this.#capability.promise.then(() => {\n for (const listener of this.#progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this.#capability.promise.then(() => {\n for (const listener of this.#progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this.#capability.resolve();\n }\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n get pagesMapper() {\n return this._transport.pagesMapper;\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get canvasFactory() {\n return this._transport.canvasFactory;\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 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 getAnnotationsByType(types, pageIndexesToSkip) {\n return this._transport.getAnnotationsByType(types, pageIndexesToSkip);\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getOptionalContentConfig(renderingIntent);\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 extractPages(pageInfos) {\n return this._transport.extractPages(pageInfos);\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 cachedPageNumber(ref) {\n return this._transport.cachedPageNumber(ref);\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}\nclass PDFPageProxy {\n #pendingCleanup = false;\n #pagesMapper = null;\n constructor(pageIndex, pageInfo, transport, pagesMapper, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._intentStates = new Map();\n this.destroyed = false;\n this.recordedBBoxes = null;\n this.#pagesMapper = pagesMapper;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n set pageNumber(value) {\n this._pageIndex = value - 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 PageViewport({\n viewBox: this.view,\n userUnit: this.userUnit,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, 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 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 canvas = canvasContext.canvas,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null,\n isEditing = false,\n recordOperations = false,\n operationsFilter = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing);\n const {\n renderingIntent,\n cacheKey\n } = intentArgs;\n this.#pendingCleanup = false;\n optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);\n const intentState = this._intentStates.getOrInsertComputed(cacheKey, makeObj);\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = Promise.withResolvers();\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 recordForDebugger = Boolean(this._pdfBug && globalThis.StepperManager?.enabled);\n const shouldRecordOperations = !this.recordedBBoxes && (recordOperations || recordForDebugger);\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (shouldRecordOperations) {\n const recordedBBoxes = internalRenderTask.gfx?.dependencyTracker.take();\n if (recordedBBoxes) {\n if (internalRenderTask.stepper) {\n internalRenderTask.stepper.setOperatorBBoxes(recordedBBoxes, internalRenderTask.gfx.dependencyTracker.takeDebugMetadata());\n }\n if (recordOperations) {\n this.recordedBBoxes = recordedBBoxes;\n }\n }\n }\n if (intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup();\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 if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n if (globalThis.Stats?.enabled) {\n globalThis.Stats.add(this.pageNumber, this._stats);\n }\n }\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvas,\n canvasContext,\n dependencyTracker: shouldRecordOperations ? new CanvasDependencyTracker(canvas, intentState.operatorList.length, recordForDebugger) : null,\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 enableHWA: this._transport.enableHWA,\n operationsFilter\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 if (!(optionalContentConfig.renderingIntent & renderingIntent)) {\n throw new Error(\"Must use the same `intent`-argument when calling the `PDFPageProxy.render` \" + \"and `PDFDocumentProxy.getOptionalContentConfig` methods.\");\n }\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 = AnnotationMode.ENABLE,\n printAnnotationStorage = null,\n isEditing = false\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, isEditing, true);\n const intentState = this._intentStates.getOrInsertComputed(intentArgs.cacheKey, makeObj);\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = Promise.withResolvers();\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 pageId: this.#pagesMapper.getPageId(this._pageIndex + 1) - 1,\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 async getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => XfaText.textContent(xfa));\n }\n const readableStream = this.streamTextContent(params);\n const textContent = {\n items: [],\n styles: Object.create(null),\n lang: null\n };\n for await (const value of readableStream) {\n textContent.lang ??= value.lang;\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n }\n return textContent;\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 return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup();\n if (resetStats && success) {\n this._stats &&= new StatTimer();\n }\n return success;\n }\n #tryCleanup() {\n if (!this.#pendingCleanup || this.destroyed) {\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 _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();\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable,\n modifiedIds\n }) {\n const {\n map,\n transfer\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageId: this.#pagesMapper.getPageId(this._pageIndex + 1) - 1,\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map,\n modifiedIds\n }, undefined, transfer);\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();\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 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 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}\nclass PDFWorker {\n #capability = Promise.withResolvers();\n #messageHandler = null;\n #port = null;\n #webWorker = null;\n static #fakeWorkerId = 0;\n static #isWorkerDisabled = false;\n static #workerPorts = new WeakMap();\n static {\n if (isNodeJS) {\n this.#isWorkerDisabled = true;\n GlobalWorkerOptions.workerSrc ||= \"./pdf.worker.mjs\";\n }\n this._isSameOrigin = (baseUrl, otherUrl) => {\n const base = URL.parse(baseUrl);\n if (!base?.origin || base.origin === \"null\") {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n this._createCDNWrapper = url => {\n const wrapper = `await import(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper], {\n type: \"text/javascript\"\n }));\n };\n this.fromPort = params => {\n deprecated(\"`PDFWorker.fromPort` - please use `PDFWorker.create` instead.\");\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n return this.create(params);\n };\n }\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\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.set(port, this);\n this.#initializeFromPort(port);\n } else {\n this.#initialize();\n }\n }\n get promise() {\n return this.#capability.promise;\n }\n #resolve() {\n this.#capability.resolve();\n this.#messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\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 MessageHandler(\"main\", \"worker\", port);\n this.#messageHandler.on(\"ready\", () => {});\n this.#resolve();\n }\n #initialize() {\n if (PDFWorker.#isWorkerDisabled || PDFWorker.#mainThreadWorkerMessageHandler) {\n this.#setupFakeWorker();\n return;\n }\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorker._isSameOrigin(window.location, workerSrc)) {\n workerSrc = PDFWorker._createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc, {\n type: \"module\"\n });\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n ac.abort();\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this.#capability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this.#setupFakeWorker();\n }\n };\n const ac = new AbortController();\n worker.addEventListener(\"error\", () => {\n if (!this.#webWorker) {\n terminateEarly();\n }\n }, {\n signal: ac.signal\n });\n messageHandler.on(\"test\", data => {\n ac.abort();\n if (this.destroyed || !data) {\n terminateEarly();\n return;\n }\n this.#messageHandler = messageHandler;\n this.#port = worker;\n this.#webWorker = worker;\n this.#resolve();\n });\n messageHandler.on(\"ready\", data => {\n ac.abort();\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 info(\"The worker has been disabled.\");\n }\n this.#setupFakeWorker();\n }\n #setupFakeWorker() {\n if (!PDFWorker.#isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorker.#isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this.#capability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this.#port = port;\n const id = `fake${PDFWorker.#fakeWorkerId++}`;\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n this.#messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this.#resolve();\n }).catch(reason => {\n this.#capability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n this.#webWorker?.terminate();\n this.#webWorker = null;\n PDFWorker.#workerPorts.delete(this.#port);\n this.#port = null;\n this.#messageHandler?.destroy();\n this.#messageHandler = null;\n }\n static create(params) {\n const cachedPort = this.#workerPorts.get(params?.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.create - 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 (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\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 if (this.#mainThreadWorkerMessageHandler) {\n return this.#mainThreadWorkerMessageHandler;\n }\n const worker = await import(\n /*webpackIgnore: true*/\n /*@vite-ignore*/\n this.workerSrc);\n return worker.WorkerMessageHandler;\n };\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nclass WorkerTransport {\n downloadInfoCapability = Promise.withResolvers();\n #fullReader = null;\n #methodPromises = new Map();\n #networkStream = null;\n #pageCache = new Map();\n #pagePromises = new Map();\n #pageRefCache = new Map();\n #passwordCapability = null;\n #copiedPageInfo = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory, pagesMapper) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.#networkStream = networkStream;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this.enableHWA = params.enableHWA;\n this.loadingParams = params.loadingParams;\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.wasmFactory = factory.wasmFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this.setupMessageHandler();\n this.pagesMapper = pagesMapper;\n this.pagesMapper.addListener(this.#updateCaches.bind(this));\n }\n #updateCaches({\n type,\n pageNumbers\n }) {\n if (type === \"copy\") {\n this.#copiedPageInfo = new Map();\n for (const pageNum of pageNumbers) {\n this.#copiedPageInfo.set(pageNum, {\n proxy: this.#pageCache.get(pageNum - 1) || null,\n promise: this.#pagePromises.get(pageNum - 1) || null\n });\n }\n return;\n }\n if (type === \"delete\") {\n for (const pageNum of pageNumbers) {\n this.#pageCache.delete(pageNum - 1);\n this.#pagePromises.delete(pageNum - 1);\n }\n }\n const newPageCache = new Map();\n const newPromiseCache = new Map();\n const {\n pagesMapper\n } = this;\n for (let i = 0, ii = pagesMapper.pagesNumber; i < ii; i++) {\n const prevPageNumber = pagesMapper.getPrevPageNumber(i + 1);\n if (prevPageNumber < 0) {\n const {\n proxy,\n promise\n } = this.#copiedPageInfo?.get(-prevPageNumber) || {};\n if (proxy) {\n newPageCache.set(i, proxy);\n }\n if (promise) {\n newPromiseCache.set(i, promise);\n }\n continue;\n }\n const prevPageIndex = prevPageNumber - 1;\n const page = this.#pageCache.get(prevPageIndex);\n if (page) {\n newPageCache.set(i, page);\n }\n const promise = this.#pagePromises.get(prevPageIndex);\n if (promise) {\n newPromiseCache.set(i, promise);\n }\n }\n this.#pageCache = newPageCache;\n this.#pagePromises = newPromiseCache;\n }\n #cacheSimpleMethod(name, data = null) {\n return this.#methodPromises.getOrInsertComputed(name, () => this.messageHandler.sendWithPromise(name, data));\n }\n #onProgress({\n loaded,\n total\n }) {\n this.loadingTask.onProgress?.({\n loaded,\n total,\n percent: MathClamp(Math.round(loaded / total * 100), 0, 100)\n });\n }\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false, isOpList = false) {\n let renderingIntent = RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = RenderingIntentFlag.PRINT;\n break;\n default:\n warn(`getRenderingIntent - invalid intent: ${intent}`);\n }\n const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n switch (annotationMode) {\n case AnnotationMode.DISABLE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case AnnotationMode.ENABLE:\n break;\n case AnnotationMode.ENABLE_FORMS:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case AnnotationMode.ENABLE_STORAGE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isEditing) {\n renderingIntent += RenderingIntentFlag.IS_EDITING;\n }\n if (isOpList) {\n renderingIntent += RenderingIntentFlag.OPLIST;\n }\n const {\n ids: modifiedIds,\n hash: modifiedIdsHash\n } = annotationStorage.modifiedIds;\n const cacheKeyBuf = [renderingIntent, annotationStorageSerializable.hash, modifiedIdsHash];\n return {\n renderingIntent,\n cacheKey: cacheKeyBuf.join(\"_\"),\n annotationStorageSerializable,\n modifiedIds\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = Promise.withResolvers();\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 this.#pageRefCache.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 TextLayer.cleanup();\n this.#networkStream?.cancelAllRequests(new AbortException(\"Worker was terminated.\"));\n this.messageHandler?.destroy();\n this.messageHandler = null;\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 assert(this.#networkStream, \"GetReader - no `BasePDFStream` instance available.\");\n this.#fullReader = this.#networkStream.getFullReader();\n this.#fullReader.onProgress = evt => this.#onProgress(evt);\n sink.onPull = () => {\n this.#fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n 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\", async data => {\n await this.#fullReader.headersReady;\n const {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n } = this.#fullReader;\n if (isStreamingSupported && isRangeSupported) {\n this.#fullReader.onProgress = null;\n }\n return {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n };\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(this.#networkStream, \"GetRangeReader - no `BasePDFStream` 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 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.pagesMapper.pagesNumber = pdfInfo.numPages;\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\", ex => {\n loadingTask._capability.reject(wrapReason(ex));\n });\n messageHandler.on(\"PasswordRequest\", ex => {\n this.#passwordCapability = Promise.withResolvers();\n try {\n if (!loadingTask.onPassword) {\n throw wrapReason(ex);\n }\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 loadingTask.onPassword(updatePassword, ex.code);\n } catch (err) {\n this.#passwordCapability.reject(err);\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n this.#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 null;\n }\n if (this.commonObjs.has(id)) {\n return null;\n }\n switch (type) {\n case \"Font\":\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const fontData = new FontInfo(exportedData);\n const inspectFont = this._params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new FontFaceObject(fontData, inspectFont, exportedData.extra, exportedData.charProcOperatorList);\n this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise(\"FontFallback\", {\n id\n })).finally(() => {\n if (!font.fontExtraProperties && font.data) {\n font.clearData();\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"CopyLocalImage\":\n const {\n imageRef\n } = exportedData;\n assert(imageRef, \"The imageRef must be defined.\");\n for (const pageProxy of this.#pageCache.values()) {\n for (const [, data] of pageProxy.objs) {\n if (data?.ref !== imageRef) {\n continue;\n }\n if (!data.dataLen) {\n return null;\n }\n this.commonObjs.resolve(id, structuredClone(data));\n return data.dataLen;\n }\n }\n break;\n case \"FontPath\":\n this.commonObjs.resolve(id, new FontPathInfo(exportedData));\n break;\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n case \"Pattern\":\n const pattern = new PatternInfo(exportedData);\n this.commonObjs.resolve(id, pattern.getIR());\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n return null;\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 if (pageProxy._intentStates.size === 0) {\n imageData?.bitmap?.close();\n return;\n }\n switch (type) {\n case \"Image\":\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 this.#onProgress(data);\n });\n messageHandler.on(\"FetchBinaryData\", async data => {\n if (this.destroyed) {\n throw new Error(\"Worker was destroyed.\");\n }\n const factory = this[data.type];\n if (!factory) {\n throw new Error(`${data.type} not initialized, see the \\`useWorkerFetch\\` parameter.`);\n }\n return factory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n warn(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfer\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 }, transfer).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n extractPages(pageInfos) {\n return this.messageHandler.sendWithPromise(\"ExtractPages\", {\n pageInfos\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.pagesMapper.pagesNumber) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1;\n const newPageIndex = this.pagesMapper.getPageId(pageNumber) - 1;\n const cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex: newPageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n if (pageInfo.refStr) {\n this.#pageRefCache.set(pageInfo.refStr, newPageIndex);\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this.pagesMapper, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n async getPageIndex(ref) {\n if (!isRefProxy(ref)) {\n throw new Error(\"Invalid pageIndex request.\");\n }\n const index = await this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n const pageNumber = this.pagesMapper.getPageNumber(index + 1);\n if (pageNumber === 0) {\n throw new Error(\"GetPageIndex: page has been removed.\");\n }\n return pageNumber - 1;\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1,\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 getAnnotationsByType(types, pageIndexesToSkip) {\n return this.messageHandler.sendWithPromise(\"GetAnnotationsByType\", {\n types,\n pageIndexesToSkip\n });\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig(renderingIntent) {\n return this.#cacheSimpleMethod(\"GetOptionalContentConfig\").then(data => new OptionalContentConfig(data, renderingIntent));\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\";\n return this.#methodPromises.getOrInsertComputed(name, () => this.messageHandler.sendWithPromise(name, null).then(results => ({\n info: results[0],\n metadata: results[1] ? new Metadata(results[1]) : null,\n contentDispositionFilename: this.#fullReader?.filename ?? null,\n contentLength: this.#fullReader?.contentLength ?? null,\n hasStructTree: results[2]\n })));\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 TextLayer.cleanup();\n }\n cachedPageNumber(ref) {\n if (!isRefProxy(ref)) {\n return null;\n }\n const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`;\n const pageIndex = this.#pageRefCache.get(refStr);\n if (pageIndex >= 0) {\n const pageNumber = this.pagesMapper.getPageNumber(pageIndex + 1);\n if (pageNumber !== 0) {\n return pageNumber;\n }\n }\n return null;\n }\n}\nclass RenderTask {\n _internalRenderTask = null;\n onContinue = null;\n onError = null;\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\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}\nclass InternalRenderTask {\n #rAF = null;\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 enableHWA = false,\n operationsFilter = 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 = Promise.withResolvers();\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.canvas;\n this._canvasContext = params.canvas ? null : params.canvasContext;\n this._enableHWA = enableHWA;\n this._dependencyTracker = params.dependencyTracker;\n this._operationsFilter = operationsFilter;\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 viewport,\n transform,\n background,\n dependencyTracker\n } = this.params;\n const canvasContext = this._canvasContext || this._canvas.getContext(\"2d\", {\n alpha: false,\n willReadFrequently: !this._enableHWA\n });\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors, dependencyTracker);\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 if (this.#rAF) {\n window.cancelAnimationFrame(this.#rAF);\n this.#rAF = null;\n }\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n error ||= new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay);\n this.callback(error);\n this.task.onError?.(error);\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length);\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 this.#rAF = window.requestAnimationFrame(() => {\n this.#rAF = null;\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, this._operationsFilter);\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 = \"5.5.207\";\nconst build = \"527964698\";\n\n;// ./src/display/editor/color_picker.js\n\n\n\nclass ColorPicker {\n #button = null;\n #buttonSwatch = null;\n #defaultColor;\n #dropdown = null;\n #dropdownWasFromKeyboard = false;\n #isMainColorPicker = false;\n #editor = null;\n #eventBus;\n #openDropdownAC = null;\n #uiManager = null;\n static #l10nColor = null;\n static get _keyboardManager() {\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"Escape\", \"mac+Escape\"], ColorPicker.prototype._hideDropdownFromKeyboard], [[\" \", \"mac+ \"], ColorPicker.prototype._colorSelectFromKeyboard], [[\"ArrowDown\", \"ArrowRight\", \"mac+ArrowDown\", \"mac+ArrowRight\"], ColorPicker.prototype._moveToNext], [[\"ArrowUp\", \"ArrowLeft\", \"mac+ArrowUp\", \"mac+ArrowLeft\"], ColorPicker.prototype._moveToPrevious], [[\"Home\", \"mac+Home\"], ColorPicker.prototype._moveToBeginning], [[\"End\", \"mac+End\"], ColorPicker.prototype._moveToEnd]]));\n }\n constructor({\n editor = null,\n uiManager = null\n }) {\n if (editor) {\n this.#isMainColorPicker = false;\n this.#editor = editor;\n } else {\n this.#isMainColorPicker = true;\n }\n this.#uiManager = editor?._uiManager || uiManager;\n this.#eventBus = this.#uiManager._eventBus;\n this.#defaultColor = editor?.color?.toUpperCase() || this.#uiManager?.highlightColors.values().next().value || \"#FFFF98\";\n ColorPicker.#l10nColor ||= Object.freeze({\n blue: \"pdfjs-editor-colorpicker-blue\",\n green: \"pdfjs-editor-colorpicker-green\",\n pink: \"pdfjs-editor-colorpicker-pink\",\n red: \"pdfjs-editor-colorpicker-red\",\n yellow: \"pdfjs-editor-colorpicker-yellow\"\n });\n }\n renderButton() {\n const button = this.#button = document.createElement(\"button\");\n button.className = \"colorPicker\";\n button.tabIndex = \"0\";\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-button\");\n button.ariaHasPopup = \"true\";\n if (this.#editor) {\n button.ariaControls = `${this.#editor.id}_colorpicker_dropdown`;\n }\n const signal = this.#uiManager._signal;\n button.addEventListener(\"click\", this.#openDropdown.bind(this), {\n signal\n });\n button.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n signal\n });\n const swatch = this.#buttonSwatch = document.createElement(\"span\");\n swatch.className = \"swatch\";\n swatch.ariaHidden = \"true\";\n swatch.style.backgroundColor = this.#defaultColor;\n button.append(swatch);\n return button;\n }\n renderMainDropdown() {\n const dropdown = this.#dropdown = this.#getDropdownRoot();\n dropdown.ariaOrientation = \"horizontal\";\n dropdown.ariaLabelledBy = \"highlightColorPickerLabel\";\n return dropdown;\n }\n #getDropdownRoot() {\n const div = document.createElement(\"div\");\n const signal = this.#uiManager._signal;\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.className = \"dropdown\";\n div.role = \"listbox\";\n div.ariaMultiSelectable = \"false\";\n div.ariaOrientation = \"vertical\";\n div.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-dropdown\");\n if (this.#editor) {\n div.id = `${this.#editor.id}_colorpicker_dropdown`;\n }\n for (const [name, color] of this.#uiManager.highlightColors) {\n const button = document.createElement(\"button\");\n button.tabIndex = \"0\";\n button.role = \"option\";\n button.setAttribute(\"data-color\", color);\n button.title = name;\n button.setAttribute(\"data-l10n-id\", ColorPicker.#l10nColor[name]);\n const swatch = document.createElement(\"span\");\n button.append(swatch);\n swatch.className = \"swatch\";\n swatch.style.backgroundColor = color;\n button.ariaSelected = color === this.#defaultColor;\n button.addEventListener(\"click\", this.#colorSelect.bind(this, color), {\n signal\n });\n div.append(button);\n }\n div.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n signal\n });\n return div;\n }\n #colorSelect(color, event) {\n event.stopPropagation();\n this.#eventBus.dispatch(\"switchannotationeditorparams\", {\n source: this,\n type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n value: color\n });\n this.updateColor(color);\n }\n _colorSelectFromKeyboard(event) {\n if (event.target === this.#button) {\n this.#openDropdown(event);\n return;\n }\n const color = event.target.getAttribute(\"data-color\");\n if (!color) {\n return;\n }\n this.#colorSelect(color, event);\n }\n _moveToNext(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n if (event.target === this.#button) {\n this.#dropdown.firstElementChild?.focus();\n return;\n }\n event.target.nextSibling?.focus();\n }\n _moveToPrevious(event) {\n if (event.target === this.#dropdown?.firstElementChild || event.target === this.#button) {\n if (this.#isDropdownVisible) {\n this._hideDropdownFromKeyboard();\n }\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n }\n event.target.previousSibling?.focus();\n }\n _moveToBeginning(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.firstElementChild?.focus();\n }\n _moveToEnd(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.lastElementChild?.focus();\n }\n #keyDown(event) {\n ColorPicker._keyboardManager.exec(this, event);\n }\n #openDropdown(event) {\n if (this.#isDropdownVisible) {\n this.hideDropdown();\n return;\n }\n this.#dropdownWasFromKeyboard = event.detail === 0;\n if (!this.#openDropdownAC) {\n this.#openDropdownAC = new AbortController();\n window.addEventListener(\"pointerdown\", this.#pointerDown.bind(this), {\n signal: this.#uiManager.combinedSignal(this.#openDropdownAC)\n });\n }\n this.#button.ariaExpanded = \"true\";\n if (this.#dropdown) {\n this.#dropdown.classList.remove(\"hidden\");\n return;\n }\n const root = this.#dropdown = this.#getDropdownRoot();\n this.#button.append(root);\n }\n #pointerDown(event) {\n if (this.#dropdown?.contains(event.target)) {\n return;\n }\n this.hideDropdown();\n }\n hideDropdown() {\n this.#dropdown?.classList.add(\"hidden\");\n this.#button.ariaExpanded = \"false\";\n this.#openDropdownAC?.abort();\n this.#openDropdownAC = null;\n }\n get #isDropdownVisible() {\n return this.#dropdown && !this.#dropdown.classList.contains(\"hidden\");\n }\n _hideDropdownFromKeyboard() {\n if (this.#isMainColorPicker) {\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#editor?.unselect();\n return;\n }\n this.hideDropdown();\n this.#button.focus({\n preventScroll: true,\n focusVisible: this.#dropdownWasFromKeyboard\n });\n }\n updateColor(color) {\n if (this.#buttonSwatch) {\n this.#buttonSwatch.style.backgroundColor = color;\n }\n if (!this.#dropdown) {\n return;\n }\n const i = this.#uiManager.highlightColors.values();\n for (const child of this.#dropdown.children) {\n child.ariaSelected = i.next().value === color.toUpperCase();\n }\n }\n destroy() {\n this.#button?.remove();\n this.#button = null;\n this.#buttonSwatch = null;\n this.#dropdown?.remove();\n this.#dropdown = null;\n }\n}\nclass BasicColorPicker {\n #input = null;\n #editor = null;\n #uiManager = null;\n static #l10nColor = null;\n constructor(editor) {\n this.#editor = editor;\n this.#uiManager = editor._uiManager;\n BasicColorPicker.#l10nColor ||= Object.freeze({\n freetext: \"pdfjs-editor-color-picker-free-text-input\",\n ink: \"pdfjs-editor-color-picker-ink-input\"\n });\n }\n renderButton() {\n if (this.#input) {\n return this.#input;\n }\n const {\n editorType,\n colorType,\n color\n } = this.#editor;\n const input = this.#input = document.createElement(\"input\");\n input.type = \"color\";\n input.value = color || \"#000000\";\n input.className = \"basicColorPicker\";\n input.tabIndex = 0;\n input.setAttribute(\"data-l10n-id\", BasicColorPicker.#l10nColor[editorType]);\n input.addEventListener(\"input\", () => {\n this.#uiManager.updateParams(colorType, input.value);\n }, {\n signal: this.#uiManager._signal\n });\n return input;\n }\n update(value) {\n if (!this.#input) {\n return;\n }\n this.#input.value = value;\n }\n destroy() {\n this.#input?.remove();\n this.#input = null;\n }\n hideDropdown() {}\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js\nvar es_iterator_flat_map = __webpack_require__(531);\n;// ./src/shared/scripting_utils.js\n\n\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}\nconst DateFormats = (/* unused pure expression or super */ null && ([\"m/d\", \"m/d/yy\", \"mm/dd/yy\", \"mm/yy\", \"d-mmm\", \"d-mmm-yy\", \"dd-mmm-yy\", \"yy-mm-dd\", \"mmm-yy\", \"mmmm-yy\", \"mmm d, yyyy\", \"mmmm d, yyyy\", \"m/d/yy h:MM tt\", \"m/d/yy HH:MM\"]));\nconst TimeFormats = (/* unused pure expression or super */ null && ([\"HH:MM\", \"h:MM tt\", \"HH:MM:ss\", \"h:MM:ss tt\"]));\n\n;// ./src/display/svg_factory.js\n\n\nclass BaseSVGFactory {\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 unreachable(\"Abstract method `_createSVG` called.\");\n }\n}\nclass DOMSVGFactory extends BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n;// ./src/display/annotation_layer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst annotation_layer_DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nconst TIMEZONE_OFFSET = new Date().getTimezoneOffset() * 60 * 1000;\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case 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 AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #updates = null;\n #hasBorder = false;\n #popupElement = null;\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.enableComment = parameters.enableComment;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n this.hasOwnCommentButton = false;\n if (isRenderable) {\n this.contentElement = this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n contentsObj,\n richText\n }) {\n return !!(contentsObj?.str || richText?.str);\n }\n get _isEditable() {\n return this.data.isEditable;\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data) || this.enableComment && !!this.commentText;\n }\n get commentData() {\n const {\n data\n } = this;\n const editor = this.annotationStorage?.getEditor(data.id);\n if (editor) {\n return editor.getData();\n }\n return data;\n }\n get hasCommentButton() {\n return this.enableComment && this.hasPopupElement;\n }\n get commentButtonPosition() {\n const editor = this.annotationStorage?.getEditor(this.data.id);\n if (editor) {\n return editor.commentButtonPositionInPage;\n }\n const {\n quadPoints,\n inkLists,\n rect\n } = this.data;\n let maxX = -Infinity;\n let maxY = -Infinity;\n if (quadPoints?.length >= 8) {\n for (let i = 0; i < quadPoints.length; i += 8) {\n if (quadPoints[i + 1] > maxY) {\n maxY = quadPoints[i + 1];\n maxX = quadPoints[i + 2];\n } else if (quadPoints[i + 1] === maxY) {\n maxX = Math.max(maxX, quadPoints[i + 2]);\n }\n }\n return [maxX, maxY];\n }\n if (inkLists?.length >= 1) {\n for (const inkList of inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n if (inkList[i + 1] > maxY) {\n maxY = inkList[i + 1];\n maxX = inkList[i];\n } else if (inkList[i + 1] === maxY) {\n maxX = Math.max(maxX, inkList[i]);\n }\n }\n }\n if (maxX !== Infinity) {\n return [maxX, maxY];\n }\n }\n if (rect) {\n return [rect[2], rect[3]];\n }\n return null;\n }\n _normalizePoint(point) {\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 point[1] = view[3] - point[1] + view[1];\n point[0] = 100 * (point[0] - pageX) / pageWidth;\n point[1] = 100 * (point[1] - pageY) / pageHeight;\n return point;\n }\n get commentText() {\n const {\n data\n } = this;\n return this.annotationStorage.getRawValue(`${AnnotationEditorPrefix}${data.id}`)?.popup?.contents || data.contentsObj?.str || \"\";\n }\n set commentText(text) {\n const {\n data\n } = this;\n const popup = {\n deleted: !text,\n contents: text || \"\"\n };\n if (!this.annotationStorage.updateEditor(data.id, {\n popup\n })) {\n this.annotationStorage.setValue(`${AnnotationEditorPrefix}${data.id}`, {\n id: data.id,\n annotationType: data.annotationType,\n page: this.parent.page,\n popup,\n popupRef: data.popupRef,\n modificationDate: new Date()\n });\n }\n if (!text) {\n this.removePopup();\n }\n }\n removePopup() {\n (this.#popupElement?.popup || this.popup)?.remove();\n this.#popupElement = this.popup = null;\n }\n updateEdited(params) {\n if (!this.container) {\n return;\n }\n if (params.rect) {\n this.#updates ||= {\n rect: this.data.rect.slice(0)\n };\n }\n const {\n rect,\n popup: newPopup\n } = params;\n if (rect) {\n this.#setRectEdited(rect);\n }\n let popup = this.#popupElement?.popup || this.popup;\n if (!popup && newPopup?.text) {\n this._createPopup(newPopup);\n popup = this.#popupElement.popup;\n }\n if (!popup) {\n return;\n }\n popup.updateEdited(params);\n if (newPopup?.deleted) {\n popup.remove();\n this.#popupElement = null;\n this.popup = null;\n }\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n this.#setRectEdited(this.#updates.rect);\n this.#popupElement?.popup.resetEdited();\n this.#updates = null;\n }\n #setRectEdited(rect) {\n const {\n container: {\n style\n },\n data: {\n rect: currentRect,\n rotation\n },\n parent: {\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n }\n } = this;\n currentRect?.splice(0, 4, ...rect);\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;\n if (rotation === 0) {\n style.width = `${100 * (rect[2] - rect[0]) / pageWidth}%`;\n style.height = `${100 * (rect[3] - rect[1]) / pageHeight}%`;\n } else {\n this.setRotation(rotation);\n }\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) && !(this instanceof LinkAnnotationElement)) {\n container.tabIndex = 0;\n }\n const {\n style\n } = container;\n style.zIndex = this.parent.zIndex;\n this.parent.zIndex += 2;\n if (data.alternativeText) {\n container.title = data.alternativeText;\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\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 } = this;\n if (!ignoreBorder && data.borderStyle.width > 0) {\n 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(--total-scale-factor)) / calc(${verticalRadius}px * var(--total-scale-factor))`;\n style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--total-scale-factor)) / calc(${height}px * var(--total-scale-factor))`;\n style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n style.borderStyle = \"solid\";\n break;\n case AnnotationBorderStyleType.DASHED:\n style.borderStyle = \"dashed\";\n break;\n case AnnotationBorderStyleType.BEVELED:\n warn(\"Unimplemented border style: beveled\");\n break;\n case AnnotationBorderStyleType.INSET:\n warn(\"Unimplemented border style: inset\");\n break;\n case AnnotationBorderStyleType.UNDERLINE:\n style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n style.borderColor = Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n style.borderWidth = 0;\n }\n }\n const rect = 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 const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n 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 let {\n width,\n height\n } = this;\n if (angle % 180 !== 0) {\n [width, height] = [height, width];\n }\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\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] = ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return 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.map(x => Math.fround(x));\n if (quadPoints.length === 8) {\n const [trX, trY, blX, blY] = quadPoints.subarray(2, 6);\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,\", `<svg xmlns=\"http://www.w3.org/2000/svg\"`, ` preserveAspectRatio=\"none\" viewBox=\"0 0 1 1\">`, `<g fill=\"transparent\" stroke=\"${borderColor}\" stroke-width=\"${borderWidth}\">`];\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 svg.role = \"none\";\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 (let i = 2, ii = quadPoints.length; i < ii; i += 8) {\n const trX = quadPoints[i];\n const trY = quadPoints[i + 1];\n const blX = quadPoints[i + 2];\n const blY = quadPoints[i + 3];\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(`<rect vector-effect=\"non-scaling-stroke\" x=\"${x}\" y=\"${y}\" width=\"${rectWidth}\" height=\"${rectHeight}\"/>`);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`</g></svg>')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup(popupData = null) {\n const {\n data\n } = this;\n let contentsObj, modificationDate;\n if (popupData) {\n contentsObj = {\n str: popupData.text\n };\n modificationDate = popupData.date;\n } else {\n contentsObj = data.contentsObj;\n modificationDate = data.modificationDate;\n }\n this.#popupElement = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate,\n contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation,\n noRotate: true\n },\n linkService: this.linkService,\n parent: this.parent,\n elements: [this]\n });\n }\n get hasPopupElement() {\n return !!(this.#popupElement || this.popup || this.data.popupRef);\n }\n get extraPopupElement() {\n return this.#popupElement;\n }\n render() {\n 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 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 if (!this._isEditable) {\n return;\n }\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 mustEnterInEditMode: true\n });\n });\n }\n get width() {\n return this.data.rect[2] - this.data.rect[0];\n }\n get height() {\n return this.data.rect[3] - this.data.rect[1];\n }\n}\nclass EditorAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.editor = parameters.editor;\n }\n render() {\n this.container.className = \"editorAnnotation\";\n return this.container;\n }\n createOrUpdatePopup() {\n const {\n editor\n } = this;\n if (!editor.hasComment) {\n return;\n }\n this._createPopup(editor.comment);\n }\n get hasCommentButton() {\n return this.enableComment && this.editor.hasComment;\n }\n get commentButtonPosition() {\n return this.editor.commentButtonPositionInPage;\n }\n get commentText() {\n return this.editor.comment.text;\n }\n set commentText(text) {\n this.editor.comment = text;\n if (!text) {\n this.removePopup();\n }\n }\n get commentData() {\n return this.editor.getData();\n }\n remove() {\n this.parent.removeAnnotation(this.data.id);\n this.container.remove();\n this.container = null;\n this.removePopup();\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, data.overlaidText);\n isBound = true;\n } else if (data.attachment) {\n this.#bindAttachment(link, data.attachment, data.overlaidText, data.attachmentDest);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState, data.overlaidText);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest, data.overlaidText);\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.contentElement = link;\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, overlaidText = \"\") {\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 if (overlaidText) {\n link.title = overlaidText;\n }\n }\n _bindNamedAction(link, action, overlaidText = \"\") {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n if (overlaidText) {\n link.title = overlaidText;\n }\n this.#setInternalLink();\n }\n #bindAttachment(link, attachment, overlaidText = \"\", dest = null) {\n link.href = this.linkService.getAnchorUrl(\"\");\n if (attachment.description) {\n link.title = attachment.description;\n } else if (overlaidText) {\n link.title = overlaidText;\n }\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(attachment.content, attachment.filename, dest);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action, overlaidText = \"\") {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n if (overlaidText) {\n link.title = overlaidText;\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 (data.overlaidText) {\n link.title = data.overlaidText;\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 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 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.setAttribute(\"data-l10n-id\", \"pdfjs-text-annotation-type\");\n image.setAttribute(\"data-l10n-args\", JSON.stringify({\n type: this.data.name\n }));\n if (!this.data.popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\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 return FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;\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.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 || annotation_layer_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 / (LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / 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 / LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--total-scale-factor))`;\n style.color = 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.hasOwnCanvas || !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 = this.data.password ? \"password\" : \"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 this.contentElement = element;\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = 0;\n const {\n datetimeFormat,\n datetimeType,\n timeStep\n } = this.data;\n const hasDateOrTime = !!datetimeType && this.enableScripting;\n if (datetimeFormat) {\n element.title = datetimeFormat;\n }\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 (hasDateOrTime) {\n target.type = datetimeType;\n if (timeStep) {\n target.step = timeStep;\n }\n }\n if (elementData.userValue) {\n const value = elementData.userValue;\n if (hasDateOrTime) {\n if (datetimeType === \"time\") {\n const date = new Date(value);\n const parts = [date.getHours(), date.getMinutes(), date.getSeconds()];\n target.value = parts.map(v => v.toString().padStart(2, \"0\")).join(\":\");\n } else {\n target.value = new Date(value - TIMEZONE_OFFSET).toISOString().split(datetimeType === \"date\" ? \"T\" : \".\", 1)[0];\n }\n } else {\n target.value = value;\n }\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n if (!this.data.actions?.Focus) {\n elementData.focused = true;\n }\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n if (!hasDateOrTime) {\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\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 const data = {\n formattedValue\n };\n if (hasDateOrTime) {\n data.value = formattedValue;\n }\n storage.setValue(id, data);\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 if (!this.data.actions?.Blur) {\n elementData.focused = false;\n }\n const {\n target\n } = event;\n let {\n value\n } = target;\n if (hasDateOrTime) {\n if (value && datetimeType === \"time\") {\n const parts = value.split(\":\").map(v => parseInt(v, 10));\n value = new Date(2000, 0, 1, parts[0], parts[1], parts[2] || 0).valueOf();\n target.step = \"\";\n } else {\n if (!value.includes(\"T\")) {\n value = `${value}T00:00`;\n }\n value = new Date(value).valueOf();\n }\n target.type = \"text\";\n }\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(--total-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 if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\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 = 0;\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 if (value) {\n for (const radio of this._getElementsByName(data.fieldName, id)) {\n storage.setValue(radio.id, {\n value: false\n });\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 = 0;\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 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 = 0;\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 displayValue: option.textContent,\n exportValue: option.value\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 const change = getValue(false);\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 change,\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 parent\n } = parameters;\n const hasCommentManager = !!parent._commentManager;\n super(parameters, {\n isRenderable: !hasCommentManager && AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n if (hasCommentManager && AnnotationElement._hasPopupData(data)) {\n const popup = this.popup = this.#createPopup();\n for (const element of elements) {\n element.popup = popup;\n }\n } else {\n this.popup = null;\n }\n }\n #createPopup() {\n return new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate || this.data.creationDate,\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 commentManager: this.parent._commentManager\n });\n }\n render() {\n const {\n container\n } = this;\n container.classList.add(\"popupAnnotation\");\n container.role = \"comment\";\n const popup = this.popup = this.#createPopup();\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n element.container.ariaHasPopup = \"dialog\";\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #commentManager = 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 #dateObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #popupAbortController = null;\n #position = null;\n #commentButton = null;\n #commentButtonPosition = null;\n #popupPosition = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #updates = null;\n #wasVisible = false;\n #firstElement = null;\n #commentText = null;\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 commentManager = null\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 this.#commentManager = commentManager;\n this.#firstElement = elements[0];\n this.#dateObj = PDFDateString.toDateObject(modificationDate);\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n if (!commentManager) {\n this.#addEventListeners();\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n }\n #addEventListeners() {\n if (this.#popupAbortController) {\n return;\n }\n this.#popupAbortController = new AbortController();\n const {\n signal\n } = this.#popupAbortController;\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle, {\n signal\n });\n element.addEventListener(\"pointerenter\", this.#boundShow, {\n signal\n });\n element.addEventListener(\"pointerleave\", this.#boundHide, {\n signal\n });\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of this.#elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n }\n }\n #setCommentButtonPosition() {\n const element = this.#elements.find(e => e.hasCommentButton);\n if (!element) {\n return;\n }\n this.#commentButtonPosition = element._normalizePoint(element.commentButtonPosition);\n }\n renderCommentButton() {\n if (this.#commentButton) {\n if (!this.#commentButton.parentNode) {\n this.#firstElement.container.after(this.#commentButton);\n }\n return;\n }\n if (!this.#commentButtonPosition) {\n this.#setCommentButtonPosition();\n }\n if (!this.#commentButtonPosition) {\n return;\n }\n const {\n signal\n } = this.#popupAbortController = new AbortController();\n const hasOwnButton = this.#firstElement.hasOwnCommentButton;\n const togglePopup = () => {\n this.#commentManager.toggleCommentPopup(this, true, undefined, !hasOwnButton);\n };\n const showPopup = () => {\n this.#commentManager.toggleCommentPopup(this, false, true, !hasOwnButton);\n };\n const hidePopup = () => {\n this.#commentManager.toggleCommentPopup(this, false, false);\n };\n if (!hasOwnButton) {\n const button = this.#commentButton = document.createElement(\"button\");\n button.className = \"annotationCommentButton\";\n const parentContainer = this.#firstElement.container;\n button.style.zIndex = parentContainer.style.zIndex + 1;\n button.tabIndex = 0;\n button.ariaHasPopup = \"dialog\";\n button.ariaControls = \"commentPopup\";\n button.setAttribute(\"data-l10n-id\", \"pdfjs-show-comment-button\");\n this.#updateColor();\n this.#updateCommentButtonPosition();\n button.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n button.addEventListener(\"click\", togglePopup, {\n signal\n });\n button.addEventListener(\"pointerenter\", showPopup, {\n signal\n });\n button.addEventListener(\"pointerleave\", hidePopup, {\n signal\n });\n parentContainer.after(button);\n } else {\n this.#commentButton = this.#firstElement.container;\n for (const element of this.trigger) {\n element.ariaHasPopup = \"dialog\";\n element.ariaControls = \"commentPopup\";\n element.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n element.addEventListener(\"click\", togglePopup, {\n signal\n });\n element.addEventListener(\"pointerenter\", showPopup, {\n signal\n });\n element.addEventListener(\"pointerleave\", hidePopup, {\n signal\n });\n element.classList.add(\"popupTriggerArea\");\n }\n }\n }\n #updateCommentButtonPosition() {\n if (this.#firstElement.extraPopupElement && !this.#firstElement.editor) {\n return;\n }\n if (!this.#commentButton) {\n this.renderCommentButton();\n }\n const [x, y] = this.#commentButtonPosition;\n const {\n style\n } = this.#commentButton;\n style.left = `calc(${x}%)`;\n style.top = `calc(${y}% - var(--comment-button-dim))`;\n }\n #updateColor() {\n if (this.#firstElement.extraPopupElement) {\n return;\n }\n if (!this.#commentButton) {\n this.renderCommentButton();\n }\n this.#commentButton.style.backgroundColor = this.commentButtonColor || \"\";\n }\n get commentButtonColor() {\n const {\n color,\n opacity\n } = this.#firstElement.commentData;\n if (!color) {\n return null;\n }\n return this.#parent._commentManager.makeCommentColor(color, opacity);\n }\n focusCommentButton() {\n setTimeout(() => {\n this.#commentButton?.focus();\n }, 0);\n }\n getData() {\n const {\n richText,\n color,\n opacity,\n creationDate,\n modificationDate\n } = this.#firstElement.commentData;\n return {\n contentsObj: {\n str: this.comment\n },\n richText,\n color,\n opacity,\n creationDate,\n modificationDate\n };\n }\n get elementBeforePopup() {\n return this.#commentButton;\n }\n get comment() {\n this.#commentText ||= this.#firstElement.commentText;\n return this.#commentText;\n }\n set comment(text) {\n if (text === this.comment) {\n return;\n }\n this.#firstElement.commentText = this.#commentText = text;\n }\n focus() {\n this.#firstElement.container?.focus();\n }\n get parentBoundingClientRect() {\n return this.#firstElement.layer.getBoundingClientRect();\n }\n setCommentButtonStates({\n selected,\n hasPopup\n }) {\n if (!this.#commentButton) {\n return;\n }\n this.#commentButton.classList.toggle(\"selected\", selected);\n this.#commentButton.ariaExpanded = hasPopup;\n }\n setSelectedCommentButton(selected) {\n this.#commentButton.classList.toggle(\"selected\", selected);\n }\n get commentPopupPosition() {\n if (this.#popupPosition) {\n return this.#popupPosition;\n }\n const {\n x,\n y,\n height\n } = this.#commentButton.getBoundingClientRect();\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = this.#firstElement.layer.getBoundingClientRect();\n return [(x - parentX) / parentWidth, (y + height - parentY) / parentHeight];\n }\n set commentPopupPosition(pos) {\n this.#popupPosition = pos;\n }\n hasDefaultPopupPosition() {\n return this.#popupPosition === null;\n }\n get commentButtonPosition() {\n return this.#commentButtonPosition;\n }\n get commentButtonWidth() {\n return this.#commentButton.getBoundingClientRect().width / this.parentBoundingClientRect.width;\n }\n editComment(options) {\n const [posX, posY] = this.#popupPosition || this.commentButtonPosition.map(x => x / 100);\n const parentDimensions = this.parentBoundingClientRect;\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = parentDimensions;\n this.#commentManager.showDialog(null, this, parentX + posX * parentWidth, parentY + posY * parentHeight, {\n ...options,\n parentDimensions\n });\n }\n render() {\n if (this.#popup) {\n return;\n }\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = Util.makeHexColor(...this.#color);\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n if (this.#titleObj?.str) {\n const title = document.createElement(\"span\");\n title.className = \"title\";\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n }\n popup.append(header);\n if (this.#dateObj) {\n const modificationDate = document.createElement(\"time\");\n modificationDate.className = \"popupDate\";\n modificationDate.setAttribute(\"data-l10n-id\", \"pdfjs-annotation-date-time-string\");\n modificationDate.setAttribute(\"data-l10n-args\", JSON.stringify({\n dateObj: this.#dateObj.valueOf()\n }));\n modificationDate.dateTime = this.#dateObj.toISOString();\n header.append(modificationDate);\n }\n renderRichText({\n html: this.#html || this.#contentsObj.str,\n dir: this.#contentsObj?.dir,\n className: \"popupContent\"\n }, popup);\n this.#container.append(popup);\n }\n get #html() {\n const richText = this.#richText;\n const contentsObj = this.#contentsObj;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n return this.#richText.html || null;\n }\n return null;\n }\n get #fontSize() {\n return this.#html?.attributes?.style?.fontSize || 0;\n }\n get #fontColor() {\n return this.#html?.attributes?.style?.color || null;\n }\n #makePopupContent(text) {\n const popupLines = [];\n const popupContent = {\n str: text,\n html: {\n name: \"div\",\n attributes: {\n dir: \"auto\"\n },\n children: [{\n name: \"p\",\n children: popupLines\n }]\n }\n };\n const lineAttributes = {\n style: {\n color: this.#fontColor,\n fontSize: this.#fontSize ? `calc(${this.#fontSize}px * var(--total-scale-factor))` : \"\"\n }\n };\n for (const line of text.split(\"\\n\")) {\n popupLines.push({\n name: \"span\",\n value: line,\n attributes: lineAttributes\n });\n }\n return popupContent;\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 updateEdited({\n rect,\n popup,\n deleted\n }) {\n if (this.#commentManager) {\n if (deleted) {\n this.remove();\n this.#commentText = null;\n } else if (popup) {\n if (popup.deleted) {\n this.remove();\n } else {\n this.#updateColor();\n this.#commentText = popup.text;\n }\n }\n if (rect) {\n this.#commentButtonPosition = null;\n this.#setCommentButtonPosition();\n this.#updateCommentButtonPosition();\n }\n return;\n }\n if (deleted || popup?.deleted) {\n this.remove();\n return;\n }\n this.#addEventListeners();\n this.#updates ||= {\n contentsObj: this.#contentsObj,\n richText: this.#richText\n };\n if (rect) {\n this.#position = null;\n }\n if (popup && popup.text) {\n this.#richText = this.#makePopupContent(popup.text);\n this.#dateObj = PDFDateString.toDateObject(popup.date);\n this.#contentsObj = null;\n }\n this.#popup?.remove();\n this.#popup = null;\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n ({\n contentsObj: this.#contentsObj,\n richText: this.#richText\n } = this.#updates);\n this.#updates = null;\n this.#popup?.remove();\n this.#popup = null;\n this.#position = null;\n }\n remove() {\n this.#popupAbortController?.abort();\n this.#popupAbortController = null;\n this.#popup?.remove();\n this.#popup = null;\n this.#wasVisible = false;\n this.#pinned = false;\n this.#commentButton?.remove();\n this.#commentButton = null;\n if (this.trigger) {\n for (const element of this.trigger) {\n element.classList.remove(\"popupTriggerArea\");\n }\n }\n }\n #setPosition() {\n if (this.#position !== null) {\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 let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = 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 this.#position = [100 * (popupLeft - pageX) / pageWidth, 100 * (popupTop - pageY) / pageHeight];\n const {\n style\n } = this.#container;\n style.left = `${this.#position[0]}%`;\n style.top = `${this.#position[1]}%`;\n }\n #toggle() {\n if (this.#commentManager) {\n this.#commentManager.toggleCommentPopup(this, false);\n return;\n }\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.#setPosition();\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.#commentManager) {\n return;\n }\n this.#addEventListeners();\n if (!this.#wasVisible) {\n return;\n }\n if (!this.#popup) {\n this.#show();\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n if (this.#commentManager) {\n return false;\n }\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 = AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = this.contentElement = 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.hasOwnCommentButton = true;\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\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 {\n data,\n width,\n height\n } = this;\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.hasOwnCommentButton = true;\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 {\n data,\n width,\n height\n } = this;\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.hasOwnCommentButton = true;\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 {\n data,\n width,\n height\n } = this;\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.hasOwnCommentButton = true;\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 {\n data: {\n rect,\n vertices,\n borderStyle,\n popupRef\n },\n width,\n height\n } = this;\n if (!vertices) {\n return this.container;\n }\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n const x = vertices[i] - rect[0];\n const y = rect[3] - vertices[i + 1];\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\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\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.hasOwnCommentButton = true;\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylinesGroupElement = null;\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 = this.data.it === \"InkHighlight\" ? AnnotationEditorType.HIGHLIGHT : AnnotationEditorType.INK;\n }\n #getTransform(rotation, rect) {\n switch (rotation) {\n case 90:\n return {\n transform: `rotate(90) translate(${-rect[0]},${rect[1]}) scale(1,-1)`,\n width: rect[3] - rect[1],\n height: rect[2] - rect[0]\n };\n case 180:\n return {\n transform: `rotate(180) translate(${-rect[2]},${rect[1]}) scale(1,-1)`,\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n case 270:\n return {\n transform: `rotate(270) translate(${-rect[2]},${rect[3]}) scale(1,-1)`,\n width: rect[3] - rect[1],\n height: rect[2] - rect[0]\n };\n default:\n return {\n transform: `translate(${-rect[0]},${rect[3]}) scale(1,-1)`,\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n }\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n rotation,\n inkLists,\n borderStyle,\n popupRef\n }\n } = this;\n const {\n transform,\n width,\n height\n } = this.#getTransform(rotation, rect);\n const svg = this.svgFactory.create(width, height, true);\n const g = this.#polylinesGroupElement = this.svgFactory.createElement(\"svg:g\");\n svg.append(g);\n g.setAttribute(\"stroke-width\", borderStyle.width || 1);\n g.setAttribute(\"stroke-linecap\", \"round\");\n g.setAttribute(\"stroke-linejoin\", \"round\");\n g.setAttribute(\"stroke-miterlimit\", 10);\n g.setAttribute(\"stroke\", \"transparent\");\n g.setAttribute(\"fill\", \"transparent\");\n g.setAttribute(\"transform\", transform);\n for (let i = 0, ii = inkLists.length; i < ii; i++) {\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", inkLists[i].join(\",\"));\n g.append(polyline);\n }\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.append(svg);\n this._editOnDoubleClick();\n return this.container;\n }\n updateEdited(params) {\n super.updateEdited(params);\n const {\n thickness,\n points,\n rect\n } = params;\n const g = this.#polylinesGroupElement;\n if (thickness >= 0) {\n g.setAttribute(\"stroke-width\", thickness || 1);\n }\n if (points) {\n for (let i = 0, ii = this.#polylines.length; i < ii; i++) {\n this.#polylines[i].setAttribute(\"points\", points[i].join(\",\"));\n }\n }\n if (rect) {\n const {\n transform,\n width,\n height\n } = this.#getTransform(this.data.rotation, rect);\n const root = g.parentElement;\n root.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n g.setAttribute(\"transform\", transform);\n }\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n this.annotationEditorType = AnnotationEditorType.HIGHLIGHT;\n }\n render() {\n const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n this._editOnDoubleClick();\n if (overlaidText) {\n const mark = document.createElement(\"mark\");\n mark.classList.add(\"overlaidText\");\n mark.textContent = overlaidText;\n this.container.append(mark);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n if (overlaidText) {\n const underline = document.createElement(\"u\");\n underline.classList.add(\"overlaidText\");\n underline.textContent = overlaidText;\n this.container.append(underline);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n if (overlaidText) {\n const underline = document.createElement(\"u\");\n underline.classList.add(\"overlaidText\");\n underline.textContent = overlaidText;\n this.container.append(underline);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n if (overlaidText) {\n const strikeout = document.createElement(\"s\");\n strikeout.classList.add(\"overlaidText\");\n strikeout.textContent = overlaidText;\n this.container.append(strikeout);\n }\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.annotationEditorType = AnnotationEditorType.STAMP;\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n this.container.setAttribute(\"role\", \"img\");\n if (!this.data.popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n file\n } = this.data;\n this.filename = file.filename;\n this.content = file.content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n ...file\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 } = 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.hasOwnCommentButton = true;\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.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #annotationStorage = null;\n #editableAnnotations = new Map();\n #structTreeLayer = null;\n #linkService = null;\n #elements = [];\n #hasAriaAttributesFromStructTree = false;\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n annotationEditorUIManager,\n page,\n viewport,\n structTreeLayer,\n commentManager,\n linkService,\n annotationStorage\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.#structTreeLayer = structTreeLayer || null;\n this.#linkService = linkService || null;\n this.#annotationStorage = annotationStorage || new AnnotationStorage();\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this._annotationEditorUIManager = annotationEditorUIManager;\n this._commentManager = commentManager || null;\n }\n hasEditableAnnotations() {\n return this.#editableAnnotations.size > 0;\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n setLayerDimensions(layer, this.viewport);\n const popupToElements = new Map();\n const popupAnnotations = [];\n const elementParams = {\n data: null,\n layer,\n linkService: this.#linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage: this.#annotationStorage,\n enableComment: params.enableComment === true,\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 === AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n if (data.rect[2] === data.rect[0] || data.rect[3] === data.rect[1]) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n if (!this._commentManager) {\n popupAnnotations.push(data);\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) {\n this.#elements.push(element);\n if (data.popupRef) {\n popupToElements.getOrInsertComputed(data.popupRef, makeArr).push(element);\n }\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n if (element._isEditable) {\n this.#editableAnnotations.set(element.data.id, element);\n this._annotationEditorUIManager?.renderAnnotationElement(element);\n }\n }\n await this.#addElementsToDOM();\n for (const data of popupAnnotations) {\n const elements = elementParams.elements = popupToElements.get(data.id);\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n const rendered = element.render();\n element.contentElement.id = `${AnnotationPrefix}${data.id}`;\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n elements.at(-1).container.after(rendered);\n }\n this.#setAnnotationCanvasMap();\n }\n async #addElementsToDOM() {\n if (this.#elements.length === 0) {\n return;\n }\n this.div.replaceChildren();\n const promises = [];\n if (!this.#hasAriaAttributesFromStructTree) {\n this.#hasAriaAttributesFromStructTree = true;\n for (const {\n contentElement,\n data: {\n id\n }\n } of this.#elements) {\n const annotationId = contentElement.id = `${AnnotationPrefix}${id}`;\n promises.push(this.#structTreeLayer?.getAriaAttributes(annotationId).then(ariaAttributes => {\n if (ariaAttributes) {\n for (const [key, value] of ariaAttributes) {\n contentElement.setAttribute(key, value);\n }\n }\n }));\n }\n }\n this.#elements.sort(({\n data: {\n rect: [a0, a1, a2, a3]\n }\n }, {\n data: {\n rect: [b0, b1, b2, b3]\n }\n }) => {\n if (a0 === a2 && a1 === a3) {\n return +1;\n }\n if (b0 === b2 && b1 === b3) {\n return -1;\n }\n const top1 = a3;\n const bot1 = a1;\n const mid1 = (a1 + a3) / 2;\n const top2 = b3;\n const bot2 = b1;\n const mid2 = (b1 + b3) / 2;\n if (mid1 >= top2 && mid2 <= bot1) {\n return -1;\n }\n if (mid2 >= top1 && mid1 <= bot2) {\n return +1;\n }\n const centerX1 = (a0 + a2) / 2;\n const centerX2 = (b0 + b2) / 2;\n return centerX1 - centerX2;\n });\n const fragment = document.createDocumentFragment();\n for (const element of this.#elements) {\n fragment.append(element.container);\n if (this._commentManager) {\n (element.extraPopupElement?.popup || element.popup)?.renderCommentButton();\n } else if (element.extraPopupElement) {\n fragment.append(element.extraPopupElement.render());\n }\n }\n this.div.append(fragment);\n await Promise.all(promises);\n if (this.#accessibilityManager) {\n for (const element of this.#elements) {\n this.#accessibilityManager.addPointerInTextLayer(element.contentElement, false);\n }\n }\n }\n async addLinkAnnotations(annotations) {\n const elementParams = {\n data: null,\n layer: this.div,\n linkService: this.#linkService,\n svgFactory: new DOMSVGFactory(),\n parent: this\n };\n for (const data of annotations) {\n data.borderStyle ||= AnnotationLayer._defaultBorderStyle;\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n element.render();\n element.contentElement.id = `${AnnotationPrefix}${data.id}`;\n this.#elements.push(element);\n }\n await this.#addElementsToDOM();\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n 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 canvas.className = \"annotationContent\";\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 if (!firstChild.classList.contains(\"annotationContent\")) {\n firstChild.before(canvas);\n } else {\n firstChild.after(canvas);\n }\n const editableAnnotation = this.#editableAnnotations.get(id);\n if (!editableAnnotation) {\n continue;\n }\n if (editableAnnotation._hasNoCanvas) {\n this._annotationEditorUIManager?.setMissingCanvas(id, element.id, canvas);\n editableAnnotation._hasNoCanvas = false;\n } else {\n editableAnnotation.canvas = 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 addFakeAnnotation(editor) {\n const {\n div\n } = this;\n const {\n id,\n rotation\n } = editor;\n const element = new EditorAnnotationElement({\n data: {\n id,\n rect: editor.getPDFRect(),\n rotation\n },\n editor,\n layer: div,\n parent: this,\n enableComment: !!this._commentManager,\n linkService: this.#linkService,\n annotationStorage: this.#annotationStorage\n });\n element.render();\n element.contentElement.id = `${AnnotationPrefix}${id}`;\n element.createOrUpdatePopup();\n this.#elements.push(element);\n return element;\n }\n removeAnnotation(id) {\n const index = this.#elements.findIndex(el => el.data.id === id);\n if (index < 0) {\n return;\n }\n const [element] = this.#elements.splice(index, 1);\n this.#accessibilityManager?.removePointerInTextLayer(element.contentElement);\n }\n updateFakeAnnotations(editors) {\n if (editors.length === 0) {\n return;\n }\n for (const editor of editors) {\n editor.updateFakeAnnotationElement(this);\n }\n this.#addElementsToDOM();\n }\n togglePointerEvents(enabled = false) {\n this.div.classList.toggle(\"disabled\", !enabled);\n }\n static get _defaultBorderStyle() {\n return shadow(this, \"_defaultBorderStyle\", Object.freeze({\n width: 1,\n rawWidth: 1,\n style: AnnotationBorderStyleType.SOLID,\n dashArray: [3],\n horizontalCornerRadius: 0,\n verticalCornerRadius: 0\n }));\n }\n}\n\n;// ./src/display/editor/freetext.js\n\n\n\n\n\n\n\n\n\nconst EOL_PATTERN = /\\r\\n?|\\n/g;\nclass FreeTextEditor extends AnnotationEditor {\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #editModeAC = null;\n #fontSize;\n _colorPicker = 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 = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new 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 static _editorType = AnnotationEditorType.FREETEXT;\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.color = params.color || FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n if (!this.annotationElementId) {\n this._uiManager.a11yAlert(\"pdfjs-editor-freetext-added-alert\");\n }\n this.canAddComment = false;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\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 AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, this.color]];\n }\n get toolbarButtons() {\n this._colorPicker ||= new BasicColorPicker(this);\n return [[\"colorPicker\", this._colorPicker]];\n }\n get colorType() {\n return AnnotationEditorParamsType.FREETEXT_COLOR;\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--total-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: setFontsize.bind(this, fontSize),\n undo: setFontsize.bind(this, savedFontsize),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n onUpdatedColor() {\n this.editorDiv.style.color = this.color;\n this._colorPicker?.update(this.color);\n super.onUpdatedColor();\n }\n #updateColor(color) {\n const setColor = col => {\n this.color = col;\n this.onUpdatedColor();\n };\n const savedColor = this.color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: 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 (!super.enableEditMode()) {\n return false;\n }\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.#editModeAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#editModeAC);\n this.editorDiv.addEventListener(\"keydown\", this.editorDivKeydown.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"focus\", this.editorDivFocus.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"blur\", this.editorDivBlur.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"input\", this.editorDivInput.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"paste\", this.editorDivPaste.bind(this), {\n signal\n });\n return true;\n }\n disableEditMode() {\n if (!super.disableEditMode()) {\n return false;\n }\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.#editModeAC?.abort();\n this.#editModeAC = null;\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freetextEditing\");\n return true;\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(focus) {\n if (this.width) {\n return;\n }\n this.enableEditMode();\n if (focus) {\n this.editorDiv.focus();\n }\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 buffer = [];\n this.editorDiv.normalize();\n let prevChild = null;\n for (const child of this.editorDiv.childNodes) {\n if (prevChild?.nodeType === Node.TEXT_NODE && child.nodeName === \"BR\") {\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n prevChild = child;\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 const savedVisibility = div.classList.contains(\"hidden\");\n div.classList.remove(\"hidden\");\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n div.classList.toggle(\"hidden\", savedVisibility);\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 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 get canChangeContent() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this._isCopy || this.annotationElementId) {\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.editorDiv.setAttribute(\"data-l10n-id\", \"pdfjs-free-text2\");\n this.editorDiv.setAttribute(\"data-l10n-attrs\", \"default-content\");\n this.enableEditing();\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--total-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 if (this._isCopy || this.annotationElementId) {\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._moveAfterPaste(baseX, baseY);\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 static #getNodeContent(node) {\n return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, \"\");\n }\n editorDivPaste(event) {\n const clipboardData = event.clipboardData || window.clipboardData;\n const {\n types\n } = clipboardData;\n if (types.length === 1 && types[0] === \"text/plain\") {\n return;\n }\n event.preventDefault();\n const paste = FreeTextEditor.#deserializeContent(clipboardData.getData(\"text\") || \"\").replaceAll(EOL_PATTERN, \"\\n\");\n if (!paste) {\n return;\n }\n const selection = window.getSelection();\n if (!selection.rangeCount) {\n return;\n }\n this.editorDiv.normalize();\n selection.deleteFromDocument();\n const range = selection.getRangeAt(0);\n if (!paste.includes(\"\\n\")) {\n range.insertNode(document.createTextNode(paste));\n this.editorDiv.normalize();\n selection.collapseToStart();\n return;\n }\n const {\n startContainer,\n startOffset\n } = range;\n const bufferBefore = [];\n const bufferAfter = [];\n if (startContainer.nodeType === Node.TEXT_NODE) {\n const parent = startContainer.parentElement;\n bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, \"\"));\n if (parent !== this.editorDiv) {\n let buffer = bufferBefore;\n for (const child of this.editorDiv.childNodes) {\n if (child === parent) {\n buffer = bufferAfter;\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, \"\"));\n } else if (startContainer === this.editorDiv) {\n let buffer = bufferBefore;\n let i = 0;\n for (const child of this.editorDiv.childNodes) {\n if (i++ === startOffset) {\n buffer = bufferAfter;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n this.#content = `${bufferBefore.join(\"\\n\")}${paste}${bufferAfter.join(\"\\n\")}`;\n this.#setContent();\n const newRange = new Range();\n let beforeLength = Math.sumPrecise(bufferBefore.map(line => line.length));\n for (const {\n firstChild\n } of this.editorDiv.childNodes) {\n if (firstChild.nodeType === Node.TEXT_NODE) {\n const length = firstChild.nodeValue.length;\n if (beforeLength <= length) {\n newRange.setStart(firstChild, beforeLength);\n newRange.setEnd(firstChild, beforeLength);\n break;\n }\n beforeLength -= length;\n }\n }\n selection.removeAllRanges();\n selection.addRange(newRange);\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 #serializeContent() {\n return this.#content.replaceAll(\"\\xa0\", \" \");\n }\n static #deserializeContent(content) {\n return content.replaceAll(\" \", \"\\xa0\");\n }\n get contentDiv() {\n return this.editorDiv;\n }\n getPDFRect() {\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n return this.getRect(padding, padding);\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id,\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\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: AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n comment: contentsObj?.str || null,\n richText,\n creationDate,\n modificationDate\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.color = Util.makeHexColor(...data.color);\n editor.#content = FreeTextEditor.#deserializeContent(data.value);\n editor._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.color);\n const serialized = Object.assign(super.serialize(isForCopying), {\n color,\n fontSize: this.#fontSize,\n value: this.#serializeContent()\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.isCopy = true;\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 pageIndex\n } = this._initialData;\n return this.hasEditedComment || this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n renderAnnotationElement(annotation) {\n const content = super.renderAnnotationElement(annotation);\n if (!content) {\n return null;\n }\n const {\n style\n } = content;\n style.fontSize = `calc(${this.#fontSize}px * var(--total-scale-factor))`;\n style.color = this.color;\n content.replaceChildren();\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 content.append(div);\n }\n annotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this._uiManager.hasCommentManager() || this.hasEditedComment ? this.comment : {\n text: this.#content\n }\n });\n return content;\n }\n resetAnnotationElement(annotation) {\n super.resetAnnotationElement(annotation);\n annotation.resetEdited();\n }\n}\n\n;// ./src/display/editor/drawers/outline.js\n\n\n\n\n\nclass Outline {\n static PRECISION = 1e-4;\n toSVGPath() {\n unreachable(\"Abstract method `toSVGPath` must be implemented.\");\n }\n get box() {\n unreachable(\"Abstract getter `box` must be implemented.\");\n }\n serialize(_bbox, _rotation) {\n unreachable(\"Abstract method `serialize` must be implemented.\");\n }\n static _rescale(src, tx, ty, sx, sy, dest) {\n dest ||= new Float32Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i] * sx;\n dest[i + 1] = ty + src[i + 1] * sy;\n }\n return dest;\n }\n static _rescaleAndSwap(src, tx, ty, sx, sy, dest) {\n dest ||= new Float32Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i + 1] * sx;\n dest[i + 1] = ty + src[i] * sy;\n }\n return dest;\n }\n static _translate(src, tx, ty, dest) {\n dest ||= new Float32Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i];\n dest[i + 1] = ty + src[i + 1];\n }\n return dest;\n }\n static svgRound(x) {\n return Math.round(x * 10000);\n }\n static _normalizePoint(x, y, parentWidth, parentHeight, rotation) {\n switch (rotation) {\n case 90:\n return [1 - y / parentWidth, x / parentHeight];\n case 180:\n return [1 - x / parentWidth, 1 - y / parentHeight];\n case 270:\n return [y / parentWidth, 1 - x / parentHeight];\n default:\n return [x / parentWidth, y / parentHeight];\n }\n }\n static _normalizePagePoint(x, y, rotation) {\n switch (rotation) {\n case 90:\n return [1 - y, x];\n case 180:\n return [1 - x, 1 - y];\n case 270:\n return [y, 1 - x];\n default:\n return [x, y];\n }\n }\n static createBezierPoints(x1, y1, x2, y2, x3, y3) {\n return [(x1 + 5 * x2) / 6, (y1 + 5 * y2) / 6, (5 * x2 + x3) / 6, (5 * y2 + y3) / 6, (x2 + x3) / 2, (y2 + y3) / 2];\n }\n}\n\n;// ./src/display/editor/drawers/freedraw.js\n\n\n\n\n\n\n\nclass FreeDrawOutliner {\n #box;\n #bottom = [];\n #innerMargin;\n #isLTR;\n #top = [];\n #last = new Float32Array(18);\n #lastX;\n #lastY;\n #min;\n #min_dist;\n #scaleFactor;\n #thickness;\n #points = [];\n static #MIN_DIST = 8;\n static #MIN_DIFF = 2;\n static #MIN = FreeDrawOutliner.#MIN_DIST + FreeDrawOutliner.#MIN_DIFF;\n constructor({\n x,\n y\n }, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n this.#box = box;\n this.#thickness = thickness * scaleFactor;\n this.#isLTR = isLTR;\n this.#last.set([NaN, NaN, NaN, NaN, x, y], 6);\n this.#innerMargin = innerMargin;\n this.#min_dist = FreeDrawOutliner.#MIN_DIST * scaleFactor;\n this.#min = FreeDrawOutliner.#MIN * scaleFactor;\n this.#scaleFactor = scaleFactor;\n this.#points.push(x, y);\n }\n isEmpty() {\n return isNaN(this.#last[8]);\n }\n #getLastCoords() {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [x, y, width, height] = this.#box;\n return [(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x) / width, (this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y) / height, (this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x) / width, (this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y) / height];\n }\n add({\n x,\n y\n }) {\n this.#lastX = x;\n this.#lastY = y;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n let [x1, y1, x2, y2] = this.#last.subarray(8, 12);\n const diffX = x - x2;\n const diffY = y - y2;\n const d = Math.hypot(diffX, diffY);\n if (d < this.#min) {\n return false;\n }\n const diffD = d - this.#min_dist;\n const K = diffD / d;\n const shiftX = K * diffX;\n const shiftY = K * diffY;\n let x0 = x1;\n let y0 = y1;\n x1 = x2;\n y1 = y2;\n x2 += shiftX;\n y2 += shiftY;\n this.#points?.push(x, y);\n const nX = -shiftY / diffD;\n const nY = shiftX / diffD;\n const thX = nX * this.#thickness;\n const thY = nY * this.#thickness;\n this.#last.set(this.#last.subarray(2, 8), 0);\n this.#last.set([x2 + thX, y2 + thY], 4);\n this.#last.set(this.#last.subarray(14, 18), 12);\n this.#last.set([x2 - thX, y2 - thY], 16);\n if (isNaN(this.#last[6])) {\n if (this.#top.length === 0) {\n this.#last.set([x1 + thX, y1 + thY], 2);\n this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight);\n this.#last.set([x1 - thX, y1 - thY], 14);\n this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight);\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n return !this.isEmpty();\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX));\n if (angle < Math.PI / 2) {\n [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x1, y1, x0, y0] = this.#last.subarray(14, 18);\n this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight);\n return true;\n }\n [x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6);\n this.#top.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18);\n this.#bottom.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n return true;\n }\n toSVGPath() {\n if (this.isEmpty()) {\n return \"\";\n }\n const top = this.#top;\n const bottom = this.#bottom;\n if (isNaN(this.#last[6]) && !this.isEmpty()) {\n return this.#toSVGPathTwoPoints();\n }\n const buffer = [];\n buffer.push(`M${top[4]} ${top[5]}`);\n for (let i = 6; i < top.length; i += 6) {\n if (isNaN(top[i])) {\n buffer.push(`L${top[i + 4]} ${top[i + 5]}`);\n } else {\n buffer.push(`C${top[i]} ${top[i + 1]} ${top[i + 2]} ${top[i + 3]} ${top[i + 4]} ${top[i + 5]}`);\n }\n }\n this.#toSVGPathEnd(buffer);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n if (isNaN(bottom[i])) {\n buffer.push(`L${bottom[i + 4]} ${bottom[i + 5]}`);\n } else {\n buffer.push(`C${bottom[i]} ${bottom[i + 1]} ${bottom[i + 2]} ${bottom[i + 3]} ${bottom[i + 4]} ${bottom[i + 5]}`);\n }\n }\n this.#toSVGPathStart(buffer);\n return buffer.join(\" \");\n }\n #toSVGPathTwoPoints() {\n const [x, y, width, height] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n return `M${(this.#last[2] - x) / width} ${(this.#last[3] - y) / height} L${(this.#last[4] - x) / width} ${(this.#last[5] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x) / width} ${(this.#last[17] - y) / height} L${(this.#last[14] - x) / width} ${(this.#last[15] - y) / height} Z`;\n }\n #toSVGPathStart(buffer) {\n const bottom = this.#bottom;\n buffer.push(`L${bottom[4]} ${bottom[5]} Z`);\n }\n #toSVGPathEnd(buffer) {\n const [x, y, width, height] = this.#box;\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n buffer.push(`L${(lastTop[0] - x) / width} ${(lastTop[1] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0] - x) / width} ${(lastBottom[1] - y) / height}`);\n }\n newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n return new FreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n }\n getOutlines() {\n const top = this.#top;\n const bottom = this.#bottom;\n const last = this.#last;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const points = new Float32Array((this.#points?.length ?? 0) + 2);\n for (let i = 0, ii = points.length - 2; i < ii; i += 2) {\n points[i] = (this.#points[i] - layerX) / layerWidth;\n points[i + 1] = (this.#points[i + 1] - layerY) / layerHeight;\n }\n points[points.length - 2] = (this.#lastX - layerX) / layerWidth;\n points[points.length - 1] = (this.#lastY - layerY) / layerHeight;\n if (isNaN(last[6]) && !this.isEmpty()) {\n return this.#getOutlineTwoPoints(points);\n }\n const outline = new Float32Array(this.#top.length + 24 + this.#bottom.length);\n let N = top.length;\n for (let i = 0; i < N; i += 2) {\n if (isNaN(top[i])) {\n outline[i] = outline[i + 1] = NaN;\n continue;\n }\n outline[i] = top[i];\n outline[i + 1] = top[i + 1];\n }\n N = this.#getOutlineEnd(outline, N);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n for (let j = 0; j < 6; j += 2) {\n if (isNaN(bottom[i + j])) {\n outline[N] = outline[N + 1] = NaN;\n N += 2;\n continue;\n }\n outline[N] = bottom[i + j];\n outline[N + 1] = bottom[i + j + 1];\n N += 2;\n }\n }\n this.#getOutlineStart(outline, N);\n return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n #getOutlineTwoPoints(points) {\n const last = this.#last;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n const outline = new Float32Array(36);\n outline.set([NaN, NaN, NaN, NaN, (last[2] - layerX) / layerWidth, (last[3] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[4] - layerX) / layerWidth, (last[5] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (last[16] - layerX) / layerWidth, (last[17] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[14] - layerX) / layerWidth, (last[15] - layerY) / layerHeight], 0);\n return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n #getOutlineStart(outline, pos) {\n const bottom = this.#bottom;\n outline.set([NaN, NaN, NaN, NaN, bottom[4], bottom[5]], pos);\n return pos += 6;\n }\n #getOutlineEnd(outline, pos) {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n outline.set([NaN, NaN, NaN, NaN, (lastTop[0] - layerX) / layerWidth, (lastTop[1] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (lastBottom[0] - layerX) / layerWidth, (lastBottom[1] - layerY) / layerHeight], pos);\n return pos += 24;\n }\n}\nclass FreeDrawOutline extends Outline {\n #box;\n #bbox = new Float32Array(4);\n #innerMargin;\n #isLTR;\n #points;\n #scaleFactor;\n #outline;\n constructor(outline, points, box, scaleFactor, innerMargin, isLTR) {\n super();\n this.#outline = outline;\n this.#points = points;\n this.#box = box;\n this.#scaleFactor = scaleFactor;\n this.#innerMargin = innerMargin;\n this.#isLTR = isLTR;\n this.firstPoint = [NaN, NaN];\n this.lastPoint = [NaN, NaN];\n this.#computeMinMax(isLTR);\n const [x, y, width, height] = this.#bbox;\n for (let i = 0, ii = outline.length; i < ii; i += 2) {\n outline[i] = (outline[i] - x) / width;\n outline[i + 1] = (outline[i + 1] - y) / height;\n }\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = (points[i] - x) / width;\n points[i + 1] = (points[i + 1] - y) / height;\n }\n }\n toSVGPath() {\n const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`];\n for (let i = 6, ii = this.#outline.length; i < ii; i += 6) {\n if (isNaN(this.#outline[i])) {\n buffer.push(`L${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n continue;\n }\n buffer.push(`C${this.#outline[i]} ${this.#outline[i + 1]} ${this.#outline[i + 2]} ${this.#outline[i + 3]} ${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n }\n buffer.push(\"Z\");\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], rotation) {\n const width = trX - blX;\n const height = trY - blY;\n let outline;\n let points;\n switch (rotation) {\n case 0:\n outline = Outline._rescale(this.#outline, blX, trY, width, -height);\n points = Outline._rescale(this.#points, blX, trY, width, -height);\n break;\n case 90:\n outline = Outline._rescaleAndSwap(this.#outline, blX, blY, width, height);\n points = Outline._rescaleAndSwap(this.#points, blX, blY, width, height);\n break;\n case 180:\n outline = Outline._rescale(this.#outline, trX, blY, -width, height);\n points = Outline._rescale(this.#points, trX, blY, -width, height);\n break;\n case 270:\n outline = Outline._rescaleAndSwap(this.#outline, trX, trY, -width, -height);\n points = Outline._rescaleAndSwap(this.#points, trX, trY, -width, -height);\n break;\n }\n return {\n outline: Array.from(outline),\n points: [Array.from(points)]\n };\n }\n #computeMinMax(isLTR) {\n const outline = this.#outline;\n let lastX = outline[4];\n let lastY = outline[5];\n const minMax = [lastX, lastY, lastX, lastY];\n let firstPointX = lastX;\n let firstPointY = lastY;\n let lastPointX = lastX;\n let lastPointY = lastY;\n const ltrCallback = isLTR ? Math.max : Math.min;\n const bezierBbox = new Float32Array(4);\n for (let i = 6, ii = outline.length; i < ii; i += 6) {\n const x = outline[i + 4],\n y = outline[i + 5];\n if (isNaN(outline[i])) {\n Util.pointBoundingBox(x, y, minMax);\n if (firstPointY > y) {\n firstPointX = x;\n firstPointY = y;\n } else if (firstPointY === y) {\n firstPointX = ltrCallback(firstPointX, x);\n }\n if (lastPointY < y) {\n lastPointX = x;\n lastPointY = y;\n } else if (lastPointY === y) {\n lastPointX = ltrCallback(lastPointX, x);\n }\n } else {\n bezierBbox[0] = bezierBbox[1] = Infinity;\n bezierBbox[2] = bezierBbox[3] = -Infinity;\n Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6), bezierBbox);\n Util.rectBoundingBox(bezierBbox[0], bezierBbox[1], bezierBbox[2], bezierBbox[3], minMax);\n if (firstPointY > bezierBbox[1]) {\n firstPointX = bezierBbox[0];\n firstPointY = bezierBbox[1];\n } else if (firstPointY === bezierBbox[1]) {\n firstPointX = ltrCallback(firstPointX, bezierBbox[0]);\n }\n if (lastPointY < bezierBbox[3]) {\n lastPointX = bezierBbox[2];\n lastPointY = bezierBbox[3];\n } else if (lastPointY === bezierBbox[3]) {\n lastPointX = ltrCallback(lastPointX, bezierBbox[2]);\n }\n }\n lastX = x;\n lastY = y;\n }\n const bbox = this.#bbox;\n bbox[0] = minMax[0] - this.#innerMargin;\n bbox[1] = minMax[1] - this.#innerMargin;\n bbox[2] = minMax[2] - minMax[0] + 2 * this.#innerMargin;\n bbox[3] = minMax[3] - minMax[1] + 2 * this.#innerMargin;\n this.firstPoint = [firstPointX, firstPointY];\n this.lastPoint = [lastPointX, lastPointY];\n }\n get box() {\n return this.#bbox;\n }\n newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n return new FreeDrawOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n }\n getNewOutline(thickness, innerMargin) {\n const [x, y, width, height] = this.#bbox;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const sx = width * layerWidth;\n const sy = height * layerHeight;\n const tx = x * layerWidth + layerX;\n const ty = y * layerHeight + layerY;\n const outliner = this.newOutliner({\n x: this.#points[0] * sx + tx,\n y: this.#points[1] * sy + ty\n }, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin);\n for (let i = 2; i < this.#points.length; i += 2) {\n outliner.add({\n x: this.#points[i] * sx + tx,\n y: this.#points[i + 1] * sy + ty\n });\n }\n return outliner.getOutlines();\n }\n}\n\n;// ./src/display/editor/drawers/highlight.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass HighlightOutliner {\n #box;\n #firstPoint;\n #lastPoint;\n #verticalEdges = [];\n #intervals = [];\n constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n const minMax = [Infinity, Infinity, -Infinity, -Infinity];\n const NUMBER_OF_DIGITS = 4;\n const EPSILON = 10 ** -NUMBER_OF_DIGITS;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON;\n const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON;\n const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON;\n const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON;\n const left = [x1, y1, y2, true];\n const right = [x2, y1, y2, false];\n this.#verticalEdges.push(left, right);\n Util.rectBoundingBox(x1, y1, x2, y2, minMax);\n }\n const bboxWidth = minMax[2] - minMax[0] + 2 * innerMargin;\n const bboxHeight = minMax[3] - minMax[1] + 2 * innerMargin;\n const shiftedMinX = minMax[0] - innerMargin;\n const shiftedMinY = minMax[1] - innerMargin;\n let firstPointX = isLTR ? -Infinity : Infinity;\n let firstPointY = Infinity;\n const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);\n const lastPoint = [lastEdge[0], lastEdge[2]];\n for (const edge of this.#verticalEdges) {\n const [x, y1, y2, left] = edge;\n if (!left && isLTR) {\n if (y1 < firstPointY) {\n firstPointY = y1;\n firstPointX = x;\n } else if (y1 === firstPointY) {\n firstPointX = Math.max(firstPointX, x);\n }\n } else if (left && !isLTR) {\n if (y1 < firstPointY) {\n firstPointY = y1;\n firstPointX = x;\n } else if (y1 === firstPointY) {\n firstPointX = Math.min(firstPointX, x);\n }\n }\n edge[0] = (x - shiftedMinX) / bboxWidth;\n edge[1] = (y1 - shiftedMinY) / bboxHeight;\n edge[2] = (y2 - shiftedMinY) / bboxHeight;\n }\n this.#box = new Float32Array([shiftedMinX, shiftedMinY, bboxWidth, bboxHeight]);\n this.#firstPoint = [firstPointX, firstPointY];\n this.#lastPoint = lastPoint;\n }\n getOutlines() {\n this.#verticalEdges.sort((a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]);\n const outlineVerticalEdges = [];\n for (const edge of this.#verticalEdges) {\n if (edge[3]) {\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n this.#insert(edge);\n } else {\n this.#remove(edge);\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n }\n }\n return this.#getOutlines(outlineVerticalEdges);\n }\n #getOutlines(outlineVerticalEdges) {\n const edges = [];\n const allEdges = new Set();\n for (const edge of outlineVerticalEdges) {\n const [x, y1, y2] = edge;\n edges.push([x, y1, edge], [x, y2, edge]);\n }\n edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]);\n for (let i = 0, ii = edges.length; i < ii; i += 2) {\n const edge1 = edges[i][2];\n const edge2 = edges[i + 1][2];\n edge1.push(edge2);\n edge2.push(edge1);\n allEdges.add(edge1);\n allEdges.add(edge2);\n }\n const outlines = [];\n let outline;\n while (allEdges.size > 0) {\n const edge = allEdges.values().next().value;\n let [x, y1, y2, edge1, edge2] = edge;\n allEdges.delete(edge);\n let lastPointX = x;\n let lastPointY = y1;\n outline = [x, y2];\n outlines.push(outline);\n while (true) {\n let e;\n if (allEdges.has(edge1)) {\n e = edge1;\n } else if (allEdges.has(edge2)) {\n e = edge2;\n } else {\n break;\n }\n allEdges.delete(e);\n [x, y1, y2, edge1, edge2] = e;\n if (lastPointX !== x) {\n outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2);\n lastPointX = x;\n }\n lastPointY = lastPointY === y1 ? y2 : y1;\n }\n outline.push(lastPointX, lastPointY);\n }\n return new HighlightOutline(outlines, this.#box, this.#firstPoint, this.#lastPoint);\n }\n #binarySearch(y) {\n const array = this.#intervals;\n let start = 0;\n let end = array.length - 1;\n while (start <= end) {\n const middle = start + end >> 1;\n const y1 = array[middle][0];\n if (y1 === y) {\n return middle;\n }\n if (y1 < y) {\n start = middle + 1;\n } else {\n end = middle - 1;\n }\n }\n return end + 1;\n }\n #insert([, y1, y2]) {\n const index = this.#binarySearch(y1);\n this.#intervals.splice(index, 0, [y1, y2]);\n }\n #remove([, y1, y2]) {\n const index = this.#binarySearch(y1);\n for (let i = index; i < this.#intervals.length; i++) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n for (let i = index - 1; i >= 0; i--) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n }\n #breakEdge(edge) {\n const [x, y1, y2] = edge;\n const results = [[x, y1, y2]];\n const index = this.#binarySearch(y2);\n for (let i = 0; i < index; i++) {\n const [start, end] = this.#intervals[i];\n for (let j = 0, jj = results.length; j < jj; j++) {\n const [, y3, y4] = results[j];\n if (end <= y3 || y4 <= start) {\n continue;\n }\n if (y3 >= start) {\n if (y4 > end) {\n results[j][1] = end;\n } else {\n if (jj === 1) {\n return [];\n }\n results.splice(j, 1);\n j--;\n jj--;\n }\n continue;\n }\n results[j][2] = start;\n if (y4 > end) {\n results.push([x, end, y4]);\n }\n }\n }\n return results;\n }\n}\nclass HighlightOutline extends Outline {\n #box;\n #outlines;\n constructor(outlines, box, firstPoint, lastPoint) {\n super();\n this.#outlines = outlines;\n this.#box = box;\n this.firstPoint = firstPoint;\n this.lastPoint = lastPoint;\n }\n toSVGPath() {\n const buffer = [];\n for (const polygon of this.#outlines) {\n let [prevX, prevY] = polygon;\n buffer.push(`M${prevX} ${prevY}`);\n for (let i = 2; i < polygon.length; i += 2) {\n const x = polygon[i];\n const y = polygon[i + 1];\n if (x === prevX) {\n buffer.push(`V${y}`);\n prevY = y;\n } else if (y === prevY) {\n buffer.push(`H${x}`);\n prevX = x;\n }\n }\n buffer.push(\"Z\");\n }\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], _rotation) {\n const outlines = [];\n const width = trX - blX;\n const height = trY - blY;\n for (const outline of this.#outlines) {\n const points = new Array(outline.length);\n for (let i = 0; i < outline.length; i += 2) {\n points[i] = blX + outline[i] * width;\n points[i + 1] = trY - outline[i + 1] * height;\n }\n outlines.push(points);\n }\n return outlines;\n }\n get box() {\n return this.#box;\n }\n get classNamesForOutlining() {\n return [\"highlightOutline\"];\n }\n}\nclass FreeHighlightOutliner extends FreeDrawOutliner {\n newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n return new FreeHighlightOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n }\n}\nclass FreeHighlightOutline extends FreeDrawOutline {\n newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n return new FreeHighlightOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n }\n}\n\n;// ./src/display/editor/highlight.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass HighlightEditor extends AnnotationEditor {\n #anchorNode = null;\n #anchorOffset = 0;\n #boxes;\n #clipPathId = null;\n #colorPicker = null;\n #focusOutlines = null;\n #focusNode = null;\n #focusOffset = 0;\n #highlightDiv = null;\n #highlightOutlines = null;\n #id = null;\n #isFreeHighlight = false;\n #firstPoint = null;\n #lastPoint = null;\n #outlineId = null;\n #text = \"\";\n #thickness;\n #methodOfCreation = \"\";\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 12;\n static _type = \"highlight\";\n static _editorType = AnnotationEditorType.HIGHLIGHT;\n static _freeHighlightId = -1;\n static _freeHighlight = null;\n static _freeHighlightClipId = \"\";\n static get _keyboardManager() {\n const proto = HighlightEditor.prototype;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._moveCaret, {\n args: [0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._moveCaret, {\n args: [1]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._moveCaret, {\n args: [2]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._moveCaret, {\n args: [3]\n }]]));\n }\n constructor(params) {\n super({\n ...params,\n name: \"highlightEditor\"\n });\n this.color = params.color || HighlightEditor._defaultColor;\n this.#thickness = params.thickness || HighlightEditor._defaultThickness;\n this.opacity = params.opacity || HighlightEditor._defaultOpacity;\n this.#boxes = params.boxes || null;\n this.#methodOfCreation = params.methodOfCreation || \"\";\n this.#text = params.text || \"\";\n this._isDraggable = false;\n this.defaultL10nId = \"pdfjs-editor-highlight-editor\";\n if (params.highlightId > -1) {\n this.#isFreeHighlight = true;\n this.#createFreeOutlines(params);\n this.#addToDrawLayer();\n } else if (this.#boxes) {\n this.#anchorNode = params.anchorNode;\n this.#anchorOffset = params.anchorOffset;\n this.#focusNode = params.focusNode;\n this.#focusOffset = params.focusOffset;\n this.#createOutlines();\n this.#addToDrawLayer();\n this.rotate(this.rotation);\n }\n if (!this.annotationElementId) {\n this._uiManager.a11yAlert(\"pdfjs-editor-highlight-added-alert\");\n }\n }\n get telemetryInitialData() {\n return {\n action: \"added\",\n type: this.#isFreeHighlight ? \"free_highlight\" : \"highlight\",\n color: this._uiManager.getNonHCMColorName(this.color),\n thickness: this.#thickness,\n methodOfCreation: this.#methodOfCreation\n };\n }\n get telemetryFinalData() {\n return {\n type: \"highlight\",\n color: this._uiManager.getNonHCMColorName(this.color)\n };\n }\n static computeTelemetryFinalData(data) {\n return {\n numberOfColors: data.get(\"color\").size\n };\n }\n #createOutlines() {\n const outliner = new HighlightOutliner(this.#boxes, 0.001);\n this.#highlightOutlines = outliner.getOutlines();\n [this.x, this.y, this.width, this.height] = this.#highlightOutlines.box;\n const outlinerForOutline = new HighlightOutliner(this.#boxes, 0.0025, 0.001, this._uiManager.direction === \"ltr\");\n this.#focusOutlines = outlinerForOutline.getOutlines();\n const {\n firstPoint\n } = this.#highlightOutlines;\n this.#firstPoint = [(firstPoint[0] - this.x) / this.width, (firstPoint[1] - this.y) / this.height];\n const {\n lastPoint\n } = this.#focusOutlines;\n this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height];\n }\n #createFreeOutlines({\n highlightOutlines,\n highlightId,\n clipPathId\n }) {\n this.#highlightOutlines = highlightOutlines;\n const extraThickness = 1.5;\n this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, 0.0025);\n if (highlightId >= 0) {\n this.#id = highlightId;\n this.#clipPathId = clipPathId;\n this.parent.drawLayer.finalizeDraw(highlightId, {\n bbox: highlightOutlines.box,\n path: {\n d: highlightOutlines.toSVGPath()\n }\n });\n this.#outlineId = this.parent.drawLayer.drawOutline({\n rootClass: {\n highlightOutline: true,\n free: true\n },\n bbox: this.#focusOutlines.box,\n path: {\n d: this.#focusOutlines.toSVGPath()\n }\n }, true);\n } else if (this.parent) {\n const angle = this.parent.viewport.rotation;\n this.parent.drawLayer.updateProperties(this.#id, {\n bbox: HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360),\n path: {\n d: highlightOutlines.toSVGPath()\n }\n });\n this.parent.drawLayer.updateProperties(this.#outlineId, {\n bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),\n path: {\n d: this.#focusOutlines.toSVGPath()\n }\n });\n }\n const [x, y, width, height] = highlightOutlines.box;\n switch (this.rotation) {\n case 0:\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n break;\n case 90:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = y;\n this.y = 1 - x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n case 180:\n this.x = 1 - x;\n this.y = 1 - y;\n this.width = width;\n this.height = height;\n break;\n case 270:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = 1 - y;\n this.y = x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n }\n const {\n firstPoint\n } = highlightOutlines;\n this.#firstPoint = [(firstPoint[0] - x) / width, (firstPoint[1] - y) / height];\n const {\n lastPoint\n } = this.#focusOutlines;\n this.#lastPoint = [(lastPoint[0] - x) / width, (lastPoint[1] - y) / height];\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || \"#fff066\";\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n HighlightEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n HighlightEditor._defaultThickness = value;\n break;\n }\n }\n translateInPage(x, y) {}\n get toolbarPosition() {\n return this.#lastPoint;\n }\n get commentButtonPosition() {\n return this.#firstPoint;\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n this.#updateThickness(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness], [AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]];\n }\n onUpdatedColor() {\n this.parent?.drawLayer.updateProperties(this.#id, {\n root: {\n fill: this.color,\n \"fill-opacity\": this.opacity\n }\n });\n this.#colorPicker?.updateColor(this.color);\n super.onUpdatedColor();\n }\n #updateColor(color) {\n const setColorAndOpacity = (col, opa) => {\n this.color = col;\n this.opacity = opa;\n this.onUpdatedColor();\n };\n const savedColor = this.color;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: setColorAndOpacity.bind(this, color, HighlightEditor._defaultOpacity),\n undo: setColorAndOpacity.bind(this, savedColor, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"color_changed\",\n color: this._uiManager.getNonHCMColorName(color)\n }, true);\n }\n #updateThickness(thickness) {\n const savedThickness = this.#thickness;\n const setThickness = th => {\n this.#thickness = th;\n this.#changeThickness(th);\n };\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"thickness_changed\",\n thickness\n }, true);\n }\n get toolbarButtons() {\n if (this._uiManager.highlightColors) {\n const colorPicker = this.#colorPicker = new ColorPicker({\n editor: this\n });\n return [[\"colorPicker\", colorPicker]];\n }\n return super.toolbarButtons;\n }\n disableEditing() {\n super.disableEditing();\n this.div.classList.toggle(\"disabled\", true);\n }\n enableEditing() {\n super.enableEditing();\n this.div.classList.toggle(\"disabled\", false);\n }\n fixAndSetPosition() {\n return super.fixAndSetPosition(this.#getRotation());\n }\n getBaseTranslation() {\n return [0, 0];\n }\n getRect(tx, ty) {\n return super.getRect(tx, ty, this.#getRotation());\n }\n onceAdded(focus) {\n if (!this.annotationElementId) {\n this.parent.addUndoableEditor(this);\n }\n if (focus) {\n this.div.focus();\n }\n }\n remove() {\n this.#cleanDrawLayer();\n this._reportTelemetry({\n action: \"deleted\"\n });\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n this.#addToDrawLayer();\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n setParent(parent) {\n let mustBeSelected = false;\n if (this.parent && !parent) {\n this.#cleanDrawLayer();\n } else if (parent) {\n this.#addToDrawLayer(parent);\n mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n }\n super.setParent(parent);\n this.show(this._isVisible);\n if (mustBeSelected) {\n this.select();\n }\n }\n #changeThickness(thickness) {\n if (!this.#isFreeHighlight) {\n return;\n }\n this.#createFreeOutlines({\n highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2)\n });\n this.fixAndSetPosition();\n this.setDims();\n }\n #cleanDrawLayer() {\n if (this.#id === null || !this.parent) {\n return;\n }\n this.parent.drawLayer.remove(this.#id);\n this.#id = null;\n this.parent.drawLayer.remove(this.#outlineId);\n this.#outlineId = null;\n }\n #addToDrawLayer(parent = this.parent) {\n if (this.#id !== null) {\n return;\n }\n ({\n id: this.#id,\n clipPathId: this.#clipPathId\n } = parent.drawLayer.draw({\n bbox: this.#highlightOutlines.box,\n root: {\n viewBox: \"0 0 1 1\",\n fill: this.color,\n \"fill-opacity\": this.opacity\n },\n rootClass: {\n highlight: true,\n free: this.#isFreeHighlight\n },\n path: {\n d: this.#highlightOutlines.toSVGPath()\n }\n }, false, true));\n this.#outlineId = parent.drawLayer.drawOutline({\n rootClass: {\n highlightOutline: true,\n free: this.#isFreeHighlight\n },\n bbox: this.#focusOutlines.box,\n path: {\n d: this.#focusOutlines.toSVGPath()\n }\n }, this.#isFreeHighlight);\n if (this.#highlightDiv) {\n this.#highlightDiv.style.clipPath = this.#clipPathId;\n }\n }\n static #rotateBbox([x, y, width, height], angle) {\n switch (angle) {\n case 90:\n return [1 - y - height, x, height, width];\n case 180:\n return [1 - x - width, 1 - y - height, width, height];\n case 270:\n return [y, 1 - x - width, height, width];\n }\n return [x, y, width, height];\n }\n rotate(angle) {\n const {\n drawLayer\n } = this.parent;\n let box;\n if (this.#isFreeHighlight) {\n angle = (angle - this.rotation + 360) % 360;\n box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle);\n } else {\n box = HighlightEditor.#rotateBbox([this.x, this.y, this.width, this.height], angle);\n }\n drawLayer.updateProperties(this.#id, {\n bbox: box,\n root: {\n \"data-main-rotation\": angle\n }\n });\n drawLayer.updateProperties(this.#outlineId, {\n bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),\n root: {\n \"data-main-rotation\": angle\n }\n });\n }\n render() {\n if (this.div) {\n return this.div;\n }\n const div = super.render();\n if (this.#text) {\n div.setAttribute(\"aria-label\", this.#text);\n div.setAttribute(\"role\", \"mark\");\n }\n if (this.#isFreeHighlight) {\n div.classList.add(\"free\");\n } else {\n this.div.addEventListener(\"keydown\", this.#keydown.bind(this), {\n signal: this._uiManager._signal\n });\n }\n const highlightDiv = this.#highlightDiv = document.createElement(\"div\");\n div.append(highlightDiv);\n highlightDiv.setAttribute(\"aria-hidden\", \"true\");\n highlightDiv.className = \"internal\";\n highlightDiv.style.clipPath = this.#clipPathId;\n this.setDims();\n bindEvents(this, this.#highlightDiv, [\"pointerover\", \"pointerleave\"]);\n this.enableEditing();\n return div;\n }\n pointerover() {\n if (!this.isSelected) {\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hovered: true\n }\n });\n }\n }\n pointerleave() {\n if (!this.isSelected) {\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hovered: false\n }\n });\n }\n }\n #keydown(event) {\n HighlightEditor._keyboardManager.exec(this, event);\n }\n _moveCaret(direction) {\n this.parent.unselect(this);\n switch (direction) {\n case 0:\n case 2:\n this.#setCaret(true);\n break;\n case 1:\n case 3:\n this.#setCaret(false);\n break;\n }\n }\n #setCaret(start) {\n if (!this.#anchorNode) {\n return;\n }\n const selection = window.getSelection();\n if (start) {\n selection.setPosition(this.#anchorNode, this.#anchorOffset);\n } else {\n selection.setPosition(this.#focusNode, this.#focusOffset);\n }\n }\n select() {\n super.select();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hovered: false,\n selected: true\n }\n });\n }\n unselect() {\n super.unselect();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n selected: false\n }\n });\n if (!this.#isFreeHighlight) {\n this.#setCaret(false);\n }\n }\n get _mustFixPosition() {\n return !this.#isFreeHighlight;\n }\n show(visible = this._isVisible) {\n super.show(visible);\n if (this.parent) {\n this.parent.drawLayer.updateProperties(this.#id, {\n rootClass: {\n hidden: !visible\n }\n });\n this.parent.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hidden: !visible\n }\n });\n }\n }\n #getRotation() {\n return this.#isFreeHighlight ? this.rotation : 0;\n }\n #serializeBoxes() {\n if (this.#isFreeHighlight) {\n return null;\n }\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const boxes = this.#boxes;\n const quadPoints = new Float32Array(boxes.length * 8);\n let i = 0;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const sx = x * pageWidth + pageX;\n const sy = (1 - y) * pageHeight + pageY;\n quadPoints[i] = quadPoints[i + 4] = sx;\n quadPoints[i + 1] = quadPoints[i + 3] = sy;\n quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth;\n quadPoints[i + 5] = quadPoints[i + 7] = sy - height * pageHeight;\n i += 8;\n }\n return quadPoints;\n }\n #serializeOutlines(rect) {\n return this.#highlightOutlines.serialize(rect, this.#getRotation());\n }\n static startHighlighting(parent, isLTR, {\n target: textLayer,\n x,\n y\n }) {\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n const ac = new AbortController();\n const signal = parent.combinedSignal(ac);\n const pointerUpCallback = e => {\n ac.abort();\n this.#endHighlight(parent, e);\n };\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerdown\", stopEvent, {\n capture: true,\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n textLayer.addEventListener(\"pointermove\", this.#highlightMove.bind(this, parent), {\n signal\n });\n this._freeHighlight = new FreeHighlightOutliner({\n x,\n y\n }, [layerX, layerY, parentWidth, parentHeight], parent.scale, this._defaultThickness / 2, isLTR, 0.001);\n ({\n id: this._freeHighlightId,\n clipPathId: this._freeHighlightClipId\n } = parent.drawLayer.draw({\n bbox: [0, 0, 1, 1],\n root: {\n viewBox: \"0 0 1 1\",\n fill: this._defaultColor,\n \"fill-opacity\": this._defaultOpacity\n },\n rootClass: {\n highlight: true,\n free: true\n },\n path: {\n d: this._freeHighlight.toSVGPath()\n }\n }, true, true));\n }\n static #highlightMove(parent, event) {\n if (this._freeHighlight.add(event)) {\n parent.drawLayer.updateProperties(this._freeHighlightId, {\n path: {\n d: this._freeHighlight.toSVGPath()\n }\n });\n }\n }\n static #endHighlight(parent, event) {\n if (!this._freeHighlight.isEmpty()) {\n parent.createAndAddNewEditor(event, false, {\n highlightId: this._freeHighlightId,\n highlightOutlines: this._freeHighlight.getOutlines(),\n clipPathId: this._freeHighlightClipId,\n methodOfCreation: \"main_toolbar\"\n });\n } else {\n parent.drawLayer.remove(this._freeHighlightId);\n }\n this._freeHighlightId = -1;\n this._freeHighlight = null;\n this._freeHighlightClipId = \"\";\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof HighlightAnnotationElement) {\n const {\n data: {\n quadPoints,\n rect,\n rotation,\n id,\n color,\n opacity,\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color: Array.from(color),\n opacity,\n quadPoints,\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\n };\n } else if (data instanceof InkAnnotationElement) {\n const {\n data: {\n inkLists,\n rect,\n rotation,\n id,\n color,\n borderStyle: {\n rawWidth: thickness\n },\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color: Array.from(color),\n thickness,\n inkLists,\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\n };\n }\n const {\n color,\n quadPoints,\n inkLists,\n opacity\n } = data;\n const editor = await super.deserialize(data, parent, uiManager);\n editor.color = Util.makeHexColor(...color);\n editor.opacity = opacity || 1;\n if (inkLists) {\n editor.#thickness = data.thickness;\n }\n editor._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [pageX, pageY] = editor.pageTranslation;\n if (quadPoints) {\n const boxes = editor.#boxes = [];\n for (let i = 0; i < quadPoints.length; i += 8) {\n boxes.push({\n x: (quadPoints[i] - pageX) / pageWidth,\n y: 1 - (quadPoints[i + 1] - pageY) / pageHeight,\n width: (quadPoints[i + 2] - quadPoints[i]) / pageWidth,\n height: (quadPoints[i + 1] - quadPoints[i + 5]) / pageHeight\n });\n }\n editor.#createOutlines();\n editor.#addToDrawLayer();\n editor.rotate(editor.rotation);\n } else if (inkLists) {\n editor.#isFreeHighlight = true;\n const points = inkLists[0];\n const point = {\n x: points[0] - pageX,\n y: pageHeight - (points[1] - pageY)\n };\n const outliner = new FreeHighlightOutliner(point, [0, 0, pageWidth, pageHeight], 1, editor.#thickness / 2, true, 0.001);\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n point.x = points[i] - pageX;\n point.y = pageHeight - (points[i + 1] - pageY);\n outliner.add(point);\n }\n const {\n id,\n clipPathId\n } = parent.drawLayer.draw({\n bbox: [0, 0, 1, 1],\n root: {\n viewBox: \"0 0 1 1\",\n fill: editor.color,\n \"fill-opacity\": editor._defaultOpacity\n },\n rootClass: {\n highlight: true,\n free: true\n },\n path: {\n d: outliner.toSVGPath()\n }\n }, true, true);\n editor.#createFreeOutlines({\n highlightOutlines: outliner.getOutlines(),\n highlightId: id,\n clipPathId\n });\n editor.#addToDrawLayer();\n editor.rotate(editor.parentRotation);\n }\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty() || isForCopying) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const color = AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));\n const serialized = super.serialize(isForCopying);\n Object.assign(serialized, {\n color,\n opacity: this.opacity,\n thickness: this.#thickness,\n quadPoints: this.#serializeBoxes(),\n outlines: this.#serializeOutlines(serialized.rect)\n });\n this.addComment(serialized);\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 color\n } = this._initialData;\n return this.hasEditedComment || serialized.color.some((c, i) => c !== color[i]);\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n annotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this.comment\n });\n return null;\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// ./src/display/editor/draw.js\n\n\n\n\n\n\n\n\n\n\n\n\nclass DrawingOptions {\n #svgProperties = Object.create(null);\n updateProperty(name, value) {\n this[name] = value;\n this.updateSVGProperty(name, value);\n }\n updateProperties(properties) {\n if (!properties) {\n return;\n }\n for (const [name, value] of Object.entries(properties)) {\n if (!name.startsWith(\"_\")) {\n this.updateProperty(name, value);\n }\n }\n }\n updateSVGProperty(name, value) {\n this.#svgProperties[name] = value;\n }\n toSVGProperties() {\n const root = this.#svgProperties;\n this.#svgProperties = Object.create(null);\n return {\n root\n };\n }\n reset() {\n this.#svgProperties = Object.create(null);\n }\n updateAll(options = this) {\n this.updateProperties(options);\n }\n clone() {\n unreachable(\"Not implemented\");\n }\n}\nclass DrawingEditor extends AnnotationEditor {\n #drawOutlines = null;\n #mustBeCommitted;\n _colorPicker = null;\n _drawId = null;\n static _currentDrawId = -1;\n static _currentParent = null;\n static #currentDraw = null;\n static #currentDrawingAC = null;\n static #currentDrawingOptions = null;\n static _INNER_MARGIN = 3;\n constructor(params) {\n super(params);\n this.#mustBeCommitted = params.mustBeCommitted || false;\n this._addOutlines(params);\n }\n onUpdatedColor() {\n this._colorPicker?.update(this.color);\n super.onUpdatedColor();\n }\n _addOutlines(params) {\n if (params.drawOutlines) {\n this.#createDrawOutlines(params);\n this.#addToDrawLayer();\n }\n }\n #createDrawOutlines({\n drawOutlines,\n drawId,\n drawingOptions\n }) {\n this.#drawOutlines = drawOutlines;\n this._drawingOptions ||= drawingOptions;\n if (!this.annotationElementId) {\n this._uiManager.a11yAlert(`pdfjs-editor-${this.editorType}-added-alert`);\n }\n if (drawId >= 0) {\n this._drawId = drawId;\n this.parent.drawLayer.finalizeDraw(drawId, drawOutlines.defaultProperties);\n } else {\n this._drawId = this.#createDrawing(drawOutlines, this.parent);\n }\n this.#updateBbox(drawOutlines.box);\n }\n #createDrawing(drawOutlines, parent) {\n const {\n id\n } = parent.drawLayer.draw(DrawingEditor._mergeSVGProperties(this._drawingOptions.toSVGProperties(), drawOutlines.defaultSVGProperties), false, false);\n return id;\n }\n static _mergeSVGProperties(p1, p2) {\n const p1Keys = new Set(Object.keys(p1));\n for (const [key, value] of Object.entries(p2)) {\n if (p1Keys.has(key)) {\n Object.assign(p1[key], value);\n } else {\n p1[key] = value;\n }\n }\n return p1;\n }\n static getDefaultDrawingOptions(_options) {\n unreachable(\"Not implemented\");\n }\n static get typesMap() {\n unreachable(\"Not implemented\");\n }\n static get isDrawer() {\n return true;\n }\n static get supportMultipleDrawings() {\n return false;\n }\n static updateDefaultParams(type, value) {\n const propertyName = this.typesMap.get(type);\n if (propertyName) {\n this._defaultDrawingOptions.updateProperty(propertyName, value);\n }\n if (this._currentParent) {\n DrawingEditor.#currentDraw.updateProperty(propertyName, value);\n this._currentParent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());\n }\n }\n updateParams(type, value) {\n const propertyName = this.constructor.typesMap.get(type);\n if (propertyName) {\n this._updateProperty(type, propertyName, value);\n }\n }\n static get defaultPropertiesToUpdate() {\n const properties = [];\n const options = this._defaultDrawingOptions;\n for (const [type, name] of this.typesMap) {\n properties.push([type, options[name]]);\n }\n return properties;\n }\n get propertiesToUpdate() {\n const properties = [];\n const {\n _drawingOptions\n } = this;\n for (const [type, name] of this.constructor.typesMap) {\n properties.push([type, _drawingOptions[name]]);\n }\n return properties;\n }\n _updateProperty(type, name, value) {\n const options = this._drawingOptions;\n const savedValue = options[name];\n const setter = val => {\n options.updateProperty(name, val);\n const bbox = this.#drawOutlines.updateProperty(name, val);\n if (bbox) {\n this.#updateBbox(bbox);\n }\n this.parent?.drawLayer.updateProperties(this._drawId, options.toSVGProperties());\n if (type === this.colorType) {\n this.onUpdatedColor();\n }\n };\n this.addCommands({\n cmd: setter.bind(this, value),\n undo: setter.bind(this, savedValue),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _onResizing() {\n this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizingSVGProperties(this.#convertToDrawSpace()), {\n bbox: this.#rotateBox()\n }));\n }\n _onResized() {\n this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizedSVGProperties(this.#convertToDrawSpace()), {\n bbox: this.#rotateBox()\n }));\n }\n _onTranslating(_x, _y) {\n this.parent?.drawLayer.updateProperties(this._drawId, {\n bbox: this.#rotateBox()\n });\n }\n _onTranslated() {\n this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathTranslatedSVGProperties(this.#convertToDrawSpace(), this.parentDimensions), {\n bbox: this.#rotateBox()\n }));\n }\n _onStartDragging() {\n this.parent?.drawLayer.updateProperties(this._drawId, {\n rootClass: {\n moving: true\n }\n });\n }\n _onStopDragging() {\n this.parent?.drawLayer.updateProperties(this._drawId, {\n rootClass: {\n moving: false\n }\n });\n }\n commit() {\n super.commit();\n this.disableEditMode();\n this.disableEditing();\n }\n disableEditing() {\n super.disableEditing();\n this.div.classList.toggle(\"disabled\", true);\n }\n enableEditing() {\n super.enableEditing();\n this.div.classList.toggle(\"disabled\", false);\n }\n getBaseTranslation() {\n return [0, 0];\n }\n get isResizable() {\n return true;\n }\n onceAdded(focus) {\n if (!this.annotationElementId) {\n this.parent.addUndoableEditor(this);\n }\n this._isDraggable = true;\n if (this.#mustBeCommitted) {\n this.#mustBeCommitted = false;\n this.commit();\n this.parent.setSelected(this);\n if (focus && this.isOnScreen) {\n this.div.focus();\n }\n }\n }\n remove() {\n this.#cleanDrawLayer();\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n this.#addToDrawLayer();\n this.#updateBbox(this.#drawOutlines.box);\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n setParent(parent) {\n let mustBeSelected = false;\n if (this.parent && !parent) {\n this._uiManager.removeShouldRescale(this);\n this.#cleanDrawLayer();\n } else if (parent) {\n this._uiManager.addShouldRescale(this);\n this.#addToDrawLayer(parent);\n mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n }\n super.setParent(parent);\n if (mustBeSelected) {\n this.select();\n }\n }\n #cleanDrawLayer() {\n if (this._drawId === null || !this.parent) {\n return;\n }\n this.parent.drawLayer.remove(this._drawId);\n this._drawId = null;\n this._drawingOptions.reset();\n }\n #addToDrawLayer(parent = this.parent) {\n if (this._drawId !== null && this.parent === parent) {\n return;\n }\n if (this._drawId !== null) {\n this.parent.drawLayer.updateParent(this._drawId, parent.drawLayer);\n return;\n }\n this._drawingOptions.updateAll();\n this._drawId = this.#createDrawing(this.#drawOutlines, parent);\n }\n #convertToParentSpace([x, y, width, height]) {\n const {\n parentDimensions: [pW, pH],\n rotation\n } = this;\n switch (rotation) {\n case 90:\n return [y, 1 - x, width * (pH / pW), height * (pW / pH)];\n case 180:\n return [1 - x, 1 - y, width, height];\n case 270:\n return [1 - y, x, width * (pH / pW), height * (pW / pH)];\n default:\n return [x, y, width, height];\n }\n }\n #convertToDrawSpace() {\n const {\n x,\n y,\n width,\n height,\n parentDimensions: [pW, pH],\n rotation\n } = this;\n switch (rotation) {\n case 90:\n return [1 - y, x, width * (pW / pH), height * (pH / pW)];\n case 180:\n return [1 - x, 1 - y, width, height];\n case 270:\n return [y, 1 - x, width * (pW / pH), height * (pH / pW)];\n default:\n return [x, y, width, height];\n }\n }\n #updateBbox(bbox) {\n [this.x, this.y, this.width, this.height] = this.#convertToParentSpace(bbox);\n if (this.div) {\n this.fixAndSetPosition();\n this.setDims();\n }\n this._onResized();\n }\n #rotateBox() {\n const {\n x,\n y,\n width,\n height,\n rotation,\n parentRotation,\n parentDimensions: [pW, pH]\n } = this;\n switch ((rotation * 4 + parentRotation) / 90) {\n case 1:\n return [1 - y - height, x, height, width];\n case 2:\n return [1 - x - width, 1 - y - height, width, height];\n case 3:\n return [y, 1 - x - width, height, width];\n case 4:\n return [x, y - width * (pW / pH), height * (pH / pW), width * (pW / pH)];\n case 5:\n return [1 - y, x, width * (pW / pH), height * (pH / pW)];\n case 6:\n return [1 - x - height * (pH / pW), 1 - y, height * (pH / pW), width * (pW / pH)];\n case 7:\n return [y - width * (pW / pH), 1 - x - height * (pH / pW), width * (pW / pH), height * (pH / pW)];\n case 8:\n return [x - width, y - height, width, height];\n case 9:\n return [1 - y, x - width, height, width];\n case 10:\n return [1 - x, 1 - y, width, height];\n case 11:\n return [y - height, 1 - x, height, width];\n case 12:\n return [x - height * (pH / pW), y, height * (pH / pW), width * (pW / pH)];\n case 13:\n return [1 - y - width * (pW / pH), x - height * (pH / pW), width * (pW / pH), height * (pH / pW)];\n case 14:\n return [1 - x, 1 - y - width * (pW / pH), height * (pH / pW), width * (pW / pH)];\n case 15:\n return [y, 1 - x, width * (pW / pH), height * (pH / pW)];\n default:\n return [x, y, width, height];\n }\n }\n rotate() {\n if (!this.parent) {\n return;\n }\n this.parent.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties({\n bbox: this.#rotateBox()\n }, this.#drawOutlines.updateRotation((this.parentRotation - this.rotation + 360) % 360)));\n }\n onScaleChanging() {\n if (!this.parent) {\n return;\n }\n this.#updateBbox(this.#drawOutlines.updateParentDimensions(this.parentDimensions, this.parent.scale));\n }\n static onScaleChangingWhenDrawing() {}\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this._isCopy) {\n baseX = this.x;\n baseY = this.y;\n }\n const div = super.render();\n div.classList.add(\"draw\");\n const drawDiv = document.createElement(\"div\");\n div.append(drawDiv);\n drawDiv.setAttribute(\"aria-hidden\", \"true\");\n drawDiv.className = \"internal\";\n this.setDims();\n this._uiManager.addShouldRescale(this);\n this.disableEditing();\n if (this._isCopy) {\n this._moveAfterPaste(baseX, baseY);\n }\n return div;\n }\n static createDrawerInstance(_x, _y, _parentWidth, _parentHeight, _rotation) {\n unreachable(\"Not implemented\");\n }\n static startDrawing(parent, uiManager, _isLTR, event) {\n const {\n target,\n offsetX: x,\n offsetY: y,\n pointerId,\n pointerType\n } = event;\n if (CurrentPointers.isInitializedAndDifferentPointerType(pointerType)) {\n return;\n }\n const {\n viewport: {\n rotation\n }\n } = parent;\n const {\n width: parentWidth,\n height: parentHeight\n } = target.getBoundingClientRect();\n const ac = DrawingEditor.#currentDrawingAC = new AbortController();\n const signal = parent.combinedSignal(ac);\n CurrentPointers.setPointer(pointerType, pointerId);\n window.addEventListener(\"pointerup\", e => {\n if (CurrentPointers.isSamePointerIdOrRemove(e.pointerId)) {\n this._endDraw(e);\n }\n }, {\n signal\n });\n window.addEventListener(\"pointercancel\", e => {\n if (CurrentPointers.isSamePointerIdOrRemove(e.pointerId)) {\n this._currentParent.endDrawingSession();\n }\n }, {\n signal\n });\n window.addEventListener(\"pointerdown\", e => {\n if (!CurrentPointers.isSamePointerType(e.pointerType)) {\n return;\n }\n CurrentPointers.initializeAndAddPointerId(e.pointerId);\n if (DrawingEditor.#currentDraw.isCancellable()) {\n DrawingEditor.#currentDraw.removeLastElement();\n if (DrawingEditor.#currentDraw.isEmpty()) {\n this._currentParent.endDrawingSession(true);\n } else {\n this._endDraw(null);\n }\n }\n }, {\n capture: true,\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n target.addEventListener(\"pointermove\", this._drawMove.bind(this), {\n signal\n });\n target.addEventListener(\"touchmove\", e => {\n if (CurrentPointers.isSameTimeStamp(e.timeStamp)) {\n stopEvent(e);\n }\n }, {\n signal\n });\n parent.toggleDrawing();\n uiManager._editorUndoBar?.hide();\n if (DrawingEditor.#currentDraw) {\n parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.startNew(x, y, parentWidth, parentHeight, rotation));\n return;\n }\n uiManager.updateUIForDefaultProperties(this);\n DrawingEditor.#currentDraw = this.createDrawerInstance(x, y, parentWidth, parentHeight, rotation);\n DrawingEditor.#currentDrawingOptions = this.getDefaultDrawingOptions();\n this._currentParent = parent;\n ({\n id: this._currentDrawId\n } = parent.drawLayer.draw(this._mergeSVGProperties(DrawingEditor.#currentDrawingOptions.toSVGProperties(), DrawingEditor.#currentDraw.defaultSVGProperties), true, false));\n }\n static _drawMove(event) {\n CurrentPointers.isSameTimeStamp(event.timeStamp);\n if (!DrawingEditor.#currentDraw) {\n return;\n }\n const {\n offsetX,\n offsetY,\n pointerId\n } = event;\n if (!CurrentPointers.isSamePointerId(pointerId)) {\n return;\n }\n if (CurrentPointers.isUsingMultiplePointers()) {\n this._endDraw(event);\n return;\n }\n this._currentParent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.add(offsetX, offsetY));\n CurrentPointers.setTimeStamp(event.timeStamp);\n stopEvent(event);\n }\n static _cleanup(all) {\n if (all) {\n this._currentDrawId = -1;\n this._currentParent = null;\n DrawingEditor.#currentDraw = null;\n DrawingEditor.#currentDrawingOptions = null;\n CurrentPointers.clearTimeStamp();\n }\n if (DrawingEditor.#currentDrawingAC) {\n DrawingEditor.#currentDrawingAC.abort();\n DrawingEditor.#currentDrawingAC = null;\n CurrentPointers.clearPointerIds();\n }\n }\n static _endDraw(event) {\n const parent = this._currentParent;\n if (!parent) {\n return;\n }\n parent.toggleDrawing(true);\n this._cleanup(false);\n if (event?.target === parent.div) {\n parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.end(event.offsetX, event.offsetY));\n }\n if (this.supportMultipleDrawings) {\n const draw = DrawingEditor.#currentDraw;\n const drawId = this._currentDrawId;\n const lastElement = draw.getLastElement();\n parent.addCommands({\n cmd: () => {\n parent.drawLayer.updateProperties(drawId, draw.setLastElement(lastElement));\n },\n undo: () => {\n parent.drawLayer.updateProperties(drawId, draw.removeLastElement());\n },\n mustExec: false,\n type: AnnotationEditorParamsType.DRAW_STEP\n });\n return;\n }\n this.endDrawing(false);\n }\n static endDrawing(isAborted) {\n const parent = this._currentParent;\n if (!parent) {\n return null;\n }\n parent.toggleDrawing(true);\n parent.cleanUndoStack(AnnotationEditorParamsType.DRAW_STEP);\n if (!DrawingEditor.#currentDraw.isEmpty()) {\n const {\n pageDimensions: [pageWidth, pageHeight],\n scale\n } = parent;\n const editor = parent.createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false, {\n drawId: this._currentDrawId,\n drawOutlines: DrawingEditor.#currentDraw.getOutlines(pageWidth * scale, pageHeight * scale, scale, this._INNER_MARGIN),\n drawingOptions: DrawingEditor.#currentDrawingOptions,\n mustBeCommitted: !isAborted\n });\n this._cleanup(true);\n return editor;\n }\n parent.drawLayer.remove(this._currentDrawId);\n this._cleanup(true);\n return null;\n }\n createDrawingOptions(_data) {}\n static deserializeDraw(_pageX, _pageY, _pageWidth, _pageHeight, _innerWidth, _data) {\n unreachable(\"Not implemented\");\n }\n static async deserialize(data, parent, uiManager) {\n const {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = parent.viewport;\n const drawOutlines = this.deserializeDraw(pageX, pageY, pageWidth, pageHeight, this._INNER_MARGIN, data);\n const editor = await super.deserialize(data, parent, uiManager);\n editor.createDrawingOptions(data);\n editor.#createDrawOutlines({\n drawOutlines\n });\n editor.#addToDrawLayer();\n editor.onScaleChanging();\n editor.rotate();\n return editor;\n }\n serializeDraw(isForCopying) {\n const [pageX, pageY] = this.pageTranslation;\n const [pageWidth, pageHeight] = this.pageDimensions;\n return this.#drawOutlines.serialize([pageX, pageY, pageWidth, pageHeight], isForCopying);\n }\n renderAnnotationElement(annotation) {\n annotation.updateEdited({\n rect: this.getPDFRect()\n });\n return null;\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// ./src/display/editor/drawers/inkdraw.js\n\n\n\n\n\n\n\n\n\nclass InkDrawOutliner {\n #last = new Float64Array(6);\n #line;\n #lines;\n #rotation;\n #thickness;\n #points;\n #lastSVGPath = \"\";\n #lastIndex = 0;\n #outlines = new InkDrawOutline();\n #parentWidth;\n #parentHeight;\n constructor(x, y, parentWidth, parentHeight, rotation, thickness) {\n this.#parentWidth = parentWidth;\n this.#parentHeight = parentHeight;\n this.#rotation = rotation;\n this.#thickness = thickness;\n [x, y] = this.#normalizePoint(x, y);\n const line = this.#line = [NaN, NaN, NaN, NaN, x, y];\n this.#points = [x, y];\n this.#lines = [{\n line,\n points: this.#points\n }];\n this.#last.set(line, 0);\n }\n updateProperty(name, value) {\n if (name === \"stroke-width\") {\n this.#thickness = value;\n }\n }\n #normalizePoint(x, y) {\n return Outline._normalizePoint(x, y, this.#parentWidth, this.#parentHeight, this.#rotation);\n }\n isEmpty() {\n return !this.#lines || this.#lines.length === 0;\n }\n isCancellable() {\n return this.#points.length <= 10;\n }\n add(x, y) {\n [x, y] = this.#normalizePoint(x, y);\n const [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n const diffX = x - x2;\n const diffY = y - y2;\n const d = Math.hypot(this.#parentWidth * diffX, this.#parentHeight * diffY);\n if (d <= 2) {\n return null;\n }\n this.#points.push(x, y);\n if (isNaN(x1)) {\n this.#last.set([x2, y2, x, y], 2);\n this.#line.push(NaN, NaN, NaN, NaN, x, y);\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n if (isNaN(this.#last[0])) {\n this.#line.splice(6, 6);\n }\n this.#last.set([x1, y1, x2, y2, x, y], 0);\n this.#line.push(...Outline.createBezierPoints(x1, y1, x2, y2, x, y));\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n end(x, y) {\n const change = this.add(x, y);\n if (change) {\n return change;\n }\n if (this.#points.length === 2) {\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n return null;\n }\n startNew(x, y, parentWidth, parentHeight, rotation) {\n this.#parentWidth = parentWidth;\n this.#parentHeight = parentHeight;\n this.#rotation = rotation;\n [x, y] = this.#normalizePoint(x, y);\n const line = this.#line = [NaN, NaN, NaN, NaN, x, y];\n this.#points = [x, y];\n const last = this.#lines.at(-1);\n if (last) {\n last.line = new Float32Array(last.line);\n last.points = new Float32Array(last.points);\n }\n this.#lines.push({\n line,\n points: this.#points\n });\n this.#last.set(line, 0);\n this.#lastIndex = 0;\n this.toSVGPath();\n return null;\n }\n getLastElement() {\n return this.#lines.at(-1);\n }\n setLastElement(element) {\n if (!this.#lines) {\n return this.#outlines.setLastElement(element);\n }\n this.#lines.push(element);\n this.#line = element.line;\n this.#points = element.points;\n this.#lastIndex = 0;\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n removeLastElement() {\n if (!this.#lines) {\n return this.#outlines.removeLastElement();\n }\n this.#lines.pop();\n this.#lastSVGPath = \"\";\n for (let i = 0, ii = this.#lines.length; i < ii; i++) {\n const {\n line,\n points\n } = this.#lines[i];\n this.#line = line;\n this.#points = points;\n this.#lastIndex = 0;\n this.toSVGPath();\n }\n return {\n path: {\n d: this.#lastSVGPath\n }\n };\n }\n toSVGPath() {\n const firstX = Outline.svgRound(this.#line[4]);\n const firstY = Outline.svgRound(this.#line[5]);\n if (this.#points.length === 2) {\n this.#lastSVGPath = `${this.#lastSVGPath} M ${firstX} ${firstY} Z`;\n return this.#lastSVGPath;\n }\n if (this.#points.length <= 6) {\n const i = this.#lastSVGPath.lastIndexOf(\"M\");\n this.#lastSVGPath = `${this.#lastSVGPath.slice(0, i)} M ${firstX} ${firstY}`;\n this.#lastIndex = 6;\n }\n if (this.#points.length === 4) {\n const secondX = Outline.svgRound(this.#line[10]);\n const secondY = Outline.svgRound(this.#line[11]);\n this.#lastSVGPath = `${this.#lastSVGPath} L ${secondX} ${secondY}`;\n this.#lastIndex = 12;\n return this.#lastSVGPath;\n }\n const buffer = [];\n if (this.#lastIndex === 0) {\n buffer.push(`M ${firstX} ${firstY}`);\n this.#lastIndex = 6;\n }\n for (let i = this.#lastIndex, ii = this.#line.length; i < ii; i += 6) {\n const [c1x, c1y, c2x, c2y, x, y] = this.#line.slice(i, i + 6).map(Outline.svgRound);\n buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`);\n }\n this.#lastSVGPath += buffer.join(\" \");\n this.#lastIndex = this.#line.length;\n return this.#lastSVGPath;\n }\n getOutlines(parentWidth, parentHeight, scale, innerMargin) {\n const last = this.#lines.at(-1);\n last.line = new Float32Array(last.line);\n last.points = new Float32Array(last.points);\n this.#outlines.build(this.#lines, parentWidth, parentHeight, scale, this.#rotation, this.#thickness, innerMargin);\n this.#last = null;\n this.#line = null;\n this.#lines = null;\n this.#lastSVGPath = null;\n return this.#outlines;\n }\n get defaultSVGProperties() {\n return {\n root: {\n viewBox: \"0 0 10000 10000\"\n },\n rootClass: {\n draw: true\n },\n bbox: [0, 0, 1, 1]\n };\n }\n}\nclass InkDrawOutline extends Outline {\n #bbox;\n #currentRotation = 0;\n #innerMargin;\n #lines;\n #parentWidth;\n #parentHeight;\n #parentScale;\n #rotation;\n #thickness;\n build(lines, parentWidth, parentHeight, parentScale, rotation, thickness, innerMargin) {\n this.#parentWidth = parentWidth;\n this.#parentHeight = parentHeight;\n this.#parentScale = parentScale;\n this.#rotation = rotation;\n this.#thickness = thickness;\n this.#innerMargin = innerMargin ?? 0;\n this.#lines = lines;\n this.#computeBbox();\n }\n get thickness() {\n return this.#thickness;\n }\n setLastElement(element) {\n this.#lines.push(element);\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n removeLastElement() {\n this.#lines.pop();\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n toSVGPath() {\n const buffer = [];\n for (const {\n line\n } of this.#lines) {\n buffer.push(`M${Outline.svgRound(line[4])} ${Outline.svgRound(line[5])}`);\n if (line.length === 6) {\n buffer.push(\"Z\");\n continue;\n }\n if (line.length === 12 && isNaN(line[6])) {\n buffer.push(`L${Outline.svgRound(line[10])} ${Outline.svgRound(line[11])}`);\n continue;\n }\n for (let i = 6, ii = line.length; i < ii; i += 6) {\n const [c1x, c1y, c2x, c2y, x, y] = line.subarray(i, i + 6).map(Outline.svgRound);\n buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`);\n }\n }\n return buffer.join(\"\");\n }\n serialize([pageX, pageY, pageWidth, pageHeight], isForCopying) {\n const serializedLines = [];\n const serializedPoints = [];\n const [x, y, width, height] = this.#getBBoxWithNoMargin();\n let tx, ty, sx, sy, x1, y1, x2, y2, rescaleFn;\n switch (this.#rotation) {\n case 0:\n rescaleFn = Outline._rescale;\n tx = pageX;\n ty = pageY + pageHeight;\n sx = pageWidth;\n sy = -pageHeight;\n x1 = pageX + x * pageWidth;\n y1 = pageY + (1 - y - height) * pageHeight;\n x2 = pageX + (x + width) * pageWidth;\n y2 = pageY + (1 - y) * pageHeight;\n break;\n case 90:\n rescaleFn = Outline._rescaleAndSwap;\n tx = pageX;\n ty = pageY;\n sx = pageWidth;\n sy = pageHeight;\n x1 = pageX + y * pageWidth;\n y1 = pageY + x * pageHeight;\n x2 = pageX + (y + height) * pageWidth;\n y2 = pageY + (x + width) * pageHeight;\n break;\n case 180:\n rescaleFn = Outline._rescale;\n tx = pageX + pageWidth;\n ty = pageY;\n sx = -pageWidth;\n sy = pageHeight;\n x1 = pageX + (1 - x - width) * pageWidth;\n y1 = pageY + y * pageHeight;\n x2 = pageX + (1 - x) * pageWidth;\n y2 = pageY + (y + height) * pageHeight;\n break;\n case 270:\n rescaleFn = Outline._rescaleAndSwap;\n tx = pageX + pageWidth;\n ty = pageY + pageHeight;\n sx = -pageWidth;\n sy = -pageHeight;\n x1 = pageX + (1 - y - height) * pageWidth;\n y1 = pageY + (1 - x - width) * pageHeight;\n x2 = pageX + (1 - y) * pageWidth;\n y2 = pageY + (1 - x) * pageHeight;\n break;\n }\n for (const {\n line,\n points\n } of this.#lines) {\n serializedLines.push(rescaleFn(line, tx, ty, sx, sy, isForCopying ? new Array(line.length) : null));\n serializedPoints.push(rescaleFn(points, tx, ty, sx, sy, isForCopying ? new Array(points.length) : null));\n }\n return {\n lines: serializedLines,\n points: serializedPoints,\n rect: [x1, y1, x2, y2]\n };\n }\n static deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, {\n paths: {\n lines,\n points\n },\n rotation,\n thickness\n }) {\n const newLines = [];\n let tx, ty, sx, sy, rescaleFn;\n switch (rotation) {\n case 0:\n rescaleFn = Outline._rescale;\n tx = -pageX / pageWidth;\n ty = pageY / pageHeight + 1;\n sx = 1 / pageWidth;\n sy = -1 / pageHeight;\n break;\n case 90:\n rescaleFn = Outline._rescaleAndSwap;\n tx = -pageY / pageHeight;\n ty = -pageX / pageWidth;\n sx = 1 / pageHeight;\n sy = 1 / pageWidth;\n break;\n case 180:\n rescaleFn = Outline._rescale;\n tx = pageX / pageWidth + 1;\n ty = -pageY / pageHeight;\n sx = -1 / pageWidth;\n sy = 1 / pageHeight;\n break;\n case 270:\n rescaleFn = Outline._rescaleAndSwap;\n tx = pageY / pageHeight + 1;\n ty = pageX / pageWidth + 1;\n sx = -1 / pageHeight;\n sy = -1 / pageWidth;\n break;\n }\n if (!lines) {\n lines = [];\n for (const point of points) {\n const len = point.length;\n if (len === 2) {\n lines.push(new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1]]));\n continue;\n }\n if (len === 4) {\n lines.push(new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1], NaN, NaN, NaN, NaN, point[2], point[3]]));\n continue;\n }\n const line = new Float32Array(3 * (len - 2));\n lines.push(line);\n let [x1, y1, x2, y2] = point.subarray(0, 4);\n line.set([NaN, NaN, NaN, NaN, x1, y1], 0);\n for (let i = 4; i < len; i += 2) {\n const x = point[i];\n const y = point[i + 1];\n line.set(Outline.createBezierPoints(x1, y1, x2, y2, x, y), (i - 2) * 3);\n [x1, y1, x2, y2] = [x2, y2, x, y];\n }\n }\n }\n for (let i = 0, ii = lines.length; i < ii; i++) {\n newLines.push({\n line: rescaleFn(lines[i].map(x => x ?? NaN), tx, ty, sx, sy),\n points: rescaleFn(points[i].map(x => x ?? NaN), tx, ty, sx, sy)\n });\n }\n const outlines = new this.prototype.constructor();\n outlines.build(newLines, pageWidth, pageHeight, 1, rotation, thickness, innerMargin);\n return outlines;\n }\n #getMarginComponents(thickness = this.#thickness) {\n const margin = this.#innerMargin + thickness / 2 * this.#parentScale;\n return this.#rotation % 180 === 0 ? [margin / this.#parentWidth, margin / this.#parentHeight] : [margin / this.#parentHeight, margin / this.#parentWidth];\n }\n #getBBoxWithNoMargin() {\n const [x, y, width, height] = this.#bbox;\n const [marginX, marginY] = this.#getMarginComponents(0);\n return [x + marginX, y + marginY, width - 2 * marginX, height - 2 * marginY];\n }\n #computeBbox() {\n const bbox = this.#bbox = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]);\n for (const {\n line\n } of this.#lines) {\n if (line.length <= 12) {\n for (let i = 4, ii = line.length; i < ii; i += 6) {\n Util.pointBoundingBox(line[i], line[i + 1], bbox);\n }\n continue;\n }\n let lastX = line[4],\n lastY = line[5];\n for (let i = 6, ii = line.length; i < ii; i += 6) {\n const [c1x, c1y, c2x, c2y, x, y] = line.subarray(i, i + 6);\n Util.bezierBoundingBox(lastX, lastY, c1x, c1y, c2x, c2y, x, y, bbox);\n lastX = x;\n lastY = y;\n }\n }\n const [marginX, marginY] = this.#getMarginComponents();\n bbox[0] = MathClamp(bbox[0] - marginX, 0, 1);\n bbox[1] = MathClamp(bbox[1] - marginY, 0, 1);\n bbox[2] = MathClamp(bbox[2] + marginX, 0, 1);\n bbox[3] = MathClamp(bbox[3] + marginY, 0, 1);\n bbox[2] -= bbox[0];\n bbox[3] -= bbox[1];\n }\n get box() {\n return this.#bbox;\n }\n updateProperty(name, value) {\n if (name === \"stroke-width\") {\n return this.#updateThickness(value);\n }\n return null;\n }\n #updateThickness(thickness) {\n const [oldMarginX, oldMarginY] = this.#getMarginComponents();\n this.#thickness = thickness;\n const [newMarginX, newMarginY] = this.#getMarginComponents();\n const [diffMarginX, diffMarginY] = [newMarginX - oldMarginX, newMarginY - oldMarginY];\n const bbox = this.#bbox;\n bbox[0] -= diffMarginX;\n bbox[1] -= diffMarginY;\n bbox[2] += 2 * diffMarginX;\n bbox[3] += 2 * diffMarginY;\n return bbox;\n }\n updateParentDimensions([width, height], scale) {\n const [oldMarginX, oldMarginY] = this.#getMarginComponents();\n this.#parentWidth = width;\n this.#parentHeight = height;\n this.#parentScale = scale;\n const [newMarginX, newMarginY] = this.#getMarginComponents();\n const diffMarginX = newMarginX - oldMarginX;\n const diffMarginY = newMarginY - oldMarginY;\n const bbox = this.#bbox;\n bbox[0] -= diffMarginX;\n bbox[1] -= diffMarginY;\n bbox[2] += 2 * diffMarginX;\n bbox[3] += 2 * diffMarginY;\n return bbox;\n }\n updateRotation(rotation) {\n this.#currentRotation = rotation;\n return {\n path: {\n transform: this.rotationTransform\n }\n };\n }\n get viewBox() {\n return this.#bbox.map(Outline.svgRound).join(\" \");\n }\n get defaultProperties() {\n const [x, y] = this.#bbox;\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n \"transform-origin\": `${Outline.svgRound(x)} ${Outline.svgRound(y)}`\n }\n };\n }\n get rotationTransform() {\n const [,, width, height] = this.#bbox;\n let a = 0,\n b = 0,\n c = 0,\n d = 0,\n e = 0,\n f = 0;\n switch (this.#currentRotation) {\n case 90:\n b = height / width;\n c = -width / height;\n e = width;\n break;\n case 180:\n a = -1;\n d = -1;\n e = width;\n f = height;\n break;\n case 270:\n b = -height / width;\n c = width / height;\n f = height;\n break;\n default:\n return \"\";\n }\n return `matrix(${a} ${b} ${c} ${d} ${Outline.svgRound(e)} ${Outline.svgRound(f)})`;\n }\n getPathResizingSVGProperties([newX, newY, newWidth, newHeight]) {\n const [marginX, marginY] = this.#getMarginComponents();\n const [x, y, width, height] = this.#bbox;\n if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {\n const tx = newX + newWidth / 2 - (x + width / 2);\n const ty = newY + newHeight / 2 - (y + height / 2);\n return {\n path: {\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n transform: `${this.rotationTransform} translate(${tx} ${ty})`\n }\n };\n }\n const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);\n const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);\n const s2x = width / newWidth;\n const s2y = height / newHeight;\n return {\n path: {\n \"transform-origin\": `${Outline.svgRound(x)} ${Outline.svgRound(y)}`,\n transform: `${this.rotationTransform} scale(${s2x} ${s2y}) ` + `translate(${Outline.svgRound(marginX)} ${Outline.svgRound(marginY)}) scale(${s1x} ${s1y}) ` + `translate(${Outline.svgRound(-marginX)} ${Outline.svgRound(-marginY)})`\n }\n };\n }\n getPathResizedSVGProperties([newX, newY, newWidth, newHeight]) {\n const [marginX, marginY] = this.#getMarginComponents();\n const bbox = this.#bbox;\n const [x, y, width, height] = bbox;\n bbox[0] = newX;\n bbox[1] = newY;\n bbox[2] = newWidth;\n bbox[3] = newHeight;\n if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {\n const tx = newX + newWidth / 2 - (x + width / 2);\n const ty = newY + newHeight / 2 - (y + height / 2);\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._translate(line, tx, ty, line);\n Outline._translate(points, tx, ty, points);\n }\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n transform: this.rotationTransform || null,\n d: this.toSVGPath()\n }\n };\n }\n const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);\n const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);\n const tx = -s1x * (x + marginX) + newX + marginX;\n const ty = -s1y * (y + marginY) + newY + marginY;\n if (s1x !== 1 || s1y !== 1 || tx !== 0 || ty !== 0) {\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._rescale(line, tx, ty, s1x, s1y, line);\n Outline._rescale(points, tx, ty, s1x, s1y, points);\n }\n }\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n transform: this.rotationTransform || null,\n d: this.toSVGPath()\n }\n };\n }\n getPathTranslatedSVGProperties([newX, newY], parentDimensions) {\n const [newParentWidth, newParentHeight] = parentDimensions;\n const bbox = this.#bbox;\n const tx = newX - bbox[0];\n const ty = newY - bbox[1];\n if (this.#parentWidth === newParentWidth && this.#parentHeight === newParentHeight) {\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._translate(line, tx, ty, line);\n Outline._translate(points, tx, ty, points);\n }\n } else {\n const sx = this.#parentWidth / newParentWidth;\n const sy = this.#parentHeight / newParentHeight;\n this.#parentWidth = newParentWidth;\n this.#parentHeight = newParentHeight;\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._rescale(line, tx, ty, sx, sy, line);\n Outline._rescale(points, tx, ty, sx, sy, points);\n }\n bbox[2] *= sx;\n bbox[3] *= sy;\n }\n bbox[0] = newX;\n bbox[1] = newY;\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n d: this.toSVGPath(),\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`\n }\n };\n }\n get defaultSVGProperties() {\n const bbox = this.#bbox;\n return {\n root: {\n viewBox: this.viewBox\n },\n rootClass: {\n draw: true\n },\n path: {\n d: this.toSVGPath(),\n \"transform-origin\": `${Outline.svgRound(bbox[0])} ${Outline.svgRound(bbox[1])}`,\n transform: this.rotationTransform || null\n },\n bbox\n };\n }\n}\n\n;// ./src/display/editor/ink.js\n\n\n\n\n\n\n\n\n\n\nclass InkDrawingOptions extends DrawingOptions {\n constructor(viewerParameters) {\n super();\n this._viewParameters = viewerParameters;\n super.updateProperties({\n fill: \"none\",\n stroke: AnnotationEditor._defaultLineColor,\n \"stroke-opacity\": 1,\n \"stroke-width\": 1,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": 10\n });\n }\n updateSVGProperty(name, value) {\n if (name === \"stroke-width\") {\n value ??= this[\"stroke-width\"];\n value *= this._viewParameters.realScale;\n }\n super.updateSVGProperty(name, value);\n }\n clone() {\n const clone = new InkDrawingOptions(this._viewParameters);\n clone.updateAll(this);\n return clone;\n }\n}\nclass InkEditor extends DrawingEditor {\n static _type = \"ink\";\n static _editorType = AnnotationEditorType.INK;\n static _defaultDrawingOptions = null;\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this._willKeepAspectRatio = true;\n this.defaultL10nId = \"pdfjs-editor-ink-editor\";\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n this._defaultDrawingOptions = new InkDrawingOptions(uiManager.viewParameters);\n }\n static getDefaultDrawingOptions(options) {\n const clone = this._defaultDrawingOptions.clone();\n clone.updateProperties(options);\n return clone;\n }\n static get supportMultipleDrawings() {\n return true;\n }\n static get typesMap() {\n return shadow(this, \"typesMap\", new Map([[AnnotationEditorParamsType.INK_THICKNESS, \"stroke-width\"], [AnnotationEditorParamsType.INK_COLOR, \"stroke\"], [AnnotationEditorParamsType.INK_OPACITY, \"stroke-opacity\"]]));\n }\n static createDrawerInstance(x, y, parentWidth, parentHeight, rotation) {\n return new InkDrawOutliner(x, y, parentWidth, parentHeight, rotation, this._defaultDrawingOptions[\"stroke-width\"]);\n }\n static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {\n return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof InkAnnotationElement) {\n const {\n data: {\n inkLists,\n rect,\n rotation,\n id,\n color,\n opacity,\n borderStyle: {\n rawWidth: thickness\n },\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.INK,\n color: Array.from(color),\n thickness,\n opacity,\n paths: {\n points: inkLists\n },\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\n return editor;\n }\n get toolbarButtons() {\n this._colorPicker ||= new BasicColorPicker(this);\n return [[\"colorPicker\", this._colorPicker]];\n }\n get colorType() {\n return AnnotationEditorParamsType.INK_COLOR;\n }\n get color() {\n return this._drawingOptions.stroke;\n }\n get opacity() {\n return this._drawingOptions[\"stroke-opacity\"];\n }\n onScaleChanging() {\n if (!this.parent) {\n return;\n }\n super.onScaleChanging();\n const {\n _drawId,\n _drawingOptions,\n parent\n } = this;\n _drawingOptions.updateSVGProperty(\"stroke-width\");\n parent.drawLayer.updateProperties(_drawId, _drawingOptions.toSVGProperties());\n }\n static onScaleChangingWhenDrawing() {\n const parent = this._currentParent;\n if (!parent) {\n return;\n }\n super.onScaleChangingWhenDrawing();\n this._defaultDrawingOptions.updateSVGProperty(\"stroke-width\");\n parent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());\n }\n createDrawingOptions({\n color,\n thickness,\n opacity\n }) {\n this._drawingOptions = InkEditor.getDefaultDrawingOptions({\n stroke: Util.makeHexColor(...color),\n \"stroke-width\": thickness,\n \"stroke-opacity\": opacity\n });\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const {\n lines,\n points\n } = this.serializeDraw(isForCopying);\n const {\n _drawingOptions: {\n stroke,\n \"stroke-opacity\": opacity,\n \"stroke-width\": thickness\n }\n } = this;\n const serialized = Object.assign(super.serialize(isForCopying), {\n color: AnnotationEditor._colorManager.convert(stroke),\n opacity,\n thickness,\n paths: {\n lines,\n points\n }\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.isCopy = true;\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 color,\n thickness,\n opacity,\n pageIndex\n } = this._initialData;\n return this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized || serialized.color.some((c, i) => c !== color[i]) || serialized.thickness !== thickness || serialized.opacity !== opacity || serialized.pageIndex !== pageIndex;\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n const {\n points,\n rect\n } = this.serializeDraw(false);\n annotation.updateEdited({\n rect,\n thickness: this._drawingOptions[\"stroke-width\"],\n points,\n popup: this.comment\n });\n return null;\n }\n}\n\n;// ./src/display/editor/drawers/contour.js\n\nclass ContourDrawOutline extends InkDrawOutline {\n toSVGPath() {\n let path = super.toSVGPath();\n if (!path.endsWith(\"Z\")) {\n path += \"Z\";\n }\n return path;\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.from-base64.js\nvar es_uint8_array_from_base64 = __webpack_require__(5213);\n;// ./src/display/editor/drawers/signaturedraw.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst BASE_HEADER_LENGTH = 8;\nconst POINTS_PROPERTIES_NUMBER = 3;\nclass SignatureExtractor {\n static #PARAMETERS = {\n maxDim: 512,\n sigmaSFactor: 0.02,\n sigmaR: 25,\n kernelSize: 16\n };\n static #neighborIndexToId(i0, j0, i, j) {\n i -= i0;\n j -= j0;\n if (i === 0) {\n return j > 0 ? 0 : 4;\n }\n if (i === 1) {\n return j + 6;\n }\n return 2 - j;\n }\n static #neighborIdToIndex = new Int32Array([0, 1, -1, 1, -1, 0, -1, -1, 0, -1, 1, -1, 1, 0, 1, 1]);\n static #clockwiseNonZero(buf, width, i0, j0, i, j, offset) {\n const id = this.#neighborIndexToId(i0, j0, i, j);\n for (let k = 0; k < 8; k++) {\n const kk = (-k + id - offset + 16) % 8;\n const shiftI = this.#neighborIdToIndex[2 * kk];\n const shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {\n return kk;\n }\n }\n return -1;\n }\n static #counterClockwiseNonZero(buf, width, i0, j0, i, j, offset) {\n const id = this.#neighborIndexToId(i0, j0, i, j);\n for (let k = 0; k < 8; k++) {\n const kk = (k + id + offset + 16) % 8;\n const shiftI = this.#neighborIdToIndex[2 * kk];\n const shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {\n return kk;\n }\n }\n return -1;\n }\n static #findContours(buf, width, height, threshold) {\n const N = buf.length;\n const types = new Int32Array(N);\n for (let i = 0; i < N; i++) {\n types[i] = buf[i] <= threshold ? 1 : 0;\n }\n for (let i = 1; i < height - 1; i++) {\n types[i * width] = types[i * width + width - 1] = 0;\n }\n for (let i = 0; i < width; i++) {\n types[i] = types[width * height - 1 - i] = 0;\n }\n let nbd = 1;\n let lnbd;\n const contours = [];\n for (let i = 1; i < height - 1; i++) {\n lnbd = 1;\n for (let j = 1; j < width - 1; j++) {\n const ij = i * width + j;\n const pix = types[ij];\n if (pix === 0) {\n continue;\n }\n let i2 = i;\n let j2 = j;\n if (pix === 1 && types[ij - 1] === 0) {\n nbd += 1;\n j2 -= 1;\n } else if (pix >= 1 && types[ij + 1] === 0) {\n nbd += 1;\n j2 += 1;\n if (pix > 1) {\n lnbd = pix;\n }\n } else {\n if (pix !== 1) {\n lnbd = Math.abs(pix);\n }\n continue;\n }\n const points = [j, i];\n const isHole = j2 === j + 1;\n const contour = {\n isHole,\n points,\n id: nbd,\n parent: 0\n };\n contours.push(contour);\n let contour0;\n for (const c of contours) {\n if (c.id === lnbd) {\n contour0 = c;\n break;\n }\n }\n if (!contour0) {\n contour.parent = isHole ? lnbd : 0;\n } else if (contour0.isHole) {\n contour.parent = isHole ? contour0.parent : lnbd;\n } else {\n contour.parent = isHole ? lnbd : contour0.parent;\n }\n const k = this.#clockwiseNonZero(types, width, i, j, i2, j2, 0);\n if (k === -1) {\n types[ij] = -nbd;\n if (types[ij] !== 1) {\n lnbd = Math.abs(types[ij]);\n }\n continue;\n }\n let shiftI = this.#neighborIdToIndex[2 * k];\n let shiftJ = this.#neighborIdToIndex[2 * k + 1];\n const i1 = i + shiftI;\n const j1 = j + shiftJ;\n i2 = i1;\n j2 = j1;\n let i3 = i;\n let j3 = j;\n while (true) {\n const kk = this.#counterClockwiseNonZero(types, width, i3, j3, i2, j2, 1);\n shiftI = this.#neighborIdToIndex[2 * kk];\n shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n const i4 = i3 + shiftI;\n const j4 = j3 + shiftJ;\n points.push(j4, i4);\n const ij3 = i3 * width + j3;\n if (types[ij3 + 1] === 0) {\n types[ij3] = -nbd;\n } else if (types[ij3] === 1) {\n types[ij3] = nbd;\n }\n if (i4 === i && j4 === j && i3 === i1 && j3 === j1) {\n if (types[ij] !== 1) {\n lnbd = Math.abs(types[ij]);\n }\n break;\n } else {\n i2 = i3;\n j2 = j3;\n i3 = i4;\n j3 = j4;\n }\n }\n }\n }\n return contours;\n }\n static #douglasPeuckerHelper(points, start, end, output) {\n if (end - start <= 4) {\n for (let i = start; i < end - 2; i += 2) {\n output.push(points[i], points[i + 1]);\n }\n return;\n }\n const ax = points[start];\n const ay = points[start + 1];\n const abx = points[end - 4] - ax;\n const aby = points[end - 3] - ay;\n const dist = Math.hypot(abx, aby);\n const nabx = abx / dist;\n const naby = aby / dist;\n const aa = nabx * ay - naby * ax;\n const m = aby / abx;\n const invS = 1 / dist;\n const phi = Math.atan(m);\n const cosPhi = Math.cos(phi);\n const sinPhi = Math.sin(phi);\n const tmax = invS * (Math.abs(cosPhi) + Math.abs(sinPhi));\n const poly = invS * (1 - tmax + tmax ** 2);\n const partialPhi = Math.max(Math.atan(Math.abs(sinPhi + cosPhi) * poly), Math.atan(Math.abs(sinPhi - cosPhi) * poly));\n let dmax = 0;\n let index = start;\n for (let i = start + 2; i < end - 2; i += 2) {\n const d = Math.abs(aa - nabx * points[i + 1] + naby * points[i]);\n if (d > dmax) {\n index = i;\n dmax = d;\n }\n }\n if (dmax > (dist * partialPhi) ** 2) {\n this.#douglasPeuckerHelper(points, start, index + 2, output);\n this.#douglasPeuckerHelper(points, index, end, output);\n } else {\n output.push(ax, ay);\n }\n }\n static #douglasPeucker(points) {\n const output = [];\n const len = points.length;\n this.#douglasPeuckerHelper(points, 0, len, output);\n output.push(points[len - 2], points[len - 1]);\n return output.length <= 4 ? null : output;\n }\n static #bilateralFilter(buf, width, height, sigmaS, sigmaR, kernelSize) {\n const kernel = new Float32Array(kernelSize ** 2);\n const sigmaS2 = -2 * sigmaS ** 2;\n const halfSize = kernelSize >> 1;\n for (let i = 0; i < kernelSize; i++) {\n const x = (i - halfSize) ** 2;\n for (let j = 0; j < kernelSize; j++) {\n kernel[i * kernelSize + j] = Math.exp((x + (j - halfSize) ** 2) / sigmaS2);\n }\n }\n const rangeValues = new Float32Array(256);\n const sigmaR2 = -2 * sigmaR ** 2;\n for (let i = 0; i < 256; i++) {\n rangeValues[i] = Math.exp(i ** 2 / sigmaR2);\n }\n const N = buf.length;\n const out = new Uint8Array(N);\n const histogram = new Uint32Array(256);\n for (let i = 0; i < height; i++) {\n for (let j = 0; j < width; j++) {\n const ij = i * width + j;\n const center = buf[ij];\n let sum = 0;\n let norm = 0;\n for (let k = 0; k < kernelSize; k++) {\n const y = i + k - halfSize;\n if (y < 0 || y >= height) {\n continue;\n }\n for (let l = 0; l < kernelSize; l++) {\n const x = j + l - halfSize;\n if (x < 0 || x >= width) {\n continue;\n }\n const neighbour = buf[y * width + x];\n const w = kernel[k * kernelSize + l] * rangeValues[Math.abs(neighbour - center)];\n sum += neighbour * w;\n norm += w;\n }\n }\n const pix = out[ij] = Math.round(sum / norm);\n histogram[pix]++;\n }\n }\n return [out, histogram];\n }\n static #getHistogram(buf) {\n const histogram = new Uint32Array(256);\n for (const g of buf) {\n histogram[g]++;\n }\n return histogram;\n }\n static #toUint8(buf) {\n const N = buf.length;\n const out = new Uint8ClampedArray(N >> 2);\n let max = -Infinity;\n let min = Infinity;\n for (let i = 0, ii = out.length; i < ii; i++) {\n const pix = out[i] = buf[i << 2];\n max = Math.max(max, pix);\n min = Math.min(min, pix);\n }\n const ratio = 255 / (max - min);\n for (let i = 0, ii = out.length; i < ii; i++) {\n out[i] = (out[i] - min) * ratio;\n }\n return out;\n }\n static #guessThreshold(histogram) {\n let i;\n let M = -Infinity;\n let L = -Infinity;\n const min = histogram.findIndex(v => v !== 0);\n let pos = min;\n let spos = min;\n for (i = min; i < 256; i++) {\n const v = histogram[i];\n if (v > M) {\n if (i - pos > L) {\n L = i - pos;\n spos = i - 1;\n }\n M = v;\n pos = i;\n }\n }\n for (i = spos - 1; i >= 0; i--) {\n if (histogram[i] > histogram[i + 1]) {\n break;\n }\n }\n return i;\n }\n static #getGrayPixels(bitmap) {\n const originalBitmap = bitmap;\n const {\n width,\n height\n } = bitmap;\n const {\n maxDim\n } = this.#PARAMETERS;\n let newWidth = width;\n let newHeight = height;\n if (width > maxDim || height > maxDim) {\n let prevWidth = width;\n let prevHeight = height;\n let steps = Math.log2(Math.max(width, height) / maxDim);\n const isteps = Math.floor(steps);\n steps = steps === isteps ? isteps - 1 : isteps;\n for (let i = 0; i < steps; i++) {\n newWidth = Math.ceil(prevWidth / 2);\n newHeight = Math.ceil(prevHeight / 2);\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 prevWidth = newWidth;\n prevHeight = newHeight;\n if (bitmap !== originalBitmap) {\n bitmap.close();\n }\n bitmap = offscreen.transferToImageBitmap();\n }\n const ratio = Math.min(maxDim / newWidth, maxDim / newHeight);\n newWidth = Math.round(newWidth * ratio);\n newHeight = Math.round(newHeight * ratio);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\", {\n willReadFrequently: true\n });\n ctx.fillStyle = \"white\";\n ctx.fillRect(0, 0, newWidth, newHeight);\n ctx.filter = \"grayscale(1)\";\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, newWidth, newHeight);\n const grayImage = ctx.getImageData(0, 0, newWidth, newHeight).data;\n const uint8Buf = this.#toUint8(grayImage);\n return [uint8Buf, newWidth, newHeight];\n }\n static extractContoursFromText(text, {\n fontFamily,\n fontStyle,\n fontWeight\n }, pageWidth, pageHeight, rotation, innerMargin) {\n let canvas = new OffscreenCanvas(1, 1);\n let ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const fontSize = 200;\n const font = ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;\n const {\n actualBoundingBoxLeft,\n actualBoundingBoxRight,\n actualBoundingBoxAscent,\n actualBoundingBoxDescent,\n fontBoundingBoxAscent,\n fontBoundingBoxDescent,\n width\n } = ctx.measureText(text);\n const SCALE = 1.5;\n const canvasWidth = Math.ceil(Math.max(Math.abs(actualBoundingBoxLeft) + Math.abs(actualBoundingBoxRight) || 0, width) * SCALE);\n const canvasHeight = Math.ceil(Math.max(Math.abs(actualBoundingBoxAscent) + Math.abs(actualBoundingBoxDescent) || fontSize, Math.abs(fontBoundingBoxAscent) + Math.abs(fontBoundingBoxDescent) || fontSize) * SCALE);\n canvas = new OffscreenCanvas(canvasWidth, canvasHeight);\n ctx = canvas.getContext(\"2d\", {\n alpha: true,\n willReadFrequently: true\n });\n ctx.font = font;\n ctx.filter = \"grayscale(1)\";\n ctx.fillStyle = \"white\";\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\n ctx.fillStyle = \"black\";\n ctx.fillText(text, canvasWidth * (SCALE - 1) / 2, canvasHeight * (3 - SCALE) / 2);\n const uint8Buf = this.#toUint8(ctx.getImageData(0, 0, canvasWidth, canvasHeight).data);\n const histogram = this.#getHistogram(uint8Buf);\n const threshold = this.#guessThreshold(histogram);\n const contourList = this.#findContours(uint8Buf, canvasWidth, canvasHeight, threshold);\n return this.processDrawnLines({\n lines: {\n curves: contourList,\n width: canvasWidth,\n height: canvasHeight\n },\n pageWidth,\n pageHeight,\n rotation,\n innerMargin,\n mustSmooth: true,\n areContours: true\n });\n }\n static process(bitmap, pageWidth, pageHeight, rotation, innerMargin) {\n const [uint8Buf, width, height] = this.#getGrayPixels(bitmap);\n const [buffer, histogram] = this.#bilateralFilter(uint8Buf, width, height, Math.hypot(width, height) * this.#PARAMETERS.sigmaSFactor, this.#PARAMETERS.sigmaR, this.#PARAMETERS.kernelSize);\n const threshold = this.#guessThreshold(histogram);\n const contourList = this.#findContours(buffer, width, height, threshold);\n return this.processDrawnLines({\n lines: {\n curves: contourList,\n width,\n height\n },\n pageWidth,\n pageHeight,\n rotation,\n innerMargin,\n mustSmooth: true,\n areContours: true\n });\n }\n static processDrawnLines({\n lines,\n pageWidth,\n pageHeight,\n rotation,\n innerMargin,\n mustSmooth,\n areContours\n }) {\n if (rotation % 180 !== 0) {\n [pageWidth, pageHeight] = [pageHeight, pageWidth];\n }\n const {\n curves,\n width,\n height\n } = lines;\n const thickness = lines.thickness ?? 0;\n const linesAndPoints = [];\n const ratio = Math.min(pageWidth / width, pageHeight / height);\n const xScale = ratio / pageWidth;\n const yScale = ratio / pageHeight;\n const newCurves = [];\n for (const {\n points\n } of curves) {\n const reducedPoints = mustSmooth ? this.#douglasPeucker(points) : points;\n if (!reducedPoints) {\n continue;\n }\n newCurves.push(reducedPoints);\n const len = reducedPoints.length;\n const newPoints = new Float32Array(len);\n const line = new Float32Array(3 * (len === 2 ? 2 : len - 2));\n linesAndPoints.push({\n line,\n points: newPoints\n });\n if (len === 2) {\n newPoints[0] = reducedPoints[0] * xScale;\n newPoints[1] = reducedPoints[1] * yScale;\n line.set([NaN, NaN, NaN, NaN, newPoints[0], newPoints[1]], 0);\n continue;\n }\n let [x1, y1, x2, y2] = reducedPoints;\n x1 *= xScale;\n y1 *= yScale;\n x2 *= xScale;\n y2 *= yScale;\n newPoints.set([x1, y1, x2, y2], 0);\n line.set([NaN, NaN, NaN, NaN, x1, y1], 0);\n for (let i = 4; i < len; i += 2) {\n const x = newPoints[i] = reducedPoints[i] * xScale;\n const y = newPoints[i + 1] = reducedPoints[i + 1] * yScale;\n line.set(Outline.createBezierPoints(x1, y1, x2, y2, x, y), (i - 2) * 3);\n [x1, y1, x2, y2] = [x2, y2, x, y];\n }\n }\n if (linesAndPoints.length === 0) {\n return null;\n }\n const outline = areContours ? new ContourDrawOutline() : new InkDrawOutline();\n outline.build(linesAndPoints, pageWidth, pageHeight, 1, rotation, areContours ? 0 : thickness, innerMargin);\n return {\n outline,\n newCurves,\n areContours,\n thickness,\n width,\n height\n };\n }\n static async compressSignature({\n outlines,\n areContours,\n thickness,\n width,\n height\n }) {\n let minDiff = Infinity;\n let maxDiff = -Infinity;\n let outlinesLength = 0;\n for (const points of outlines) {\n outlinesLength += points.length;\n for (let i = 2, ii = points.length; i < ii; i++) {\n const dx = points[i] - points[i - 2];\n minDiff = Math.min(minDiff, dx);\n maxDiff = Math.max(maxDiff, dx);\n }\n }\n let bufferType;\n if (minDiff >= -128 && maxDiff <= 127) {\n bufferType = Int8Array;\n } else if (minDiff >= -32768 && maxDiff <= 32767) {\n bufferType = Int16Array;\n } else {\n bufferType = Int32Array;\n }\n const len = outlines.length;\n const headerLength = BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * len;\n const header = new Uint32Array(headerLength);\n let offset = 0;\n header[offset++] = headerLength * Uint32Array.BYTES_PER_ELEMENT + (outlinesLength - 2 * len) * bufferType.BYTES_PER_ELEMENT;\n header[offset++] = 0;\n header[offset++] = width;\n header[offset++] = height;\n header[offset++] = areContours ? 0 : 1;\n header[offset++] = Math.max(0, Math.floor(thickness ?? 0));\n header[offset++] = len;\n header[offset++] = bufferType.BYTES_PER_ELEMENT;\n for (const points of outlines) {\n header[offset++] = points.length - 2;\n header[offset++] = points[0];\n header[offset++] = points[1];\n }\n const cs = new CompressionStream(\"deflate-raw\");\n const writer = cs.writable.getWriter();\n await writer.ready;\n writer.write(header);\n const BufferCtor = bufferType.prototype.constructor;\n for (const points of outlines) {\n const diffs = new BufferCtor(points.length - 2);\n for (let i = 2, ii = points.length; i < ii; i++) {\n diffs[i - 2] = points[i] - points[i - 2];\n }\n writer.write(diffs);\n }\n writer.close();\n const buf = await new Response(cs.readable).arrayBuffer();\n const bytes = new Uint8Array(buf);\n return bytes.toBase64();\n }\n static async decompressSignature(signatureData) {\n try {\n const bytes = Uint8Array.fromBase64(signatureData);\n const {\n readable,\n writable\n } = new DecompressionStream(\"deflate-raw\");\n const writer = writable.getWriter();\n await writer.ready;\n writer.write(bytes).then(async () => {\n await writer.ready;\n await writer.close();\n }).catch(() => {});\n let data = null;\n let offset = 0;\n for await (const chunk of readable) {\n data ||= new Uint8Array(new Uint32Array(chunk.buffer, 0, 4)[0]);\n data.set(chunk, offset);\n offset += chunk.length;\n }\n const header = new Uint32Array(data.buffer, 0, data.length >> 2);\n const version = header[1];\n if (version !== 0) {\n throw new Error(`Invalid version: ${version}`);\n }\n const width = header[2];\n const height = header[3];\n const areContours = header[4] === 0;\n const thickness = header[5];\n const numberOfDrawings = header[6];\n const bufferType = header[7];\n const outlines = [];\n const diffsOffset = (BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * numberOfDrawings) * Uint32Array.BYTES_PER_ELEMENT;\n let diffs;\n switch (bufferType) {\n case Int8Array.BYTES_PER_ELEMENT:\n diffs = new Int8Array(data.buffer, diffsOffset);\n break;\n case Int16Array.BYTES_PER_ELEMENT:\n diffs = new Int16Array(data.buffer, diffsOffset);\n break;\n case Int32Array.BYTES_PER_ELEMENT:\n diffs = new Int32Array(data.buffer, diffsOffset);\n break;\n }\n offset = 0;\n for (let i = 0; i < numberOfDrawings; i++) {\n const len = header[POINTS_PROPERTIES_NUMBER * i + BASE_HEADER_LENGTH];\n const points = new Float32Array(len + 2);\n outlines.push(points);\n for (let j = 0; j < POINTS_PROPERTIES_NUMBER - 1; j++) {\n points[j] = header[POINTS_PROPERTIES_NUMBER * i + BASE_HEADER_LENGTH + j + 1];\n }\n for (let j = 0; j < len; j++) {\n points[j + 2] = points[j] + diffs[offset++];\n }\n }\n return {\n areContours,\n thickness,\n outlines,\n width,\n height\n };\n } catch (e) {\n warn(`decompressSignature: ${e}`);\n return null;\n }\n }\n}\n\n;// ./src/display/editor/signature.js\n\n\n\n\n\n\n\n\n\n\n\n\nclass SignatureOptions extends DrawingOptions {\n constructor() {\n super();\n super.updateProperties({\n fill: AnnotationEditor._defaultLineColor,\n \"stroke-width\": 0\n });\n }\n clone() {\n const clone = new SignatureOptions();\n clone.updateAll(this);\n return clone;\n }\n}\nclass DrawnSignatureOptions extends InkDrawingOptions {\n constructor(viewerParameters) {\n super(viewerParameters);\n super.updateProperties({\n stroke: AnnotationEditor._defaultLineColor,\n \"stroke-width\": 1\n });\n }\n clone() {\n const clone = new DrawnSignatureOptions(this._viewParameters);\n clone.updateAll(this);\n return clone;\n }\n}\nclass SignatureEditor extends DrawingEditor {\n #isExtracted = false;\n #description = null;\n #signatureData = null;\n #signatureUUID = null;\n static _type = \"signature\";\n static _editorType = AnnotationEditorType.SIGNATURE;\n static _defaultDrawingOptions = null;\n constructor(params) {\n super({\n ...params,\n mustBeCommitted: true,\n name: \"signatureEditor\"\n });\n this._willKeepAspectRatio = true;\n this.#signatureData = params.signatureData || null;\n this.#description = null;\n this.defaultL10nId = \"pdfjs-editor-signature-editor1\";\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n this._defaultDrawingOptions = new SignatureOptions();\n this._defaultDrawnSignatureOptions = new DrawnSignatureOptions(uiManager.viewParameters);\n }\n static getDefaultDrawingOptions(options) {\n const clone = this._defaultDrawingOptions.clone();\n clone.updateProperties(options);\n return clone;\n }\n static get supportMultipleDrawings() {\n return false;\n }\n static get typesMap() {\n return shadow(this, \"typesMap\", new Map());\n }\n static get isDrawer() {\n return false;\n }\n get telemetryFinalData() {\n return {\n type: \"signature\",\n hasDescription: !!this.#description\n };\n }\n static computeTelemetryFinalData(data) {\n const hasDescriptionStats = data.get(\"hasDescription\");\n return {\n hasAltText: hasDescriptionStats.get(true) ?? 0,\n hasNoAltText: hasDescriptionStats.get(false) ?? 0\n };\n }\n get isResizable() {\n return true;\n }\n onScaleChanging() {\n if (this._drawId === null) {\n return;\n }\n super.onScaleChanging();\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n const {\n _isCopy\n } = this;\n if (_isCopy) {\n this._isCopy = false;\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n if (this._drawId === null) {\n if (this.#signatureData) {\n const {\n lines,\n mustSmooth,\n areContours,\n description,\n uuid,\n heightInPage\n } = this.#signatureData;\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n const outline = SignatureExtractor.processDrawnLines({\n lines,\n pageWidth,\n pageHeight,\n rotation,\n innerMargin: SignatureEditor._INNER_MARGIN,\n mustSmooth,\n areContours\n });\n this.addSignature(outline, heightInPage, description, uuid);\n } else {\n this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n description: \"\"\n }));\n this.div.hidden = true;\n this._uiManager.getSignature(this);\n }\n } else {\n this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n description: this.#description || \"\"\n }));\n }\n if (_isCopy) {\n this._isCopy = true;\n this._moveAfterPaste(baseX, baseY);\n }\n return this.div;\n }\n setUuid(uuid) {\n this.#signatureUUID = uuid;\n this.addEditToolbar();\n }\n getUuid() {\n return this.#signatureUUID;\n }\n get description() {\n return this.#description;\n }\n set description(description) {\n this.#description = description;\n if (!this.div) {\n return;\n }\n this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n description\n }));\n super.addEditToolbar().then(toolbar => {\n toolbar?.updateEditSignatureButton(description);\n });\n }\n getSignaturePreview() {\n const {\n newCurves,\n areContours,\n thickness,\n width,\n height\n } = this.#signatureData;\n const maxDim = Math.max(width, height);\n const outlineData = SignatureExtractor.processDrawnLines({\n lines: {\n curves: newCurves.map(points => ({\n points\n })),\n thickness,\n width,\n height\n },\n pageWidth: maxDim,\n pageHeight: maxDim,\n rotation: 0,\n innerMargin: 0,\n mustSmooth: false,\n areContours\n });\n return {\n areContours,\n outline: outlineData.outline\n };\n }\n get toolbarButtons() {\n if (this._uiManager.signatureManager) {\n return [[\"editSignature\", this._uiManager.signatureManager]];\n }\n return super.toolbarButtons;\n }\n addSignature(data, heightInPage, description, uuid) {\n const {\n x: savedX,\n y: savedY\n } = this;\n const {\n outline\n } = this.#signatureData = data;\n this.#isExtracted = outline instanceof ContourDrawOutline;\n this.description = description;\n let drawingOptions;\n if (this.#isExtracted) {\n drawingOptions = SignatureEditor.getDefaultDrawingOptions();\n } else {\n drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();\n drawingOptions.updateProperties({\n \"stroke-width\": outline.thickness\n });\n }\n this._addOutlines({\n drawOutlines: outline,\n drawingOptions\n });\n const [, pageHeight] = this.pageDimensions;\n let newHeight = heightInPage / pageHeight;\n newHeight = newHeight >= 1 ? 0.5 : newHeight;\n this.width *= newHeight / this.height;\n if (this.width >= 1) {\n newHeight *= 0.9 / this.width;\n this.width = 0.9;\n }\n this.height = newHeight;\n this.setDims();\n this.x = savedX;\n this.y = savedY;\n this.center();\n this._onResized();\n this.onScaleChanging();\n this.rotate();\n this._uiManager.addToAnnotationStorage(this);\n this.setUuid(uuid);\n this._reportTelemetry({\n action: \"pdfjs.signature.inserted\",\n data: {\n hasBeenSaved: !!uuid,\n hasDescription: !!description\n }\n });\n this.div.hidden = false;\n }\n getFromImage(bitmap) {\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n return SignatureExtractor.process(bitmap, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);\n }\n getFromText(text, fontInfo) {\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n return SignatureExtractor.extractContoursFromText(text, fontInfo, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);\n }\n getDrawnSignature(curves) {\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n return SignatureExtractor.processDrawnLines({\n lines: curves,\n pageWidth,\n pageHeight,\n rotation,\n innerMargin: SignatureEditor._INNER_MARGIN,\n mustSmooth: false,\n areContours: false\n });\n }\n createDrawingOptions({\n areContours,\n thickness\n }) {\n if (areContours) {\n this._drawingOptions = SignatureEditor.getDefaultDrawingOptions();\n } else {\n this._drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();\n this._drawingOptions.updateProperties({\n \"stroke-width\": thickness\n });\n }\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n const {\n lines,\n points\n } = this.serializeDraw(isForCopying);\n const {\n _drawingOptions: {\n \"stroke-width\": thickness\n }\n } = this;\n const serialized = Object.assign(super.serialize(isForCopying), {\n isSignature: true,\n areContours: this.#isExtracted,\n color: [0, 0, 0],\n thickness: this.#isExtracted ? 0 : thickness\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.paths = {\n lines,\n points\n };\n serialized.uuid = this.#signatureUUID;\n serialized.isCopy = true;\n } else {\n serialized.lines = lines;\n }\n if (this.#description) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: this.#description\n };\n }\n return serialized;\n }\n static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {\n if (data.areContours) {\n return ContourDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n }\n return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n }\n static async deserialize(data, parent, uiManager) {\n const editor = await super.deserialize(data, parent, uiManager);\n editor.#isExtracted = data.areContours;\n editor.description = data.accessibilityData?.alt || \"\";\n editor.#signatureUUID = data.uuid;\n return editor;\n }\n}\n\n;// ./src/display/editor/stamp.js\n\n\n\n\n\n\n\n\n\nclass StampEditor extends AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #bitmapFileName = \"\";\n #canvas = null;\n #missingCanvas = false;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n static _editorType = AnnotationEditorType.STAMP;\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n this.defaultL10nId = \"pdfjs-editor-stamp-editor\";\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static isHandlingMimeForPasting(mime) {\n return SupportedImageMimeTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor({\n mode: AnnotationEditorType.STAMP\n }, {\n bitmapFile: item.getAsFile()\n });\n }\n altTextFinish() {\n if (this._uiManager.useNewAltTextFlow) {\n this.div.hidden = false;\n }\n super.altTextFinish();\n }\n get telemetryFinalData() {\n return {\n type: \"stamp\",\n hasAltText: !!this.altTextData?.altText\n };\n }\n static computeTelemetryFinalData(data) {\n const hasAltTextStats = data.get(\"hasAltText\");\n return {\n hasAltText: hasAltTextStats.get(true) ?? 0,\n hasNoAltText: hasAltTextStats.get(false) ?? 0\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 if (data.file) {\n this.#bitmapFileName = data.file.name;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (!this.#canvas) {\n return;\n }\n if (this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n this.addEditToolbar().then(() => {\n this._editToolbar.hide();\n this._uiManager.editAltText(this, true);\n });\n return;\n }\n if (!this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n this._reportTelemetry({\n action: \"pdfjs.image.image_added\",\n data: {\n alt_text_modal: false,\n alt_text_type: \"empty\"\n }\n });\n try {\n this.mlGuessAltText();\n } catch {}\n }\n this.div.focus();\n }\n async mlGuessAltText(imageData = null, updateAltTextData = true) {\n if (this.hasAltTextData()) {\n return null;\n }\n const {\n mlManager\n } = this._uiManager;\n if (!mlManager) {\n throw new Error(\"No ML.\");\n }\n if (!(await mlManager.isEnabledFor(\"altText\"))) {\n throw new Error(\"ML isn't enabled for alt text.\");\n }\n const {\n data,\n width,\n height\n } = imageData || this.copyCanvas(null, null, true).imageData;\n const response = await mlManager.guess({\n name: \"altText\",\n request: {\n data,\n width,\n height,\n channels: data.length / (width * height)\n }\n });\n if (!response) {\n throw new Error(\"No response from the AI service.\");\n }\n if (response.error) {\n throw new Error(\"Error from the AI service.\");\n }\n if (response.cancel) {\n return null;\n }\n if (!response.output) {\n throw new Error(\"No valid response from the AI service.\");\n }\n const altText = response.output;\n await this.setGuessedAltText(altText);\n if (updateAltTextData && !this.hasAltTextData()) {\n this.altTextData = {\n alt: altText,\n decorative: false\n };\n }\n return altText;\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 = SupportedImageMimeTypes.join(\",\");\n const signal = this._uiManager._signal;\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._reportTelemetry({\n action: \"pdfjs.image.image_selected\",\n data: {\n alt_text_modal: this._uiManager.useNewAltTextFlow\n }\n });\n this.#getBitmapFetched(data);\n }\n resolve();\n }, {\n signal\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n }, {\n signal\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 if (this.#resizeTimeoutId) {\n clearTimeout(this.#resizeTimeoutId);\n this.#resizeTimeoutId = null;\n }\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 && this.#canvas === null) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded(focus) {\n this._isDraggable = true;\n if (focus) {\n this.div.focus();\n }\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId || this.#missingCanvas);\n }\n get toolbarButtons() {\n return [[\"altText\", this.createAltText()]];\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._isCopy) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n this.createAltText();\n if (!this.#missingCanvas) {\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n }\n if (this._isCopy) {\n this._moveAfterPaste(baseX, baseY);\n }\n this._uiManager.addShouldRescale(this);\n return this.div;\n }\n setCanvas(annotationElementId, canvas) {\n const {\n id: bitmapId,\n bitmap\n } = this._uiManager.imageManager.getFromCanvas(annotationElementId, canvas);\n canvas.remove();\n if (bitmapId && this._uiManager.imageManager.isValidId(bitmapId)) {\n this.#bitmapId = bitmapId;\n if (bitmap) {\n this.#bitmap = bitmap;\n }\n this.#missingCanvas = false;\n this.#createCanvas();\n }\n }\n _onResized() {\n this.onScaleChanging();\n }\n onScaleChanging() {\n if (!this.parent) {\n return;\n }\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();\n }, TIME_TO_WAIT);\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 this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n canvas.setAttribute(\"role\", \"img\");\n this.addContainer(canvas);\n this.width = width / pageWidth;\n this.height = height / pageHeight;\n this.setDims();\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) {\n div.hidden = false;\n }\n this.#drawBitmap();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._reportTelemetry({\n action: \"inserted_image\"\n });\n if (this.#bitmapFileName) {\n this.div.setAttribute(\"aria-description\", this.#bitmapFileName);\n }\n if (!this.annotationElementId) {\n this._uiManager.a11yAlert(\"pdfjs-editor-stamp-added-alert\");\n }\n }\n copyCanvas(maxDataDimension, maxPreviewDimension, createImageData = false) {\n if (!maxDataDimension) {\n maxDataDimension = 224;\n }\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n const outputScale = new OutputScale();\n let bitmap = this.#bitmap;\n let width = bitmapWidth,\n height = bitmapHeight;\n let canvas = null;\n if (maxPreviewDimension) {\n if (bitmapWidth > maxPreviewDimension || bitmapHeight > maxPreviewDimension) {\n const ratio = Math.min(maxPreviewDimension / bitmapWidth, maxPreviewDimension / bitmapHeight);\n width = Math.floor(bitmapWidth * ratio);\n height = Math.floor(bitmapHeight * ratio);\n }\n canvas = document.createElement(\"canvas\");\n const scaledWidth = canvas.width = Math.ceil(width * outputScale.sx);\n const scaledHeight = canvas.height = Math.ceil(height * outputScale.sy);\n if (!this.#isSvg) {\n bitmap = this.#scaleBitmap(scaledWidth, scaledHeight);\n }\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n let white = \"white\",\n black = \"#cfcfd8\";\n if (this._uiManager.hcmFilter !== \"none\") {\n black = \"black\";\n } else if (ColorScheme.isDarkMode) {\n white = \"#8f8f9d\";\n black = \"#42414d\";\n }\n const boxDim = 15;\n const boxDimWidth = boxDim * outputScale.sx;\n const boxDimHeight = boxDim * outputScale.sy;\n const pattern = new OffscreenCanvas(boxDimWidth * 2, boxDimHeight * 2);\n const patternCtx = pattern.getContext(\"2d\");\n patternCtx.fillStyle = white;\n patternCtx.fillRect(0, 0, boxDimWidth * 2, boxDimHeight * 2);\n patternCtx.fillStyle = black;\n patternCtx.fillRect(0, 0, boxDimWidth, boxDimHeight);\n patternCtx.fillRect(boxDimWidth, boxDimHeight, boxDimWidth, boxDimHeight);\n ctx.fillStyle = ctx.createPattern(pattern, \"repeat\");\n ctx.fillRect(0, 0, scaledWidth, scaledHeight);\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n }\n let imageData = null;\n if (createImageData) {\n let dataWidth, dataHeight;\n if (outputScale.symmetric && bitmap.width < maxDataDimension && bitmap.height < maxDataDimension) {\n dataWidth = bitmap.width;\n dataHeight = bitmap.height;\n } else {\n bitmap = this.#bitmap;\n if (bitmapWidth > maxDataDimension || bitmapHeight > maxDataDimension) {\n const ratio = Math.min(maxDataDimension / bitmapWidth, maxDataDimension / bitmapHeight);\n dataWidth = Math.floor(bitmapWidth * ratio);\n dataHeight = Math.floor(bitmapHeight * ratio);\n if (!this.#isSvg) {\n bitmap = this.#scaleBitmap(dataWidth, dataHeight);\n }\n }\n }\n const offscreen = new OffscreenCanvas(dataWidth, dataHeight);\n const offscreenCtx = offscreen.getContext(\"2d\", {\n willReadFrequently: true\n });\n offscreenCtx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, dataWidth, dataHeight);\n imageData = {\n width: dataWidth,\n height: dataHeight,\n data: offscreenCtx.getImageData(0, 0, dataWidth, dataHeight).data\n };\n }\n return {\n canvas,\n width,\n height,\n imageData\n };\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() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n width,\n height\n } = this;\n const outputScale = new OutputScale();\n const scaledWidth = Math.ceil(width * parentWidth * outputScale.sx);\n const scaledHeight = Math.ceil(height * parentHeight * outputScale.sy);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === scaledWidth && canvas.height === scaledHeight) {\n return;\n }\n canvas.width = scaledWidth;\n canvas.height = scaledHeight;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(scaledWidth, scaledHeight);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\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 * PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * 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 static async deserialize(data, parent, uiManager) {\n let initialData = null;\n let missingCanvas = false;\n if (data instanceof StampAnnotationElement) {\n const {\n data: {\n rect,\n rotation,\n id,\n structParent,\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\n },\n container,\n parent: {\n page: {\n pageNumber\n }\n },\n canvas\n } = data;\n let bitmapId, bitmap;\n if (canvas) {\n delete data.canvas;\n ({\n id: bitmapId,\n bitmap\n } = uiManager.imageManager.getFromCanvas(container.id, canvas));\n canvas.remove();\n } else {\n missingCanvas = true;\n data._hasNoCanvas = true;\n }\n const altText = (await parent._structTree.getAriaAttributes(`${AnnotationPrefix}${id}`))?.get(\"aria-label\") || \"\";\n initialData = data = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId,\n bitmap,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n accessibilityData: {\n decorative: false,\n altText\n },\n isSvg: false,\n structParent,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmap,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (missingCanvas) {\n uiManager.addMissingCanvas(data.id, editor);\n editor.#missingCanvas = true;\n } else if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n if (bitmap) {\n editor.#bitmap = bitmap;\n }\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 editor._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\n editor.#hasBeenAddedInUndoStack = !!initialData;\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const serialized = Object.assign(super.serialize(isForCopying), {\n bitmapId: this.#bitmapId,\n isSvg: this.#isSvg\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.serializeAltText(true);\n serialized.isCopy = true;\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.serializeAltText(false);\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (this.annotationElementId) {\n const changes = this.#hasElementChanged(serialized);\n if (changes.isSame) {\n return null;\n }\n if (changes.isSameAltText) {\n delete serialized.accessibilityData;\n } else {\n serialized.accessibilityData.structParent = this._initialData.structParent ?? -1;\n }\n serialized.id = this.annotationElementId;\n delete serialized.bitmapId;\n return serialized;\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 #hasElementChanged(serialized) {\n const {\n pageIndex,\n accessibilityData: {\n altText\n }\n } = this._initialData;\n const isSamePageIndex = serialized.pageIndex === pageIndex;\n const isSameAltText = (serialized.accessibilityData?.alt || \"\") === altText;\n return {\n isSame: !this.hasEditedComment && !this._hasBeenMoved && !this._hasBeenResized && isSamePageIndex && isSameAltText,\n isSameAltText\n };\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n annotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this.comment\n });\n return null;\n }\n}\n\n;// ./src/display/editor/annotation_editor_layer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #clickAC = null;\n #editorFocusTimeoutId = null;\n #editors = new Map();\n #hadPointerDown = false;\n #isDisabling = false;\n #isEnabling = false;\n #drawingAC = null;\n #focusedElement = null;\n #textLayer = null;\n #textSelectionAC = null;\n #textLayerDblClickAC = null;\n #lastPointerDownTimestamp = -1;\n #uiManager;\n static _initialized = false;\n static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor, SignatureEditor].map(type => [type._editorType, type]));\n constructor({\n uiManager,\n pageIndex,\n div,\n structTreeLayer,\n accessibilityManager,\n annotationLayer,\n drawLayer,\n textLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n, uiManager);\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.#textLayer = textLayer;\n this.drawLayer = drawLayer;\n this._structTree = structTreeLayer;\n this.#uiManager.addLayer(this);\n }\n updatePageIndex(newPageIndex) {\n for (const editor of this.#allEditorsIterator) {\n editor.updatePageIndex(newPageIndex);\n }\n this.pageIndex = newPageIndex;\n this.#uiManager.addLayer(this);\n }\n async setClonedFrom(clonedFrom) {\n if (!clonedFrom) {\n return;\n }\n const promises = [];\n for (const editor of clonedFrom.#allEditorsIterator) {\n const serialized = editor.serialize(true);\n if (!serialized) {\n continue;\n }\n serialized.isCopy = false;\n promises.push(this.deserialize(serialized).then(deserialized => {\n if (deserialized) {\n this.addOrRebuild(deserialized);\n }\n }));\n }\n await Promise.all(promises);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n get isInvisible() {\n return this.isEmpty && this.#uiManager.getMode() === AnnotationEditorType.NONE;\n }\n updateToolbar(options) {\n this.#uiManager.updateToolbar(options);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n switch (mode) {\n case AnnotationEditorType.NONE:\n this.div.classList.toggle(\"nonEditing\", true);\n this.disableTextSelection();\n this.togglePointerEvents(false);\n this.toggleAnnotationLayerPointerEvents(true);\n this.disableClick();\n return;\n case AnnotationEditorType.INK:\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.enableClick();\n break;\n case AnnotationEditorType.HIGHLIGHT:\n this.enableTextSelection();\n this.togglePointerEvents(false);\n this.disableClick();\n break;\n default:\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.enableClick();\n }\n this.toggleAnnotationLayerPointerEvents(false);\n const {\n classList\n } = this.div;\n classList.toggle(\"nonEditing\", false);\n if (mode === AnnotationEditorType.POPUP) {\n classList.toggle(\"commentEditing\", true);\n } else {\n classList.toggle(\"commentEditing\", false);\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);\n }\n }\n this.div.hidden = false;\n }\n hasTextLayer(textLayer) {\n return textLayer === this.#textLayer?.div;\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n cleanUndoStack(type) {\n this.#uiManager.cleanUndoStack(type);\n }\n toggleDrawing(enabled = false) {\n this.div.classList.toggle(\"drawing\", !enabled);\n }\n togglePointerEvents(enabled = false) {\n this.div.classList.toggle(\"disabled\", !enabled);\n }\n toggleAnnotationLayerPointerEvents(enabled = false) {\n this.#annotationLayer?.togglePointerEvents(enabled);\n }\n get #allEditorsIterator() {\n return this.#editors.size !== 0 ? this.#editors.values() : this.#uiManager.getEditors(this.pageIndex);\n }\n async enable() {\n this.#isEnabling = true;\n this.div.tabIndex = 0;\n this.togglePointerEvents(true);\n this.div.classList.toggle(\"nonEditing\", false);\n this.#textLayerDblClickAC?.abort();\n this.#textLayerDblClickAC = null;\n const annotationElementIds = new Set();\n for (const editor of this.#allEditorsIterator) {\n editor.enableEditing();\n editor.show(true);\n if (editor.annotationElementId) {\n this.#uiManager.removeChangedExistingAnnotation(editor);\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n const annotationLayer = this.#annotationLayer;\n if (annotationLayer) {\n for (const editable of annotationLayer.getEditableAnnotations()) {\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 = await this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n this.#isEnabling = false;\n this.#uiManager._eventBus.dispatch(\"editorsrendered\", {\n source: this,\n pageNumber: this.pageIndex + 1\n });\n }\n disable() {\n this.#isDisabling = true;\n this.div.tabIndex = -1;\n this.togglePointerEvents(false);\n this.div.classList.toggle(\"nonEditing\", true);\n if (this.#textLayer && !this.#textLayerDblClickAC) {\n this.#textLayerDblClickAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#textLayerDblClickAC);\n this.#textLayer.div.addEventListener(\"pointerdown\", e => {\n const DBL_CLICK_THRESHOLD = 500;\n const {\n clientX,\n clientY,\n timeStamp\n } = e;\n const lastPointerDownTimestamp = this.#lastPointerDownTimestamp;\n if (timeStamp - lastPointerDownTimestamp > DBL_CLICK_THRESHOLD) {\n this.#lastPointerDownTimestamp = timeStamp;\n return;\n }\n this.#lastPointerDownTimestamp = -1;\n const {\n classList\n } = this.div;\n classList.toggle(\"getElements\", true);\n const elements = document.elementsFromPoint(clientX, clientY);\n classList.toggle(\"getElements\", false);\n if (!this.div.contains(elements[0])) {\n return;\n }\n let id;\n const regex = new RegExp(`^${AnnotationEditorPrefix}[0-9]+$`);\n for (const element of elements) {\n if (regex.test(element.id)) {\n id = element.id;\n break;\n }\n }\n if (!id) {\n return;\n }\n const editor = this.#editors.get(id);\n if (editor?.annotationElementId === null) {\n e.stopPropagation();\n e.preventDefault();\n editor.dblclick(e);\n }\n }, {\n signal,\n capture: true\n });\n }\n const annotationLayer = this.#annotationLayer;\n const needFakeAnnotation = [];\n if (annotationLayer) {\n const changedAnnotations = new Map();\n const resetAnnotations = new Map();\n for (const editor of this.#allEditorsIterator) {\n editor.disableEditing();\n if (!editor.annotationElementId) {\n needFakeAnnotation.push(editor);\n continue;\n }\n if (editor.serialize() !== null) {\n changedAnnotations.set(editor.annotationElementId, editor);\n continue;\n } else {\n resetAnnotations.set(editor.annotationElementId, editor);\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n const editables = annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (this.#uiManager.isDeletedAnnotationElement(id)) {\n editable.updateEdited({\n deleted: true\n });\n continue;\n }\n let editor = resetAnnotations.get(id);\n if (editor) {\n editor.resetAnnotationElement(editable);\n editor.show(false);\n editable.show();\n continue;\n }\n editor = changedAnnotations.get(id);\n if (editor) {\n this.#uiManager.addChangedExistingAnnotation(editor);\n if (editor.renderAnnotationElement(editable)) {\n editor.show(false);\n }\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.remove(`${editorType._type}Editing`);\n }\n this.disableTextSelection();\n this.toggleAnnotationLayerPointerEvents(true);\n annotationLayer?.updateFakeAnnotations(needFakeAnnotation);\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 enableTextSelection() {\n this.div.tabIndex = -1;\n if (this.#textLayer?.div && !this.#textSelectionAC) {\n this.#textSelectionAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#textSelectionAC);\n this.#textLayer.div.addEventListener(\"pointerdown\", this.#textLayerPointerDown.bind(this), {\n signal\n });\n this.#textLayer.div.classList.add(\"highlighting\");\n }\n }\n disableTextSelection() {\n this.div.tabIndex = 0;\n if (this.#textLayer?.div && this.#textSelectionAC) {\n this.#textSelectionAC.abort();\n this.#textSelectionAC = null;\n this.#textLayer.div.classList.remove(\"highlighting\");\n }\n }\n #textLayerPointerDown(event) {\n this.#uiManager.unselectAll();\n const {\n target\n } = event;\n if (target === this.#textLayer.div || (target.getAttribute(\"role\") === \"img\" || target.classList.contains(\"endOfContent\")) && this.#textLayer.div.contains(target)) {\n const {\n isMac\n } = FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#uiManager.showAllEditors(\"highlight\", true, true);\n this.#textLayer.div.classList.add(\"free\");\n this.toggleDrawing();\n HighlightEditor.startHighlighting(this, this.#uiManager.direction === \"ltr\", {\n target: this.#textLayer.div,\n x: event.x,\n y: event.y\n });\n this.#textLayer.div.addEventListener(\"pointerup\", () => {\n this.#textLayer.div.classList.remove(\"free\");\n this.toggleDrawing(true);\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n event.preventDefault();\n }\n }\n enableClick() {\n if (this.#clickAC) {\n return;\n }\n this.#clickAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#clickAC);\n this.div.addEventListener(\"pointerdown\", this.pointerdown.bind(this), {\n signal\n });\n const pointerup = this.pointerup.bind(this);\n this.div.addEventListener(\"pointerup\", pointerup, {\n signal\n });\n this.div.addEventListener(\"pointercancel\", pointerup, {\n signal\n });\n }\n disableClick() {\n this.#clickAC?.abort();\n this.#clickAC = null;\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 editor.div.remove();\n editor.isAttachedToDOM = false;\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.parent && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n 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 if (editor.parent === this && editor.isAttachedToDOM) {\n return;\n }\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(!this.#isEnabling);\n this.#uiManager.addToAnnotationStorage(editor);\n editor._reportTelemetry(editor.telemetryInitialData);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {\n editor._focusEventsAllowed = false;\n this.#editorFocusTimeoutId = setTimeout(() => {\n this.#editorFocusTimeoutId = null;\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this.#uiManager._signal\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.parent ||= this;\n editor.rebuild();\n editor.show();\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 getEditorByUID(uid) {\n for (const editor of this.#editors.values()) {\n if (editor.uid === uid) {\n return editor;\n }\n }\n return null;\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n get #currentEditorType() {\n return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode());\n }\n combinedSignal(ac) {\n return this.#uiManager.combinedSignal(ac);\n }\n #createNewEditor(params) {\n const editorType = this.#currentEditorType;\n return editorType ? new editorType.prototype.constructor(params) : null;\n }\n canCreateNewEmptyEditor() {\n return this.#currentEditorType?.canCreateNewEmptyEditor();\n }\n async pasteEditor(options, params) {\n this.updateToolbar(options);\n await this.#uiManager.updateMode(options.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 async deserialize(data) {\n return (await AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager)) || null;\n }\n createAndAddNewEditor(event, isCentered, data = {}) {\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 ...data\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n get boundingClientRect() {\n return this.div.getBoundingClientRect();\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.boundingClientRect;\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(data = {}) {\n this.createAndAddNewEditor(this.#getCenterPoint(), true, data);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = 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.#currentEditorType?.isDrawer && this.#currentEditorType.supportMultipleDrawings) {\n return;\n }\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n const currentMode = this.#uiManager.getMode();\n if (currentMode === AnnotationEditorType.STAMP || currentMode === AnnotationEditorType.SIGNATURE) {\n this.#uiManager.unselectAll();\n return;\n }\n this.createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#uiManager.getMode() === AnnotationEditorType.HIGHLIGHT) {\n this.enableTextSelection();\n }\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = 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 if (this.#currentEditorType?.isDrawer) {\n this.startDrawingSession(event);\n return;\n }\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n startDrawingSession(event) {\n this.div.focus({\n preventScroll: true\n });\n if (this.#drawingAC) {\n this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);\n return;\n }\n this.#uiManager.setCurrentDrawingSession(this);\n this.#drawingAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#drawingAC);\n this.div.addEventListener(\"blur\", ({\n relatedTarget\n }) => {\n if (relatedTarget && !this.div.contains(relatedTarget)) {\n this.#focusedElement = null;\n this.commitOrRemove();\n }\n }, {\n signal\n });\n this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);\n }\n pause(on) {\n if (on) {\n const {\n activeElement\n } = document;\n if (this.div.contains(activeElement)) {\n this.#focusedElement = activeElement;\n }\n return;\n }\n if (this.#focusedElement) {\n setTimeout(() => {\n this.#focusedElement?.focus();\n this.#focusedElement = null;\n }, 0);\n }\n }\n endDrawingSession(isAborted = false) {\n if (!this.#drawingAC) {\n return null;\n }\n this.#uiManager.setCurrentDrawingSession(null);\n this.#drawingAC.abort();\n this.#drawingAC = null;\n this.#focusedElement = null;\n return this.#currentEditorType.endDrawing(isAborted);\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 commitOrRemove() {\n if (this.#drawingAC) {\n this.endDrawingSession();\n return true;\n }\n return false;\n }\n onScaleChanging() {\n if (!this.#drawingAC) {\n return;\n }\n this.#currentEditorType.onScaleChangingWhenDrawing(this);\n }\n destroy() {\n this.commitOrRemove();\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n if (this.#editorFocusTimeoutId) {\n clearTimeout(this.#editorFocusTimeoutId);\n this.#editorFocusTimeoutId = 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 for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n setLayerDimensions(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n editor.rebuild();\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.#cleanup();\n const oldRotation = this.viewport.rotation;\n const rotation = viewport.rotation;\n this.viewport = viewport;\n setLayerDimensions(this.div, {\n rotation\n });\n if (oldRotation !== rotation) {\n for (const editor of this.#editors.values()) {\n editor.rotate(rotation);\n }\n }\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n get scale() {\n return this.#uiManager.viewParameters.realScale;\n }\n}\n\n;// ./src/display/draw_layer.js\n\n\n\n\nclass DrawLayer {\n #parent = null;\n #mapping = new Map();\n #toUpdate = new Map();\n static #id = 0;\n setParent(parent) {\n if (!this.#parent) {\n this.#parent = parent;\n return;\n }\n if (this.#parent !== parent) {\n if (this.#mapping.size > 0) {\n for (const root of this.#mapping.values()) {\n root.remove();\n parent.append(root);\n }\n }\n this.#parent = parent;\n }\n }\n static get _svgFactory() {\n return shadow(this, \"_svgFactory\", new DOMSVGFactory());\n }\n static #setBox(element, [x, y, width, height]) {\n const {\n style\n } = element;\n style.top = `${100 * y}%`;\n style.left = `${100 * x}%`;\n style.width = `${100 * width}%`;\n style.height = `${100 * height}%`;\n }\n #createSVG() {\n const svg = DrawLayer._svgFactory.create(1, 1, true);\n this.#parent.append(svg);\n svg.setAttribute(\"aria-hidden\", true);\n return svg;\n }\n #createClipPath(defs, pathId) {\n const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n defs.append(clipPath);\n const clipPathId = `clip_${pathId}`;\n clipPath.setAttribute(\"id\", clipPathId);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n const clipPathUse = DrawLayer._svgFactory.createElement(\"use\");\n clipPath.append(clipPathUse);\n clipPathUse.setAttribute(\"href\", `#${pathId}`);\n clipPathUse.classList.add(\"clip\");\n return clipPathId;\n }\n #updateProperties(element, properties) {\n for (const [key, value] of Object.entries(properties)) {\n if (value === null) {\n element.removeAttribute(key);\n } else {\n element.setAttribute(key, value);\n }\n }\n }\n draw(properties, isPathUpdatable = false, hasClip = false) {\n const id = DrawLayer.#id++;\n const root = this.#createSVG();\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n if (isPathUpdatable) {\n this.#toUpdate.set(id, path);\n }\n const clipPathId = hasClip ? this.#createClipPath(defs, pathId) : null;\n const use = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use);\n use.setAttribute(\"href\", `#${pathId}`);\n this.updateProperties(root, properties);\n this.#mapping.set(id, root);\n return {\n id,\n clipPathId: `url(#${clipPathId})`\n };\n }\n drawOutline(properties, mustRemoveSelfIntersections) {\n const id = DrawLayer.#id++;\n const root = this.#createSVG();\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n let maskId;\n if (mustRemoveSelfIntersections) {\n const mask = DrawLayer._svgFactory.createElement(\"mask\");\n defs.append(mask);\n maskId = `mask_${id}`;\n mask.setAttribute(\"id\", maskId);\n mask.setAttribute(\"maskUnits\", \"objectBoundingBox\");\n const rect = DrawLayer._svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"width\", \"1\");\n rect.setAttribute(\"height\", \"1\");\n rect.setAttribute(\"fill\", \"white\");\n const use = DrawLayer._svgFactory.createElement(\"use\");\n mask.append(use);\n use.setAttribute(\"href\", `#${pathId}`);\n use.setAttribute(\"stroke\", \"none\");\n use.setAttribute(\"fill\", \"black\");\n use.setAttribute(\"fill-rule\", \"nonzero\");\n use.classList.add(\"mask\");\n }\n const use1 = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use1);\n use1.setAttribute(\"href\", `#${pathId}`);\n if (maskId) {\n use1.setAttribute(\"mask\", `url(#${maskId})`);\n }\n const use2 = use1.cloneNode();\n root.append(use2);\n use1.classList.add(\"mainOutline\");\n use2.classList.add(\"secondaryOutline\");\n this.updateProperties(root, properties);\n this.#mapping.set(id, root);\n return id;\n }\n finalizeDraw(id, properties) {\n this.#toUpdate.delete(id);\n this.updateProperties(id, properties);\n }\n updateProperties(elementOrId, properties) {\n if (!properties) {\n return;\n }\n const {\n root,\n bbox,\n rootClass,\n path\n } = properties;\n const element = typeof elementOrId === \"number\" ? this.#mapping.get(elementOrId) : elementOrId;\n if (!element) {\n return;\n }\n if (root) {\n this.#updateProperties(element, root);\n }\n if (bbox) {\n DrawLayer.#setBox(element, bbox);\n }\n if (rootClass) {\n const {\n classList\n } = element;\n for (const [className, value] of Object.entries(rootClass)) {\n classList.toggle(className, value);\n }\n }\n if (path) {\n const defs = element.firstElementChild;\n const pathElement = defs.firstElementChild;\n this.#updateProperties(pathElement, path);\n }\n }\n updateParent(id, layer) {\n if (layer === this) {\n return;\n }\n const root = this.#mapping.get(id);\n if (!root) {\n return;\n }\n layer.#parent.append(root);\n this.#mapping.delete(id);\n layer.#mapping.set(id, root);\n }\n remove(id) {\n this.#toUpdate.delete(id);\n if (this.#parent === null) {\n return;\n }\n this.#mapping.get(id).remove();\n this.#mapping.delete(id);\n }\n destroy() {\n this.#parent = null;\n for (const root of this.#mapping.values()) {\n root.remove();\n }\n this.#mapping.clear();\n this.#toUpdate.clear();\n }\n}\n\n;// ./src/pdf.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{\n globalThis._pdfjsTestingUtils = {\n HighlightOutliner: HighlightOutliner\n };\n}\nglobalThis.pdfjsLib = {\n AbortException: AbortException,\n AnnotationEditorLayer: AnnotationEditorLayer,\n AnnotationEditorParamsType: AnnotationEditorParamsType,\n AnnotationEditorType: AnnotationEditorType,\n AnnotationEditorUIManager: AnnotationEditorUIManager,\n AnnotationLayer: AnnotationLayer,\n AnnotationMode: AnnotationMode,\n AnnotationType: AnnotationType,\n applyOpacity: applyOpacity,\n build: build,\n ColorPicker: ColorPicker,\n createValidAbsoluteUrl: createValidAbsoluteUrl,\n CSSConstants: CSSConstants,\n DOMSVGFactory: DOMSVGFactory,\n DrawLayer: DrawLayer,\n FeatureTest: FeatureTest,\n fetchData: fetchData,\n findContrastColor: findContrastColor,\n getDocument: getDocument,\n getFilenameFromUrl: getFilenameFromUrl,\n getPdfFilenameFromUrl: getPdfFilenameFromUrl,\n getRGB: getRGB,\n getUuid: getUuid,\n getXfaPageViewport: getXfaPageViewport,\n GlobalWorkerOptions: GlobalWorkerOptions,\n ImageKind: ImageKind,\n InvalidPDFException: InvalidPDFException,\n isDataScheme: isDataScheme,\n isPdfFile: isPdfFile,\n isValidExplicitDest: isValidExplicitDest,\n makeArr: makeArr,\n makeMap: makeMap,\n makeObj: makeObj,\n MathClamp: MathClamp,\n noContextMenu: noContextMenu,\n normalizeUnicode: normalizeUnicode,\n OPS: OPS,\n OutputScale: OutputScale,\n PasswordResponses: PasswordResponses,\n PDFDataRangeTransport: PDFDataRangeTransport,\n PDFDateString: PDFDateString,\n PDFWorker: PDFWorker,\n PermissionFlag: PermissionFlag,\n PixelsPerInch: PixelsPerInch,\n RenderingCancelledException: RenderingCancelledException,\n renderRichText: renderRichText,\n ResponseException: ResponseException,\n setLayerDimensions: setLayerDimensions,\n shadow: shadow,\n SignatureExtractor: SignatureExtractor,\n stopEvent: stopEvent,\n SupportedImageMimeTypes: SupportedImageMimeTypes,\n TextLayer: TextLayer,\n TouchManager: TouchManager,\n updateUrlHash: updateUrlHash,\n Util: Util,\n VerbosityLevel: VerbosityLevel,\n version: version,\n XfaLayer: XfaLayer\n};\n\nexport { AbortException, AnnotationEditorLayer, AnnotationEditorParamsType, AnnotationEditorType, AnnotationEditorUIManager, AnnotationLayer, AnnotationMode, AnnotationType, CSSConstants, ColorPicker, DOMSVGFactory, DrawLayer, FeatureTest, GlobalWorkerOptions, ImageKind, InvalidPDFException, MathClamp, OPS, OutputScale, PDFDataRangeTransport, PDFDateString, PDFWorker, PasswordResponses, PermissionFlag, PixelsPerInch, RenderingCancelledException, ResponseException, SignatureExtractor, SupportedImageMimeTypes, TextLayer, TouchManager, Util, VerbosityLevel, XfaLayer, applyOpacity, build, createValidAbsoluteUrl, fetchData, findContrastColor, getDocument, getFilenameFromUrl, getPdfFilenameFromUrl, getRGB, getUuid, getXfaPageViewport, isDataScheme, isPdfFile, isValidExplicitDest, makeArr, makeMap, makeObj, noContextMenu, normalizeUnicode, renderRichText, setLayerDimensions, shadow, stopEvent, updateUrlHash, version };\n\n//# sourceMappingURL=pdf.mjs.map"],"names":["__webpack_modules__","module","__unused_webpack_exports","__webpack_require__","isCallable","tryToString","$TypeError","argument","has","it","isPossiblePrototype","$String","WeakMapHelpers","weakmap","set","remove","key","isPrototypeOf","Prototype","isObject","classof","globalThis","uncurryThisAccessor","ArrayBuffer","TypeError","O","NATIVE_ARRAY_BUFFER","arrayBufferByteLength","DataView","isDetached","uncurryThis","toIndex","notDetached","detachTransferable","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","min","ArrayBufferPrototype","DataViewPrototype","slice","isResizable","maxByteLength","getInt8","setInt8","arrayBuffer","newLength","preserveResizability","byteLength","newByteLength","fixedLength","newBuffer","options","a","b","copyLength","i","DESCRIPTORS","hasOwn","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","InternalStateModule","enforceInternalState","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","TypedArrayConstructorsList","BigIntArrayConstructorsList","isView","klass","getTypedArrayConstructor","proto","state","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","lengthOfArrayLike","list","$length","index","length","result","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","value","isArray","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","error","commonAlphabet","base64Alphabet","base64UrlAlphabet","inverse","characters","anObject","iteratorClose","iterator","fn","ENTRIES","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","tag","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","defineProperty","fails","F","done","createPropertyDescriptor","object","bitmap","makeBuiltIn","name","descriptor","defineGlobalProperty","simple","src","getBuiltInNodeModule","$ArrayBuffer","$MessageChannel","detach","WorkerThreads","channel","buffer","$detach","transferable","document","EXISTS","MAX_SAFE_INTEGER","ENVIRONMENT","navigator","userAgent","process","Deno","versions","v8","match","version","userAgentStartsWith","string","$Error","replace","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","stack","dropEntries","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","exec","NATIVE_BIND","FunctionPrototype","apply","call","aCallable","bind","that","test","getDescriptor","PROPER","CONFIGURABLE","method","uncurryThisWithBind","alphabet","IS_NODE","aFunction","namespace","obj","getIteratorDirect","getIteratorMethod","stringHandling","getMethod","isNullOrUndefined","Iterators","ITERATOR","usingIterator","iteratorMethod","V","P","func","toIntegerOrInfinity","INVALID_SIZE","$RangeError","max","SetRecord","intSize","numSize","check","toObject","hasOwnProperty","getBuiltIn","createElement","split","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","get","enforce","getterFor","TYPE","metadata","STATE","ArrayPrototype","documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","record","ITERATOR_INSTEAD_OF_RECORD","next","step","isArrayIteratorMethod","getIterator","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","iters","kind","innerResult","innerError","create","defineBuiltIns","IteratorPrototype","createIterResultObject","iteratorCloseAll","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","NORMAL","THROW","setInternalState","createIteratorProxyPrototype","returnMethod","WrapForValidIteratorPrototype","IteratorHelperPrototype","nextHandler","RETURN_HANDLER_RESULT","IteratorProxy","methodName","METHOD_NAME","ExpectedError","Iterator","CLOSED","IS_PURE","BUGGY_SAFARI_ITERATORS","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","toLength","CONFIGURABLE_FUNCTION_NAME","inspectSource","join","CONFIGURABLE_LENGTH","TEMPLATE","MapPrototype","ceil","floor","x","unsafeInt","raw","PromiseCapability","resolve","reject","$$resolve","$$reject","$default","definePropertiesModule","enumBugKeys","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","Properties","__unused_webpack_module","exports","V8_PROTOTYPE_DEFINE_BUG","objectKeys","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","constructor","indexOf","push","names","$propertyIsEnumerable","NASHORN_BUG","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","setter","input","pref","val","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","getOwnPropertySymbols","$SyntaxError","$parseInt","fromCharCode","at","codePoints","IS_4_HEX_DIGITS","IS_C0_CONTROL_CODE","unterminated","chr","twoChars","fourHexDigits","SetHelpers","iterate","Set","add","aSet","clone","size","getSetRecord","iterateSet","iterateSimple","other","otherRec","e","SetPrototype","forEach","interruptible","createSetLike","createSetLikeWithInfinitySize","callback","baseSet","setLike","keysIter","SHARED","V8","V8_VERSION","symbol","integer","toPrimitive","prim","number","IndexedObject","trunc","len","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","id","postfix","anObjectOrUndefined","aString","base64Map","getAlphabetOption","SyntaxError","skipAsciiWhitespace","decodeBase64Chunk","chunk","throwOnExtraBits","chunkLength","triplet","chunkBytes","writeBytes","bytes","elements","written","elementsLength","into","maxLength","lastChunkHandling","stringLength","read","remainingBytes","Uint8Array","parseInt","NOT_HEX","hexits","url","params","params2","NATIVE_SYMBOL","passed","required","WeakMapPrototype","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","$","$transfer","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","item","argCount","anInstance","createProperty","CONSTRUCTOR","NativeIterator","IteratorConstructor","defineIteratorPrototypeAccessor","notANaN","toPositiveInteger","createIteratorProxy","iteratorHelperThrowsOnInvalidIterator","iteratorHelperWithoutClosingOnEarlyError","DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR","dropWithoutClosingOnEarlyError","limit","remaining","everyWithoutClosingOnEarlyError","predicate","counter","callWithSafeIterationClosing","FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR","filterWithoutClosingOnEarlyError","findWithoutClosingOnEarlyError","getIteratorFlattenable","throwsOnIteratorWithoutReturn","v","FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR","flatMapWithoutClosingOnEarlyError","mapper","inner","forEachWithoutClosingOnEarlyError","MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR","mapWithoutClosingOnEarlyError","FAILS_ON_INITIAL_UNDEFINED","reduceWithoutClosingOnEarlyError","reducer","noInitial","accumulator","someWithoutClosingOnEarlyError","takeWithoutClosingOnEarlyError","parseJSONString","JSON","Number","nativeParse","enumerableOwnProperties","IS_DIGIT","IS_NON_ZERO_DIGIT","IS_NUMBER_START","IS_WHITESPACE","PRIMITIVE","OBJECT","$parse","reviver","context","Context","root","endIndex","internalize","holder","node","unmodified","elementRecordsLen","nodeIsArray","nodes","internalizeProperty","Node","end","nextIndex","fork","type","start","expectKeypair","expectElement","array","parsed","startIndex","exponentStartIndex","keyword","regex","j","NO_SOURCE_SUPPORT","PROPER_BASE_PARSE","text","isRawJSON","arraySlice","NATIVE_RAW_JSON","$stringify","charAt","charCodeAt","numberToString","surrogates","lowSurrogates","hiSurrogates","MARK","MARK_LENGTH","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithProperSymbolsConversion","replacer","args","$replacer","getReplacerFunction","fixIllFormedJSON","offset","prev","rawLength","element","keysLength","space","replacerFunction","rawStrings","json","aMap","MapHelpers","callbackfn","$Infinity","$NaN","abs","pow","POW_2_1023","MAX_DOUBLE","MAX_ULP","NOT_A_NUMBER","MINUS_INFINITY","PLUS_INFINITY","MINUS_ZERO","FINITE","twosum","y","hi","lo","items","numbers","count","n","partials","overflow","sum","tmp","actuallyUsedPartials","sign","newPromiseCapabilityModule","perform","Promise","ACCEPT_ARGUMENTS","promiseCapability","difference","setMethodAcceptSetLike","SET_LIKE_INCORRECT_BEHAVIOR","intersection","INCORRECT","isDisjointFrom","isSubsetOf","isSupersetOf","symmetricDifference","setMethodGetKeysBeforeCloning","union","ArrayBufferViewCore","isBigIntArray","toBigInt","PROPER_ORDER","THROW_ON_NEGATIVE_FRACTIONAL_INDEX","relativeIndex","actualIndex","numericValue","k","arrayFromConstructorAndList","$fromBase64","INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS","anUint8Array","$fromHex","throwsOnLengthTrackingView","rab","omitPadding","shift","hex","aWeakMap","aWeakKey","inheritIfRequired","normalizeStringArgument","DOMExceptionConstants","clearErrorStack","DOM_EXCEPTION","Error","NativeDOMException","$DOMException","DOMExceptionPrototype","argumentsLength","message","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","validateArgumentsLength","$URLSearchParams","URLSearchParamsPrototype","append","$delete","$value","entries","dindex","found","entriesLength","entry","getAll","$has","values","USE_NATIVE_URL","URL","urlString","base","__webpack_module_cache__","moduleId","cachedModule","definition","prop","isNodeJS","FONT_IDENTITY_MATRIX","LINE_FACTOR","RenderingIntentFlag","AnnotationMode","AnnotationEditorPrefix","AnnotationEditorType","AnnotationEditorParamsType","PermissionFlag","MeshFigureType","TextRenderingMode","ImageKind","AnnotationType","AnnotationBorderStyleType","VerbosityLevel","OPS","DrawOPS","PasswordResponses","verbosity","setVerbosityLevel","level","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","createValidAbsoluteUrl","baseUrl","stringToUTF8String","absoluteUrl","updateUrlHash","hash","allowRel","res","stripPath","str","shadow","nonSerializable","BaseException","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","status","missing","FormatError","AbortException","bytesToString","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","stringToBytes","string32","isLittleEndian","buffer8","isEvalSupported","FeatureTest","platform","hexNumbers","Util","r","g","dm","transform","minMax","m1","m2","m","md","p","pos","p0","p1","m0","m3","m4","m5","pI","pI1","d","rect","output","r0","r1","r2","r3","a0","a2","a1","a3","b0","b2","b1","b3","m1r0","m1r2","m2r1","m2r3","matrix","c","first","second","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","#getExtremumOnCurve","x2","x3","y2","y3","t","mt","tt","ttt","#getExtremum","delta","sqrtDelta","NormalizeRegex","NormalizationMap","normalizeUnicode","_","p2","getUuid","buf","AnnotationPrefix","_isValidExplicitDest","validRef","validName","dest","page","zoom","argsLen","allowNull","makeArr","makeMap","makeObj","MathClamp","ac","signal","XfaText","xfa","walk","child","XfaLayer","storage","intent","storedData","event","option","linkService","attributes","isHTMLAnchorElement","parameters","rootHtml","isNotForRichText","rootDiv","textDivs","parent","childHtml","SVG_NS","PixelsPerInch","fetchData","isValidFetchUrl","response","request","PageViewport","viewBox","userUnit","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","width","height","dims","topLeft","bottomRight","RenderingCancelledException","extraDelay","isDataScheme","ii","isPdfFile","filename","getFilenameFromUrl","getPdfFilenameFromUrl","defaultFilename","newURL","decode","decoded","pdfRegex","getLast","hashFilename","StatTimer","outBuf","longest","noContextMenu","stopEvent","deprecated","PDFDateString","#regex","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","getXfaPageViewport","xfaPage","getRGB","color","colorRGB","getColorValues","colors","span","computedColor","getCurrentTransform","ctx","f","getCurrentTransformInverse","setLayerDimensions","div","viewport","mustFlip","mustRotate","pageWidth","pageHeight","style","useRound","w","h","widthStr","heightStr","OutputScale","pixelRatio","maxPixels","maxDim","capAreaFactor","maxAreaScale","maxWidthScale","maxHeightScale","maxScale","winPixels","SupportedImageMimeTypes","ColorScheme","CSSConstants","applyOpacity","opacity","white","RGBToHSL","rgb","l","HSLToRGB","hsl","computeLuminance","contrastRatio","hsl1","hsl2","lum1","lum2","contrastCache","findContrastColor","baseColor","fixedColor","cachedValue","baseHSL","fixedHSL","isFixedColorDark","minContrast","PRECISION","mid","renderRichText","dir","className","container","fragment","lines","line","makePathFromDrawOPS","path","PagesMapper","#idToPageNumber","#pageNumberToId","#prevPageNumbers","#pagesNumber","#listeners","#copiedPageIds","#copiedPageNumbers","#reset","listener","#updateListeners","#init","mustInit","pageNumberToId","idToPageNumber","#updateIdToPageNumber","pageNumbers","selectedPages","pagesToMove","movedCount","mappedPagesToMove","removedBeforeTarget","pageIndex","pagesNumber","adjustedTarget","remainingLen","#setPrevPageNumbers","pagesToDelete","prevIdToPageNumber","newPageNumberToId","sourceIndex","destIndex","pageNumber","pagesToCopy","copiedPageNumbers","copiedPageMapping","prevPageNumbers","idsIndices","oldPageNumber","nCopy","extractParams","includePages","pageIndices","EditorToolbar","#toolbar","#colorPicker","#editor","#buttons","#altText","#comment","#commentButtonDivider","#signatureDescriptionButton","#l10nRemove","editor","editToolbar","#pointerDown","buttons","position","#focusIn","#focusOut","#addListenersToElement","editorType","_uiManager","button","#divider","divider","altText","comment","beforeElement","colorPicker","signatureManager","tool","beforeSelector","description","FloatingToolbar","#uiManager","uiManager","#render","#makeButton","#getLastPoint","boxes","isLTR","lastY","lastX","box","buttonClass","l10nId","labelL10nId","clickHandler","bindEvents","CurrentPointers","#pointerId","#pointerIds","#moveTimestamp","#pointerType","pointerId","pointerType","timeStamp","IdManager","#id","ImageManager","#baseId","#cache","svg","image","promise","#get","rawData","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","file","lastModified","blobPromise","blob","canvas","offscreen","CommandManager","#commands","#locked","#maxSize","#position","maxSize","cmd","undo","post","mustExec","overwriteIfSameType","keepUndo","save","KeyboardManager","callbacks","isMac","isMacKey","#serialize","self","bubbles","checker","ColorManager","RGB","AnnotationEditorUIManager","#abortController","#activeEditor","#allEditableAnnotations","#allEditors","#allLayers","#altTextManager","#annotationStorage","#changedExistingAnnotations","#commandManager","#commentManager","#copyPasteAC","#currentDrawingSession","#currentPageIndex","#deletedAnnotationsElementIds","#draggingEditors","#editorTypes","#editorsToRescale","#enableHighlightFloatingButton","#enableUpdatedAddImage","#enableNewAltTextWhenAddingImage","#filterFactory","#focusMainContainerTimeoutId","#focusManagerAC","#highlightColors","#highlightWhenShiftUp","#floatingToolbar","#idManager","#isEnabled","#isPointerDown","#isWaiting","#keyboardManagerAC","#lastActiveElement","#mainHighlightColorPicker","#missingCanvases","#mlManager","#mode","#selectedEditors","#selectedTextNode","#signatureManager","#pageColors","#showAllStates","#pdfDocument","#previousStates","#translation","#translationTimeoutId","#container","#viewer","#viewerAlert","#updateModeCapability","arrowChecker","textInputChecker","_self","small","big","viewer","viewerAlert","altTextManager","commentManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","enableUpdatedAddImage","enableNewAltTextWhenAddingImage","mlManager","editorUndoBar","supportsPinchToZoom","evt","#beforeUnload","#addSelectionListener","#addDragAndDropListeners","#addKeyboardManager","layer","pair","_highlightColors","map","hasHCM","isNameForHCM","colorName","firstTime","posX","posY","savedData","isSelected","visibility","onEditorsRendered","mode","layerX","layerY","pagesRotation","#getAnchorElementForSelection","anchorNode","#getLayerForTextLayer","textLayer","currentLayer","methodOfCreation","selection","anchorOffset","focusNode","focusOffset","isNoneMode","#displayFloatingToolbar","annotationId","storedValue","messageId","#selectionChange","#dispatchUpdateStates","activeLayer","pointerup","#onSelectEnd","#addFocusManager","#removeFocusManager","activeElement","lastEditor","lastActiveElement","#removeKeyboardManager","#addCopyPasteListeners","#removeCopyPasteListeners","editors","serialized","clipboardData","ex","newEditors","deserializedEditor","#addEditorToLayer","#selectEditors","#dispatchUpdateUI","isEditing","#isEmpty","types","editId","isFromUser","isFromKeyboard","mustEnterInEditMode","editComment","#disableAll","#enableAll","editorClass","elementIds","allComments","annotationElementId","hasComment","deleted","annotation","popupRef","contentsObj","visible","updateButton","mustWait","promises","#lastSelectedEditor","ed","drawingEditor","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","move","newX","newY","newPageIndex","savedX","savedY","savedPageIndex","tx","ty","parentWidth","parentHeight","rotator","range","editorId","AltText","#altTextDecorative","#altTextButton","#altTextButtonLabel","#altTextTooltip","#altTextTooltipTimeout","#altTextWasFromKeyBoard","#badge","#guessedText","#textWithDisclaimer","#useNewAltTextFlow","#l10nNewButton","l10n","label","onClick","#label","#setState","guessedText","badge","isForCopying","decorative","textWithDisclaimer","cancel","enabled","tooltip","DELAY_TO_SHOW_TOOLTIP","Comment","#commentStandaloneButton","#commentToolbarButton","#commentWasFromKeyBoard","#initialText","#richText","#text","#date","#deleted","#popupPosition","parentX","parentY","selected","hasPopup","isStandalone","parentDimensions","richText","date","TouchManager","#isPinching","#isPinchingStopped","#isPinchingDisabled","#onPinchStart","#onPinching","#onPinchEnd","#pointerDownAC","#signal","#touchInfo","#touchManagerAC","#touchMoveAC","isPinchingDisabled","isPinchingStopped","onPinchStart","onPinching","onPinchEnd","#onTouchStart","pointerDownAC","opts","cancelPointerDown","opt","#onTouchMove","onTouchEnd","#onTouchEnd","touch0","touch1","screen0X","screen0Y","screen1X","screen1Y","touchInfo","pTouch0X","pTouch0Y","pTouch1X","pTouch1Y","prevGapX","prevGapY","currGapX","currGapY","distance","pDistance","origin","AnnotationEditor","#accessibilityData","#allResizerDivs","#disabled","#dragPointerId","#dragPointerType","#resizersDiv","#lastPointerCoords","#savedDimensions","#fakeAnnotation","#focusAC","#focusedResizerName","#hasBeenClicked","#initialRect","#isEditing","#isInEditMode","#isResizerEnabledForKeyboard","#moveInDOMTimeout","#prevDragX","#prevDragY","#telemetryTimeouts","#touchManager","#isDraggable","#zIndex","resize","pageX","pageY","fakeEditor","FakeEditor","_type","_value","mime","#stopResizing","baseX","baseY","#translate","bx","by","_borderLineWidth","#rotatePoint","angle","#getRotationMatrix","parentScale","#createResizers","classes","#resizerPointerdown","savedDraggable","#resizerPointermove","savedParentCursor","savedCursor","pointerUpCallback","#addResizeToUndoStack","#resize","savedWidth","savedHeight","newWidth","newHeight","minWidth","minHeight","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","screenX","screenY","lastScreenX","lastScreenY","oldDiag","toolbarButtons","editToolbarDiv","trY","blX","blY","trX","contents","#addFocusListeners","#touchPinchStartCallback","#touchPinchCallback","#touchPinchEndCallback","_origin","prevDistance","factor","transfCenterPoint","newTransfCenterPoint","#setUpDragSession","#selectOnPointerEvent","hasDraggingStarted","cancelDrag","shiftX","shiftY","creationDate","modificationDate","focus","top","left","bottom","right","innerHeight","innerWidth","_angle","timeout","children","boundResizerKeydown","#resizerKeydown","boundResizerBlur","#resizerBlur","#resizerFocus","firstPosition","nextFirstPosition","#setResizerTabIndex","action","annotationLayer","firstElementChild","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","SerializableEmpty","AnnotationStorage","#modified","#modifiedIds","#editorsMap","#storage","defaultValue","modified","#setModified","PrintAnnotationStorage","transfer","hasBitmap","stats","typeToEditor","numberOfEditedComments","numberOfDeletedComments","editorStats","counters","ids","#serializable","serializable","FontLoader","#systemFonts","ownerDocument","styleElement","nativeFontFace","rule","styleSheet","disableFontFace","_inspectFont","loadedName","fontFace","font","hasFonts","completeRequest","loadingRequests","otherRequest","testFont","int32","spliceString","s","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","FontFaceObject","#fontData","translatedData","inspectFont","extra","charProcOperatorList","css","objs","character","objId","cmds","bbox","CssFontInfo","#buffer","#view","#decoder","encoder","encodedStrings","stringsLength","encoded","view","#readString","SystemFontInfo","encodedStyleStyle","encodedStyleWeight","lengthEstimate","styleLength","weightLength","weight","FontInfo","#OFFSET_NUMBERS","#OFFSET_BBOX","#OFFSET_FONT_MATRIX","#OFFSET_DEFAULT_VMETRICS","#OFFSET_STRINGS","#readBoolean","byteOffset","bitOffset","#readNumber","fontMatrix","defaultVMetrics","stringData","systemFontInfoLength","cssFontInfoLength","cssFontInfoData","systemFontInfoData","systemFontInfoBuffer","cssFontInfoBuffer","numBools","boolByte","boolBit","coord","metric","PatternInfo","#KIND","#HAS_BBOX","#HAS_BACKGROUND","#SHADING_TYPE","#N_COORD","#N_COLOR","#N_STOP","#N_FIGURES","ir","coords","colorStops","figures","shadingType","background","nCoord","nColor","nStop","nFigures","figuresSize","figure","byteLen","dataView","u8data","hasBBox","hasBackground","stops","coordsLength","figureCoords","colorsLength","figureColors","bounds","minX","maxX","minY","maxY","FontPathInfo","getUrlProp","getDataProp","getFactoryUrlProp","isRefProxy","isNameProxy","isValidExplicitDest","LoopbackPort","#deferred","rmAbort","onAbort","CallbackKind","StreamKind","onFn","wrapReason","MessageHandler","#messageAC","sourceName","targetName","comObj","#onMessage","#processStreamMessage","callbackId","capability","reason","#createStreamSink","actionName","handler","ah","transfers","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","streamSink","lastDesiredSize","streamController","#deleteStreamController","dataReason","BaseCanvasFactory","#enableHWA","enableHWA","canvasAndContext","DOMCanvasFactory","BaseCMapReaderFactory","isCompressed","cMapData","DOMCMapReaderFactory","BaseFilterFactory","maps","fgColor","bgColor","filterName","newFgColor","newBgColor","keepHCM","DOMFilterFactory","#baseUrl","#_cache","#_defs","#docId","#document","#_hcmCache","docId","#hcmCache","#defs","#createTables","mapR","table","mapG","mapB","bufferR","bufferG","bufferB","#createUrl","tableR","tableG","tableB","filter","#createFilter","#addTransferMapConversion","fgRGB","#getRGB","bgRGB","#addGrayConversion","getSteps","arr","tableA","#addTransferMapAlphaConversion","#addLuminosityConversion","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","newStart","newStep","feColorMatrix","#appendFeFunc","feComponentTransfer","feFunc","rTable","gTable","bTable","aTable","BaseStandardFontDataFactory","DOMStandardFontDataFactory","BaseWasmFactory","DOMWasmFactory","require","node_utils_fetchData","NodeFilterFactory","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","NodeWasmFactory","FORCED_DEPENDENCY_LABEL","expandBBox","EMPTY_BBOX","BBoxReader","#bboxes","#coords","bboxes","ensureDebugMetadata","CanvasDependencyTracker","#simple","#incremental","#namedDependencies","#savesStack","#markedContentStack","#baseTransformStack","#clipBox","#pendingBBox","#pendingBBoxIdx","#pendingDependencies","#operations","#fontBBoxTrustworthy","#canvasWidth","#canvasHeight","#bboxesCoords","#debugMetadata","operationsCount","recordDebugMetadata","#initializeBBoxes","oldBBoxes","opIdx","previous","lastSave","idx","depName","fallbackIdx","dep","clipBox","getMeasure","fontBBox","isBBoxTrustworthy","computedBBox","measure","dependencyName","dependencyNames","pendingDependencies","incremental","preserve","dependencies","depIdx","saveIdx","deps","operation","CanvasNestedDependencyTracker","#dependencyTracker","#opIdx","#ignoreBBoxes","#nestingLevel","#savesLevel","dependencyTracker","ignoreBBoxes","Dependencies","PathType","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","IR","grad","firstPoint","secondPoint","colorStop","owner","pathType","pattern","precision","n1","n2","ps","ownerBBox","tmpCanvas","tmpCtx","domMatrix","drawTriangle","p3","c1","c2","c3","rowSize","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","combinedScale","backgroundColor","cachedCanvases","boundsWidth","boundsHeight","scaleX","scaleY","paddedWidth","paddedHeight","matrixScaleX","matrixScaleY","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","TilingPattern","canvasGraphicsFactory","baseTransform","operatorList","paintType","tilingType","xstep","ystep","combinedScaleX","combinedScaleY","canvasWidth","canvasHeight","redrawHorizontally","redrawVertically","xScaledStep","yScaledStep","xScaledWidth","yScaledHeight","dimx","dimy","graphics","dimx2","dimy2","xSize","ySize","tmpCanvas2","tmpCtx2","jj","realOutputSize","bboxWidth","bboxHeight","fillStyle","strokeStyle","convertBlackAndWhiteToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","destPos","elem","MIN_FONT_SIZE","MAX_FONT_SIZE","EXECUTION_TIME","EXECUTION_STEPS","FULL_CHUNK_HEIGHT","SCALE_MATRIX","XY","MIN_MAX_INIT","mirrorContextOperations","destCtx","cp1x","cp1y","cp2x","cp2y","CachedCanvases","canvasFactory","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","CanvasExtraState","preInit","xStrokePad","yStrokePad","intersect","putBinaryImageData","imgData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","dest32","dest32DataLength","fullSrcDiff","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","properties","resetCtxToDefault","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","CanvasGraphics","canvasCtx","commonObjs","filterFactory","optionalContentConfig","markedContentStack","annotationCanvasMap","fallback","transparency","savedFillStyle","transparentCanvas","executionStartIdx","continueCallback","stepper","operationsFilter","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","steps","fnId","fnArgs","depObjId","objsPool","#restoreInitialState","cache","#drawFilter","hcmFilterId","savedFilter","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","fillColor","isPatternFill","currentTransform","cacheKey","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","drawnWidth","drawnHeight","fillCanvas","fillCtx","dashArray","dashPhase","flatness","states","inSMaskMode","cacheId","scratchCanvas","dirtyBox","smask","suspendedCtx","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","transferMap","maskOffsetX","maskOffsetY","maskX","maskY","clip","old","op","outerExtraSize","consumePath","strokeColor","newPath","needRestore","paths","fontSize","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","#getScaledPath","patternFillTransform","patternStrokeTransform","textRenderingMode","fillStrokeMode","isAddToPathSet","patternFill","patternStroke","scaledPath","invPatternTransform","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","widthAdvanceScale","simpleFillText","needsFill","needsStroke","lineWidth","chars","glyph","joinedChars","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","renderingOpIdx","inv","group","currentCtx","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","skewX","skewY","positions","trans","images","imgToPaint","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","GlobalWorkerOptions","#port","#src","Metadata","#map","#data","parsedData","INTERNAL","OptionalContentGroup","#isDisplay","#isPrint","#userSet","#visible","renderingIntent","usage","rbGroups","print","internal","userSet","OptionalContentConfig","#cachedGetHash","#groups","#initialHash","#order","on","off","#evaluateVisibilityExpression","operator","preserveRB","rbGroup","otherId","BasePDFStream","#PDFStreamReader","#PDFStreamRangeReader","PDFStreamReader","PDFStreamRangeReader","begin","reader","BasePDFStreamReader","stream","BasePDFStreamRangeReader","getArrayBuffer","endRequests","PDFDataTransportStream","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","pdfDataRangeTransport","initialData","progressiveDone","#onReceiveData","rangeReader","#endRequests","disableRange","disableStream","contentDispositionFilename","loaded","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","contentDispositionStr","iter","quot","part","parts","quotindex","extvalue","encodingend","charset","createHeaders","isHttp","httpHeaders","headers","getResponseOrigin","validateRangeRequestCapabilities","responseHeaders","rangeChunkSize","returnValues","extractFilenameFromHeader","createResponseError","ensureResponseOrigin","rangeOrigin","fetchUrl","withCredentials","abortController","ensureResponseStatus","fetch_stream_getArrayBuffer","PDFFetchStream","PDFFetchStreamReader","PDFFetchStreamRangeReader","allowRangeRequests","suggestedLength","responseOrigin","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","network_getArrayBuffer","PDFNetworkStream","#pendingRequests","PDFNetworkStreamReader","PDFNetworkStreamRangeReader","xhr","pendingRequest","#onStateChange","#onProgress","xhrStatus","rangeHeader","#onHeadersReceived","#onDone","#onError","fullRequestXhr","rawResponseHeaders","getReadableStream","readStream","Readable","PDFNodeStream","PDFNodeStreamReader","PDFNodeStreamRangeReader","fs","stat","readableStream","INITIAL_DATA","dataObj","PDFObjects","#objs","#ensureObj","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","TextLayer","#capability","#disableProcessItems","#fontInspectorEnabled","#lang","#layoutTextParams","#pageHeight","#pageWidth","#reader","#rootContainer","#rotation","#scale","#styleCache","#textContentItemsStr","#textContentSource","#textDivs","#textDivProperties","#transform","#ascentCache","#canvasContexts","#canvasCtxFonts","#minFontSize","#pendingTextLayers","textContentSource","#ensureMinFontSizeComputed","isWindows","isFirefox","pump","#processItems","onBefore","#getCtx","#layout","abortEx","textContentItemsStr","#appendText","geom","textDiv","textDivProperties","fontFamily","fontHeight","fontAscent","#getAscent","divStyle","shouldScaleText","absScaleX","absScaleY","br","#ensureCtxFont","lang","family","cached","cachedAscent","metrics","ascent","descent","ratio","RENDERING_CANCELLED_TIMEOUT","getDocument","task","PDFDocumentLoadingTask","password","rangeTransport","PDFDataRangeTransport","worker","PDFWorker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","iccUrl","standardFontDataUrl","StandardFontDataFactory","wasmUrl","WasmFactory","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","isImageDecoderSupported","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","CanvasFactory","FilterFactory","useWasm","pagesMapper","useSystemFonts","useWorkerFetch","transportFactory","docParams","transportParams","workerIdPromise","networkStream","NetworkStream","workerId","messageHandler","transport","WorkerTransport","#progressiveDoneListeners","#progressiveReadListeners","#rangeListeners","PDFDocumentProxy","pdfInfo","ref","pageIndexesToSkip","pageInfos","keepLoadedFonts","PDFPageProxy","#pendingCleanup","#pagesMapper","pageInfo","canvasContext","annotationMode","optionalContentConfigPromise","printAnnotationStorage","recordOperations","intentArgs","intentState","intentPrint","recordForDebugger","shouldRecordOperations","complete","internalRenderTask","recordedBBoxes","#tryCleanup","InternalRenderTask","renderTask","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","waitOn","resetStats","success","renderTasks","operatorListChunk","annotationStorageSerializable","modifiedIds","force","delay","curCacheKey","curIntentState","_capability","_messageHandler","_port","_webWorker","_fakeWorkerId","_isWorkerDisabled","_workerPorts","_PDFWorker_instances","resolve_fn","initializeFromPort_fn","initialize_fn","setupFakeWorker_fn","_PDFWorker_static","mainThreadWorkerMessageHandler_get","_PDFWorker","port","__privateAdd","__privateGet","__privateMethod","__privateSet","cachedPort","workerSrc","terminateEarly","sendTest","testObj","WorkerMessageHandler","__privateWrapper","workerHandler","otherUrl","wrapper","#fullReader","#methodPromises","#networkStream","#pageCache","#pagePromises","#pageRefCache","#passwordCapability","#copiedPageInfo","loadingTask","factory","#updateCaches","pageNum","newPageCache","newPromiseCache","prevPageNumber","proxy","prevPageIndex","#cacheSimpleMethod","total","isOpList","annotationStorage","modifiedIdsHash","cacheKeyBuf","terminated","sink","readyReason","isStreamingSupported","isRangeSupported","contentLength","updatePassword","err","exportedData","exportedError","fontData","imageRef","pageProxy","imageData","cachedPromise","results","refStr","RenderTask","separateAnnots","#rAF","#canvasInUse","useRequestAnimationFrame","build","ColorPicker","#button","#buttonSwatch","#defaultColor","#dropdown","#dropdownWasFromKeyboard","#isMainColorPicker","#eventBus","#openDropdownAC","#l10nColor","#openDropdown","#keyDown","swatch","dropdown","#getDropdownRoot","#colorSelect","#isDropdownVisible","BasicColorPicker","#input","colorType","makeColorComp","scaleAndClamp","ColorConverters","G","components","BaseSVGFactory","skipDimensions","DOMSVGFactory","annotation_layer_DEFAULT_FONT_SIZE","GetElementsByNameSet","TIMEZONE_OFFSET","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","#updates","#hasBorder","#popupElement","isRenderable","ignoreBorder","createQuadrilaterals","quadPoints","inkLists","inkList","popup","newPopup","#setRectEdited","currentRect","horizontalRadius","verticalRadius","radius","borderColor","setColor","jsName","styleName","colorArray","display","hidden","actions","jsEvent","commonActions","detail","eventProxy","rectBlX","rectBlY","rectTrX","rectTrY","svgBuffer","borderWidth","svgFactory","defs","clipPath","rectWidth","rectHeight","popupData","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","EditorAnnotationElement","link","isBound","#bindAttachment","#bindSetOCGState","#setInternalLink","destination","overlaidText","attachment","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","field","allIds","elementData","baseName","eventName","valueGetter","getter","TEXT_ALIGNMENT","fontColor","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","fieldFormattedValues","datetimeFormat","datetimeType","timeStep","hasDateOrTime","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","displayValue","selectChild","indices","change","hasCommentManager","#createPopup","PopupElement","#boundKeyDown","#boundHide","#hide","#boundShow","#show","#boundToggle","#toggle","#color","#contentsObj","#dateObj","#elements","#parent","#parentRect","#pinned","#popup","#popupAbortController","#commentButton","#commentButtonPosition","#rect","#titleObj","#wasVisible","#firstElement","#commentText","titleObj","parentRect","open","#addEventListeners","#setCommentButtonPosition","hasOwnButton","togglePopup","showPopup","hidePopup","parentContainer","#updateColor","#updateCommentButtonPosition","header","title","#html","#fontSize","#fontColor","#makePopupContent","popupLines","popupContent","lineAttributes","#setPosition","useParentRect","normalizedRect","popupLeft","popupTop","lineSpan","#line","#square","square","#circle","circle","#polyline","vertices","borderStyle","points","polyline","#polylinesGroupElement","#polylines","#getTransform","thickness","mark","underline","strikeout","#trigger","trigger","#download","AnnotationLayer","#accessibilityManager","#annotationCanvasMap","#editableAnnotations","#structTreeLayer","#linkService","#hasAriaAttributesFromStructTree","accessibilityManager","annotationEditorUIManager","structTreeLayer","annotations","popupToElements","popupAnnotations","elementParams","isPopupAnnotation","rendered","#addElementsToDOM","#setAnnotationCanvasMap","contentElement","ariaAttributes","top1","bot1","mid1","top2","bot2","mid2","centerX1","centerX2","firstChild","editableAnnotation","EOL_PATTERN","FreeTextEditor","#content","#editorDivId","#editModeAC","#updateFontSize","setFontsize","#setEditorDimensions","savedFontsize","col","savedColor","#extractText","prevChild","#getNodeContent","savedDisplay","savedVisibility","savedText","newText","setText","#setContent","paste","#deserializeContent","startContainer","startOffset","bufferBefore","bufferAfter","newRange","beforeLength","#serializeContent","padding","textPosition","#hasElementChanged","Outline","_bbox","_rotation","sx","sy","FreeDrawOutliner","#box","#bottom","#innerMargin","#isLTR","#top","#last","#lastX","#lastY","#min","#min_dist","#scaleFactor","#thickness","#points","#MIN_DIST","#MIN_DIFF","#MIN","scaleFactor","innerMargin","#getLastCoords","lastTop","lastBottom","diffX","diffY","diffD","K","nX","nY","thX","thY","#toSVGPathTwoPoints","#toSVGPathEnd","#toSVGPathStart","lastTopX","lastTopY","lastBottomX","lastBottomY","outline","FreeDrawOutline","last","#getOutlineTwoPoints","N","#getOutlineEnd","#getOutlineStart","#bbox","#outline","#computeMinMax","firstPointX","firstPointY","lastPointX","lastPointY","ltrCallback","bezierBbox","outliner","HighlightOutliner","#firstPoint","#lastPoint","#verticalEdges","#intervals","EPSILON","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","outlineVerticalEdges","#breakEdge","#insert","#remove","#getOutlines","edges","allEdges","edge1","edge2","outlines","HighlightOutline","#binarySearch","middle","y4","#outlines","polygon","prevX","prevY","FreeHighlightOutliner","FreeHighlightOutline","HighlightEditor","#anchorNode","#anchorOffset","#boxes","#clipPathId","#focusOutlines","#focusNode","#focusOffset","#highlightDiv","#highlightOutlines","#isFreeHighlight","#outlineId","#methodOfCreation","#createFreeOutlines","#addToDrawLayer","#createOutlines","outlinerForOutline","highlightOutlines","highlightId","clipPathId","extraThickness","#rotateBbox","#updateThickness","setColorAndOpacity","opa","savedOpacity","savedThickness","setThickness","th","#changeThickness","#getRotation","#cleanDrawLayer","mustBeSelected","drawLayer","#keydown","highlightDiv","direction","#setCaret","#serializeBoxes","#serializeOutlines","#endHighlight","#highlightMove","DrawingOptions","#svgProperties","DrawingEditor","#drawOutlines","#mustBeCommitted","#currentDraw","#currentDrawingAC","#currentDrawingOptions","#createDrawOutlines","drawOutlines","drawId","drawingOptions","#createDrawing","#updateBbox","p1Keys","_options","propertyName","_drawingOptions","savedValue","#convertToDrawSpace","#rotateBox","_x","_y","#convertToParentSpace","pW","pH","parentRotation","drawDiv","_parentWidth","_parentHeight","_isLTR","all","draw","lastElement","isAborted","_data","_pageX","_pageY","_pageWidth","_pageHeight","_innerWidth","InkDrawOutliner","#lines","#lastSVGPath","#lastIndex","InkDrawOutline","#parentWidth","#parentHeight","#normalizePoint","firstX","firstY","secondX","secondY","c1x","c1y","c2x","c2y","#currentRotation","#parentScale","#computeBbox","serializedLines","serializedPoints","#getBBoxWithNoMargin","rescaleFn","newLines","#getMarginComponents","margin","marginX","marginY","oldMarginX","oldMarginY","newMarginX","newMarginY","diffMarginX","diffMarginY","s1x","s1y","s2x","s2y","newParentWidth","newParentHeight","InkDrawingOptions","viewerParameters","InkEditor","_drawId","stroke","ContourDrawOutline","BASE_HEADER_LENGTH","POINTS_PROPERTIES_NUMBER","SignatureExtractor","#PARAMETERS","#neighborIndexToId","i0","j0","#neighborIdToIndex","#clockwiseNonZero","kk","shiftI","shiftJ","#counterClockwiseNonZero","#findContours","threshold","nbd","lnbd","contours","ij","pix","i2","j2","isHole","contour","contour0","i1","j1","i3","j3","i4","j4","ij3","#douglasPeuckerHelper","ax","ay","abx","aby","dist","nabx","naby","aa","invS","phi","cosPhi","sinPhi","tmax","poly","partialPhi","dmax","#douglasPeucker","#bilateralFilter","sigmaS","sigmaR","kernelSize","kernel","sigmaS2","halfSize","rangeValues","sigmaR2","out","histogram","center","norm","neighbour","#getHistogram","#toUint8","#guessThreshold","M","L","spos","#getGrayPixels","originalBitmap","prevWidth","prevHeight","isteps","grayImage","fontStyle","fontWeight","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","fontBoundingBoxAscent","fontBoundingBoxDescent","SCALE","uint8Buf","contourList","mustSmooth","areContours","curves","linesAndPoints","xScale","yScale","newCurves","reducedPoints","newPoints","minDiff","maxDiff","outlinesLength","dx","bufferType","headerLength","writer","BufferCtor","diffs","signatureData","readable","writable","numberOfDrawings","diffsOffset","SignatureOptions","DrawnSignatureOptions","SignatureEditor","#isExtracted","#description","#signatureData","#signatureUUID","hasDescriptionStats","_isCopy","uuid","heightInPage","toolbar","outlineData","fontInfo","StampEditor","#bitmap","#bitmapId","#bitmapPromise","#bitmapUrl","#bitmapFile","#bitmapFileName","#canvas","#missingCanvas","#resizeTimeoutId","#isSvg","#hasBeenAddedInUndoStack","hasAltTextStats","#getBitmapFetched","fromId","#createCanvas","#getBitmapDone","updateAltTextData","#getBitmap","bitmapId","#drawBitmap","MAX_RATIO","maxDataDimension","maxPreviewDimension","createImageData","bitmapWidth","bitmapHeight","outputScale","scaledWidth","scaledHeight","#scaleBitmap","boxDim","boxDimWidth","boxDimHeight","patternCtx","dataWidth","dataHeight","offscreenCtx","#serializeBitmap","toUrl","missingCanvas","structParent","bitmapUrl","isSvg","accessibilityData","changes","area","prevData","isSamePageIndex","isSameAltText","AnnotationEditorLayer","#allowClick","#annotationLayer","#clickAC","#editorFocusTimeoutId","#editors","#hadPointerDown","#isDisabling","#isEnabling","#drawingAC","#focusedElement","#textLayer","#textSelectionAC","#textLayerDblClickAC","#lastPointerDownTimestamp","editorTypes","#allEditorsIterator","clonedFrom","deserialized","#cleanup","classList","annotationElementIds","editable","clientX","clientY","lastPointerDownTimestamp","needFakeAnnotation","changedAnnotations","resetAnnotations","editables","#textLayerPointerDown","#currentEditorType","#createNewEditor","#getCenterPoint","isCentered","currentMode","relatedTarget","oldRotation","DrawLayer","#mapping","#toUpdate","#setBox","#createSVG","#createClipPath","pathId","clipPathUse","#updateProperties","isPathUpdatable","hasClip","use","mustRemoveSelfIntersections","maskId","use1","use2","elementOrId","rootClass","pathElement"],"mappings":"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","x_google_ignoreList":[0]}