{"version":3,"file":"pdf.worker-6kySV6rJ.mjs","sources":["../../../../node_modules/.pnpm/pdfjs-dist@6.1.200/node_modules/pdfjs-dist/legacy/build/pdf.worker.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 = 6.1.200\n * pdfjsBuild = 6353acefe\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/***/ 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/***/ 6469\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar wellKnownSymbol = __webpack_require__(8227);\nvar create = __webpack_require__(2360);\nvar defineProperty = (__webpack_require__(4913).f);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n  defineProperty(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\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/***/ 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].prototype, 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/***/ 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 new $TypeError('Maximum allowed index exceeded');\n  return it;\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/***/ 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/***/ 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/***/ 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/***/ 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    var $iterator = iterator;\n    iterator = undefined;\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    // `IteratorValue` errors should propagate without closing the iterator\n    var value = step.value;\n    try {\n      result = callFn(value);\n    } catch (error) {\n      if (iterator) iteratorClose(iterator, 'throw', error);\n      else 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      var done = state.done;\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 (done) return createIterResultObject(undefined, true);\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        if (iterator) return iteratorClose(iterator, THROW, error);\n        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/***/ 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(result) <= otherRec.size) iterateSet(result, 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.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.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.49.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.49.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/***/ 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/***/ 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/***/ 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 min = Math.min;\nvar stringMatch = uncurryThis(''.match);\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 segments = stringMatch(string, /.{2}/g);\n  var written = 0;\n  for (; written < maxLength; written++) {\n    var result = +('0x' + segments[written] + '0');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (result !== result) {\n      throw new SyntaxError('String should only contain hex characters');\n    }\n    bytes[written] = result >> 4;\n  }\n  return { bytes: bytes, read: written << 1 };\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/***/ 4423\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar $includes = (__webpack_require__(9617).includes);\nvar fails = __webpack_require__(9039);\nvar addToUnscopables = __webpack_require__(6469);\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n  // eslint-disable-next-line es/no-array-prototype-includes -- detection\n  return !Array(1).includes();\n});\n\n// Safari 26.4- bug\nvar BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {\n  // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection\n  return [, 1].includes(undefined, 1);\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\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/***/ 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/***/ 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/***/ 1806\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar anObject = __webpack_require__(8551);\nvar createProperty = __webpack_require__(4659);\nvar iterate = __webpack_require__(2652);\nvar getIteratorDirect = __webpack_require__(1767);\n\n// `Iterator.prototype.toArray` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.toarray\n$({ target: 'Iterator', proto: true, real: true }, {\n  toArray: function toArray() {\n    var result = [];\n    var index = 0;\n    iterate(getIteratorDirect(anObject(this)), function (element) {\n      createProperty(result, index++, element);\n    }, { IS_RECORD: true });\n    return result;\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 leadingSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar trailingSurrogates = /^[\\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 (\n    (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||\n    (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))\n  ) {\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 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://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n    var hasKey = has(this, key);\n    aCallable(callbackfn);\n    if (hasKey) 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 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://tc39.es/ecma262/#sec-map.prototype.getorinsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsert: function getOrInsert(key, value) {\n    if (has(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 === 9007199254740991\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://tc39.es/ecma262/#sec-math.sumprecise\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://tc39.es/ecma262/#sec-uint8array.frombase64\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://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64\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://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex\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://tc39.es/ecma262/#sec-uint8array.prototype.tobase64\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);\nvar join = uncurryThis([].join);\nvar $Array = Array;\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://tc39.es/ecma262/#sec-uint8array.prototype.tohex\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 = $Array(this.length);\n    for (var i = 0, length = this.length; i < length; i++) {\n      var hex = numberToString(this[i], 16);\n      result[i] = hex.length === 1 ? '0' + hex : hex;\n    }\n    return join(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://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n    if (!IS_PURE) 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 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://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n  getOrInsert: function getOrInsert(key, value) {\n    if (has(this, key)) return get(this, key);\n    set(this, key, value);\n    return value;\n  }\n});\n\n\n/***/ },\n\n/***/ 3611\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar DESCRIPTORS = __webpack_require__(3724);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = globalThis.self !== globalThis;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    var descriptor = Object.getOwnPropertyDescriptor(globalThis, 'self');\n    // some engines have `self`, but with incorrect descriptor\n    // https://github.com/denoland/deno/issues/15765\n    if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n      defineBuiltInAccessor(globalThis, 'self', {\n        get: function self() {\n          return globalThis;\n        },\n        set: function self(value) {\n          if (this !== globalThis) throw new $TypeError('Illegal invocation');\n          defineProperty(globalThis, 'self', {\n            value: value,\n            writable: true,\n            configurable: true,\n            enumerable: true\n          });\n        },\n        configurable: true,\n        enumerable: true\n      });\n    }\n  } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n    self: globalThis\n  });\n} catch (error) { /* empty */ }\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-parse\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/************************************************************************/\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.iterator.constructor.js\nvar es_iterator_constructor = __webpack_require__(8111);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js\nvar es_iterator_filter = __webpack_require__(2489);\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/es.iterator.some.js\nvar es_iterator_some = __webpack_require__(3579);\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.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.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.self.js\nvar web_self = __webpack_require__(3611);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js\nvar es_array_includes = __webpack_require__(4423);\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\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];\nconst F32_BBOX_INIT = new Float32Array(BBOX_INIT);\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 SVG_NS = \"http://www.w3.org/2000/svg\";\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 = (/* unused pure expression or super */ null && ({\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3\n}));\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\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 = (/* unused pure expression or super */ null && ({\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  INK_COLOR_AND_OPACITY: 24,\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  RICHMEDIA: 27\n};\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\"\n};\nconst AnnotationRenditionOperation = {\n  PLAY_OR_RESUME: 0,\n  STOP: 1,\n  PAUSE: 2,\n  RESUME: 3,\n  PLAY: 4\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 objectSize(obj) {\n  return Object.keys(obj).length;\n}\nclass FeatureTest {\n  static get isLittleEndian() {\n    const buffer8 = new Uint8Array(4);\n    buffer8[0] = 1;\n    const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n    return shadow(this, \"isLittleEndian\", view32[0] === 1);\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 isCanvasFilterSupported() {\n    let ctx;\n    if (this.isOffscreenCanvasSupported) {\n      ctx = new OffscreenCanvas(1, 1).getContext(\"2d\");\n    }\n    return shadow(this, \"isCanvasFilterSupported\", ctx?.filter !== undefined);\n  }\n  static get isAlphaColorInputSupported() {\n    return shadow(this, \"isAlphaColorInputSupported\", false);\n  }\n  static get isBackdropFilterSupported() {\n    return shadow(this, \"isBackdropFilterSupported\", typeof CSS !== \"undefined\" && CSS.supports(\"backdrop-filter\", \"blur(1px)\"));\n  }\n}\nclass Util {\n  static get hexNums() {\n    return shadow(this, \"hexNums\", Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\")));\n  }\n  static makeHexColor(r, g, b) {\n    return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;\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}\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}\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\"]]);\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}\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);\nif (typeof Blob.prototype.bytes !== \"function\") {\n  Blob.prototype.bytes = async function () {\n    return new Uint8Array(await this.arrayBuffer());\n  };\n}\nif (typeof Response.prototype.bytes !== \"function\") {\n  Response.prototype.bytes = async function () {\n    return new Uint8Array(await this.arrayBuffer());\n  };\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js\nvar es_iterator_every = __webpack_require__(1148);\n;// ./src/core/primitives.js\n\n\n\n\n\n\n\n\n\n\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\nfunction clearPrimitiveCaches() {\n  CmdCache = Object.create(null);\n  NameCache = Object.create(null);\n  RefCache = Object.create(null);\n}\nclass Name {\n  constructor(name) {\n    this.name = name;\n  }\n  static get(name) {\n    return NameCache[name] ||= new Name(name);\n  }\n}\nclass Cmd {\n  constructor(cmd) {\n    this.cmd = cmd;\n  }\n  static get(cmd) {\n    return CmdCache[cmd] ||= new Cmd(cmd);\n  }\n}\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable;\n};\nclass Dict {\n  __nonSerializable__ = nonSerializable;\n  #map = new Map();\n  objId = null;\n  suppressEncryption = false;\n  xref;\n  constructor(xref = null) {\n    this.xref = xref;\n  }\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n  get size() {\n    return this.#map.size;\n  }\n  #getValue(isAsync, key1, key2, key3) {\n    let value = this.#map.get(key1);\n    if (value === undefined && key2 !== undefined) {\n      value = this.#map.get(key2);\n      if (value === undefined && key3 !== undefined) {\n        value = this.#map.get(key3);\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return isAsync ? this.xref.fetchAsync(value, this.suppressEncryption) : this.xref.fetch(value, this.suppressEncryption);\n    }\n    return value;\n  }\n  get(key1, key2, key3) {\n    return this.#getValue(false, key1, key2, key3);\n  }\n  async getAsync(key1, key2, key3) {\n    return this.#getValue(true, key1, key2, key3);\n  }\n  getArray(key1, key2, key3) {\n    let value = this.#getValue(false, key1, key2, key3);\n    if (Array.isArray(value)) {\n      value = value.slice();\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        if (value[i] instanceof Ref && this.xref) {\n          value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n        }\n      }\n    }\n    return value;\n  }\n  getRaw(key) {\n    return this.#map.get(key);\n  }\n  getKeys() {\n    return this.#map.keys();\n  }\n  getRawValues() {\n    return this.#map.values();\n  }\n  getRawEntries() {\n    return this.#map.entries();\n  }\n  set(key, value) {\n    this.#map.set(key, value);\n  }\n  setIfNotExists(key, value) {\n    if (!this.has(key)) {\n      this.set(key, value);\n    }\n  }\n  setIfNumber(key, value) {\n    if (typeof value === \"number\") {\n      this.set(key, value);\n    }\n  }\n  setIfArray(key, value) {\n    if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n      this.set(key, value);\n    }\n  }\n  setIfDefined(key, value) {\n    if (value !== undefined && value !== null) {\n      this.set(key, value);\n    }\n  }\n  setIfName(key, value) {\n    if (typeof value === \"string\") {\n      this.set(key, Name.get(value));\n    } else if (value instanceof Name) {\n      this.set(key, value);\n    }\n  }\n  setIfDict(key, value) {\n    if (value instanceof Dict) {\n      this.set(key, value);\n    }\n  }\n  has(key) {\n    return this.#map.has(key);\n  }\n  *[Symbol.iterator]() {\n    for (const [key, value] of this.#map) {\n      yield [key, value instanceof Ref && this.xref ? this.xref.fetch(value, this.suppressEncryption) : value];\n    }\n  }\n  static get empty() {\n    const emptyDict = new Dict(null);\n    emptyDict.set = (key, value) => {\n      unreachable(\"Should not call `set` on the empty dictionary.\");\n    };\n    return shadow(this, \"empty\", emptyDict);\n  }\n  static merge({\n    xref,\n    dictArray,\n    mergeSubDicts = false\n  }) {\n    const mergedDict = new Dict(xref),\n      properties = new Map();\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      for (const [key, value] of dict.getRawEntries()) {\n        const property = properties.getOrInsertComputed(key, makeArr);\n        if (property.length && !(mergeSubDicts && value instanceof Dict)) {\n          continue;\n        }\n        property.push(value);\n      }\n    }\n    for (const [name, values] of properties) {\n      if (values.length === 1 || !(values[0] instanceof Dict)) {\n        mergedDict.set(name, values[0]);\n        continue;\n      }\n      const subDict = new Dict(xref);\n      for (const dict of values) {\n        for (const [key, value] of dict.getRawEntries()) {\n          subDict.setIfNotExists(key, value);\n        }\n      }\n      if (subDict.size > 0) {\n        mergedDict.set(name, subDict);\n      }\n    }\n    properties.clear();\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\n  clone() {\n    const dict = new Dict(this.xref);\n    for (const [key, value] of this.#map) {\n      dict.set(key, value);\n    }\n    return dict;\n  }\n  delete(key) {\n    this.#map.delete(key);\n  }\n}\nclass Ref {\n  constructor(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n  toString() {\n    if (this.gen === 0) {\n      return `${this.num}R`;\n    }\n    return `${this.num}R${this.gen}`;\n  }\n  static fromString(str) {\n    const ref = RefCache[str];\n    if (ref) {\n      return ref;\n    }\n    const m = /^(\\d+)R(\\d*)$/.exec(str);\n    if (!m || m[1] === \"0\") {\n      return null;\n    }\n    return RefCache[str] = new Ref(parseInt(m[1], 10), !m[2] ? 0 : parseInt(m[2], 10));\n  }\n  static get(num, gen) {\n    const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n    return RefCache[key] ||= new Ref(num, gen);\n  }\n}\nclass RefSet {\n  constructor(parent = null) {\n    this._set = new Set(parent?._set);\n  }\n  has(ref) {\n    return this._set.has(ref.toString());\n  }\n  put(ref) {\n    this._set.add(ref.toString());\n  }\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n  clear() {\n    this._set.clear();\n  }\n}\nclass RefSetCache {\n  _map = new Map();\n  get size() {\n    return this._map.size;\n  }\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n  clear() {\n    this._map.clear();\n  }\n  *values() {\n    yield* this._map.values();\n  }\n  *items() {\n    for (const [ref, value] of this._map) {\n      yield [Ref.fromString(ref), value];\n    }\n  }\n  *keys() {\n    for (const ref of this._map.keys()) {\n      yield Ref.fromString(ref);\n    }\n  }\n}\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\nfunction isDict(v, type) {\n  return v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type));\n}\nfunction isRefsEqual(v1, v2) {\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\n;// ./src/core/base_stream.js\n\nclass BaseStream {\n  get length() {\n    unreachable(\"Abstract getter `length` accessed\");\n  }\n  get isEmpty() {\n    unreachable(\"Abstract getter `isEmpty` accessed\");\n  }\n  get isDataLoaded() {\n    return shadow(this, \"isDataLoaded\", true);\n  }\n  getByte() {\n    unreachable(\"Abstract method `getByte` called\");\n  }\n  getBytes(length) {\n    unreachable(\"Abstract method `getBytes` called\");\n  }\n  async getImageData(length, decoderOptions) {\n    return this.getBytes(length, decoderOptions);\n  }\n  async asyncGetBytes() {\n    unreachable(\"Abstract method `asyncGetBytes` called\");\n  }\n  get isAsync() {\n    return false;\n  }\n  get isAsyncDecoder() {\n    return false;\n  }\n  get isImageStream() {\n    return false;\n  }\n  get canAsyncDecodeImageFromBuffer() {\n    return false;\n  }\n  async getTransferableImage() {\n    return null;\n  }\n  peekByte() {\n    const peekedByte = this.getByte();\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n    return peekedByte;\n  }\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n    return (b0 << 8) + b1;\n  }\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n  getByteRange(begin, end) {\n    unreachable(\"Abstract method `getByteRange` called\");\n  }\n  getString(length) {\n    return bytesToString(this.getBytes(length));\n  }\n  skip(n) {\n    this.pos += n || 1;\n  }\n  reset() {\n    unreachable(\"Abstract method `reset` called\");\n  }\n  moveStart() {\n    unreachable(\"Abstract method `moveStart` called\");\n  }\n  makeSubStream(start, length, dict = null) {\n    unreachable(\"Abstract method `makeSubStream` called\");\n  }\n  clone() {\n    unreachable(\"Abstract method `clone` called\");\n  }\n  getBaseStreams() {\n    return null;\n  }\n  getOriginalStream() {\n    return this.stream?.getOriginalStream() || this;\n  }\n}\n\n;// ./src/core/string_utils.js\n\n\n\nfunction isAscii(str) {\n  return typeof str === \"string\" && (!str || /^[\\x00-\\x7F]*$/.test(str));\n}\nfunction stringToAsciiOrUTF16BE(str) {\n  if (str === null || str === undefined) {\n    return str;\n  }\n  return isAscii(str) ? str : stringToUTF16String(str, true);\n}\nfunction stringToUTF16HexString(str) {\n  const buf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(Util.hexNums[char >> 8 & 0xff], Util.hexNums[char & 0xff]);\n  }\n  return buf.join(\"\");\n}\nfunction stringToUTF16String(str, bigEndian = false) {\n  const buf = [];\n  if (bigEndian) {\n    buf.push(\"\\xFE\\xFF\");\n  }\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n  }\n  return buf.join(\"\");\n}\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\nfunction stringToPDFString(str, 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}\n\n;// ./src/core/core_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\nconst MAX_INT_32 = 2 ** 31 - 1;\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst RESOURCES_KEYS_OPERATOR_LIST = [\"ColorSpace\", \"ExtGState\", \"Font\", \"Pattern\", \"Properties\", \"Shading\", \"XObject\"];\nconst RESOURCES_KEYS_TEXT_CONTENT = [\"ExtGState\", \"Font\", \"Properties\", \"XObject\"];\nfunction getLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n    return lookup;\n  };\n}\nclass MissingDataException extends BaseException {\n  constructor(begin, end) {\n    super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n    this.begin = begin;\n    this.end = end;\n  }\n}\nclass ParserEOFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n}\nclass XRefEntryException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n}\nclass XRefParseException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n}\nfunction arrayBuffersToBytes(arr) {\n  const length = arr.length;\n  if (length === 0) {\n    return new Uint8Array(0);\n  }\n  if (length === 1) {\n    return new Uint8Array(arr[0]);\n  }\n  let dataLength = 0;\n  for (let i = 0; i < length; i++) {\n    dataLength += arr[i].byteLength;\n  }\n  const data = new Uint8Array(dataLength);\n  let pos = 0;\n  for (let i = 0; i < length; i++) {\n    const item = new Uint8Array(arr[i]);\n    data.set(item, pos);\n    pos += item.byteLength;\n  }\n  return data;\n}\nasync function fetchBinaryData(url) {\n  const response = await fetch(url);\n  if (!response.ok) {\n    throw new Error(`Failed to fetch file \"${url}\" with \"${response.statusText}\".`);\n  }\n  return response.bytes();\n}\nfunction getInheritableProperty({\n  dict,\n  key,\n  getArray = false,\n  stopWhenFound = true\n}) {\n  let values;\n  const visited = new RefSet();\n  while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n      (values ||= []).push(value);\n    }\n    dict = dict.get(\"Parent\");\n  }\n  return values;\n}\nfunction getParentToUpdate(dict, ref, xref) {\n  const visited = new RefSet();\n  const firstDict = dict;\n  const result = {\n    dict: null,\n    ref: null\n  };\n  while (dict instanceof Dict && !visited.has(ref)) {\n    visited.put(ref);\n    if (dict.has(\"T\")) {\n      break;\n    }\n    ref = dict.getRaw(\"Parent\");\n    if (!(ref instanceof Ref)) {\n      return result;\n    }\n    dict = xref.fetch(ref);\n  }\n  if (dict instanceof Dict && dict !== firstDict) {\n    result.dict = dict;\n    result.ref = ref;\n  }\n  return result;\n}\nfunction deepCompare(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (a instanceof Ref && b instanceof Ref) {\n    return isRefsEqual(a, b);\n  }\n  if (a instanceof Name && b instanceof Name) {\n    return a.name === b.name;\n  }\n  if (a instanceof Dict && b instanceof Dict) {\n    if (a.size !== b.size) {\n      return false;\n    }\n    for (const [key, value1] of a.getRawEntries()) {\n      const value2 = b.getRaw(key);\n      if (value2 === undefined || !deepCompare(value1, value2)) {\n        return false;\n      }\n    }\n    return true;\n  }\n  if (Array.isArray(a) && Array.isArray(b)) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0, ii = a.length; i < ii; i++) {\n      if (!deepCompare(a[i], b[i])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return false;\n}\nconst ROMAN_NUMBER_MAP = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\", \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\", \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"];\nfunction toRomanNumerals(number, lowerCase = false) {\n  assert(Number.isInteger(number) && number > 0, \"The number should be a positive integer.\");\n  const roman = \"M\".repeat(number / 1000 | 0) + ROMAN_NUMBER_MAP[number % 1000 / 100 | 0] + ROMAN_NUMBER_MAP[10 + (number % 100 / 10 | 0)] + ROMAN_NUMBER_MAP[20 + number % 10];\n  return lowerCase ? roman.toLowerCase() : roman;\n}\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\nfunction isBooleanArray(arr, len) {\n  return Array.isArray(arr) && (len === null || arr.length === len) && arr.every(x => typeof x === \"boolean\");\n}\nfunction isNumberArray(arr, len) {\n  if (Array.isArray(arr)) {\n    return (len === null || arr.length === len) && arr.every(x => typeof x === \"number\");\n  }\n  return ArrayBuffer.isView(arr) && !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) && (len === null || arr.length === len);\n}\nfunction lookupMatrix(arr, fallback) {\n  return isNumberArray(arr, 6) ? arr : fallback;\n}\nfunction lookupRect(arr, fallback) {\n  return isNumberArray(arr, 4) ? arr : fallback;\n}\nfunction lookupNormalRect(arr, fallback) {\n  return isNumberArray(arr, 4) ? Util.normalizeRect(arr) : fallback;\n}\nfunction parseXFAPath(path) {\n  const positionPattern = /(.+)\\[(\\d+)\\]$/;\n  return path.split(\".\").map(component => {\n    const m = component.match(positionPattern);\n    if (m) {\n      return {\n        name: m[1],\n        pos: parseInt(m[2], 10)\n      };\n    }\n    return {\n      name: component,\n      pos: 0\n    };\n  });\n}\nfunction escapePDFName(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`#${char.toString(16)}`);\n      start = i + 1;\n    }\n  }\n  if (buffer.length === 0) {\n    return str;\n  }\n  if (start < str.length) {\n    buffer.push(str.substring(start));\n  }\n  return buffer.join(\"\");\n}\nfunction escapeString(str) {\n  return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n    return `\\\\${match}`;\n  });\n}\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n  let parent = null;\n  if (entry instanceof Ref) {\n    if (parents.has(entry)) {\n      return;\n    }\n    parent = entry;\n    parents.put(parent);\n    entry = xref.fetch(entry);\n  }\n  if (Array.isArray(entry)) {\n    for (const element of entry) {\n      _collectJS(element, xref, list, parents);\n    }\n  } else if (entry instanceof Dict) {\n    if (isName(entry.get(\"S\"), \"JavaScript\")) {\n      const js = entry.get(\"JS\");\n      let code;\n      if (js instanceof BaseStream) {\n        code = js.getString();\n      } else if (typeof js === \"string\") {\n        code = js;\n      }\n      code &&= stringToPDFString(code, true).replaceAll(\"\\x00\", \"\");\n      if (code) {\n        list.push(code.trim());\n      }\n    }\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n  if (parent) {\n    parents.remove(parent);\n  }\n}\nfunction collectActions(xref, dict, eventType) {\n  const actions = Object.create(null);\n  const additionalActionsDicts = getInheritableProperty({\n    dict,\n    key: \"AA\",\n    stopWhenFound: false\n  });\n  if (additionalActionsDicts) {\n    for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n      const additionalActions = additionalActionsDicts[i];\n      if (!(additionalActions instanceof Dict)) {\n        continue;\n      }\n      for (const [key, rawActionDict] of additionalActions.getRawEntries()) {\n        const action = eventType[key];\n        if (!action) {\n          continue;\n        }\n        const parents = new RefSet();\n        const list = [];\n        _collectJS(rawActionDict, xref, list, parents);\n        if (list.length > 0) {\n          actions[action] = list;\n        }\n      }\n    }\n  }\n  if (dict.has(\"A\")) {\n    const actionDict = dict.get(\"A\");\n    const parents = new RefSet();\n    const list = [];\n    _collectJS(actionDict, xref, list, parents);\n    if (list.length > 0) {\n      actions.Action = list;\n    }\n  }\n  return objectSize(actions) > 0 ? actions : null;\n}\nconst XMLEntities = {\n  0x3c: \"&lt;\",\n  0x3e: \"&gt;\",\n  0x26: \"&amp;\",\n  0x22: \"&quot;\",\n  0x27: \"&apos;\"\n};\nfunction* codePointIter(str) {\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n    if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n      i++;\n    }\n    yield char;\n  }\n}\nfunction encodeToXmlString(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n    if (0x20 <= char && char <= 0x7e) {\n      const entity = XMLEntities[char];\n      if (entity) {\n        if (start < i) {\n          buffer.push(str.substring(start, i));\n        }\n        buffer.push(entity);\n        start = i + 1;\n      }\n    } else {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n      if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n        i++;\n      }\n      start = i + 1;\n    }\n  }\n  if (buffer.length === 0) {\n    return str;\n  }\n  if (start < str.length) {\n    buffer.push(str.substring(start));\n  }\n  return buffer.join(\"\");\n}\nfunction validateFontName(fontFamily, mustWarn = false) {\n  const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n  if (m && m[1] === m[2]) {\n    const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n    if (re.test(fontFamily.slice(1, -1))) {\n      if (mustWarn) {\n        warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n      }\n      return false;\n    }\n  } else {\n    for (const ident of fontFamily.split(/[ \\t]+/)) {\n      if (/^(?:\\d|-[\\d-])/.test(ident) || !/^[\\w\\\\-]+$/.test(ident)) {\n        if (mustWarn) {\n          warn(`FontFamily contains invalid <custom-ident>: ${fontFamily}.`);\n        }\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction validateCSSFont(cssFontInfo) {\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"1000\", \"normal\", \"bold\", \"bolder\", \"lighter\"]);\n  const {\n    fontFamily,\n    fontWeight,\n    italicAngle\n  } = cssFontInfo;\n  if (!validateFontName(fontFamily, true)) {\n    return false;\n  }\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT;\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString();\n  return true;\n}\nfunction recoverJsURL(str) {\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\"^\\\\s*(\" + URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") + \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\", \"i\");\n  const jsUrl = regex.exec(str);\n  if (jsUrl?.[2]) {\n    return {\n      url: jsUrl[2],\n      newWindow: jsUrl[1] === \"app.launchURL\" && jsUrl[3] === \"true\"\n    };\n  }\n  return null;\n}\nfunction numberToString(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n  const roundedValue = Math.round(value * 100);\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n  return value.toFixed(2);\n}\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n  const newAnnotationsByPage = new Map();\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(AnnotationEditorPrefix)) {\n      continue;\n    }\n    newAnnotationsByPage.getOrInsertComputed(value.pageIndex, makeArr).push(value);\n  }\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\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}\nfunction getRotationMatrix(rotation, width, height) {\n  switch (rotation) {\n    case 90:\n      return [0, 1, -1, 0, width, 0];\n    case 180:\n      return [-1, 0, 0, -1, width, height];\n    case 270:\n      return [0, -1, 1, 0, 0, height];\n    default:\n      throw new Error(\"Invalid rotation\");\n  }\n}\nfunction getSizeInBytes(x) {\n  return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);\n}\n\n;// ./external/qcms/qcms_utils.js\n\n\n\n\n\nclass QCMS {\n  static #memoryArray = null;\n  static _memory = null;\n  static _mustAddAlpha = false;\n  static _destBuffer = null;\n  static _destOffset = 0;\n  static _destLength = 0;\n  static _cssColor = \"\";\n  static _makeHexColor = null;\n  static get _memoryArray() {\n    const array = this.#memoryArray;\n    if (array?.byteLength) {\n      return array;\n    }\n    return this.#memoryArray = new Uint8Array(this._memory.buffer);\n  }\n}\nfunction copy_result(ptr, len) {\n  const {\n    _mustAddAlpha,\n    _destBuffer,\n    _destOffset,\n    _destLength,\n    _memoryArray\n  } = QCMS;\n  if (len === _destLength) {\n    _destBuffer.set(_memoryArray.subarray(ptr, ptr + len), _destOffset);\n    return;\n  }\n  if (_mustAddAlpha) {\n    for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {\n      _destBuffer[j] = _memoryArray[i];\n      _destBuffer[j + 1] = _memoryArray[i + 1];\n      _destBuffer[j + 2] = _memoryArray[i + 2];\n      _destBuffer[j + 3] = 255;\n    }\n  } else {\n    for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {\n      _destBuffer[j] = _memoryArray[i];\n      _destBuffer[j + 1] = _memoryArray[i + 1];\n      _destBuffer[j + 2] = _memoryArray[i + 2];\n    }\n  }\n}\nfunction copy_rgb(ptr) {\n  const {\n    _destBuffer,\n    _destOffset,\n    _memoryArray\n  } = QCMS;\n  _destBuffer[_destOffset] = _memoryArray[ptr];\n  _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1];\n  _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2];\n}\nfunction make_cssRGB(ptr) {\n  const {\n    _memoryArray\n  } = QCMS;\n  QCMS._cssColor = QCMS._makeHexColor(_memoryArray[ptr], _memoryArray[ptr + 1], _memoryArray[ptr + 2]);\n}\n\n;// ./external/qcms/qcms.js\n\n\n\n\n\n\nconst DataType = Object.freeze({\n  RGB8: 0,\n  \"0\": \"RGB8\",\n  RGBA8: 1,\n  \"1\": \"RGBA8\",\n  BGRA8: 2,\n  \"2\": \"BGRA8\",\n  Gray8: 3,\n  \"3\": \"Gray8\",\n  GrayA8: 4,\n  \"4\": \"GrayA8\",\n  CMYK: 5,\n  \"5\": \"CMYK\"\n});\nconst Intent = Object.freeze({\n  Perceptual: 0,\n  \"0\": \"Perceptual\",\n  RelativeColorimetric: 1,\n  \"1\": \"RelativeColorimetric\",\n  Saturation: 2,\n  \"2\": \"Saturation\",\n  AbsoluteColorimetric: 3,\n  \"3\": \"AbsoluteColorimetric\"\n});\nfunction qcms_convert_array(transformer, src) {\n  const ptr0 = passArray8ToWasm0(src, wasm.__wbindgen_malloc);\n  const len0 = WASM_VECTOR_LEN;\n  wasm.qcms_convert_array(transformer, ptr0, len0);\n}\nfunction qcms_convert_four(transformer, src1, src2, src3, src4, css) {\n  wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);\n}\nfunction qcms_convert_one(transformer, src, css) {\n  wasm.qcms_convert_one(transformer, src, css);\n}\nfunction qcms_convert_three(transformer, src1, src2, src3, css) {\n  wasm.qcms_convert_three(transformer, src1, src2, src3, css);\n}\nfunction qcms_drop_transformer(transformer) {\n  wasm.qcms_drop_transformer(transformer);\n}\nfunction qcms_transformer_from_memory(mem, in_type, intent) {\n  const ptr0 = passArray8ToWasm0(mem, wasm.__wbindgen_malloc);\n  const len0 = WASM_VECTOR_LEN;\n  const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent);\n  return ret >>> 0;\n}\nfunction __wbg_get_imports() {\n  const import0 = {\n    __proto__: null,\n    __wbg___wbindgen_throw_6b64449b9b9ed33c: function (arg0, arg1) {\n      throw new Error(getStringFromWasm0(arg0, arg1));\n    },\n    __wbg_copy_result_0d15f3bf9d9012ae: function (arg0, arg1) {\n      copy_result(arg0 >>> 0, arg1 >>> 0);\n    },\n    __wbg_copy_rgb_0106d9d9464fce43: function (arg0) {\n      copy_rgb(arg0 >>> 0);\n    },\n    __wbg_make_cssRGB_8e24b34f71f5363e: function (arg0) {\n      make_cssRGB(arg0 >>> 0);\n    },\n    __wbindgen_init_externref_table: function () {\n      const table = wasm.__wbindgen_externrefs;\n      const offset = table.grow(4);\n      table.set(0, undefined);\n      table.set(offset + 0, undefined);\n      table.set(offset + 1, null);\n      table.set(offset + 2, true);\n      table.set(offset + 3, false);\n    }\n  };\n  return {\n    __proto__: null,\n    \"./qcms_bg.js\": import0\n  };\n}\nfunction getStringFromWasm0(ptr, len) {\n  ptr = ptr >>> 0;\n  return decodeText(ptr, len);\n}\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n  if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n    cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n  }\n  return cachedUint8ArrayMemory0;\n}\nfunction passArray8ToWasm0(arg, malloc) {\n  const ptr = malloc(arg.length * 1, 1) >>> 0;\n  getUint8ArrayMemory0().set(arg, ptr / 1);\n  WASM_VECTOR_LEN = arg.length;\n  return ptr;\n}\nlet cachedTextDecoder = new TextDecoder('utf-8', {\n  ignoreBOM: true,\n  fatal: true\n});\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n  numBytesDecoded += len;\n  if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n    cachedTextDecoder = new TextDecoder('utf-8', {\n      ignoreBOM: true,\n      fatal: true\n    });\n    cachedTextDecoder.decode();\n    numBytesDecoded = len;\n  }\n  return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\nlet WASM_VECTOR_LEN = 0;\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n  wasm = instance.exports;\n  wasmModule = module;\n  cachedUint8ArrayMemory0 = null;\n  wasm.__wbindgen_start();\n  return wasm;\n}\nasync function __wbg_load(module, imports) {\n  if (typeof Response === 'function' && module instanceof Response) {\n    if (typeof WebAssembly.instantiateStreaming === 'function') {\n      try {\n        return await WebAssembly.instantiateStreaming(module, imports);\n      } catch (e) {\n        const validResponse = module.ok && expectedResponseType(module.type);\n        if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n          console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n        } else {\n          throw e;\n        }\n      }\n    }\n    const bytes = await module.arrayBuffer();\n    return await WebAssembly.instantiate(bytes, imports);\n  } else {\n    const instance = await WebAssembly.instantiate(module, imports);\n    if (instance instanceof WebAssembly.Instance) {\n      return {\n        instance,\n        module\n      };\n    } else {\n      return instance;\n    }\n  }\n  function expectedResponseType(type) {\n    switch (type) {\n      case 'basic':\n      case 'cors':\n      case 'default':\n        return true;\n    }\n    return false;\n  }\n}\nfunction initSync(module) {\n  if (wasm !== undefined) return wasm;\n  if (module !== undefined) {\n    if (Object.getPrototypeOf(module) === Object.prototype) {\n      ({\n        module\n      } = module);\n    } else {\n      console.warn('using deprecated parameters for `initSync()`; pass a single object instead');\n    }\n  }\n  const imports = __wbg_get_imports();\n  if (!(module instanceof WebAssembly.Module)) {\n    module = new WebAssembly.Module(module);\n  }\n  const instance = new WebAssembly.Instance(module, imports);\n  return __wbg_finalize_init(instance, module);\n}\nasync function __wbg_init(module_or_path) {\n  if (wasm !== undefined) return wasm;\n  if (module_or_path !== undefined) {\n    if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n      ({\n        module_or_path\n      } = module_or_path);\n    } else {\n      console.warn('using deprecated parameters for the initialization function; pass a single object instead');\n    }\n  }\n  const imports = __wbg_get_imports();\n  if (typeof module_or_path === 'string' || typeof Request === 'function' && module_or_path instanceof Request || typeof URL === 'function' && module_or_path instanceof URL) {\n    module_or_path = fetch(module_or_path);\n  }\n  const {\n    instance,\n    module\n  } = await __wbg_load(await module_or_path, imports);\n  return __wbg_finalize_init(instance, module);\n}\n\n;// ./src/shared/math_clamp.js\nfunction MathClamp(v, min, max) {\n  return Math.min(Math.max(v, min), max);\n}\n\n;// ./src/core/colorspace.js\n\n\n\n\n\n\n\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  const COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let newIndex = 0,\n    oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1 * COMPONENTS;\n  for (let i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n  for (let i = 0; i < h2; i++) {\n    const py = Math.floor(i * yRatio) * w1Scanline;\n    for (let j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\nfunction resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) {\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let newIndex = 0;\n  const xScaled = new Uint16Array(w2);\n  if (alpha01 === 1) {\n    for (let i = 0; i < w2; i++) {\n      xScaled[i] = Math.floor(i * xRatio);\n    }\n    const src32 = new Uint32Array(src.buffer);\n    const dest32 = new Uint32Array(dest.buffer);\n    const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;\n    for (let i = 0; i < h2; i++) {\n      const buf = src32.subarray(Math.floor(i * yRatio) * w1);\n      for (let j = 0; j < w2; j++) {\n        dest32[newIndex++] |= buf[xScaled[j]] & rgbMask;\n      }\n    }\n  } else {\n    const COMPONENTS = 4;\n    const w1Scanline = w1 * COMPONENTS;\n    for (let i = 0; i < w2; i++) {\n      xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n    }\n    for (let i = 0; i < h2; i++) {\n      const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline);\n      for (let j = 0; j < w2; j++) {\n        const oldIndex = xScaled[j];\n        dest[newIndex++] = buf[oldIndex];\n        dest[newIndex++] = buf[oldIndex + 1];\n        dest[newIndex++] = buf[oldIndex + 2];\n      }\n    }\n  }\n}\nfunction copyRgbaImage(src, dest, alpha01) {\n  if (alpha01 === 1) {\n    const src32 = new Uint32Array(src.buffer);\n    const dest32 = new Uint32Array(dest.buffer);\n    const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;\n    for (let i = 0, ii = src32.length; i < ii; i++) {\n      dest32[i] |= src32[i] & rgbMask;\n    }\n  } else {\n    let j = 0;\n    for (let i = 0, ii = src.length; i < ii; i += 4) {\n      dest[j++] = src[i];\n      dest[j++] = src[i + 1];\n      dest[j++] = src[i + 2];\n    }\n  }\n}\nfunction isDefaultDecodeHelper(decode, expectedLen) {\n  if (!Array.isArray(decode)) {\n    return true;\n  }\n  const decodeLen = decode.length;\n  if (decodeLen < expectedLen) {\n    warn(\"Decode map length is too short.\");\n    return true;\n  }\n  if (decodeLen > expectedLen) {\n    info(\"Truncating too long decode map.\");\n    decode.length = expectedLen;\n  }\n  return false;\n}\nclass ColorSpace {\n  static #rgbBuf = new Uint8ClampedArray(3);\n  constructor(name, numComps) {\n    this.name = name;\n    this.numComps = numComps;\n  }\n  getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) {\n    this.getRgbItem(src, srcOffset, output, 0);\n    return output;\n  }\n  getRgbHex(src, srcOffset) {\n    const buffer = this.getRgb(src, srcOffset, ColorSpace.#rgbBuf);\n    return Util.makeHexColor(buffer[0], buffer[1], buffer[2]);\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    unreachable(\"Should not call ColorSpace.getRgbItem\");\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n  }\n  getOutputLength(inputLength, alpha01) {\n    unreachable(\"Should not call ColorSpace.getOutputLength\");\n  }\n  isPassthrough(bits) {\n    return false;\n  }\n  isDefaultDecode(decode, bpc) {\n    return ColorSpace.isDefaultDecode(decode, this.numComps);\n  }\n  fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n    const count = originalWidth * originalHeight;\n    let rgbBuf = null;\n    const numComponentColors = 1 << bpc;\n    const needsResizing = originalHeight !== height || originalWidth !== width;\n    if (this.isPassthrough(bpc)) {\n      rgbBuf = comps;\n    } else if (this.numComps === 1 && count > numComponentColors && this.name !== \"DeviceGray\" && this.name !== \"DeviceRGB\") {\n      const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n      for (let i = 0; i < numComponentColors; i++) {\n        allColors[i] = i;\n      }\n      const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n      this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n      if (!needsResizing) {\n        let destPos = 0;\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          dest[destPos++] = colorMap[key];\n          dest[destPos++] = colorMap[key + 1];\n          dest[destPos++] = colorMap[key + 2];\n          destPos += alpha01;\n        }\n      } else {\n        rgbBuf = new Uint8Array(count * 3);\n        let rgbPos = 0;\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          rgbBuf[rgbPos++] = colorMap[key];\n          rgbBuf[rgbPos++] = colorMap[key + 1];\n          rgbBuf[rgbPos++] = colorMap[key + 2];\n        }\n      }\n    } else if (!needsResizing) {\n      this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n    } else {\n      rgbBuf = new Uint8ClampedArray(count * 3);\n      this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n    }\n    if (rgbBuf) {\n      if (needsResizing) {\n        resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n      } else {\n        let destPos = 0,\n          rgbPos = 0;\n        for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          destPos += alpha01;\n        }\n      }\n    }\n  }\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", true);\n  }\n  static isDefaultDecode(decode, numComps) {\n    if (isDefaultDecodeHelper(decode, numComps * 2)) {\n      return true;\n    }\n    for (let i = 0, ii = decode.length; i < ii; i += 2) {\n      if (decode[i] !== 0 || decode[i + 1] !== 1) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\nclass AlternateCS extends ColorSpace {\n  constructor(numComps, base, tintFn) {\n    super(\"Alternate\", numComps);\n    this.base = base;\n    this.tintFn = tintFn;\n    this.tmpBuf = new Float32Array(base.numComps);\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const tmpBuf = this.tmpBuf;\n    this.tintFn(src, srcOffset, tmpBuf, 0);\n    this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const tintFn = this.tintFn;\n    const base = this.base;\n    const scale = 1 / ((1 << bits) - 1);\n    const baseNumComps = base.numComps;\n    const usesZeroToOneRange = base.usesZeroToOneRange;\n    const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n    let pos = isPassthrough ? destOffset : 0;\n    const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n    const numComps = this.numComps;\n    const scaled = new Float32Array(numComps);\n    const tinted = new Float32Array(baseNumComps);\n    let i, j;\n    for (i = 0; i < count; i++) {\n      for (j = 0; j < numComps; j++) {\n        scaled[j] = src[srcOffset++] * scale;\n      }\n      tintFn(scaled, 0, tinted, 0);\n      if (usesZeroToOneRange) {\n        for (j = 0; j < baseNumComps; j++) {\n          baseBuf[pos++] = tinted[j] * 255;\n        }\n      } else {\n        base.getRgbItem(tinted, 0, baseBuf, pos);\n        pos += baseNumComps;\n      }\n    }\n    if (!isPassthrough) {\n      base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n  }\n}\nclass PatternCS extends ColorSpace {\n  constructor(baseCS) {\n    super(\"Pattern\", null);\n    this.base = baseCS;\n  }\n  isDefaultDecode(decode, bpc) {\n    unreachable(\"Should not call PatternCS.isDefaultDecode\");\n  }\n}\nclass IndexedCS extends ColorSpace {\n  constructor(base, highVal, lookup) {\n    super(\"Indexed\", 1);\n    this.base = base;\n    this.highVal = highVal;\n    const length = base.numComps * (highVal + 1);\n    this.lookup = new Uint8Array(length);\n    if (lookup instanceof BaseStream) {\n      const bytes = lookup.getBytes(length);\n      this.lookup.set(bytes);\n    } else if (typeof lookup === \"string\") {\n      for (let i = 0; i < length; ++i) {\n        this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n      }\n    } else {\n      throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n    }\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const {\n      base,\n      highVal,\n      lookup\n    } = this;\n    const start = MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps;\n    base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0);\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const {\n      base,\n      highVal,\n      lookup\n    } = this;\n    const {\n      numComps\n    } = base;\n    const outputDelta = base.getOutputLength(numComps, alpha01);\n    for (let i = 0; i < count; ++i) {\n      const lookupPos = MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps;\n      base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n      destOffset += outputDelta;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n  }\n  isDefaultDecode(decode, bpc) {\n    if (isDefaultDecodeHelper(decode, 2)) {\n      return true;\n    }\n    if (!Number.isInteger(bpc) || bpc < 1) {\n      warn(\"Bits per component is not correct\");\n      return true;\n    }\n    return decode[0] === 0 && decode[1] === (1 << bpc) - 1;\n  }\n}\nclass DeviceGrayCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceGray\", 1);\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const c = src[srcOffset] * 255;\n    dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n      q = destOffset;\n    for (let i = 0; i < count; ++i) {\n      const c = scale * src[j++];\n      dest[q++] = c;\n      dest[q++] = c;\n      dest[q++] = c;\n      q += alpha01;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\nclass DeviceRgbCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGB\", 3);\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    dest[destOffset] = src[srcOffset] * 255;\n    dest[destOffset + 1] = src[srcOffset + 1] * 255;\n    dest[destOffset + 2] = src[srcOffset + 2] * 255;\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (bits === 8 && alpha01 === 0) {\n      dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n      return;\n    }\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n      q = destOffset;\n    for (let i = 0; i < count; ++i) {\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      q += alpha01;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01) / 3 | 0;\n  }\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n}\nclass DeviceRgbaCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGBA\", 4);\n  }\n  getOutputLength(inputLength, _alpha01) {\n    return inputLength * 4;\n  }\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n  fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n    if (originalHeight !== height || originalWidth !== width) {\n      resizeRgbaImage(comps, dest, originalWidth, originalHeight, width, height, alpha01);\n    } else {\n      copyRgbaImage(comps, dest, alpha01);\n    }\n  }\n}\nclass DeviceCmykCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceCMYK\", 4);\n  }\n  #toRgb(src, srcOffset, srcScale, dest, destOffset) {\n    const c = src[srcOffset] * srcScale;\n    const m = src[srcOffset + 1] * srcScale;\n    const y = src[srcOffset + 2] * srcScale;\n    const k = src[srcOffset + 3] * srcScale;\n    dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n    dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n    dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    this.#toRgb(src, srcOffset, 1, dest, destOffset);\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const scale = 1 / ((1 << bits) - 1);\n    for (let i = 0; i < count; i++) {\n      this.#toRgb(src, srcOffset, scale, dest, destOffset);\n      srcOffset += 4;\n      destOffset += 3 + alpha01;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength / 4 * (3 + alpha01) | 0;\n  }\n}\nclass CalGrayCS extends ColorSpace {\n  constructor(whitePoint, blackPoint, gamma) {\n    super(\"CalGray\", 1);\n    if (!whitePoint) {\n      throw new FormatError(\"WhitePoint missing - required for color space CalGray\");\n    }\n    [this.XW, this.YW, this.ZW] = whitePoint;\n    [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n    this.G = gamma || 1;\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);\n    }\n    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n      info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n      this.XB = this.YB = this.ZB = 0;\n    }\n    if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n      warn(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);\n    }\n    if (this.G < 1) {\n      info(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`);\n      this.G = 1;\n    }\n  }\n  #toRgb(src, srcOffset, dest, destOffset, scale) {\n    const A = src[srcOffset] * scale;\n    const AG = A ** this.G;\n    const L = this.YW * AG;\n    const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    this.#toRgb(src, srcOffset, dest, destOffset, 1);\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const scale = 1 / ((1 << bits) - 1);\n    for (let i = 0; i < count; ++i) {\n      this.#toRgb(src, srcOffset, dest, destOffset, scale);\n      srcOffset += 1;\n      destOffset += 3 + alpha01;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\nclass CalRGBCS extends ColorSpace {\n  static #BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n  static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n  static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n  static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n  static #tempNormalizeMatrix = new Float32Array(3);\n  static #tempConvertMatrix1 = new Float32Array(3);\n  static #tempConvertMatrix2 = new Float32Array(3);\n  static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n  constructor(whitePoint, blackPoint, gamma, matrix) {\n    super(\"CalRGB\", 3);\n    if (!whitePoint) {\n      throw new FormatError(\"WhitePoint missing - required for color space CalRGB\");\n    }\n    const [XW, YW, ZW] = this.whitePoint = whitePoint;\n    const [XB, YB, ZB] = this.blackPoint = blackPoint || new Float32Array(3);\n    [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);\n    [this.MXA, this.MYA, this.MZA, this.MXB, this.MYB, this.MZB, this.MXC, this.MYC, this.MZC] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n    if (XW < 0 || ZW < 0 || YW !== 1) {\n      throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);\n    }\n    if (XB < 0 || YB < 0 || ZB < 0) {\n      info(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + \"falling back to default.\");\n      this.blackPoint = new Float32Array(3);\n    }\n    if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n      info(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);\n      this.GR = this.GG = this.GB = 1;\n    }\n  }\n  #matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n  #toFlat(sourceWhitePoint, LMS, result) {\n    result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n    result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n    result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n  }\n  #toD65(sourceWhitePoint, LMS, result) {\n    const D65X = 0.95047;\n    const D65Y = 1;\n    const D65Z = 1.08883;\n    result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n    result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n    result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n  }\n  #sRGBTransferFunction(color) {\n    if (color <= 0.0031308) {\n      return MathClamp(12.92 * color, 0, 1);\n    }\n    if (color >= 0.99554525) {\n      return 1;\n    }\n    return MathClamp((1 + 0.055) * color ** (1 / 2.4) - 0.055, 0, 1);\n  }\n  #decodeL(L) {\n    if (L < 0) {\n      return -this.#decodeL(-L);\n    }\n    if (L > 8.0) {\n      return ((L + 16) / 116) ** 3;\n    }\n    return L * CalRGBCS.#DECODE_L_CONSTANT;\n  }\n  #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n    const zeroDecodeL = this.#decodeL(0);\n    const X_DST = zeroDecodeL;\n    const X_SRC = this.#decodeL(sourceBlackPoint[0]);\n    const Y_DST = zeroDecodeL;\n    const Y_SRC = this.#decodeL(sourceBlackPoint[1]);\n    const Z_DST = zeroDecodeL;\n    const Z_SRC = this.#decodeL(sourceBlackPoint[2]);\n    const X_Scale = (1 - X_DST) / (1 - X_SRC);\n    const X_Offset = 1 - X_Scale;\n    const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    const Y_Offset = 1 - Y_Scale;\n    const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    const Z_Offset = 1 - Z_Scale;\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n  #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n    const LMS = result;\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;\n    this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n  }\n  #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    const LMS = result;\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;\n    this.#toD65(sourceWhitePoint, LMS, LMS_D65);\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n  }\n  #toRgb(src, srcOffset, dest, destOffset, scale) {\n    const A = MathClamp(src[srcOffset] * scale, 0, 1);\n    const B = MathClamp(src[srcOffset + 1] * scale, 0, 1);\n    const C = MathClamp(src[srcOffset + 2] * scale, 0, 1);\n    const AGR = A === 1 ? 1 : A ** this.GR;\n    const BGG = B === 1 ? 1 : B ** this.GG;\n    const CGB = C === 1 ? 1 : C ** this.GB;\n    const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;\n    const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;\n    const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;\n    const XYZ = CalRGBCS.#tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;\n    this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);\n    const XYZ_Black = CalRGBCS.#tempConvertMatrix1;\n    this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);\n    const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;\n    this.#normalizeWhitePointToD65(CalRGBCS.#FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n    const SRGB = CalRGBCS.#tempConvertMatrix1;\n    this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n    dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    this.#toRgb(src, srcOffset, dest, destOffset, 1);\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const scale = 1 / ((1 << bits) - 1);\n    for (let i = 0; i < count; ++i) {\n      this.#toRgb(src, srcOffset, dest, destOffset, scale);\n      srcOffset += 3;\n      destOffset += 3 + alpha01;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01) / 3 | 0;\n  }\n}\nclass LabCS extends ColorSpace {\n  constructor(whitePoint, blackPoint, range) {\n    super(\"Lab\", 3);\n    if (!whitePoint) {\n      throw new FormatError(\"WhitePoint missing - required for color space Lab\");\n    }\n    [this.XW, this.YW, this.ZW] = whitePoint;\n    [this.amin, this.amax, this.bmin, this.bmax] = range || [-100, 100, -100, 100];\n    [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      throw new FormatError(\"Invalid WhitePoint components, no fallback available\");\n    }\n    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n      info(\"Invalid BlackPoint, falling back to default\");\n      this.XB = this.YB = this.ZB = 0;\n    }\n    if (this.amin > this.amax || this.bmin > this.bmax) {\n      info(\"Invalid Range, falling back to defaults\");\n      this.amin = -100;\n      this.amax = 100;\n      this.bmin = -100;\n      this.bmax = 100;\n    }\n  }\n  #fn_g(x) {\n    return x >= 6 / 29 ? x ** 3 : 108 / 841 * (x - 4 / 29);\n  }\n  #decode(value, high1, low2, high2) {\n    return low2 + value * (high2 - low2) / high1;\n  }\n  #toRgb(src, srcOffset, maxVal, dest, destOffset) {\n    let Ls = src[srcOffset];\n    let as = src[srcOffset + 1];\n    let bs = src[srcOffset + 2];\n    if (maxVal !== false) {\n      Ls = this.#decode(Ls, maxVal, 0, 100);\n      as = this.#decode(as, maxVal, this.amin, this.amax);\n      bs = this.#decode(bs, maxVal, this.bmin, this.bmax);\n    }\n    if (as > this.amax) {\n      as = this.amax;\n    } else if (as < this.amin) {\n      as = this.amin;\n    }\n    if (bs > this.bmax) {\n      bs = this.bmax;\n    } else if (bs < this.bmin) {\n      bs = this.bmin;\n    }\n    const M = (Ls + 16) / 116;\n    const L = M + as / 500;\n    const N = M - bs / 200;\n    const X = this.XW * this.#fn_g(L);\n    const Y = this.YW * this.#fn_g(M);\n    const Z = this.ZW * this.#fn_g(N);\n    let r, g, b;\n    if (this.ZW < 1) {\n      r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n      b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n    } else {\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n    }\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    this.#toRgb(src, srcOffset, false, dest, destOffset);\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const maxVal = (1 << bits) - 1;\n    for (let i = 0; i < count; i++) {\n      this.#toRgb(src, srcOffset, maxVal, dest, destOffset);\n      srcOffset += 3;\n      destOffset += 3 + alpha01;\n    }\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01) / 3 | 0;\n  }\n  isDefaultDecode(decode, bpc) {\n    return true;\n  }\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", false);\n  }\n}\n\n;// ./src/core/icc_colorspace.js\n\n\n\n\n\n\n\n\n\nfunction fetchSync(url) {\n  const xhr = new XMLHttpRequest();\n  xhr.open(\"GET\", url, false);\n  xhr.responseType = \"arraybuffer\";\n  xhr.send(null);\n  return xhr.response;\n}\nclass IccColorSpace extends ColorSpace {\n  #transformer;\n  #convertPixel;\n  static #useWasm = true;\n  static #wasmUrl = null;\n  static #finalizer = null;\n  constructor(iccProfile, name, numComps) {\n    if (!IccColorSpace.isUsable) {\n      throw new Error(\"No ICC color space support\");\n    }\n    super(name, numComps);\n    let inType;\n    switch (numComps) {\n      case 1:\n        inType = DataType.Gray8;\n        this.#convertPixel = (src, srcOffset, css) => qcms_convert_one(this.#transformer, src[srcOffset] * 255, css);\n        break;\n      case 3:\n        inType = DataType.RGB8;\n        this.#convertPixel = (src, srcOffset, css) => qcms_convert_three(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, css);\n        break;\n      case 4:\n        inType = DataType.CMYK;\n        this.#convertPixel = (src, srcOffset, css) => qcms_convert_four(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, src[srcOffset + 3] * 255, css);\n        break;\n      default:\n        throw new Error(`Unsupported number of components: ${numComps}`);\n    }\n    this.#transformer = qcms_transformer_from_memory(iccProfile, inType, Intent.Perceptual);\n    if (!this.#transformer) {\n      throw new Error(\"Failed to create ICC color space\");\n    }\n    IccColorSpace.#finalizer ||= new FinalizationRegistry(transformer => {\n      qcms_drop_transformer(transformer);\n    });\n    IccColorSpace.#finalizer.register(this, this.#transformer);\n  }\n  getRgbHex(src, srcOffset) {\n    this.#convertPixel(src, srcOffset, true);\n    return QCMS._cssColor;\n  }\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    QCMS._destBuffer = dest;\n    QCMS._destOffset = destOffset;\n    QCMS._destLength = 3;\n    this.#convertPixel(src, srcOffset, false);\n    QCMS._destBuffer = null;\n  }\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    src = src.subarray(srcOffset, srcOffset + count * this.numComps);\n    if (bits !== 8) {\n      const scale = 255 / ((1 << bits) - 1);\n      for (let i = 0, ii = src.length; i < ii; i++) {\n        src[i] *= scale;\n      }\n    }\n    QCMS._mustAddAlpha = alpha01 && dest.buffer === src.buffer;\n    QCMS._destBuffer = dest;\n    QCMS._destOffset = destOffset;\n    QCMS._destLength = count * (3 + alpha01);\n    qcms_convert_array(this.#transformer, src);\n    QCMS._mustAddAlpha = false;\n    QCMS._destBuffer = null;\n  }\n  getOutputLength(inputLength, alpha01) {\n    return inputLength / this.numComps * (3 + alpha01) | 0;\n  }\n  static setOptions({\n    useWasm,\n    useWorkerFetch,\n    wasmUrl\n  }) {\n    if (!useWorkerFetch) {\n      this.#useWasm = false;\n      return;\n    }\n    this.#useWasm = useWasm;\n    this.#wasmUrl = wasmUrl;\n  }\n  static get isUsable() {\n    let isUsable = false;\n    if (this.#useWasm) {\n      if (this.#wasmUrl) {\n        try {\n          this._module = initSync({\n            module: fetchSync(`${this.#wasmUrl}qcms_bg.wasm`)\n          });\n          isUsable = !!this._module;\n          QCMS._memory = this._module.memory;\n          QCMS._makeHexColor = Util.makeHexColor.bind(Util);\n        } catch (e) {\n          warn(`ICCBased color space: \"${e}\".`);\n        }\n      } else {\n        warn(\"No ICC color space support due to missing `wasmUrl` API option\");\n      }\n    }\n    return shadow(this, \"isUsable\", isUsable);\n  }\n}\nclass CmykICCBasedCS extends IccColorSpace {\n  static #iccUrl;\n  constructor() {\n    const iccProfile = new Uint8Array(fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`));\n    super(iccProfile, \"DeviceCMYK\", 4);\n  }\n  static setOptions({\n    iccUrl\n  }) {\n    this.#iccUrl = iccUrl;\n  }\n  static get isUsable() {\n    let isUsable = false;\n    if (IccColorSpace.isUsable) {\n      if (this.#iccUrl) {\n        isUsable = true;\n      } else {\n        warn(\"No CMYK ICC profile support due to missing `iccUrl` API option\");\n      }\n    }\n    return shadow(this, \"isUsable\", isUsable);\n  }\n}\n\n;// ./src/core/stream.js\n\n\n\n\n\n\n\nclass Stream extends BaseStream {\n  constructor(arrayBuffer, start, length, dict) {\n    super();\n    this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n  get length() {\n    return this.end - this.start;\n  }\n  get isEmpty() {\n    return this.length === 0;\n  }\n  getByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n    return this.bytes[this.pos++];\n  }\n  getBytes(length) {\n    const pos = this.pos;\n    const endPos = !length ? this.end : Math.min(pos + length, this.end);\n    this.pos = endPos;\n    return this.bytes.subarray(pos, endPos);\n  }\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n    if (end > this.end) {\n      end = this.end;\n    }\n    return this.bytes.subarray(begin, end);\n  }\n  reset() {\n    this.pos = this.start;\n  }\n  moveStart() {\n    this.start = this.pos;\n  }\n  makeSubStream(start, length, dict = null) {\n    return new Stream(this.bytes.buffer, start, length, dict);\n  }\n  clone() {\n    return new Stream(this.bytes.buffer, this.start, this.length, this.dict?.clone());\n  }\n}\nclass StringStream extends Stream {\n  constructor(str, dict = null) {\n    super(stringToBytes(str), NaN, NaN, dict);\n  }\n}\nclass NullStream extends Stream {\n  constructor() {\n    super(new Uint8Array(0));\n  }\n}\n\n;// ./src/core/chunked_stream.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass ChunkedStream extends Stream {\n  progressiveDataLength = 0;\n  _lastSuccessfulEnsureByteChunk = -1;\n  _loadedChunks = new Set();\n  constructor(length, chunkSize, manager) {\n    super(new Uint8Array(length), 0, length, null);\n    this.chunkSize = chunkSize;\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n  }\n  getMissingChunks() {\n    const chunks = [];\n    for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        chunks.push(chunk);\n      }\n    }\n    return chunks;\n  }\n  get numChunksLoaded() {\n    return this._loadedChunks.size;\n  }\n  get isDataLoaded() {\n    return this.numChunksLoaded === this.numChunks;\n  }\n  onReceiveData(begin, chunk) {\n    const chunkSize = this.chunkSize;\n    if (begin % chunkSize !== 0) {\n      throw new Error(`Bad begin offset: ${begin}`);\n    }\n    const end = begin + chunk.byteLength;\n    if (end % chunkSize !== 0 && end !== this.bytes.length) {\n      throw new Error(`Bad end offset: ${end}`);\n    }\n    this.bytes.set(new Uint8Array(chunk), begin);\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      this._loadedChunks.add(curChunk);\n    }\n  }\n  onReceiveProgressiveData(data) {\n    let position = this.progressiveDataLength;\n    const beginChunk = Math.floor(position / this.chunkSize);\n    this.bytes.set(new Uint8Array(data), position);\n    position += data.byteLength;\n    this.progressiveDataLength = position;\n    const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      this._loadedChunks.add(curChunk);\n    }\n  }\n  ensureByte(pos) {\n    if (pos < this.progressiveDataLength) {\n      return;\n    }\n    const chunk = Math.floor(pos / this.chunkSize);\n    if (chunk > this.numChunks) {\n      return;\n    }\n    if (chunk === this._lastSuccessfulEnsureByteChunk) {\n      return;\n    }\n    if (!this._loadedChunks.has(chunk)) {\n      throw new MissingDataException(pos, pos + 1);\n    }\n    this._lastSuccessfulEnsureByteChunk = chunk;\n  }\n  ensureRange(begin, end) {\n    if (begin >= end) {\n      return;\n    }\n    if (end <= this.progressiveDataLength) {\n      return;\n    }\n    const beginChunk = Math.floor(begin / this.chunkSize);\n    if (beginChunk > this.numChunks) {\n      return;\n    }\n    const endChunk = Math.min(Math.floor((end - 1) / this.chunkSize) + 1, this.numChunks);\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        throw new MissingDataException(begin, end);\n      }\n    }\n  }\n  nextEmptyChunk(beginChunk) {\n    const numChunks = this.numChunks;\n    for (let i = 0; i < numChunks; ++i) {\n      const chunk = (beginChunk + i) % numChunks;\n      if (!this._loadedChunks.has(chunk)) {\n        return chunk;\n      }\n    }\n    return null;\n  }\n  hasChunk(chunk) {\n    return this._loadedChunks.has(chunk);\n  }\n  getByte() {\n    const pos = this.pos;\n    if (pos >= this.end) {\n      return -1;\n    }\n    if (pos >= this.progressiveDataLength) {\n      this.ensureByte(pos);\n    }\n    return this.bytes[this.pos++];\n  }\n  getBytes(length) {\n    const pos = this.pos;\n    const endPos = !length ? this.end : Math.min(pos + length, this.end);\n    if (endPos > this.progressiveDataLength) {\n      this.ensureRange(pos, endPos);\n    }\n    this.pos = endPos;\n    return this.bytes.subarray(pos, endPos);\n  }\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n    if (end > this.end) {\n      end = this.end;\n    }\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(begin, end);\n    }\n    return this.bytes.subarray(begin, end);\n  }\n  makeSubStream(start, length, dict = null) {\n    if (length) {\n      if (start + length > this.progressiveDataLength) {\n        this.ensureRange(start, start + length);\n      }\n    } else if (start >= this.progressiveDataLength) {\n      this.ensureByte(start);\n    }\n    function ChunkedStreamSubstream() {}\n    ChunkedStreamSubstream.prototype = Object.create(this);\n    ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n      const chunkSize = this.chunkSize;\n      const beginChunk = Math.floor(this.start / chunkSize);\n      const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n      const missingChunks = [];\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this._loadedChunks.has(chunk)) {\n          missingChunks.push(chunk);\n        }\n      }\n      return missingChunks;\n    };\n    Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n      get() {\n        if (this.numChunksLoaded === this.numChunks) {\n          return true;\n        }\n        return this.getMissingChunks().length === 0;\n      },\n      configurable: true\n    });\n    const subStream = new ChunkedStreamSubstream();\n    subStream.pos = subStream.start = start;\n    subStream.end = start + length || this.end;\n    subStream.dict = dict;\n    return subStream;\n  }\n  getBaseStreams() {\n    return [this];\n  }\n}\nclass ChunkedStreamManager {\n  #aborted = false;\n  currRequestId = 0;\n  _chunksNeededByRequest = new Map();\n  #loadedStreamCapability = Promise.withResolvers();\n  _promisesByRequest = new Map();\n  _requestsByChunk = new Map();\n  constructor(pdfStream, args) {\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfStream = pdfStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n  }\n  async sendRequest(begin, end) {\n    const rangeReader = this.pdfStream.getRangeReader(begin, end);\n    let chunks = [];\n    while (true) {\n      const {\n        value,\n        done\n      } = await rangeReader.read();\n      if (this.#aborted) {\n        chunks = null;\n        return;\n      }\n      if (done) {\n        break;\n      }\n      chunks.push(value);\n    }\n    if (chunks.length === 0 && this.disableAutoFetch) {\n      return;\n    }\n    const data = arrayBuffersToBytes(chunks);\n    chunks = null;\n    this.onReceiveData({\n      chunk: data.buffer,\n      begin\n    });\n  }\n  requestAllChunks(noFetch = false) {\n    if (!noFetch) {\n      const missingChunks = this.stream.getMissingChunks();\n      this._requestChunks(missingChunks);\n    }\n    return this.#loadedStreamCapability.promise;\n  }\n  _requestChunks(chunks) {\n    const requestId = this.currRequestId++;\n    const chunksNeeded = new Set();\n    this._chunksNeededByRequest.set(requestId, chunksNeeded);\n    for (const chunk of chunks) {\n      if (!this.stream.hasChunk(chunk)) {\n        chunksNeeded.add(chunk);\n      }\n    }\n    if (chunksNeeded.size === 0) {\n      return Promise.resolve();\n    }\n    const capability = Promise.withResolvers();\n    this._promisesByRequest.set(requestId, capability);\n    const chunksToRequest = [];\n    for (const chunk of chunksNeeded) {\n      const requestIds = this._requestsByChunk.getOrInsertComputed(chunk, () => {\n        chunksToRequest.push(chunk);\n        return [];\n      });\n      requestIds.push(requestId);\n    }\n    if (chunksToRequest.length > 0) {\n      const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n      for (const groupedChunk of groupedChunksToRequest) {\n        const begin = groupedChunk.beginChunk * this.chunkSize;\n        const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n        this.sendRequest(begin, end).catch(capability.reject);\n      }\n    }\n    return capability.promise.catch(reason => {\n      if (this.#aborted) {\n        return;\n      }\n      throw reason;\n    });\n  }\n  getStream() {\n    return this.stream;\n  }\n  requestRange(begin, end) {\n    end = Math.min(end, this.length);\n    const beginChunk = this.getBeginChunk(begin);\n    const endChunk = this.getEndChunk(end);\n    const chunks = [];\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      chunks.push(chunk);\n    }\n    return this._requestChunks(chunks);\n  }\n  requestRanges(ranges = []) {\n    const chunksToRequest = [];\n    for (const range of ranges) {\n      const beginChunk = this.getBeginChunk(range.begin);\n      const endChunk = this.getEndChunk(range.end);\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!chunksToRequest.includes(chunk)) {\n          chunksToRequest.push(chunk);\n        }\n      }\n    }\n    chunksToRequest.sort((a, b) => a - b);\n    return this._requestChunks(chunksToRequest);\n  }\n  groupChunks(chunks) {\n    const groupedChunks = [];\n    let beginChunk = -1;\n    let prevChunk = -1;\n    for (let i = 0, ii = chunks.length; i < ii; ++i) {\n      const chunk = chunks[i];\n      if (beginChunk < 0) {\n        beginChunk = chunk;\n      }\n      if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n        groupedChunks.push({\n          beginChunk,\n          endChunk: prevChunk + 1\n        });\n        beginChunk = chunk;\n      }\n      if (i + 1 === chunks.length) {\n        groupedChunks.push({\n          beginChunk,\n          endChunk: chunk + 1\n        });\n      }\n      prevChunk = chunk;\n    }\n    return groupedChunks;\n  }\n  onReceiveData(args) {\n    const {\n      chunkSize,\n      length,\n      stream\n    } = this;\n    const chunk = args.chunk;\n    const isProgressive = args.begin === undefined;\n    const begin = isProgressive ? stream.progressiveDataLength : args.begin;\n    const end = begin + chunk.byteLength;\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = end < length ? Math.floor(end / chunkSize) : Math.ceil(end / chunkSize);\n    if (isProgressive) {\n      stream.onReceiveProgressiveData(chunk);\n    } else {\n      stream.onReceiveData(begin, chunk);\n    }\n    if (stream.isDataLoaded) {\n      this.#loadedStreamCapability.resolve(stream);\n    }\n    const loadedRequests = [];\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      const requestIds = this._requestsByChunk.get(curChunk);\n      if (!requestIds) {\n        continue;\n      }\n      this._requestsByChunk.delete(curChunk);\n      for (const requestId of requestIds) {\n        const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n        if (chunksNeeded.has(curChunk)) {\n          chunksNeeded.delete(curChunk);\n        }\n        if (chunksNeeded.size > 0) {\n          continue;\n        }\n        loadedRequests.push(requestId);\n      }\n    }\n    if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n      let nextEmptyChunk;\n      if (stream.numChunksLoaded === 1) {\n        const lastChunk = stream.numChunks - 1;\n        if (!stream.hasChunk(lastChunk)) {\n          nextEmptyChunk = lastChunk;\n        }\n      } else {\n        nextEmptyChunk = stream.nextEmptyChunk(endChunk);\n      }\n      if (Number.isInteger(nextEmptyChunk)) {\n        this._requestChunks([nextEmptyChunk]);\n      }\n    }\n    for (const requestId of loadedRequests) {\n      const capability = this._promisesByRequest.get(requestId);\n      this._promisesByRequest.delete(requestId);\n      capability.resolve();\n    }\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: MathClamp(stream.numChunksLoaded * chunkSize, stream.progressiveDataLength, length),\n      total: length\n    });\n  }\n  getBeginChunk(begin) {\n    return Math.floor(begin / this.chunkSize);\n  }\n  getEndChunk(end) {\n    return Math.floor((end - 1) / this.chunkSize) + 1;\n  }\n  abort(reason) {\n    this.#aborted = true;\n    this.pdfStream?.cancelAllRequests(reason);\n    for (const capability of this._promisesByRequest.values()) {\n      capability.reject(reason);\n    }\n    this.#loadedStreamCapability.reject(reason);\n  }\n}\n\n;// ./src/shared/image_utils.js\n\n\nfunction convertToRGBA(params) {\n  switch (params.kind) {\n    case ImageKind.GRAYSCALE_1BPP:\n      return convertBlackAndWhiteToRGBA(params);\n    case 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 = FeatureTest.isLittleEndian ? 0xff000000 : 0xff;\n  if (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 (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/core/image_resizer.js\n\n\n\n\n\n\n\n\nconst MIN_IMAGE_DIM = 2048;\nconst MAX_IMAGE_DIM = 32768;\nconst MAX_ERROR = 128;\nclass ImageResizer {\n  static #goodSquareLength = MIN_IMAGE_DIM;\n  static #isImageDecoderSupported = FeatureTest.isImageDecoderSupported;\n  constructor(imgData, isMask) {\n    this._imgData = imgData;\n    this._isMask = isMask;\n  }\n  static get canUseImageDecoder() {\n    return shadow(this, \"canUseImageDecoder\", this.#isImageDecoderSupported ? ImageDecoder.isTypeSupported(\"image/bmp\") : Promise.resolve(false));\n  }\n  static needsToBeResized(width, height) {\n    if (width <= this.#goodSquareLength && height <= this.#goodSquareLength) {\n      return false;\n    }\n    const {\n      MAX_DIM\n    } = this;\n    if (width > MAX_DIM || height > MAX_DIM) {\n      return true;\n    }\n    const area = width * height;\n    if (this._hasMaxArea) {\n      return area > this.MAX_AREA;\n    }\n    if (area < this.#goodSquareLength ** 2) {\n      return false;\n    }\n    if (this._areGoodDims(width, height)) {\n      this.#goodSquareLength = Math.max(this.#goodSquareLength, Math.floor(Math.sqrt(width * height)));\n      return false;\n    }\n    this.#goodSquareLength = this._guessMax(this.#goodSquareLength, MAX_DIM, MAX_ERROR, 0);\n    const maxArea = this.MAX_AREA = this.#goodSquareLength ** 2;\n    return area > maxArea;\n  }\n  static getReducePowerForJPX(width, height, componentsCount) {\n    const area = width * height;\n    const maxJPXArea = 2 ** 30 / (componentsCount * 4);\n    if (!this.needsToBeResized(width, height)) {\n      if (area > maxJPXArea) {\n        return Math.ceil(Math.log2(area / maxJPXArea));\n      }\n      return 0;\n    }\n    const {\n      MAX_DIM,\n      MAX_AREA\n    } = this;\n    const minFactor = Math.max(width / MAX_DIM, height / MAX_DIM, Math.sqrt(area / Math.min(maxJPXArea, MAX_AREA)));\n    return Math.ceil(Math.log2(minFactor));\n  }\n  static get MAX_DIM() {\n    return shadow(this, \"MAX_DIM\", this._guessMax(MIN_IMAGE_DIM, MAX_IMAGE_DIM, 0, 1));\n  }\n  static get MAX_AREA() {\n    this._hasMaxArea = true;\n    return shadow(this, \"MAX_AREA\", this._guessMax(this.#goodSquareLength, this.MAX_DIM, MAX_ERROR, 0) ** 2);\n  }\n  static set MAX_AREA(area) {\n    if (area >= 0) {\n      this._hasMaxArea = true;\n      shadow(this, \"MAX_AREA\", area);\n    }\n  }\n  static setOptions({\n    canvasMaxAreaInBytes = -1,\n    isImageDecoderSupported = false\n  }) {\n    if (!this._hasMaxArea) {\n      this.MAX_AREA = canvasMaxAreaInBytes >> 2;\n    }\n    this.#isImageDecoderSupported = isImageDecoderSupported;\n  }\n  static _areGoodDims(width, height) {\n    try {\n      const canvas = new OffscreenCanvas(width, height);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.fillRect(0, 0, 1, 1);\n      const opacity = ctx.getImageData(0, 0, 1, 1).data[3];\n      canvas.width = canvas.height = 1;\n      return opacity !== 0;\n    } catch {\n      return false;\n    }\n  }\n  static _guessMax(start, end, tolerance, defaultHeight) {\n    while (start + tolerance + 1 < end) {\n      const middle = Math.floor((start + end) / 2);\n      const height = defaultHeight || middle;\n      if (this._areGoodDims(middle, height)) {\n        start = middle;\n      } else {\n        end = middle;\n      }\n    }\n    return start;\n  }\n  static async createImage(imgData, isMask = false) {\n    return new ImageResizer(imgData, isMask)._createImage();\n  }\n  async _createImage() {\n    const {\n      _imgData: imgData\n    } = this;\n    const {\n      width,\n      height\n    } = imgData;\n    if (width * height * 4 > MAX_INT_32) {\n      const result = this.#rescaleImageData();\n      if (result) {\n        return result;\n      }\n    }\n    const data = this._encodeBMP();\n    let decoder, imagePromise;\n    if (await ImageResizer.canUseImageDecoder) {\n      decoder = new ImageDecoder({\n        data,\n        type: \"image/bmp\",\n        preferAnimation: false,\n        transfer: [data.buffer]\n      });\n      imagePromise = decoder.decode().catch(reason => {\n        warn(`BMP image decoding failed: ${reason}`);\n        return createImageBitmap(new Blob([this._encodeBMP().buffer], {\n          type: \"image/bmp\"\n        }));\n      }).finally(() => {\n        decoder.close();\n      });\n    } else {\n      imagePromise = createImageBitmap(new Blob([data.buffer], {\n        type: \"image/bmp\"\n      }));\n    }\n    const {\n      MAX_AREA,\n      MAX_DIM\n    } = ImageResizer;\n    const minFactor = Math.max(width / MAX_DIM, height / MAX_DIM, Math.sqrt(width * height / MAX_AREA));\n    const firstFactor = Math.max(minFactor, 2);\n    const factor = Math.round(10 * (minFactor + 1.25)) / 10 / firstFactor;\n    const N = Math.floor(Math.log2(factor));\n    const steps = new Array(N + 2).fill(2);\n    steps[0] = firstFactor;\n    steps.splice(-1, 1, factor / (1 << N));\n    let newWidth = width;\n    let newHeight = height;\n    const result = await imagePromise;\n    let bitmap = result.image || result;\n    for (const step of steps) {\n      const prevWidth = newWidth;\n      const prevHeight = newHeight;\n      newWidth = Math.floor(newWidth / step);\n      newHeight = Math.floor(newHeight / step);\n      const canvas = new OffscreenCanvas(newWidth, newHeight);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n      bitmap.close();\n      bitmap = canvas.transferToImageBitmap();\n    }\n    imgData.data = null;\n    imgData.bitmap = bitmap;\n    imgData.width = newWidth;\n    imgData.height = newHeight;\n    return imgData;\n  }\n  #rescaleImageData() {\n    const {\n      _imgData: imgData\n    } = this;\n    const {\n      data,\n      width,\n      height,\n      kind\n    } = imgData;\n    const rgbaSize = width * height * 4;\n    const K = Math.ceil(Math.log2(rgbaSize / MAX_INT_32));\n    const newWidth = width >> K;\n    const newHeight = height >> K;\n    let rgbaData;\n    let maxHeight = height;\n    try {\n      rgbaData = new Uint8Array(rgbaSize);\n    } catch {\n      let n = Math.floor(Math.log2(rgbaSize + 1));\n      while (true) {\n        try {\n          rgbaData = new Uint8Array(2 ** n - 1);\n          break;\n        } catch {\n          n -= 1;\n        }\n      }\n      maxHeight = Math.floor((2 ** n - 1) / (width * 4));\n      const newSize = width * maxHeight * 4;\n      if (newSize < rgbaData.length) {\n        rgbaData = new Uint8Array(newSize);\n      }\n    }\n    const src32 = new Uint32Array(rgbaData.buffer);\n    const dest32 = new Uint32Array(newWidth * newHeight);\n    let srcPos = 0;\n    let newIndex = 0;\n    const step = Math.ceil(height / maxHeight);\n    const remainder = height % maxHeight === 0 ? height : height % maxHeight;\n    for (let k = 0; k < step; k++) {\n      const h = k < step - 1 ? maxHeight : remainder;\n      ({\n        srcPos\n      } = convertToRGBA({\n        kind,\n        src: data,\n        dest: src32,\n        width,\n        height: h,\n        inverseDecode: this._isMask,\n        srcPos\n      }));\n      for (let i = 0, ii = h >> K; i < ii; i++) {\n        const buf = src32.subarray((i << K) * width);\n        for (let j = 0; j < newWidth; j++) {\n          dest32[newIndex++] = buf[j << K];\n        }\n      }\n    }\n    if (ImageResizer.needsToBeResized(newWidth, newHeight)) {\n      imgData.data = dest32;\n      imgData.width = newWidth;\n      imgData.height = newHeight;\n      imgData.kind = ImageKind.RGBA_32BPP;\n      return null;\n    }\n    const canvas = new OffscreenCanvas(newWidth, newHeight);\n    const ctx = canvas.getContext(\"2d\", {\n      willReadFrequently: true\n    });\n    ctx.putImageData(new ImageData(new Uint8ClampedArray(dest32.buffer), newWidth, newHeight), 0, 0);\n    imgData.data = null;\n    imgData.bitmap = canvas.transferToImageBitmap();\n    imgData.width = newWidth;\n    imgData.height = newHeight;\n    return imgData;\n  }\n  _encodeBMP() {\n    const {\n      width,\n      height,\n      kind\n    } = this._imgData;\n    let data = this._imgData.data;\n    let bitPerPixel;\n    let colorTable = new Uint8Array(0);\n    let maskTable = colorTable;\n    let compression = 0;\n    switch (kind) {\n      case ImageKind.GRAYSCALE_1BPP:\n        {\n          bitPerPixel = 1;\n          colorTable = new Uint8Array(this._isMask ? [255, 255, 255, 255, 0, 0, 0, 0] : [0, 0, 0, 0, 255, 255, 255, 255]);\n          const rowLen = width + 7 >> 3;\n          const rowSize = rowLen + 3 & -4;\n          if (rowLen !== rowSize) {\n            const newData = new Uint8Array(rowSize * height);\n            let k = 0;\n            for (let i = 0, ii = height * rowLen; i < ii; i += rowLen, k += rowSize) {\n              newData.set(data.subarray(i, i + rowLen), k);\n            }\n            data = newData;\n          }\n          break;\n        }\n      case ImageKind.RGB_24BPP:\n        {\n          bitPerPixel = 24;\n          if (width & 3) {\n            const rowLen = 3 * width;\n            const rowSize = rowLen + 3 & -4;\n            const extraLen = rowSize - rowLen;\n            const newData = new Uint8Array(rowSize * height);\n            let k = 0;\n            for (let i = 0, ii = height * rowLen; i < ii; i += rowLen) {\n              const row = data.subarray(i, i + rowLen);\n              for (let j = 0; j < rowLen; j += 3) {\n                newData[k++] = row[j + 2];\n                newData[k++] = row[j + 1];\n                newData[k++] = row[j];\n              }\n              k += extraLen;\n            }\n            data = newData;\n          } else {\n            for (let i = 0, ii = data.length; i < ii; i += 3) {\n              const tmp = data[i];\n              data[i] = data[i + 2];\n              data[i + 2] = tmp;\n            }\n          }\n          break;\n        }\n      case ImageKind.RGBA_32BPP:\n        bitPerPixel = 32;\n        compression = 3;\n        maskTable = new Uint8Array(4 + 4 + 4 + 4 + 52);\n        const view = new DataView(maskTable.buffer);\n        if (FeatureTest.isLittleEndian) {\n          view.setUint32(0, 0x000000ff, true);\n          view.setUint32(4, 0x0000ff00, true);\n          view.setUint32(8, 0x00ff0000, true);\n          view.setUint32(12, 0xff000000, true);\n        } else {\n          view.setUint32(0, 0xff000000, true);\n          view.setUint32(4, 0x00ff0000, true);\n          view.setUint32(8, 0x0000ff00, true);\n          view.setUint32(12, 0x000000ff, true);\n        }\n        break;\n      default:\n        throw new Error(\"invalid format\");\n    }\n    let i = 0;\n    const headerLength = 40 + maskTable.length;\n    const fileLength = 14 + headerLength + colorTable.length + data.length;\n    const bmpData = new Uint8Array(fileLength);\n    const view = new DataView(bmpData.buffer);\n    view.setUint16(i, 0x4d42, true);\n    i += 2;\n    view.setUint32(i, fileLength, true);\n    i += 4;\n    view.setUint32(i, 0, true);\n    i += 4;\n    view.setUint32(i, 14 + headerLength + colorTable.length, true);\n    i += 4;\n    view.setUint32(i, headerLength, true);\n    i += 4;\n    view.setInt32(i, width, true);\n    i += 4;\n    view.setInt32(i, -height, true);\n    i += 4;\n    view.setUint16(i, 1, true);\n    i += 2;\n    view.setUint16(i, bitPerPixel, true);\n    i += 2;\n    view.setUint32(i, compression, true);\n    i += 4;\n    view.setUint32(i, 0, true);\n    i += 4;\n    view.setInt32(i, 0, true);\n    i += 4;\n    view.setInt32(i, 0, true);\n    i += 4;\n    view.setUint32(i, colorTable.length / 4, true);\n    i += 4;\n    view.setUint32(i, 0, true);\n    i += 4;\n    bmpData.set(maskTable, i);\n    i += maskTable.length;\n    bmpData.set(colorTable, i);\n    i += colorTable.length;\n    bmpData.set(data, i);\n    return bmpData;\n  }\n}\n\n;// ./src/core/decode_stream.js\n\n\n\n\n\n\n\n\n\n\n\nconst emptyBuffer = new Uint8Array(0);\nclass DecodeStream extends BaseStream {\n  buffer = emptyBuffer;\n  bufferLength = 0;\n  eof = false;\n  minBufferLength = 512;\n  pos = 0;\n  constructor(maybeMinBufferLength) {\n    super();\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n    if (maybeMinBufferLength) {\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n  readBlock() {\n    unreachable(\"Abstract method `readBlock` called\");\n  }\n  get isEmpty() {\n    while (!this.eof && this.bufferLength === 0) {\n      this.readBlock();\n    }\n    return this.bufferLength === 0;\n  }\n  ensureBuffer(requested) {\n    const buffer = this.buffer;\n    if (requested <= buffer.byteLength) {\n      return buffer;\n    }\n    let size = this.minBufferLength;\n    while (size < requested) {\n      size *= 2;\n    }\n    const buffer2 = new Uint8Array(size);\n    buffer2.set(buffer);\n    return this.buffer = buffer2;\n  }\n  getByte() {\n    const pos = this.pos;\n    while (this.bufferLength <= pos) {\n      if (this.eof) {\n        return -1;\n      }\n      this.readBlock();\n    }\n    return this.buffer[this.pos++];\n  }\n  getBytes(length, decoderOptions = null) {\n    const pos = this.pos;\n    let end;\n    if (length) {\n      this.ensureBuffer(pos + length);\n      end = pos + length;\n      while (!this.eof && this.bufferLength < end) {\n        this.readBlock(decoderOptions);\n      }\n      const bufEnd = this.bufferLength;\n      if (end > bufEnd) {\n        end = bufEnd;\n      }\n    } else {\n      while (!this.eof) {\n        this.readBlock(decoderOptions);\n      }\n      end = this.bufferLength;\n    }\n    this.pos = end;\n    return this.buffer.subarray(pos, end);\n  }\n  async getImageData(length, decoderOptions) {\n    if (!this.canAsyncDecodeImageFromBuffer) {\n      if (this.isAsyncDecoder) {\n        return this.decodeImage(null, length, decoderOptions);\n      }\n      return this.getBytes(length, decoderOptions);\n    }\n    const data = await this.stream.asyncGetBytes();\n    return this.decodeImage(data, length, decoderOptions);\n  }\n  async asyncGetBytesFromDecompressionStream(name) {\n    this.stream.reset();\n    const bytes = this.stream.isAsync ? await this.stream.asyncGetBytes() : this.stream.getBytes();\n    try {\n      const {\n        readable,\n        writable\n      } = new DecompressionStream(name);\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      const chunks = [];\n      let totalLength = 0;\n      for await (const chunk of readable) {\n        chunks.push(chunk);\n        totalLength += chunk.byteLength;\n      }\n      const data = new Uint8Array(totalLength);\n      let offset = 0;\n      for (const chunk of chunks) {\n        data.set(chunk, offset);\n        offset += chunk.byteLength;\n      }\n      return {\n        decompressed: data,\n        compressed: bytes\n      };\n    } catch {\n      return {\n        decompressed: null,\n        compressed: bytes\n      };\n    }\n  }\n  reset() {\n    this.pos = 0;\n  }\n  makeSubStream(start, length, dict = null) {\n    if (length === undefined) {\n      while (!this.eof) {\n        this.readBlock();\n      }\n    } else {\n      const end = start + length;\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n    }\n    return new Stream(this.buffer, start, length, dict);\n  }\n  clone() {\n    while (!this.eof) {\n      this.readBlock();\n    }\n    return new Stream(this.buffer, 0, this.bufferLength, this.dict?.clone());\n  }\n  getBaseStreams() {\n    return this.stream ? this.stream.getBaseStreams() : null;\n  }\n}\nclass StreamsSequenceStream extends DecodeStream {\n  constructor(streams, onError = null) {\n    streams = streams.filter(s => s instanceof BaseStream && !s.isImageStream);\n    let maybeLength = 0;\n    for (const stream of streams) {\n      maybeLength += stream instanceof DecodeStream ? stream._rawMinBufferLength : stream.length;\n    }\n    super(maybeLength);\n    this.streams = streams;\n    this._onError = onError;\n  }\n  readBlock() {\n    const streams = this.streams;\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n    const stream = streams.shift();\n    let chunk;\n    try {\n      chunk = stream.getBytes();\n    } catch (reason) {\n      if (this._onError) {\n        this._onError(reason, stream.dict?.objId);\n        return;\n      }\n      throw reason;\n    }\n    const bufferLength = this.bufferLength;\n    const newLength = bufferLength + chunk.length;\n    const buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  }\n  getBaseStreams() {\n    const baseStreamsBuf = [];\n    for (const stream of this.streams) {\n      const baseStreams = stream.getBaseStreams();\n      if (baseStreams) {\n        baseStreamsBuf.push(...baseStreams);\n      }\n    }\n    return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n  }\n}\n\n;// ./src/core/colorspace_utils.js\n\n\n\n\n\n\nclass ColorSpaceUtils {\n  static parse({\n    cs,\n    xref,\n    resources = null,\n    pdfFunctionFactory,\n    globalColorSpaceCache,\n    localColorSpaceCache,\n    asyncIfNotCached = false\n  }) {\n    const options = {\n      xref,\n      resources,\n      pdfFunctionFactory,\n      globalColorSpaceCache,\n      localColorSpaceCache\n    };\n    let csName, csRef, parsedCS;\n    if (cs instanceof Ref) {\n      csRef = cs;\n      const cachedCS = globalColorSpaceCache.getByRef(csRef) || localColorSpaceCache.getByRef(csRef);\n      if (cachedCS) {\n        return cachedCS;\n      }\n      cs = xref.fetch(cs);\n    }\n    if (cs instanceof Name) {\n      csName = cs.name;\n      const cachedCS = localColorSpaceCache.getByName(csName);\n      if (cachedCS) {\n        return cachedCS;\n      }\n    }\n    try {\n      parsedCS = this.#parse(cs, options);\n    } catch (ex) {\n      if (asyncIfNotCached && !(ex instanceof MissingDataException)) {\n        return Promise.reject(ex);\n      }\n      throw ex;\n    }\n    if (csName || csRef) {\n      localColorSpaceCache.set(csName, csRef, parsedCS);\n      if (csRef) {\n        globalColorSpaceCache.set(null, csRef, parsedCS);\n      }\n    }\n    return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS;\n  }\n  static #subParse(cs, options) {\n    const {\n      globalColorSpaceCache\n    } = options;\n    let csRef;\n    if (cs instanceof Ref) {\n      csRef = cs;\n      const cachedCS = globalColorSpaceCache.getByRef(csRef);\n      if (cachedCS) {\n        return cachedCS;\n      }\n    }\n    const parsedCS = this.#parse(cs, options);\n    if (csRef) {\n      globalColorSpaceCache.set(null, csRef, parsedCS);\n    }\n    return parsedCS;\n  }\n  static #parse(cs, options) {\n    const {\n      xref,\n      resources,\n      pdfFunctionFactory,\n      globalColorSpaceCache\n    } = options;\n    cs = xref.fetchIfRef(cs);\n    if (cs instanceof Name) {\n      switch (cs.name) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.gray;\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.rgb;\n        case \"DeviceRGBA\":\n          return this.rgba;\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.cmyk;\n        case \"Pattern\":\n          return new PatternCS(null);\n        default:\n          if (resources instanceof Dict) {\n            const colorSpaces = resources.get(\"ColorSpace\");\n            if (colorSpaces instanceof Dict) {\n              const resourcesCS = colorSpaces.get(cs.name);\n              if (resourcesCS) {\n                if (resourcesCS instanceof Name) {\n                  return this.#parse(resourcesCS, options);\n                }\n                cs = resourcesCS;\n                break;\n              }\n            }\n          }\n          warn(`Unrecognized ColorSpace: ${cs.name}`);\n          return this.gray;\n      }\n    }\n    if (Array.isArray(cs)) {\n      const mode = xref.fetchIfRef(cs[0]).name;\n      let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n      switch (mode) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.gray;\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.rgb;\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.cmyk;\n        case \"CalGray\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.get(\"Gamma\");\n          return new CalGrayCS(whitePoint, blackPoint, gamma);\n        case \"CalRGB\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.getArray(\"Gamma\");\n          const matrix = params.getArray(\"Matrix\");\n          return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n        case \"ICCBased\":\n          const isRef = cs[1] instanceof Ref;\n          if (isRef) {\n            const cachedCS = globalColorSpaceCache.getByRef(cs[1]);\n            if (cachedCS) {\n              return cachedCS;\n            }\n          }\n          const stream = xref.fetchIfRef(cs[1]);\n          const dict = stream.dict;\n          numComps = dict.get(\"N\");\n          if (IccColorSpace.isUsable) {\n            try {\n              const iccCS = new IccColorSpace(stream.getBytes(), \"ICCBased\", numComps);\n              if (isRef) {\n                globalColorSpaceCache.set(null, cs[1], iccCS);\n              }\n              return iccCS;\n            } catch (ex) {\n              if (ex instanceof MissingDataException) {\n                throw ex;\n              }\n              warn(`ICCBased color space (${cs[1]}): \"${ex}\".`);\n            }\n          }\n          const altRaw = dict.getRaw(\"Alternate\");\n          if (altRaw) {\n            const altCS = this.#subParse(altRaw, options);\n            if (altCS.numComps === numComps) {\n              return altCS;\n            }\n            warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n          }\n          if (numComps === 1) {\n            return this.gray;\n          } else if (numComps === 3) {\n            return this.rgb;\n          } else if (numComps === 4) {\n            return this.cmyk;\n          }\n          break;\n        case \"Pattern\":\n          baseCS = cs[1] || null;\n          if (baseCS) {\n            baseCS = this.#subParse(baseCS, options);\n          }\n          return new PatternCS(baseCS);\n        case \"I\":\n        case \"Indexed\":\n          baseCS = this.#subParse(cs[1], options);\n          const hiVal = MathClamp(xref.fetchIfRef(cs[2]), 0, 255);\n          const lookup = xref.fetchIfRef(cs[3]);\n          return new IndexedCS(baseCS, hiVal, lookup);\n        case \"Separation\":\n        case \"DeviceN\":\n          const name = xref.fetchIfRef(cs[1]);\n          numComps = Array.isArray(name) ? name.length : 1;\n          baseCS = this.#subParse(cs[2], options);\n          const tintFn = pdfFunctionFactory.create(cs[3]);\n          return new AlternateCS(numComps, baseCS, tintFn);\n        case \"Lab\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          const range = params.getArray(\"Range\");\n          return new LabCS(whitePoint, blackPoint, range);\n        default:\n          warn(`Unimplemented ColorSpace object: ${mode}`);\n          return this.gray;\n      }\n    }\n    warn(`Unrecognized ColorSpace object: ${cs}`);\n    return this.gray;\n  }\n  static get gray() {\n    return shadow(this, \"gray\", new DeviceGrayCS());\n  }\n  static get rgb() {\n    return shadow(this, \"rgb\", new DeviceRgbCS());\n  }\n  static get rgba() {\n    return shadow(this, \"rgba\", new DeviceRgbaCS());\n  }\n  static get cmyk() {\n    if (CmykICCBasedCS.isUsable) {\n      try {\n        return shadow(this, \"cmyk\", new CmykICCBasedCS());\n      } catch {\n        warn(\"CMYK fallback: DeviceCMYK\");\n      }\n    }\n    return shadow(this, \"cmyk\", new DeviceCmykCS());\n  }\n}\n\n;// ./src/core/jpg.js\n\n\n\n\n\n\n\n\n\n\nclass JpegError extends BaseException {\n  constructor(msg) {\n    super(msg, \"JpegError\");\n  }\n}\nclass DNLMarkerError extends BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n}\nclass EOIMarkerError extends BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n}\nconst dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\nconst dctCos1 = 4017;\nconst dctSin1 = 799;\nconst dctCos3 = 3406;\nconst dctSin3 = 2276;\nconst dctCos6 = 1567;\nconst dctSin6 = 3784;\nconst dctSqrt2 = 5793;\nconst dctSqrt1d2 = 2896;\nfunction buildHuffmanTable(codeLengths, values) {\n  let k = 0,\n    i,\n    j,\n    length = 16;\n  while (length > 0 && !codeLengths[length - 1]) {\n    length--;\n  }\n  const code = [{\n    children: [],\n    index: 0\n  }];\n  let p = code[0],\n    q;\n  for (i = 0; i < length; i++) {\n    for (j = 0; j < codeLengths[i]; j++) {\n      p = code.pop();\n      p.children[p.index] = values[k];\n      while (p.index > 0) {\n        p = code.pop();\n      }\n      p.index++;\n      code.push(p);\n      while (code.length <= i) {\n        code.push(q = {\n          children: [],\n          index: 0\n        });\n        p.children[p.index] = q.children;\n        p = q;\n      }\n      k++;\n    }\n    if (i + 1 < length) {\n      code.push(q = {\n        children: [],\n        index: 0\n      });\n      p.children[p.index] = q.children;\n      p = q;\n    }\n  }\n  return code[0].children;\n}\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\nfunction decodeScan(data, view, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n  const startOffset = offset;\n  let bitsData = 0,\n    bitsCount = 0;\n  function readBit() {\n    if (bitsCount > 0) {\n      bitsCount--;\n      return bitsData >> bitsCount & 1;\n    }\n    bitsData = data[offset++];\n    if (bitsData === 0xff) {\n      const nextByte = data[offset++];\n      if (nextByte) {\n        if (nextByte === 0xdc && parseDNLMarker) {\n          offset += 2;\n          const scanLines = view.getUint16(offset);\n          offset += 2;\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\"Found DNL marker (0xFFDC) while parsing scan data\", scanLines);\n          }\n        } else if (nextByte === 0xd9) {\n          if (parseDNLMarker) {\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n            if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 5) {\n              throw new DNLMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data, \" + \"possibly caused by incorrect `scanLines` parameter\", maybeScanLines);\n            }\n          }\n          throw new EOIMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data\");\n        }\n        throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);\n      }\n    }\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\n  function decodeHuffman(tree) {\n    let node = tree;\n    while (true) {\n      node = node[readBit()];\n      switch (typeof node) {\n        case \"number\":\n          return node;\n        case \"object\":\n          continue;\n      }\n      throw new JpegError(\"invalid huffman sequence\");\n    }\n  }\n  function receive(length) {\n    let n = 0;\n    while (length > 0) {\n      n = n << 1 | readBit();\n      length--;\n    }\n    return n;\n  }\n  function receiveAndExtend(length) {\n    if (length === 1) {\n      return readBit() === 1 ? 1 : -1;\n    }\n    const n = receive(length);\n    if (n >= 1 << length - 1) {\n      return n;\n    }\n    return n + (-1 << length) + 1;\n  }\n  function decodeBaseline(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t);\n    component.blockData[blockOffset] = component.pred += diff;\n    let k = 1;\n    while (k < 64) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s);\n      k++;\n    }\n  }\n  function decodeDCFirst(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n    component.blockData[blockOffset] = component.pred += diff;\n  }\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\n  let eobrun = 0;\n  function decodeACFirst(component, blockOffset) {\n    if (eobrun > 0) {\n      eobrun--;\n      return;\n    }\n    let k = spectralStart;\n    const e = spectralEnd;\n    while (k <= e) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          eobrun = receive(r) + (1 << r) - 1;\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\n  }\n  let successiveACState = 0,\n    successiveACNextValue;\n  function decodeACSuccessive(component, blockOffset) {\n    let k = spectralStart;\n    const e = spectralEnd;\n    let r = 0;\n    let s;\n    let rs;\n    while (k <= e) {\n      const offsetZ = blockOffset + dctZigZag[k];\n      const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n      switch (successiveACState) {\n        case 0:\n          rs = decodeHuffman(component.huffmanTableAC);\n          s = rs & 15;\n          r = rs >> 4;\n          if (s === 0) {\n            if (r < 15) {\n              eobrun = receive(r) + (1 << r);\n              successiveACState = 4;\n            } else {\n              r = 16;\n              successiveACState = 1;\n            }\n          } else {\n            if (s !== 1) {\n              throw new JpegError(\"invalid ACn encoding\");\n            }\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n          continue;\n        case 1:\n        case 2:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            r--;\n            if (r === 0) {\n              successiveACState = successiveACState === 2 ? 3 : 0;\n            }\n          }\n          break;\n        case 3:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            component.blockData[offsetZ] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n          break;\n        case 4:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          }\n          break;\n      }\n      k++;\n    }\n    if (successiveACState === 4) {\n      eobrun--;\n      if (eobrun === 0) {\n        successiveACState = 0;\n      }\n    }\n  }\n  let blockRow = 0;\n  function decodeMcu(component, decode, mcu, row, col) {\n    const mcuRow = mcu / mcusPerLine | 0;\n    const mcuCol = mcu % mcusPerLine;\n    blockRow = mcuRow * component.v + row;\n    const blockCol = mcuCol * component.h + col;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n  function decodeBlock(component, decode, mcu) {\n    blockRow = mcu / component.blocksPerLine | 0;\n    const blockCol = mcu % component.blocksPerLine;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n  const componentsLength = components.length;\n  let component, i, j, k, n;\n  let decodeFn;\n  if (progressive) {\n    if (spectralStart === 0) {\n      decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n    } else {\n      decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    }\n  } else {\n    decodeFn = decodeBaseline;\n  }\n  let mcu = 0,\n    fileMarker;\n  const mcuExpected = componentsLength === 1 ? components[0].blocksPerLine * components[0].blocksPerColumn : mcusPerLine * frame.mcusPerColumn;\n  let h, v;\n  while (mcu <= mcuExpected) {\n    const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n      eobrun = 0;\n      if (componentsLength === 1) {\n        component = components[0];\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n          mcu++;\n        }\n      }\n    }\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, view, offset);\n    if (!fileMarker) {\n      break;\n    }\n    if (fileMarker.invalid) {\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      warn(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);\n      offset = fileMarker.offset;\n    }\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n  return offset - startOffset;\n}\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n  const qt = component.quantizationTable,\n    blockData = component.blockData;\n  let v0, v1, v2, v3, v4, v5, v6, v7;\n  let p0, p1, p2, p3, p4, p5, p6, p7;\n  let t;\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n  for (let row = 0; row < 64; row += 8) {\n    p0 = blockData[blockBufferOffset + row];\n    p1 = blockData[blockBufferOffset + row + 1];\n    p2 = blockData[blockBufferOffset + row + 2];\n    p3 = blockData[blockBufferOffset + row + 3];\n    p4 = blockData[blockBufferOffset + row + 4];\n    p5 = blockData[blockBufferOffset + row + 5];\n    p6 = blockData[blockBufferOffset + row + 6];\n    p7 = blockData[blockBufferOffset + row + 7];\n    p0 *= qt[row];\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = dctSqrt2 * p0 + 512 >> 10;\n      p[row] = t;\n      p[row + 1] = t;\n      p[row + 2] = t;\n      p[row + 3] = t;\n      p[row + 4] = t;\n      p[row + 5] = t;\n      p[row + 6] = t;\n      p[row + 7] = t;\n      continue;\n    }\n    p1 *= qt[row + 1];\n    p2 *= qt[row + 2];\n    p3 *= qt[row + 3];\n    p4 *= qt[row + 4];\n    p5 *= qt[row + 5];\n    p6 *= qt[row + 6];\n    p7 *= qt[row + 7];\n    v0 = dctSqrt2 * p0 + 128 >> 8;\n    v1 = dctSqrt2 * p4 + 128 >> 8;\n    v2 = p2;\n    v3 = p6;\n    v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n    v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n    v5 = p3 << 4;\n    v6 = p5 << 4;\n    v0 = v0 + v1 + 1 >> 1;\n    v1 = v0 - v1;\n    t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n    v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n    v3 = t;\n    v4 = v4 + v6 + 1 >> 1;\n    v6 = v4 - v6;\n    v7 = v7 + v5 + 1 >> 1;\n    v5 = v7 - v5;\n    v0 = v0 + v3 + 1 >> 1;\n    v3 = v0 - v3;\n    v1 = v1 + v2 + 1 >> 1;\n    v2 = v1 - v2;\n    t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n    v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n    v7 = t;\n    t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n    v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n    v6 = t;\n    p[row] = v0 + v7;\n    p[row + 7] = v0 - v7;\n    p[row + 1] = v1 + v6;\n    p[row + 6] = v1 - v6;\n    p[row + 2] = v2 + v5;\n    p[row + 5] = v2 - v5;\n    p[row + 3] = v3 + v4;\n    p[row + 4] = v3 - v4;\n  }\n  for (let col = 0; col < 8; ++col) {\n    p0 = p[col];\n    p1 = p[col + 8];\n    p2 = p[col + 16];\n    p3 = p[col + 24];\n    p4 = p[col + 32];\n    p5 = p[col + 40];\n    p6 = p[col + 48];\n    p7 = p[col + 56];\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = dctSqrt2 * p0 + 8192 >> 14;\n      if (t < -2040) {\n        t = 0;\n      } else if (t >= 2024) {\n        t = 255;\n      } else {\n        t = t + 2056 >> 4;\n      }\n      blockData[blockBufferOffset + col] = t;\n      blockData[blockBufferOffset + col + 8] = t;\n      blockData[blockBufferOffset + col + 16] = t;\n      blockData[blockBufferOffset + col + 24] = t;\n      blockData[blockBufferOffset + col + 32] = t;\n      blockData[blockBufferOffset + col + 40] = t;\n      blockData[blockBufferOffset + col + 48] = t;\n      blockData[blockBufferOffset + col + 56] = t;\n      continue;\n    }\n    v0 = dctSqrt2 * p0 + 2048 >> 12;\n    v1 = dctSqrt2 * p4 + 2048 >> 12;\n    v2 = p2;\n    v3 = p6;\n    v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n    v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n    v5 = p3;\n    v6 = p5;\n    v0 = (v0 + v1 + 1 >> 1) + 4112;\n    v1 = v0 - v1;\n    t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n    v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n    v3 = t;\n    v4 = v4 + v6 + 1 >> 1;\n    v6 = v4 - v6;\n    v7 = v7 + v5 + 1 >> 1;\n    v5 = v7 - v5;\n    v0 = v0 + v3 + 1 >> 1;\n    v3 = v0 - v3;\n    v1 = v1 + v2 + 1 >> 1;\n    v2 = v1 - v2;\n    t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n    v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n    v7 = t;\n    t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n    v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n    v6 = t;\n    p0 = v0 + v7;\n    p7 = v0 - v7;\n    p1 = v1 + v6;\n    p6 = v1 - v6;\n    p2 = v2 + v5;\n    p5 = v2 - v5;\n    p3 = v3 + v4;\n    p4 = v3 - v4;\n    if (p0 < 16) {\n      p0 = 0;\n    } else if (p0 >= 4080) {\n      p0 = 255;\n    } else {\n      p0 >>= 4;\n    }\n    if (p1 < 16) {\n      p1 = 0;\n    } else if (p1 >= 4080) {\n      p1 = 255;\n    } else {\n      p1 >>= 4;\n    }\n    if (p2 < 16) {\n      p2 = 0;\n    } else if (p2 >= 4080) {\n      p2 = 255;\n    } else {\n      p2 >>= 4;\n    }\n    if (p3 < 16) {\n      p3 = 0;\n    } else if (p3 >= 4080) {\n      p3 = 255;\n    } else {\n      p3 >>= 4;\n    }\n    if (p4 < 16) {\n      p4 = 0;\n    } else if (p4 >= 4080) {\n      p4 = 255;\n    } else {\n      p4 >>= 4;\n    }\n    if (p5 < 16) {\n      p5 = 0;\n    } else if (p5 >= 4080) {\n      p5 = 255;\n    } else {\n      p5 >>= 4;\n    }\n    if (p6 < 16) {\n      p6 = 0;\n    } else if (p6 >= 4080) {\n      p6 = 255;\n    } else {\n      p6 >>= 4;\n    }\n    if (p7 < 16) {\n      p7 = 0;\n    } else if (p7 >= 4080) {\n      p7 = 255;\n    } else {\n      p7 >>= 4;\n    }\n    blockData[blockBufferOffset + col] = p0;\n    blockData[blockBufferOffset + col + 8] = p1;\n    blockData[blockBufferOffset + col + 16] = p2;\n    blockData[blockBufferOffset + col + 24] = p3;\n    blockData[blockBufferOffset + col + 32] = p4;\n    blockData[blockBufferOffset + col + 40] = p5;\n    blockData[blockBufferOffset + col + 48] = p6;\n    blockData[blockBufferOffset + col + 56] = p7;\n  }\n}\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n  for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n    for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n      const offset = getBlockBufferOffset(component, blockRow, blockCol);\n      quantizeAndInverse(component, offset, computationBuffer);\n    }\n  }\n  return component.blockData;\n}\nfunction findNextFileMarker(data, view, currentPos, startPos = currentPos) {\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n  if (currentPos >= maxPos) {\n    return null;\n  }\n  const currentMarker = view.getUint16(currentPos);\n  if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n    return {\n      invalid: null,\n      marker: currentMarker,\n      offset: currentPos\n    };\n  }\n  let newMarker = view.getUint16(newPos);\n  while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n    if (++newPos >= maxPos) {\n      return null;\n    }\n    newMarker = view.getUint16(newPos);\n  }\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos\n  };\n}\nfunction prepareComponents(frame) {\n  const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n  const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n  for (const component of frame.components) {\n    const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n    const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n    const blocksPerLineForMcu = mcusPerLine * component.h;\n    const blocksPerColumnForMcu = mcusPerColumn * component.v;\n    const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n    component.blockData = new Int16Array(blocksBufferSize);\n    component.blocksPerLine = blocksPerLine;\n    component.blocksPerColumn = blocksPerColumn;\n  }\n  frame.mcusPerLine = mcusPerLine;\n  frame.mcusPerColumn = mcusPerColumn;\n}\nfunction readDataBlock(data, view, offset) {\n  const length = view.getUint16(offset);\n  offset += 2;\n  let endOffset = offset + length - 2;\n  const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n  if (fileMarker?.invalid) {\n    warn(\"readDataBlock - incorrect length, current marker is: \" + fileMarker.invalid);\n    endOffset = fileMarker.offset;\n  }\n  const array = data.subarray(offset, endOffset);\n  return {\n    appData: array,\n    oldOffset: offset,\n    newOffset: offset + array.length\n  };\n}\nfunction skipData(data, view, offset) {\n  const length = view.getUint16(offset);\n  offset += 2;\n  const endOffset = offset + length - 2;\n  const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n  if (fileMarker?.invalid) {\n    return fileMarker.offset;\n  }\n  return endOffset;\n}\nclass JpegImage {\n  constructor({\n    decodeTransform = null,\n    colorTransform = -1\n  } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n  static canUseImageDecoder(data, colorTransform = -1) {\n    const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n    let exifOffsets = null;\n    let offset = 0;\n    let numComponents = null;\n    let fileMarker = view.getUint16(offset);\n    offset += 2;\n    if (fileMarker !== 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = view.getUint16(offset);\n    offset += 2;\n    markerLoop: while (fileMarker !== 0xffd9) {\n      switch (fileMarker) {\n        case 0xffe1:\n          const {\n            appData,\n            oldOffset,\n            newOffset\n          } = readDataBlock(data, view, offset);\n          offset = newOffset;\n          if (appData[0] === 0x45 && appData[1] === 0x78 && appData[2] === 0x69 && appData[3] === 0x66 && appData[4] === 0 && appData[5] === 0) {\n            if (exifOffsets) {\n              throw new JpegError(\"Duplicate EXIF-blocks found.\");\n            }\n            exifOffsets = {\n              exifStart: oldOffset + 6,\n              exifEnd: newOffset\n            };\n          }\n          fileMarker = view.getUint16(offset);\n          offset += 2;\n          continue;\n        case 0xffc0:\n        case 0xffc1:\n        case 0xffc2:\n          numComponents = data[offset + (2 + 1 + 2 + 2)];\n          break markerLoop;\n        case 0xffff:\n          if (data[offset] !== 0xff) {\n            offset--;\n          }\n          break;\n      }\n      offset = skipData(data, view, offset);\n      fileMarker = view.getUint16(offset);\n      offset += 2;\n    }\n    if (numComponents === 4) {\n      return null;\n    }\n    if (numComponents === 3 && colorTransform === 0) {\n      return null;\n    }\n    return exifOffsets || {};\n  }\n  parse(data, {\n    dnlScanLines = null\n  } = {}) {\n    const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n    const maxOffset = data.length - 1;\n    let offset = 0;\n    let jfif = null;\n    let adobe = null;\n    let frame, resetInterval;\n    let numSOSMarkers = 0;\n    const quantizationTables = [];\n    const huffmanTablesAC = [],\n      huffmanTablesDC = [];\n    let fileMarker = view.getUint16(offset);\n    offset += 2;\n    if (fileMarker !== 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = view.getUint16(offset);\n    offset += 2;\n    markerLoop: while (fileMarker !== 0xffd9) {\n      let i, j, l;\n      switch (fileMarker) {\n        case 0xffe0:\n        case 0xffe1:\n        case 0xffe2:\n        case 0xffe3:\n        case 0xffe4:\n        case 0xffe5:\n        case 0xffe6:\n        case 0xffe7:\n        case 0xffe8:\n        case 0xffe9:\n        case 0xffea:\n        case 0xffeb:\n        case 0xffec:\n        case 0xffed:\n        case 0xffee:\n        case 0xffef:\n        case 0xfffe:\n          const {\n            appData,\n            newOffset\n          } = readDataBlock(data, view, offset);\n          offset = newOffset;\n          if (fileMarker === 0xffe0) {\n            if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n              jfif = {\n                version: {\n                  major: appData[5],\n                  minor: appData[6]\n                },\n                densityUnits: appData[7],\n                xDensity: appData[8] << 8 | appData[9],\n                yDensity: appData[10] << 8 | appData[11],\n                thumbWidth: appData[12],\n                thumbHeight: appData[13],\n                thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n              };\n            }\n          }\n          if (fileMarker === 0xffee) {\n            if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {\n              adobe = {\n                version: appData[5] << 8 | appData[6],\n                flags0: appData[7] << 8 | appData[8],\n                flags1: appData[9] << 8 | appData[10],\n                transformCode: appData[11]\n              };\n            }\n          }\n          break;\n        case 0xffdb:\n          const quantizationTablesLength = view.getUint16(offset);\n          offset += 2;\n          const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n          let z;\n          while (offset < quantizationTablesEnd) {\n            const quantizationTableSpec = data[offset++];\n            const tableData = new Uint16Array(64);\n            if (quantizationTableSpec >> 4 === 0) {\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = view.getUint16(offset);\n                offset += 2;\n              }\n            } else {\n              throw new JpegError(\"DQT - invalid table spec\");\n            }\n            quantizationTables[quantizationTableSpec & 15] = tableData;\n          }\n          break;\n        case 0xffc0:\n        case 0xffc1:\n        case 0xffc2:\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n          offset += 2;\n          frame = {};\n          frame.extended = fileMarker === 0xffc1;\n          frame.progressive = fileMarker === 0xffc2;\n          frame.precision = data[offset++];\n          const sofScanLines = view.getUint16(offset);\n          offset += 2;\n          frame.scanLines = dnlScanLines || sofScanLines;\n          frame.samplesPerLine = view.getUint16(offset);\n          offset += 2;\n          frame.components = [];\n          frame.componentIds = {};\n          const componentsCount = data[offset++];\n          let maxH = 0,\n            maxV = 0;\n          for (i = 0; i < componentsCount; i++) {\n            const componentId = data[offset];\n            const h = data[offset + 1] >> 4;\n            const v = data[offset + 1] & 15;\n            if (maxH < h) {\n              maxH = h;\n            }\n            if (maxV < v) {\n              maxV = v;\n            }\n            const qId = data[offset + 2];\n            l = frame.components.push({\n              h,\n              v,\n              quantizationId: qId,\n              quantizationTable: null\n            });\n            frame.componentIds[componentId] = l - 1;\n            offset += 3;\n          }\n          frame.maxH = maxH;\n          frame.maxV = maxV;\n          prepareComponents(frame);\n          break;\n        case 0xffc4:\n          const huffmanLength = view.getUint16(offset);\n          offset += 2;\n          for (i = 2; i < huffmanLength;) {\n            const huffmanTableSpec = data[offset++];\n            const codeLengths = new Uint8Array(16);\n            let codeLengthSum = 0;\n            for (j = 0; j < 16; j++, offset++) {\n              codeLengthSum += codeLengths[j] = data[offset];\n            }\n            const huffmanValues = new Uint8Array(codeLengthSum);\n            for (j = 0; j < codeLengthSum; j++, offset++) {\n              huffmanValues[j] = data[offset];\n            }\n            i += 17 + codeLengthSum;\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n          break;\n        case 0xffdd:\n          offset += 2;\n          resetInterval = view.getUint16(offset);\n          offset += 2;\n          break;\n        case 0xffda:\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n          offset += 2;\n          const selectorsCount = data[offset++],\n            components = [];\n          for (i = 0; i < selectorsCount; i++) {\n            const index = data[offset++];\n            const componentIndex = frame.componentIds[index];\n            const component = frame.components[componentIndex];\n            component.index = index;\n            const tableSpec = data[offset++];\n            component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n            component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n            components.push(component);\n          }\n          const spectralStart = data[offset++],\n            spectralEnd = data[offset++],\n            successiveApproximation = data[offset++];\n          try {\n            const processed = decodeScan(data, view, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n            offset += processed;\n          } catch (ex) {\n            if (ex instanceof DNLMarkerError) {\n              warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n              return this.parse(data, {\n                dnlScanLines: ex.scanLines\n              });\n            } else if (ex instanceof EOIMarkerError) {\n              warn(`${ex.message} -- ignoring the rest of the image data.`);\n              break markerLoop;\n            }\n            throw ex;\n          }\n          break;\n        case 0xffdc:\n          offset += 4;\n          break;\n        case 0xffff:\n          if (data[offset] !== 0xff) {\n            offset--;\n          }\n          break;\n        default:\n          const nextFileMarker = findNextFileMarker(data, view, offset - 2, offset - 3);\n          if (nextFileMarker?.invalid) {\n            warn(\"JpegImage.parse - unexpected data, current marker is: \" + nextFileMarker.invalid);\n            offset = nextFileMarker.offset;\n            break;\n          }\n          if (!nextFileMarker || offset >= maxOffset) {\n            warn(\"JpegImage.parse - reached the end of the image data \" + \"without finding an EOI marker (0xFFD9).\");\n            break markerLoop;\n          }\n          throw new JpegError(\"JpegImage.parse - unknown marker: \" + fileMarker.toString(16));\n      }\n      if (offset < maxOffset) {\n        fileMarker = view.getUint16(offset);\n        offset += 2;\n      } else {\n        fileMarker = 0;\n      }\n    }\n    if (!frame) {\n      throw new JpegError(\"JpegImage.parse - no frame data found.\");\n    }\n    this.width = frame.samplesPerLine;\n    this.height = frame.scanLines;\n    this.jfif = jfif;\n    this.adobe = adobe;\n    this.components = [];\n    for (const component of frame.components) {\n      const quantizationTable = quantizationTables[component.quantizationId];\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\n      this.components.push({\n        index: component.index,\n        output: buildComponentData(frame, component),\n        scaleX: component.h / frame.maxH,\n        scaleY: component.v / frame.maxV,\n        blocksPerLine: component.blocksPerLine,\n        blocksPerColumn: component.blocksPerColumn\n      });\n    }\n    this.numComponents = this.components.length;\n    return undefined;\n  }\n  #getLinearizedBlockData(width, height, isSourcePDF) {\n    const scaleX = this.width / width,\n      scaleY = this.height / height;\n    let component, componentScaleX, componentScaleY, blocksPerScanline;\n    let x, y, i, j, k;\n    let index;\n    let offset = 0;\n    let output;\n    const numComponents = this.components.length;\n    const dataLength = width * height * numComponents;\n    const data = new Uint8ClampedArray(dataLength);\n    const xScaleBlockOffset = new Uint32Array(width);\n    const mask3LSB = 0xfffffff8;\n    let lastComponentScaleX;\n    for (i = 0; i < numComponents; i++) {\n      component = this.components[i];\n      componentScaleX = component.scaleX * scaleX;\n      componentScaleY = component.scaleY * scaleY;\n      offset = i;\n      output = component.output;\n      blocksPerScanline = component.blocksPerLine + 1 << 3;\n      if (componentScaleX !== lastComponentScaleX) {\n        for (x = 0; x < width; x++) {\n          j = 0 | x * componentScaleX;\n          xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n        }\n        lastComponentScaleX = componentScaleX;\n      }\n      for (y = 0; y < height; y++) {\n        j = 0 | y * componentScaleY;\n        index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n        for (x = 0; x < width; x++) {\n          data[offset] = output[index + xScaleBlockOffset[x]];\n          offset += numComponents;\n        }\n      }\n    }\n    let transform = this._decodeTransform;\n    if (transform) {\n      for (i = 0; i < dataLength;) {\n        for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n          data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n        }\n      }\n    }\n    return data;\n  }\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      return !!this.adobe.transformCode;\n    }\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        return false;\n      } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {\n        return false;\n      }\n      return true;\n    }\n    if (this._colorTransform === 1) {\n      return true;\n    }\n    return false;\n  }\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, ii = data.length; i < ii; i += 3) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = Y - 179.456 + 1.402 * Cr;\n      data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      data[i + 2] = Y - 226.816 + 1.772 * Cb;\n    }\n    return data;\n  }\n  _convertYccToRgba(data, out) {\n    for (let i = 0, j = 0, ii = data.length; i < ii; i += 3, j += 4) {\n      const Y = data[i];\n      const Cb = data[i + 1];\n      const Cr = data[i + 2];\n      out[j] = Y - 179.456 + 1.402 * Cr;\n      out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      out[j + 2] = Y - 226.816 + 1.772 * Cb;\n      out[j + 3] = 255;\n    }\n    return out;\n  }\n  _convertYcckToRgb(data) {\n    this._convertYcckToCmyk(data);\n    return this._convertCmykToRgb(data);\n  }\n  _convertYcckToRgba(data) {\n    this._convertYcckToCmyk(data);\n    return this._convertCmykToRgba(data);\n  }\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, ii = data.length; i < ii; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = 434.456 - Y - 1.402 * Cr;\n      data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n      data[i + 2] = 481.816 - Y - 1.772 * Cb;\n    }\n    return data;\n  }\n  _convertCmykToRgb(data) {\n    const count = data.length / 4;\n    ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, count, data, 0, 8, 0);\n    return data.subarray(0, count * 3);\n  }\n  _convertCmykToRgba(data) {\n    ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1);\n    if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) {\n      for (let i = 3, ii = data.length; i < ii; i += 4) {\n        data[i] = 255;\n      }\n    }\n    return data;\n  }\n  getData({\n    width,\n    height,\n    forceRGBA = false,\n    forceRGB = false,\n    isSourcePDF = true\n  }) {\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n    const data = this.#getLinearizedBlockData(width, height, isSourcePDF);\n    if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n      const len = data.length * (forceRGBA ? 4 : 3);\n      const rgbaData = new Uint8ClampedArray(len);\n      let offset = 0;\n      if (forceRGBA) {\n        grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n      } else {\n        for (const grayColor of data) {\n          rgbaData[offset++] = grayColor;\n          rgbaData[offset++] = grayColor;\n          rgbaData[offset++] = grayColor;\n        }\n      }\n      return rgbaData;\n    } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n      if (forceRGBA) {\n        const rgbaData = new Uint8ClampedArray(data.length / 3 * 4);\n        return this._convertYccToRgba(data, rgbaData);\n      }\n      return this._convertYccToRgb(data);\n    } else if (this.numComponents === 4) {\n      if (this._isColorConversionNeeded) {\n        if (forceRGBA) {\n          return this._convertYcckToRgba(data);\n        }\n        if (forceRGB) {\n          return this._convertYcckToRgb(data);\n        }\n        return this._convertYcckToCmyk(data);\n      } else if (forceRGBA) {\n        return this._convertCmykToRgba(data);\n      } else if (forceRGB) {\n        return this._convertCmykToRgb(data);\n      }\n    }\n    return data;\n  }\n}\n\n;// ./src/core/jpeg_stream.js\n\n\n\n\n\nclass JpegStream extends DecodeStream {\n  static #isImageDecoderSupported = FeatureTest.isImageDecoderSupported;\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n  static get canUseImageDecoder() {\n    return shadow(this, \"canUseImageDecoder\", this.#isImageDecoderSupported ? ImageDecoder.isTypeSupported(\"image/jpeg\") : Promise.resolve(false));\n  }\n  static setOptions({\n    isImageDecoderSupported = false\n  }) {\n    this.#isImageDecoderSupported = isImageDecoderSupported;\n  }\n  get bytes() {\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n  ensureBuffer(requested) {}\n  readBlock() {\n    this.decodeImage();\n  }\n  get jpegOptions() {\n    const jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined\n    };\n    const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n    if ((this.forceRGBA || this.forceRGB) && Array.isArray(decodeArr)) {\n      const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n      const decodeArrLength = decodeArr.length;\n      const transform = new Int32Array(decodeArrLength);\n      let transformNeeded = false;\n      const maxValue = (1 << bitsPerComponent) - 1;\n      for (let i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n        transform[i + 1] = decodeArr[i] * maxValue | 0;\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n    if (this.params instanceof Dict) {\n      const colorTransform = this.params.get(\"ColorTransform\");\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n    return shadow(this, \"jpegOptions\", jpegOptions);\n  }\n  #skipUselessBytes(data) {\n    for (let i = 0, ii = data.length - 1; i < ii; i++) {\n      if (data[i] === 0xff && data[i + 1] === 0xd8) {\n        if (i > 0) {\n          data = data.subarray(i);\n        }\n        break;\n      }\n    }\n    return data;\n  }\n  decodeImage(bytes) {\n    if (this.eof) {\n      return this.buffer;\n    }\n    bytes = this.#skipUselessBytes(bytes || this.bytes);\n    const jpegImage = new JpegImage(this.jpegOptions);\n    jpegImage.parse(bytes);\n    const data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGBA: this.forceRGBA,\n      forceRGB: this.forceRGB\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n    return this.buffer;\n  }\n  get canAsyncDecodeImageFromBuffer() {\n    return this.stream.isAsync;\n  }\n  async getTransferableImage() {\n    if (!(await JpegStream.canUseImageDecoder)) {\n      return null;\n    }\n    const jpegOptions = this.jpegOptions;\n    if (jpegOptions.decodeTransform) {\n      return null;\n    }\n    let decoder;\n    try {\n      const bytes = this.canAsyncDecodeImageFromBuffer && (await this.stream.asyncGetBytes()) || this.bytes;\n      if (!bytes) {\n        return null;\n      }\n      let data = this.#skipUselessBytes(bytes);\n      const useImageDecoder = JpegImage.canUseImageDecoder(data, jpegOptions.colorTransform);\n      if (!useImageDecoder) {\n        return null;\n      }\n      if (useImageDecoder.exifStart) {\n        data = data.slice();\n        data.fill(0x00, useImageDecoder.exifStart, useImageDecoder.exifEnd);\n      }\n      decoder = new ImageDecoder({\n        data,\n        type: \"image/jpeg\",\n        preferAnimation: false\n      });\n      return (await decoder.decode()).image;\n    } catch (reason) {\n      warn(`getTransferableImage - failed: \"${reason}\".`);\n      return null;\n    } finally {\n      decoder?.close();\n    }\n  }\n  get isImageStream() {\n    return true;\n  }\n}\n\n;// ./src/core/operator_list.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n  let state = parentState;\n  for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n    const item = pattern[i];\n    state = state[item] ||= [];\n  }\n  state[pattern.at(-1)] = {\n    checkFn,\n    iterateFn,\n    processFn\n  };\n}\nconst InitialState = [];\naddState(InitialState, [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore], null, function iterateInlineImageGroup(context, i) {\n  const fnArray = context.fnArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n  switch (pos) {\n    case 0:\n      return fnArray[i] === OPS.save;\n    case 1:\n      return fnArray[i] === OPS.transform;\n    case 2:\n      return fnArray[i] === OPS.paintInlineImageXObject;\n    case 3:\n      return fnArray[i] === OPS.restore;\n  }\n  throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n}, function foundInlineImageGroup(context, i) {\n  const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n  const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n  const MAX_WIDTH = 1000;\n  const IMAGE_PADDING = 1;\n  const fnArray = context.fnArray,\n    argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIIXO = curr - 1;\n  const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n  if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n  let maxX = 0;\n  const map = [];\n  let maxLineHeight = 0;\n  let currentX = IMAGE_PADDING,\n    currentY = IMAGE_PADDING;\n  for (let q = 0; q < count; q++) {\n    const transform = argsArray[iFirstTransform + (q << 2)];\n    const img = argsArray[iFirstPIIXO + (q << 2)][0];\n    if (currentX + img.width > MAX_WIDTH) {\n      maxX = Math.max(maxX, currentX);\n      currentY += maxLineHeight + 2 * IMAGE_PADDING;\n      currentX = 0;\n      maxLineHeight = 0;\n    }\n    map.push({\n      transform,\n      x: currentX,\n      y: currentY,\n      w: img.width,\n      h: img.height\n    });\n    currentX += img.width + 2 * IMAGE_PADDING;\n    maxLineHeight = Math.max(maxLineHeight, img.height);\n  }\n  const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n  const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n  const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n  const imgRowSize = imgWidth << 2;\n  for (let q = 0; q < count; q++) {\n    const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n    const rowSize = map[q].w << 2;\n    let dataOffset = 0;\n    let offset = map[q].x + map[q].y * imgWidth << 2;\n    imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n    for (let k = 0, kk = map[q].h; k < kk; k++) {\n      imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n      dataOffset += rowSize;\n      offset += imgRowSize;\n    }\n    imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n    while (offset >= 0) {\n      data[offset - 4] = data[offset];\n      data[offset - 3] = data[offset + 1];\n      data[offset - 2] = data[offset + 2];\n      data[offset - 1] = data[offset + 3];\n      data[offset + rowSize] = data[offset + rowSize - 4];\n      data[offset + rowSize + 1] = data[offset + rowSize - 3];\n      data[offset + rowSize + 2] = data[offset + rowSize - 2];\n      data[offset + rowSize + 3] = data[offset + rowSize - 1];\n      offset -= imgRowSize;\n    }\n  }\n  const img = {\n    width: imgWidth,\n    height: imgHeight\n  };\n  if (context.isOffscreenCanvasSupported) {\n    const canvas = new OffscreenCanvas(imgWidth, imgHeight);\n    const ctx = canvas.getContext(\"2d\");\n    ctx.putImageData(new ImageData(new Uint8ClampedArray(imgData.buffer), imgWidth, imgHeight), 0, 0);\n    img.bitmap = canvas.transferToImageBitmap();\n    img.data = null;\n  } else {\n    img.kind = ImageKind.RGBA_32BPP;\n    img.data = imgData;\n  }\n  fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n  argsArray.splice(iFirstSave, count * 4, [img, map]);\n  return iFirstSave + 1;\n});\naddState(InitialState, [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore], null, function iterateImageMaskGroup(context, i) {\n  const fnArray = context.fnArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n  switch (pos) {\n    case 0:\n      return fnArray[i] === OPS.save;\n    case 1:\n      return fnArray[i] === OPS.transform;\n    case 2:\n      return fnArray[i] === OPS.paintImageMaskXObject;\n    case 3:\n      return fnArray[i] === OPS.restore;\n  }\n  throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n}, function foundImageMaskGroup(context, i) {\n  const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n  const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n  const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n  const fnArray = context.fnArray,\n    argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIMXO = curr - 1;\n  let count = Math.floor((i - iFirstSave) / 4);\n  if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n  let isSameImage = false;\n  let iTransform, transformArgs;\n  const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n  const firstTransformArg0 = argsArray[iFirstTransform][0],\n    firstTransformArg1 = argsArray[iFirstTransform][1],\n    firstTransformArg2 = argsArray[iFirstTransform][2],\n    firstTransformArg3 = argsArray[iFirstTransform][3];\n  if (firstTransformArg1 === firstTransformArg2) {\n    isSameImage = true;\n    iTransform = iFirstTransform + 4;\n    let iPIMXO = iFirstPIMXO + 4;\n    for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n      transformArgs = argsArray[iTransform];\n      if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) {\n        if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n          isSameImage = false;\n        } else {\n          count = q;\n        }\n        break;\n      }\n    }\n  }\n  if (isSameImage) {\n    count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n    const positions = new Float32Array(count * 2);\n    iTransform = iFirstTransform;\n    for (let q = 0; q < count; q++, iTransform += 4) {\n      transformArgs = argsArray[iTransform];\n      positions[q << 1] = transformArgs[4];\n      positions[(q << 1) + 1] = transformArgs[5];\n    }\n    fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n    argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]);\n  } else {\n    count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n    const images = [];\n    for (let q = 0; q < count; q++) {\n      transformArgs = argsArray[iFirstTransform + (q << 2)];\n      const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n      images.push({\n        data: maskParams.data,\n        width: maskParams.width,\n        height: maskParams.height,\n        interpolate: maskParams.interpolate,\n        count: maskParams.count,\n        transform: transformArgs\n      });\n    }\n    fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n    argsArray.splice(iFirstSave, count * 4, [images]);\n  }\n  return iFirstSave + 1;\n});\naddState(InitialState, [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore], function (context) {\n  const argsArray = context.argsArray;\n  const iFirstTransform = context.iCurr - 2;\n  return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n}, function iterateImageGroup(context, i) {\n  const fnArray = context.fnArray,\n    argsArray = context.argsArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n  switch (pos) {\n    case 0:\n      return fnArray[i] === OPS.save;\n    case 1:\n      if (fnArray[i] !== OPS.transform) {\n        return false;\n      }\n      const iFirstTransform = context.iCurr - 2;\n      const firstTransformArg0 = argsArray[iFirstTransform][0];\n      const firstTransformArg3 = argsArray[iFirstTransform][3];\n      if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n        return false;\n      }\n      return true;\n    case 2:\n      if (fnArray[i] !== OPS.paintImageXObject) {\n        return false;\n      }\n      const iFirstPIXO = context.iCurr - 1;\n      const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n      if (argsArray[i][0] !== firstPIXOArg0) {\n        return false;\n      }\n      return true;\n    case 3:\n      return fnArray[i] === OPS.restore;\n  }\n  throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n}, function (context, i) {\n  const MIN_IMAGES_IN_BLOCK = 3;\n  const MAX_IMAGES_IN_BLOCK = 1000;\n  const fnArray = context.fnArray,\n    argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIXO = curr - 1;\n  const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n  const firstTransformArg0 = argsArray[iFirstTransform][0];\n  const firstTransformArg3 = argsArray[iFirstTransform][3];\n  const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n  if (count < MIN_IMAGES_IN_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n  const positions = new Float32Array(count * 2);\n  let iTransform = iFirstTransform;\n  for (let q = 0; q < count; q++, iTransform += 4) {\n    const transformArgs = argsArray[iTransform];\n    positions[q << 1] = transformArgs[4];\n    positions[(q << 1) + 1] = transformArgs[5];\n  }\n  const args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n  fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n  argsArray.splice(iFirstSave, count * 4, args);\n  return iFirstSave + 1;\n});\naddState(InitialState, [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText], null, function iterateShowTextGroup(context, i) {\n  const fnArray = context.fnArray,\n    argsArray = context.argsArray;\n  const iFirstSave = context.iCurr - 4;\n  const pos = (i - iFirstSave) % 5;\n  switch (pos) {\n    case 0:\n      return fnArray[i] === OPS.beginText;\n    case 1:\n      return fnArray[i] === OPS.setFont;\n    case 2:\n      return fnArray[i] === OPS.setTextMatrix;\n    case 3:\n      if (fnArray[i] !== OPS.showText) {\n        return false;\n      }\n      const iFirstSetFont = context.iCurr - 3;\n      const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n      const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n      if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n        return false;\n      }\n      return true;\n    case 4:\n      return fnArray[i] === OPS.endText;\n  }\n  throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n}, function (context, i) {\n  const MIN_CHARS_IN_BLOCK = 3;\n  const MAX_CHARS_IN_BLOCK = 1000;\n  const fnArray = context.fnArray,\n    argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstBeginText = curr - 4;\n  const iFirstSetFont = curr - 3;\n  const iFirstSetTextMatrix = curr - 2;\n  const iFirstShowText = curr - 1;\n  const iFirstEndText = curr;\n  const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n  const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n  let count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n  if (count < MIN_CHARS_IN_BLOCK) {\n    return i - (i - iFirstBeginText) % 5;\n  }\n  let iFirst = iFirstBeginText;\n  if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n    count++;\n    iFirst -= 5;\n  }\n  let iEndText = iFirst + 4;\n  for (let q = 1; q < count; q++) {\n    fnArray.splice(iEndText, 3);\n    argsArray.splice(iEndText, 3);\n    iEndText += 2;\n  }\n  return iEndText + 1;\n});\naddState(InitialState, [OPS.save, OPS.transform, OPS.constructPath, OPS.restore], context => {\n  const argsArray = context.argsArray;\n  const iFirstConstructPath = context.iCurr - 1;\n  const op = argsArray[iFirstConstructPath][0];\n  if (op !== OPS.stroke && op !== OPS.closeStroke && op !== OPS.fillStroke && op !== OPS.eoFillStroke && op !== OPS.closeFillStroke && op !== OPS.closeEOFillStroke) {\n    return true;\n  }\n  const iFirstTransform = context.iCurr - 2;\n  const transform = argsArray[iFirstTransform];\n  return transform[0] === 1 && transform[1] === 0 && transform[2] === 0 && transform[3] === 1;\n}, () => false, (context, i) => {\n  const {\n    fnArray,\n    argsArray\n  } = context;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstConstructPath = curr - 1;\n  const args = argsArray[iFirstConstructPath];\n  const transform = argsArray[iFirstTransform];\n  const [, [buffer], minMax] = args;\n  if (minMax) {\n    const newBBox = F32_BBOX_INIT.slice();\n    Util.axialAlignedBoundingBox(minMax, transform, newBBox);\n    minMax.set(newBBox);\n    for (let k = 0, kk = buffer.length; k < kk;) {\n      switch (buffer[k++]) {\n        case DrawOPS.moveTo:\n        case DrawOPS.lineTo:\n          Util.applyTransform(buffer, transform, k);\n          k += 2;\n          break;\n        case DrawOPS.curveTo:\n          Util.applyTransformToBezier(buffer, transform, k);\n          k += 6;\n          break;\n      }\n    }\n  }\n  fnArray.splice(iFirstSave, 4, OPS.constructPath);\n  argsArray.splice(iFirstSave, 4, args);\n  return iFirstSave + 1;\n});\nclass NullOptimizer {\n  constructor(queue) {\n    this.queue = queue;\n  }\n  _optimize() {}\n  push(fn, args) {\n    this.queue.fnArray.push(fn);\n    this.queue.argsArray.push(args);\n    this._optimize();\n  }\n  flush() {}\n  reset() {}\n}\nclass QueueOptimizer extends NullOptimizer {\n  constructor(queue) {\n    super(queue);\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray,\n      isOffscreenCanvasSupported: OperatorList.isOffscreenCanvasSupported\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n  _optimize() {\n    const fnArray = this.queue.fnArray;\n    let i = this.lastProcessed,\n      ii = fnArray.length;\n    let state = this.state;\n    let match = this.match;\n    if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n      this.lastProcessed = ii;\n      return;\n    }\n    const context = this.context;\n    while (i < ii) {\n      if (match) {\n        const iterate = (0, match.iterateFn)(context, i);\n        if (iterate) {\n          i++;\n          continue;\n        }\n        i = (0, match.processFn)(context, i + 1);\n        ii = fnArray.length;\n        match = null;\n        state = null;\n        if (i >= ii) {\n          break;\n        }\n      }\n      state = (state || InitialState)[fnArray[i]];\n      if (!state || Array.isArray(state)) {\n        i++;\n        continue;\n      }\n      context.iCurr = i;\n      i++;\n      if (state.checkFn && !(0, state.checkFn)(context)) {\n        state = null;\n        continue;\n      }\n      match = state;\n      state = null;\n    }\n    this.state = state;\n    this.match = match;\n    this.lastProcessed = i;\n  }\n  flush() {\n    while (this.match) {\n      const length = this.queue.fnArray.length;\n      this.lastProcessed = (0, this.match.processFn)(this.context, length);\n      this.match = null;\n      this.state = null;\n      this._optimize();\n    }\n  }\n  reset() {\n    this.state = null;\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n}\nclass OperatorList {\n  static CHUNK_SIZE = 1000;\n  static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5;\n  static isOffscreenCanvasSupported = false;\n  constructor(intent = 0, streamSink) {\n    this._streamSink = streamSink;\n    this.fnArray = [];\n    this.argsArray = [];\n    this.optimizer = streamSink && !(intent & RenderingIntentFlag.OPLIST) ? new QueueOptimizer(this) : new NullOptimizer(this);\n    this.dependencies = new Set();\n    this._totalLength = 0;\n    this.weight = 0;\n    this._resolved = streamSink ? null : Promise.resolve();\n  }\n  static setOptions({\n    isOffscreenCanvasSupported\n  }) {\n    this.isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n  }\n  get length() {\n    return this.argsArray.length;\n  }\n  get ready() {\n    return this._resolved || this._streamSink.ready;\n  }\n  get totalLength() {\n    return this._totalLength + this.length;\n  }\n  addOp(fn, args) {\n    this.optimizer.push(fn, args);\n    this.weight++;\n    if (this._streamSink) {\n      if (this.weight >= OperatorList.CHUNK_SIZE) {\n        this.flush();\n      } else if (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && (fn === OPS.restore || fn === OPS.endText)) {\n        this.flush();\n      }\n    }\n  }\n  addImageOps(fn, args, optionalContent, hasMask = false) {\n    if (hasMask) {\n      this.addOp(OPS.save);\n      this.addOp(OPS.setGState, [[[\"SMask\", false]]]);\n    }\n    if (optionalContent !== undefined) {\n      this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n    this.addOp(fn, args);\n    if (optionalContent !== undefined) {\n      this.addOp(OPS.endMarkedContent, []);\n    }\n    if (hasMask) {\n      this.addOp(OPS.restore);\n    }\n  }\n  addDependency(dependency) {\n    if (this.dependencies.has(dependency)) {\n      return;\n    }\n    this.dependencies.add(dependency);\n    this.addOp(OPS.dependency, [dependency]);\n  }\n  addDependencies(dependencies) {\n    for (const dependency of dependencies) {\n      this.addDependency(dependency);\n    }\n  }\n  addOpList(opList) {\n    if (!(opList instanceof OperatorList)) {\n      warn('addOpList - ignoring invalid \"opList\" parameter.');\n      return;\n    }\n    for (const dependency of opList.dependencies) {\n      this.dependencies.add(dependency);\n    }\n    for (let i = 0, ii = opList.length; i < ii; i++) {\n      this.addOp(opList.fnArray[i], opList.argsArray[i]);\n    }\n  }\n  getIR() {\n    return {\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      length: this.length\n    };\n  }\n  get _transfers() {\n    const transfers = [];\n    const {\n      fnArray,\n      argsArray,\n      length\n    } = this;\n    for (let i = 0; i < length; i++) {\n      switch (fnArray[i]) {\n        case OPS.paintInlineImageXObject:\n        case OPS.paintInlineImageXObjectGroup:\n        case OPS.paintImageMaskXObject:\n          {\n            const {\n              bitmap,\n              data\n            } = argsArray[i][0];\n            if (bitmap || data?.buffer) {\n              transfers.push(bitmap || data.buffer);\n            }\n            break;\n          }\n        case OPS.constructPath:\n          {\n            const [, [data], minMax] = argsArray[i];\n            if (data) {\n              transfers.push(data.buffer, minMax.buffer);\n            }\n            break;\n          }\n        case OPS.paintFormXObjectBegin:\n          const [matrix, bbox] = argsArray[i];\n          if (matrix) {\n            transfers.push(matrix.buffer);\n          }\n          if (bbox) {\n            transfers.push(bbox.buffer);\n          }\n          break;\n        case OPS.setTextMatrix:\n          transfers.push(argsArray[i][0].buffer);\n          break;\n      }\n    }\n    return transfers;\n  }\n  flush(lastChunk = false, separateAnnots = null) {\n    this.optimizer.flush();\n    const length = this.length;\n    this._totalLength += length;\n    this._streamSink.enqueue({\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      lastChunk,\n      separateAnnots,\n      length\n    }, 1, this._transfers);\n    this.dependencies.clear();\n    this.fnArray.length = 0;\n    this.argsArray.length = 0;\n    this.weight = 0;\n    this.optimizer.reset();\n  }\n}\nclass CheckedOperatorList extends OperatorList {\n  needsIsolation = false;\n  hasSoftMask = false;\n  addOp(fn, args) {\n    if (!this.needsIsolation || !this.hasSoftMask) {\n      if (fn === OPS.beginGroup) {\n        this.needsIsolation ||= args[0].needsIsolation;\n        this.hasSoftMask ||= args[0].hasSoftMask;\n      } else if (fn === OPS.setGState) {\n        for (const [key, val] of args[0]) {\n          if (key === \"BM\" && val !== \"source-over\") {\n            this.needsIsolation = true;\n          } else if (key === \"SMask\" && val !== false) {\n            this.needsIsolation = true;\n            this.hasSoftMask = true;\n          }\n        }\n      }\n    }\n    super.addOp(fn, args);\n  }\n}\n\n;// ./src/core/pattern.js\n\n\n\n\n\n\n\n\n\n\n\nconst ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7\n};\nclass Pattern {\n  static #hasGPU = false;\n  constructor() {\n    unreachable(\"Cannot initialize Pattern.\");\n  }\n  static setOptions({\n    hasGPU\n  }) {\n    this.#hasGPU = hasGPU;\n  }\n  static parseShading(shading, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) {\n    const dict = shading instanceof BaseStream ? shading.dict : shading;\n    const type = dict.get(\"ShadingType\");\n    try {\n      switch (type) {\n        case ShadingType.FUNCTION_BASED:\n          return new FunctionBasedShading(dict, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache);\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          return new RadialAxialShading(dict, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache);\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new MeshShading(shading, xref, res, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache);\n        default:\n          throw new FormatError(\"Unsupported ShadingType: \" + type);\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(ex);\n      return new DummyShading();\n    }\n  }\n}\nclass BaseShading {\n  static SMALL_NUMBER = 1e-6;\n  getIR() {\n    unreachable(\"Abstract method `getIR` called.\");\n  }\n}\nclass RadialAxialShading extends BaseShading {\n  constructor(dict, xref, resources, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) {\n    super();\n    this.shadingType = dict.get(\"ShadingType\");\n    let coordsLen = 0;\n    if (this.shadingType === ShadingType.AXIAL) {\n      coordsLen = 4;\n    } else if (this.shadingType === ShadingType.RADIAL) {\n      coordsLen = 6;\n    }\n    this.coordsArr = dict.getArray(\"Coords\");\n    if (!isNumberArray(this.coordsArr, coordsLen)) {\n      throw new FormatError(\"RadialAxialShading: Invalid /Coords array.\");\n    }\n    const cs = ColorSpaceUtils.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      globalColorSpaceCache,\n      localColorSpaceCache\n    });\n    this.bbox = lookupNormalRect(dict.getArray(\"BBox\"), null);\n    let t0 = 0.0,\n      t1 = 1.0;\n    const domainArr = dict.getArray(\"Domain\");\n    if (isNumberArray(domainArr, 2)) {\n      [t0, t1] = domainArr;\n    }\n    let extendStart = false,\n      extendEnd = false;\n    const extendArr = dict.getArray(\"Extend\");\n    if (isBooleanArray(extendArr, 2)) {\n      [extendStart, extendEnd] = extendArr;\n    }\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = pdfFunctionFactory.create(fnObj, true);\n    const NUMBER_OF_SAMPLES = 840;\n    const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n    const colorStops = this.colorStops = [];\n    if (t0 >= t1 || step <= 0) {\n      info(\"Bad shading domain.\");\n      return;\n    }\n    const color = new Float32Array(cs.numComps),\n      ratio = new Float32Array(1);\n    let iBase = 0;\n    ratio[0] = t0;\n    fn(ratio, 0, color, 0);\n    const rgbBuffer = new Uint8ClampedArray(3);\n    cs.getRgb(color, 0, rgbBuffer);\n    let [rBase, gBase, bBase] = rgbBuffer;\n    colorStops.push([0, Util.makeHexColor(rBase, gBase, bBase)]);\n    let iPrev = 1;\n    ratio[0] = t0 + step;\n    fn(ratio, 0, color, 0);\n    cs.getRgb(color, 0, rgbBuffer);\n    let [rPrev, gPrev, bPrev] = rgbBuffer;\n    let maxSlopeR = rPrev - rBase + 1;\n    let maxSlopeG = gPrev - gBase + 1;\n    let maxSlopeB = bPrev - bBase + 1;\n    let minSlopeR = rPrev - rBase - 1;\n    let minSlopeG = gPrev - gBase - 1;\n    let minSlopeB = bPrev - bBase - 1;\n    for (let i = 2; i < NUMBER_OF_SAMPLES; i++) {\n      ratio[0] = t0 + i * step;\n      fn(ratio, 0, color, 0);\n      cs.getRgb(color, 0, rgbBuffer);\n      const [r, g, b] = rgbBuffer;\n      const run = i - iBase;\n      maxSlopeR = Math.min(maxSlopeR, (r - rBase + 1) / run);\n      maxSlopeG = Math.min(maxSlopeG, (g - gBase + 1) / run);\n      maxSlopeB = Math.min(maxSlopeB, (b - bBase + 1) / run);\n      minSlopeR = Math.max(minSlopeR, (r - rBase - 1) / run);\n      minSlopeG = Math.max(minSlopeG, (g - gBase - 1) / run);\n      minSlopeB = Math.max(minSlopeB, (b - bBase - 1) / run);\n      const slopesExist = minSlopeR <= maxSlopeR && minSlopeG <= maxSlopeG && minSlopeB <= maxSlopeB;\n      if (!slopesExist) {\n        const cssColor = Util.makeHexColor(rPrev, gPrev, bPrev);\n        colorStops.push([iPrev / NUMBER_OF_SAMPLES, cssColor]);\n        maxSlopeR = r - rPrev + 1;\n        maxSlopeG = g - gPrev + 1;\n        maxSlopeB = b - bPrev + 1;\n        minSlopeR = r - rPrev - 1;\n        minSlopeG = g - gPrev - 1;\n        minSlopeB = b - bPrev - 1;\n        iBase = iPrev;\n        rBase = rPrev;\n        gBase = gPrev;\n        bBase = bPrev;\n      }\n      iPrev = i;\n      rPrev = r;\n      gPrev = g;\n      bPrev = b;\n    }\n    colorStops.push([1, Util.makeHexColor(rPrev, gPrev, bPrev)]);\n    const background = dict.has(\"Background\") ? cs.getRgbHex(dict.get(\"Background\"), 0) : \"transparent\";\n    if (!extendStart) {\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += BaseShading.SMALL_NUMBER;\n    }\n    if (!extendEnd) {\n      colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n    this.colorStops = colorStops;\n  }\n  getIR() {\n    const {\n      coordsArr,\n      shadingType\n    } = this;\n    let type, p0, p1, r0, r1;\n    if (shadingType === ShadingType.AXIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[2], coordsArr[3]];\n      r0 = null;\n      r1 = null;\n      type = \"axial\";\n    } else if (shadingType === ShadingType.RADIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[3], coordsArr[4]];\n      r0 = coordsArr[2];\n      r1 = coordsArr[5];\n      type = \"radial\";\n    } else {\n      unreachable(`getPattern type unknown: ${shadingType}`);\n    }\n    return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n  }\n}\nfunction meshUpdateBounds(self) {\n  let minX = self.coords[0][0],\n    minY = self.coords[0][1],\n    maxX = minX,\n    maxY = minY;\n  for (let i = 1, ii = self.coords.length; i < ii; i++) {\n    const x = self.coords[i][0],\n      y = self.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  self.bounds = [minX, minY, maxX, maxY];\n}\nfunction meshPackData(self) {\n  let i, j, ii;\n  const coords = self.coords;\n  const coordsPacked = new Float32Array(coords.length * 2);\n  for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n    const xy = coords[i];\n    coordsPacked[j++] = xy[0];\n    coordsPacked[j++] = xy[1];\n  }\n  self.coords = coordsPacked;\n  const colors = self.colors;\n  const colorsPacked = new Uint8Array(colors.length * 4);\n  for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n    const c = colors[i];\n    colorsPacked[j++] = c[0];\n    colorsPacked[j++] = c[1];\n    colorsPacked[j++] = c[2];\n    j++;\n  }\n  self.colors = colorsPacked;\n  for (const figure of self.figures) {\n    figure.coords = new Uint32Array(figure.coords);\n    figure.colors = new Uint32Array(figure.colors);\n  }\n}\nfunction buildMeshVertexData(coords, colors, figures) {\n  let vertexCount = 0;\n  for (const figure of figures) {\n    if (figure.type === MeshFigureType.TRIANGLES) {\n      vertexCount += figure.coords.length;\n    } else if (figure.type === MeshFigureType.LATTICE) {\n      const vpr = figure.verticesPerRow;\n      vertexCount += (Math.floor(figure.coords.length / vpr) - 1) * (vpr - 1) * 6;\n    }\n  }\n  const posData = new Float32Array(vertexCount * 2);\n  const colData = new Uint8Array(vertexCount * 4);\n  let pOff = 0,\n    cOff = 0;\n  const addVertex = (pi, ci) => {\n    posData[pOff++] = coords[pi * 2];\n    posData[pOff++] = coords[pi * 2 + 1];\n    colData[cOff++] = colors[ci * 4];\n    colData[cOff++] = colors[ci * 4 + 1];\n    colData[cOff++] = colors[ci * 4 + 2];\n    cOff++;\n  };\n  for (const figure of figures) {\n    const ps = figure.coords;\n    const cs = figure.colors;\n    if (figure.type === MeshFigureType.TRIANGLES) {\n      for (let i = 0, ii = ps.length; i < ii; i++) {\n        addVertex(ps[i], cs[i]);\n      }\n    } else if (figure.type === MeshFigureType.LATTICE) {\n      const vpr = figure.verticesPerRow;\n      const rows = Math.floor(ps.length / vpr) - 1;\n      const cols = vpr - 1;\n      for (let i = 0; i < rows; i++) {\n        let q = i * vpr;\n        for (let j = 0; j < cols; j++, q++) {\n          addVertex(ps[q], cs[q]);\n          addVertex(ps[q + 1], cs[q + 1]);\n          addVertex(ps[q + vpr], cs[q + vpr]);\n          addVertex(ps[q + vpr + 1], cs[q + vpr + 1]);\n          addVertex(ps[q + 1], cs[q + 1]);\n          addVertex(ps[q + vpr], cs[q + vpr]);\n        }\n      }\n    }\n  }\n  return {\n    posData,\n    colData,\n    vertexCount\n  };\n}\nclass FunctionBasedShading extends BaseShading {\n  static MAX_STEP_COUNT = 512;\n  constructor(dict, xref, resources, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) {\n    super();\n    this.bbox = lookupNormalRect(dict.getArray(\"BBox\"), null);\n    const cs = ColorSpaceUtils.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      globalColorSpaceCache,\n      localColorSpaceCache\n    });\n    this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n    const fnObj = dict.getRaw(\"Function\");\n    if (!fnObj) {\n      throw new FormatError(\"FunctionBasedShading: missing /Function\");\n    }\n    const fn = pdfFunctionFactory.create(fnObj, true);\n    const [x0, x1, y0, y1] = lookupRect(dict.getArray(\"Domain\"), [0, 1, 0, 1]);\n    const matrix = lookupMatrix(dict.getArray(\"Matrix\"), IDENTITY_MATRIX);\n    this.bounds = BBOX_INIT.slice();\n    Util.axialAlignedBoundingBox([x0, y0, x1, y1], matrix, this.bounds);\n    const bboxW = this.bounds[2] - this.bounds[0];\n    const bboxH = this.bounds[3] - this.bounds[1];\n    const stepsX = MathClamp(Math.ceil(bboxW), 1, FunctionBasedShading.MAX_STEP_COUNT);\n    const stepsY = MathClamp(Math.ceil(bboxH), 1, FunctionBasedShading.MAX_STEP_COUNT);\n    const verticesPerRow = stepsX + 1;\n    const totalVertices = (stepsY + 1) * verticesPerRow;\n    const coords = this.coords = new Float32Array(totalVertices * 2);\n    const colors = this.colors = new Uint8ClampedArray(totalVertices * 4);\n    const xyBuf = new Float32Array(2);\n    const colorBuf = new Float32Array(cs.numComps);\n    const rangeX = (x1 - x0) / stepsX;\n    const rangeY = (y1 - y0) / stepsY;\n    const halfStepX = rangeX / 2;\n    const halfStepY = rangeY / 2;\n    let coordOffset = 0;\n    let colorOffset = 0;\n    for (let row = 0; row <= stepsY; row++) {\n      const yDomain = y0 + rangeY * row;\n      xyBuf[1] = row === stepsY ? yDomain - halfStepY : yDomain;\n      for (let col = 0; col <= stepsX; col++) {\n        const xDomain = x0 + rangeX * col;\n        xyBuf[0] = col === stepsX ? xDomain - halfStepX : xDomain;\n        fn(xyBuf, 0, colorBuf, 0);\n        coords[coordOffset] = xDomain;\n        coords[coordOffset + 1] = yDomain;\n        Util.applyTransform(coords, matrix, coordOffset);\n        coordOffset += 2;\n        cs.getRgbItem(colorBuf, 0, colors, colorOffset);\n        colorOffset += 4;\n      }\n    }\n    const ps = new Uint32Array(totalVertices);\n    for (let i = 0; i < totalVertices; i++) {\n      ps[i] = i;\n    }\n    this.figures = [{\n      type: MeshFigureType.LATTICE,\n      coords: ps,\n      colors: new Uint32Array(ps),\n      verticesPerRow\n    }];\n  }\n  getIR() {\n    const {\n      posData,\n      colData,\n      vertexCount\n    } = buildMeshVertexData(this.coords, this.colors, this.figures);\n    return [\"Mesh\", ShadingType.FUNCTION_BASED, posData, colData, vertexCount, this.bounds, this.bbox, this.background];\n  }\n}\nclass MeshStreamReader {\n  constructor(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n    const numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    const csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n  }\n  get hasData() {\n    if (this.stream.end) {\n      return this.stream.pos < this.stream.end;\n    }\n    if (this.bufferLength > 0) {\n      return true;\n    }\n    const nextByte = this.stream.getByte();\n    if (nextByte < 0) {\n      return false;\n    }\n    this.buffer = nextByte;\n    this.bufferLength = 8;\n    return true;\n  }\n  readBits(n) {\n    const {\n      stream\n    } = this;\n    let {\n      buffer,\n      bufferLength\n    } = this;\n    if (n === 32) {\n      if (bufferLength === 0) {\n        return stream.getInt32() >>> 0;\n      }\n      buffer = buffer << 24 | stream.getByte() << 16 | stream.getByte() << 8 | stream.getByte();\n      const nextByte = stream.getByte();\n      this.buffer = nextByte & (1 << bufferLength) - 1;\n      return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;\n    }\n    if (n === 8 && bufferLength === 0) {\n      return stream.getByte();\n    }\n    while (bufferLength < n) {\n      buffer = buffer << 8 | stream.getByte();\n      bufferLength += 8;\n    }\n    bufferLength -= n;\n    this.bufferLength = bufferLength;\n    this.buffer = buffer & (1 << bufferLength) - 1;\n    return buffer >> bufferLength;\n  }\n  align() {\n    this.buffer = 0;\n    this.bufferLength = 0;\n  }\n  readFlag() {\n    return this.readBits(this.context.bitsPerFlag);\n  }\n  readCoordinate() {\n    const {\n      bitsPerCoordinate,\n      decode\n    } = this.context;\n    const xi = this.readBits(bitsPerCoordinate);\n    const yi = this.readBits(bitsPerCoordinate);\n    const scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n    return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n  }\n  readComponents() {\n    const {\n      bitsPerComponent,\n      colorFn,\n      colorSpace,\n      decode,\n      numComps\n    } = this.context;\n    const scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n    const components = this.tmpCompsBuf;\n    for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n      const ci = this.readBits(bitsPerComponent);\n      components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n    }\n    const color = this.tmpCsCompsBuf;\n    colorFn?.(components, 0, color, 0);\n    return colorSpace.getRgb(color, 0);\n  }\n}\nlet bCache = Object.create(null);\nfunction buildB(count) {\n  const lut = [];\n  for (let i = 0; i <= count; i++) {\n    const t = i / count,\n      t_ = 1 - t;\n    lut.push(new Float32Array([t_ ** 3, 3 * t * t_ ** 2, 3 * t ** 2 * t_, t ** 3]));\n  }\n  return lut;\n}\nfunction getB(count) {\n  return bCache[count] ||= buildB(count);\n}\nfunction clearPatternCaches() {\n  bCache = Object.create(null);\n}\nclass MeshShading extends BaseShading {\n  static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n  static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n  static TRIANGLE_DENSITY = 20;\n  constructor(stream, xref, resources, pdfFunctionFactory, globalColorSpaceCache, localColorSpaceCache) {\n    super();\n    if (!(stream instanceof BaseStream)) {\n      throw new FormatError(\"Mesh data is not a stream\");\n    }\n    const dict = stream.dict;\n    this.shadingType = dict.get(\"ShadingType\");\n    this.bbox = lookupNormalRect(dict.getArray(\"BBox\"), null);\n    const cs = ColorSpaceUtils.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      globalColorSpaceCache,\n      localColorSpaceCache\n    });\n    this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = fnObj ? pdfFunctionFactory.create(fnObj, true) : null;\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n    const decodeContext = {\n      bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n      bitsPerComponent: dict.get(\"BitsPerComponent\"),\n      bitsPerFlag: dict.get(\"BitsPerFlag\"),\n      decode: dict.getArray(\"Decode\"),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps\n    };\n    const reader = new MeshStreamReader(stream, decodeContext);\n    let patchMesh = false;\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        this._decodeType4Shading(reader);\n        break;\n      case ShadingType.LATTICE_FORM_MESH:\n        const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n        if (verticesPerRow < 2) {\n          throw new FormatError(\"Invalid VerticesPerRow\");\n        }\n        this._decodeType5Shading(reader, verticesPerRow);\n        break;\n      case ShadingType.COONS_PATCH_MESH:\n        this._decodeType6Shading(reader);\n        patchMesh = true;\n        break;\n      case ShadingType.TENSOR_PATCH_MESH:\n        this._decodeType7Shading(reader);\n        patchMesh = true;\n        break;\n      default:\n        unreachable(\"Unsupported mesh type.\");\n        break;\n    }\n    if (patchMesh) {\n      this._updateBounds();\n      for (let i = 0, ii = this.figures.length; i < ii; i++) {\n        this._buildFigureFromPatch(i);\n      }\n    }\n    this._updateBounds();\n    this._packData();\n  }\n  _decodeType4Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const operators = [];\n    const ps = [];\n    let verticesLeft = 0;\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n      if (verticesLeft === 0) {\n        if (!(0 <= f && f <= 2)) {\n          throw new FormatError(\"Unknown type4 flag\");\n        }\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n          case 1:\n            ps.push(ps.at(-2), ps.at(-1));\n            verticesLeft = 1;\n            break;\n          case 2:\n            ps.push(ps.at(-3), ps.at(-1));\n            verticesLeft = 1;\n            break;\n        }\n        operators.push(f);\n      }\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n      reader.align();\n    }\n    this.figures.push({\n      type: MeshFigureType.TRIANGLES,\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps)\n    });\n  }\n  _decodeType5Shading(reader, verticesPerRow) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = [];\n    while (reader.hasData) {\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n    this.figures.push({\n      type: MeshFigureType.LATTICE,\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow\n    });\n  }\n  _decodeType6Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16);\n    const cs = new Int32Array(4);\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      if (!(0 <= f && f <= 3)) {\n        throw new FormatError(\"Unknown type6 flag\");\n      }\n      const pi = coords.length;\n      for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n      const ci = colors.length;\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n      let tmp1, tmp2, tmp3, tmp4;\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n      ps[5] = coords.length;\n      coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n      ps[6] = coords.length;\n      coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n      ps[9] = coords.length;\n      coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n      ps[10] = coords.length;\n      coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n      this.figures.push({\n        type: MeshFigureType.PATCH,\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n  _decodeType7Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16);\n    const cs = new Int32Array(4);\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      if (!(0 <= f && f <= 3)) {\n        throw new FormatError(\"Unknown type7 flag\");\n      }\n      const pi = coords.length;\n      for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n      const ci = colors.length;\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n      let tmp1, tmp2, tmp3, tmp4;\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[9] = pi + 13;\n          ps[10] = pi + 14;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[5] = pi + 12;\n          ps[6] = pi + 15;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n      this.figures.push({\n        type: MeshFigureType.PATCH,\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n  _buildFigureFromPatch(index) {\n    const figure = this.figures[index];\n    assert(figure.type === MeshFigureType.PATCH, \"Unexpected patch mesh figure\");\n    const coords = this.coords,\n      colors = this.colors;\n    const pi = figure.coords;\n    const ci = figure.colors;\n    const figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    const figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    const figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    const figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    let splitXBy = Math.ceil((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0]));\n    splitXBy = MathClamp(splitXBy, MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT);\n    let splitYBy = Math.ceil((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1]));\n    splitYBy = MathClamp(splitYBy, MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT);\n    const verticesPerRow = splitXBy + 1;\n    const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    let k = 0;\n    const cl = new Uint8Array(3),\n      cr = new Uint8Array(3);\n    const c0 = colors[ci[0]],\n      c1 = colors[ci[1]],\n      c2 = colors[ci[2]],\n      c3 = colors[ci[3]];\n    const bRow = getB(splitYBy),\n      bCol = getB(splitXBy);\n    for (let row = 0; row <= splitYBy; row++) {\n      cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n      cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n      cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n      cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n      cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n      cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n      for (let col = 0; col <= splitXBy; col++, k++) {\n        if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n          continue;\n        }\n        let x = 0,\n          y = 0;\n        let q = 0;\n        for (let i = 0; i <= 3; i++) {\n          for (let j = 0; j <= 3; j++, q++) {\n            const m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        const newColor = new Uint8Array(3);\n        newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n        newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n        newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n        colors.push(newColor);\n      }\n    }\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n    this.figures[index] = {\n      type: MeshFigureType.LATTICE,\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow\n    };\n  }\n  _updateBounds() {\n    meshUpdateBounds(this);\n  }\n  _packData() {\n    meshPackData(this);\n  }\n  getIR() {\n    const {\n      posData,\n      colData,\n      vertexCount\n    } = buildMeshVertexData(this.coords, this.colors, this.figures);\n    return [\"Mesh\", this.shadingType, posData, colData, vertexCount, this.bounds, this.bbox, this.background];\n  }\n}\nclass DummyShading extends BaseShading {\n  getIR() {\n    return [\"Dummy\"];\n  }\n}\nfunction getTilingPatternIR(operatorList, dict, color, needsIsolation = true) {\n  const matrix = lookupMatrix(dict.getArray(\"Matrix\"), IDENTITY_MATRIX);\n  const bbox = lookupNormalRect(dict.getArray(\"BBox\"), null);\n  if (!bbox || bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new FormatError(`Invalid getTilingPatternIR /BBox array.`);\n  }\n  const xstep = dict.get(\"XStep\");\n  if (typeof xstep !== \"number\") {\n    throw new FormatError(`Invalid getTilingPatternIR /XStep value.`);\n  }\n  const ystep = dict.get(\"YStep\");\n  if (typeof ystep !== \"number\") {\n    throw new FormatError(`Invalid getTilingPatternIR /YStep value.`);\n  }\n  const paintType = dict.get(\"PaintType\");\n  if (!Number.isInteger(paintType)) {\n    throw new FormatError(`Invalid getTilingPatternIR /PaintType value.`);\n  }\n  const tilingType = dict.get(\"TilingType\");\n  if (!Number.isInteger(tilingType)) {\n    throw new FormatError(`Invalid getTilingPatternIR /TilingType value.`);\n  }\n  return [\"TilingPattern\", color, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType, needsIsolation];\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js\nvar es_iterator_find = __webpack_require__(116);\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.iterator.for-each.js\nvar es_iterator_for_each = __webpack_require__(7588);\n;// ./src/core/binary_cmap.js\n\n\n\n\n\n\n\nfunction hexToInt(a, size) {\n  let n = 0;\n  for (let i = 0; i <= size; i++) {\n    n = n << 8 | a[i];\n  }\n  return n >>> 0;\n}\nfunction hexToStr(a, size) {\n  if (size === 1) {\n    return String.fromCharCode(a[0], a[1]);\n  }\n  if (size === 3) {\n    return String.fromCharCode(a[0], a[1], a[2], a[3]);\n  }\n  return String.fromCharCode(...a.subarray(0, size + 1));\n}\nfunction addHex(a, b, size) {\n  let c = 0;\n  for (let i = size; i >= 0; i--) {\n    c += a[i] + b[i];\n    a[i] = c & 255;\n    c >>= 8;\n  }\n}\nfunction incHex(a, size) {\n  let c = 1;\n  for (let i = size; i >= 0 && c > 0; i--) {\n    c += a[i];\n    a[i] = c & 255;\n    c >>= 8;\n  }\n}\nconst MAX_NUM_SIZE = 16;\nconst MAX_ENCODED_NUM_SIZE = 19;\nclass BinaryCMapStream extends Stream {\n  tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n  constructor(data) {\n    super(data, 0, data.length, null);\n  }\n  readNumber() {\n    let n = 0;\n    let last;\n    do {\n      const b = this.getByte();\n      if (b < 0) {\n        throw new FormatError(\"unexpected EOF in bcmap\");\n      }\n      last = !(b & 0x80);\n      n = n << 7 | b & 0x7f;\n    } while (!last);\n    return n;\n  }\n  readSigned() {\n    const n = this.readNumber();\n    return n & 1 ? ~(n >>> 1) : n >>> 1;\n  }\n  readHex(num, size) {\n    num.set(this.getBytes(size + 1));\n  }\n  readHexNumber(num, size) {\n    let last;\n    const stack = this.tmpBuf;\n    let sp = 0;\n    do {\n      const b = this.getByte();\n      if (b < 0) {\n        throw new FormatError(\"unexpected EOF in bcmap\");\n      }\n      last = !(b & 0x80);\n      stack[sp++] = b & 0x7f;\n    } while (!last);\n    let i = size,\n      buffer = 0,\n      bufferSize = 0;\n    while (i >= 0) {\n      while (bufferSize < 8 && stack.length > 0) {\n        buffer |= stack[--sp] << bufferSize;\n        bufferSize += 7;\n      }\n      num[i] = buffer & 255;\n      i--;\n      buffer >>= 8;\n      bufferSize -= 8;\n    }\n  }\n  readHexSigned(num, size) {\n    this.readHexNumber(num, size);\n    const sign = num[size] & 1 ? 255 : 0;\n    let c = 0;\n    for (let i = 0; i <= size; i++) {\n      c = (c & 1) << 8 | num[i];\n      num[i] = c >> 1 ^ sign;\n    }\n  }\n  readString() {\n    const len = this.readNumber(),\n      buf = new Array(len);\n    for (let i = 0; i < len; i++) {\n      buf[i] = this.readNumber();\n    }\n    return String.fromCharCode(...buf);\n  }\n}\nclass BinaryCMapReader {\n  async process(data, cMap, extend) {\n    const stream = new BinaryCMapStream(data);\n    const header = stream.getByte();\n    cMap.vertical = !!(header & 1);\n    let useCMap = null;\n    const start = new Uint8Array(MAX_NUM_SIZE);\n    const end = new Uint8Array(MAX_NUM_SIZE);\n    const char = new Uint8Array(MAX_NUM_SIZE);\n    const charCode = new Uint8Array(MAX_NUM_SIZE);\n    const tmp = new Uint8Array(MAX_NUM_SIZE);\n    let code;\n    let b;\n    while ((b = stream.getByte()) >= 0) {\n      const type = b >> 5;\n      if (type === 7) {\n        switch (b & 0x1f) {\n          case 0:\n            stream.readString();\n            break;\n          case 1:\n            useCMap = stream.readString();\n            break;\n        }\n        continue;\n      }\n      const sequence = !!(b & 0x10);\n      const dataSize = b & 15;\n      if (dataSize + 1 > MAX_NUM_SIZE) {\n        throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n      }\n      const ucs2DataSize = 1;\n      const subitemsCount = stream.readNumber();\n      switch (type) {\n        case 0:\n          stream.readHex(start, dataSize);\n          stream.readHexNumber(end, dataSize);\n          addHex(end, start, dataSize);\n          cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, dataSize);\n            stream.readHexNumber(start, dataSize);\n            addHex(start, end, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n          }\n          break;\n        case 1:\n          stream.readHex(start, dataSize);\n          stream.readHexNumber(end, dataSize);\n          addHex(end, start, dataSize);\n          stream.readNumber();\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, dataSize);\n            stream.readHexNumber(start, dataSize);\n            addHex(start, end, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber();\n          }\n          break;\n        case 2:\n          stream.readHex(char, dataSize);\n          code = stream.readNumber();\n          cMap.mapOne(hexToInt(char, dataSize), code);\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(char, dataSize);\n            if (!sequence) {\n              stream.readHexNumber(tmp, dataSize);\n              addHex(char, tmp, dataSize);\n            }\n            code = stream.readSigned() + (code + 1);\n            cMap.mapOne(hexToInt(char, dataSize), code);\n          }\n          break;\n        case 3:\n          stream.readHex(start, dataSize);\n          stream.readHexNumber(end, dataSize);\n          addHex(end, start, dataSize);\n          code = stream.readNumber();\n          cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, dataSize);\n            if (!sequence) {\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n            } else {\n              start.set(end);\n            }\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n          }\n          break;\n        case 4:\n          stream.readHex(char, ucs2DataSize);\n          stream.readHex(charCode, dataSize);\n          cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(char, ucs2DataSize);\n            if (!sequence) {\n              stream.readHexNumber(tmp, ucs2DataSize);\n              addHex(char, tmp, ucs2DataSize);\n            }\n            incHex(charCode, dataSize);\n            stream.readHexSigned(tmp, dataSize);\n            addHex(charCode, tmp, dataSize);\n            cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n          }\n          break;\n        case 5:\n          stream.readHex(start, ucs2DataSize);\n          stream.readHexNumber(end, ucs2DataSize);\n          addHex(end, start, ucs2DataSize);\n          stream.readHex(charCode, dataSize);\n          cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, ucs2DataSize);\n            if (!sequence) {\n              stream.readHexNumber(start, ucs2DataSize);\n              addHex(start, end, ucs2DataSize);\n            } else {\n              start.set(end);\n            }\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n          }\n          break;\n        default:\n          throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n      }\n    }\n    if (useCMap) {\n      return extend(useCMap);\n    }\n    return cMap;\n  }\n}\n\n;// ./src/core/ascii_85_stream.js\n\n\n\n\n\n\n\nclass Ascii85Stream extends DecodeStream {\n  #input = new Uint8Array(5);\n  constructor(str, maybeLength) {\n    if (maybeLength) {\n      maybeLength *= 0.8;\n    }\n    super(maybeLength);\n    this.stream = str;\n    this.dict = str.dict;\n  }\n  readBlock() {\n    const TILDA_CHAR = 0x7e;\n    const Z_LOWER_CHAR = 0x7a;\n    const EOF = -1;\n    const str = this.stream;\n    let c = str.getByte();\n    while (isWhiteSpace(c)) {\n      c = str.getByte();\n    }\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n    const bufferLength = this.bufferLength;\n    let buffer, i;\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n      buffer.fill(0, bufferLength, bufferLength + 4);\n      this.bufferLength += 4;\n    } else {\n      const input = this.#input;\n      input[0] = c;\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n        while (isWhiteSpace(c)) {\n          c = str.getByte();\n        }\n        input[i] = c;\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n      if (i < 5) {\n        input.fill(0x21 + 84, i, 5);\n        this.eof = true;\n      }\n      let t = 0;\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xff;\n        t >>= 8;\n      }\n    }\n  }\n}\n\n;// ./src/core/ascii_hex_stream.js\n\nclass AsciiHexStream extends DecodeStream {\n  constructor(str, maybeLength) {\n    if (maybeLength) {\n      maybeLength *= 0.5;\n    }\n    super(maybeLength);\n    this.stream = str;\n    this.dict = str.dict;\n    this.firstDigit = -1;\n  }\n  readBlock() {\n    const UPSTREAM_BLOCK_SIZE = 8000;\n    const bytes = this.stream.getBytes(UPSTREAM_BLOCK_SIZE);\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n    const maxDecodeLength = bytes.length + 1 >> 1;\n    const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    let bufferLength = this.bufferLength;\n    let firstDigit = this.firstDigit;\n    for (const ch of bytes) {\n      let digit;\n      if (ch >= 0x30 && ch <= 0x39) {\n        digit = ch & 0x0f;\n      } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n        digit = (ch & 0x0f) + 9;\n      } else if (ch === 0x3e) {\n        this.eof = true;\n        break;\n      } else {\n        continue;\n      }\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = firstDigit << 4 | digit;\n        firstDigit = -1;\n      }\n    }\n    if (firstDigit >= 0 && this.eof) {\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  }\n}\n\n;// ./external/brotli/decode.js\n\n\nlet Options;\nlet makeBrotliDecode = () => {\n  const MAX_HUFFMAN_TABLE_SIZE = Int32Array.from([256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080]);\n  const CODE_LENGTH_CODE_ORDER = Int32Array.from([1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15]);\n  const DISTANCE_SHORT_CODE_INDEX_OFFSET = Int32Array.from([0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3]);\n  const DISTANCE_SHORT_CODE_VALUE_OFFSET = Int32Array.from([0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3]);\n  const FIXED_TABLE = Int32Array.from([0x020000, 0x020004, 0x020003, 0x030002, 0x020000, 0x020004, 0x020003, 0x040001, 0x020000, 0x020004, 0x020003, 0x030002, 0x020000, 0x020004, 0x020003, 0x040005]);\n  const BLOCK_LENGTH_OFFSET = Int32Array.from([1, 5, 9, 13, 17, 25, 33, 41, 49, 65, 81, 97, 113, 145, 177, 209, 241, 305, 369, 497, 753, 1265, 2289, 4337, 8433, 16625]);\n  const BLOCK_LENGTH_N_BITS = Int32Array.from([2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 24]);\n  const INSERT_LENGTH_N_BITS = Int16Array.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0E, 0x18]);\n  const COPY_LENGTH_N_BITS = Int16Array.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x18]);\n  const CMD_LOOKUP = new Int16Array(2816);\n  unpackCommandLookupTable(CMD_LOOKUP);\n  function log2floor(i) {\n    let result = -1;\n    let step = 16;\n    let v = i;\n    while (step > 0) {\n      let next = v >> step;\n      if (next !== 0) {\n        result += step;\n        v = next;\n      }\n      step = step >> 1;\n    }\n    return result + v;\n  }\n  function calculateDistanceAlphabetSize(npostfix, ndirect, maxndistbits) {\n    return 16 + ndirect + 2 * (maxndistbits << npostfix);\n  }\n  function calculateDistanceAlphabetLimit(s, maxDistance, npostfix, ndirect) {\n    if (maxDistance < ndirect + (2 << npostfix)) {\n      return makeError(s, -23);\n    }\n    const offset = (maxDistance - ndirect >> npostfix) + 4;\n    const ndistbits = log2floor(offset) - 1;\n    const group = ndistbits - 1 << 1 | offset >> ndistbits & 1;\n    return (group - 1 << npostfix) + (1 << npostfix) + ndirect + 16;\n  }\n  function unpackCommandLookupTable(cmdLookup) {\n    const insertLengthOffsets = new Int32Array(24);\n    const copyLengthOffsets = new Int32Array(24);\n    copyLengthOffsets[0] = 2;\n    for (let i = 0; i < 23; ++i) {\n      insertLengthOffsets[i + 1] = insertLengthOffsets[i] + (1 << INSERT_LENGTH_N_BITS[i]);\n      copyLengthOffsets[i + 1] = copyLengthOffsets[i] + (1 << COPY_LENGTH_N_BITS[i]);\n    }\n    for (let cmdCode = 0; cmdCode < 704; ++cmdCode) {\n      let rangeIdx = cmdCode >> 6;\n      let distanceContextOffset = -4;\n      if (rangeIdx >= 2) {\n        rangeIdx -= 2;\n        distanceContextOffset = 0;\n      }\n      const insertCode = (0x29850 >> rangeIdx * 2 & 0x3) << 3 | cmdCode >> 3 & 7;\n      const copyCode = (0x26244 >> rangeIdx * 2 & 0x3) << 3 | cmdCode & 7;\n      const copyLengthOffset = copyLengthOffsets[copyCode];\n      const distanceContext = distanceContextOffset + Math.min(copyLengthOffset, 5) - 2;\n      const index = cmdCode * 4;\n      cmdLookup[index] = INSERT_LENGTH_N_BITS[insertCode] | COPY_LENGTH_N_BITS[copyCode] << 8;\n      cmdLookup[index + 1] = insertLengthOffsets[insertCode];\n      cmdLookup[index + 2] = copyLengthOffsets[copyCode];\n      cmdLookup[index + 3] = distanceContext;\n    }\n  }\n  function decodeWindowBits(s) {\n    const largeWindowEnabled = s.isLargeWindow;\n    s.isLargeWindow = 0;\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    if (readFewBits(s, 1) === 0) {\n      return 16;\n    }\n    let n = readFewBits(s, 3);\n    if (n !== 0) {\n      return 17 + n;\n    }\n    n = readFewBits(s, 3);\n    if (n !== 0) {\n      if (n === 1) {\n        if (largeWindowEnabled === 0) {\n          return -1;\n        }\n        s.isLargeWindow = 1;\n        if (readFewBits(s, 1) === 1) {\n          return -1;\n        }\n        n = readFewBits(s, 6);\n        if (n < 10 || n > 30) {\n          return -1;\n        }\n        return n;\n      }\n      return 8 + n;\n    }\n    return 17;\n  }\n  function attachDictionaryChunk(s, data) {\n    if (s.runningState !== 1) {\n      return makeError(s, -24);\n    }\n    if (s.cdNumChunks === 0) {\n      s.cdChunks = new Array(16);\n      s.cdChunkOffsets = new Int32Array(16);\n      s.cdBlockBits = -1;\n    }\n    if (s.cdNumChunks === 15) {\n      return makeError(s, -27);\n    }\n    s.cdChunks[s.cdNumChunks] = data;\n    s.cdNumChunks++;\n    s.cdTotalSize += data.length;\n    s.cdChunkOffsets[s.cdNumChunks] = s.cdTotalSize;\n    return 0;\n  }\n  function initState(s) {\n    if (s.runningState !== 0) {\n      return makeError(s, -26);\n    }\n    s.blockTrees = new Int32Array(3091);\n    s.blockTrees[0] = 7;\n    s.distRbIdx = 3;\n    let result = calculateDistanceAlphabetLimit(s, 0x7FFFFFFC, 3, 120);\n    if (result < 0) {\n      return result;\n    }\n    const maxDistanceAlphabetLimit = result;\n    s.distExtraBits = new Int8Array(maxDistanceAlphabetLimit);\n    s.distOffset = new Int32Array(maxDistanceAlphabetLimit);\n    result = initBitReader(s);\n    if (result < 0) {\n      return result;\n    }\n    s.runningState = 1;\n    return 0;\n  }\n  function close(s) {\n    if (s.runningState === 0) {\n      return makeError(s, -25);\n    }\n    if (s.runningState > 0) {\n      s.runningState = 11;\n    }\n    return 0;\n  }\n  function decodeVarLenUnsignedByte(s) {\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    if (readFewBits(s, 1) !== 0) {\n      const n = readFewBits(s, 3);\n      if (n === 0) {\n        return 1;\n      }\n      return readFewBits(s, n) + (1 << n);\n    }\n    return 0;\n  }\n  function decodeMetaBlockLength(s) {\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    s.inputEnd = readFewBits(s, 1);\n    s.metaBlockLength = 0;\n    s.isUncompressed = 0;\n    s.isMetadata = 0;\n    if (s.inputEnd !== 0 && readFewBits(s, 1) !== 0) {\n      return 0;\n    }\n    const sizeNibbles = readFewBits(s, 2) + 4;\n    if (sizeNibbles === 7) {\n      s.isMetadata = 1;\n      if (readFewBits(s, 1) !== 0) {\n        return makeError(s, -6);\n      }\n      const sizeBytes = readFewBits(s, 2);\n      if (sizeBytes === 0) {\n        return 0;\n      }\n      for (let i = 0; i < sizeBytes; ++i) {\n        if (s.bitOffset >= 16) {\n          s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n          s.bitOffset -= 16;\n        }\n        const bits = readFewBits(s, 8);\n        if (bits === 0 && i + 1 === sizeBytes && sizeBytes > 1) {\n          return makeError(s, -8);\n        }\n        s.metaBlockLength += bits << i * 8;\n      }\n    } else {\n      for (let i = 0; i < sizeNibbles; ++i) {\n        if (s.bitOffset >= 16) {\n          s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n          s.bitOffset -= 16;\n        }\n        const bits = readFewBits(s, 4);\n        if (bits === 0 && i + 1 === sizeNibbles && sizeNibbles > 4) {\n          return makeError(s, -8);\n        }\n        s.metaBlockLength += bits << i * 4;\n      }\n    }\n    s.metaBlockLength++;\n    if (s.inputEnd === 0) {\n      s.isUncompressed = readFewBits(s, 1);\n    }\n    return 0;\n  }\n  function readSymbol(tableGroup, tableIdx, s) {\n    let offset = tableGroup[tableIdx];\n    const v = s.accumulator32 >>> s.bitOffset;\n    offset += v & 0xFF;\n    const bits = tableGroup[offset] >> 16;\n    const sym = tableGroup[offset] & 0xFFFF;\n    if (bits <= 8) {\n      s.bitOffset += bits;\n      return sym;\n    }\n    offset += sym;\n    const mask = (1 << bits) - 1;\n    offset += (v & mask) >>> 8;\n    s.bitOffset += (tableGroup[offset] >> 16) + 8;\n    return tableGroup[offset] & 0xFFFF;\n  }\n  function readBlockLength(tableGroup, tableIdx, s) {\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    const code = readSymbol(tableGroup, tableIdx, s);\n    const n = BLOCK_LENGTH_N_BITS[code];\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    return BLOCK_LENGTH_OFFSET[code] + (n <= 16 ? readFewBits(s, n) : readManyBits(s, n));\n  }\n  function moveToFront(v, index) {\n    let i = index;\n    const value = v[i];\n    while (i > 0) {\n      v[i] = v[i - 1];\n      i--;\n    }\n    v[0] = value;\n  }\n  function inverseMoveToFrontTransform(v, vLen) {\n    const mtf = new Int32Array(256);\n    for (let i = 0; i < 256; ++i) {\n      mtf[i] = i;\n    }\n    for (let i = 0; i < vLen; ++i) {\n      const index = v[i] & 0xFF;\n      v[i] = mtf[index];\n      if (index !== 0) {\n        moveToFront(mtf, index);\n      }\n    }\n  }\n  function readHuffmanCodeLengths(codeLengthCodeLengths, numSymbols, codeLengths, s) {\n    let symbol = 0;\n    let prevCodeLen = 8;\n    let repeat = 0;\n    let repeatCodeLen = 0;\n    let space = 32768;\n    const table = new Int32Array(33);\n    const tableIdx = table.length - 1;\n    buildHuffmanTable(table, tableIdx, 5, codeLengthCodeLengths, 18);\n    while (symbol < numSymbols && space > 0) {\n      if (s.halfOffset > 2030) {\n        const result = readMoreInput(s);\n        if (result < 0) {\n          return result;\n        }\n      }\n      if (s.bitOffset >= 16) {\n        s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n        s.bitOffset -= 16;\n      }\n      const p = s.accumulator32 >>> s.bitOffset & 31;\n      s.bitOffset += table[p] >> 16;\n      const codeLen = table[p] & 0xFFFF;\n      if (codeLen < 16) {\n        repeat = 0;\n        codeLengths[symbol++] = codeLen;\n        if (codeLen !== 0) {\n          prevCodeLen = codeLen;\n          space -= 32768 >> codeLen;\n        }\n      } else {\n        const extraBits = codeLen - 14;\n        let newLen = 0;\n        if (codeLen === 16) {\n          newLen = prevCodeLen;\n        }\n        if (repeatCodeLen !== newLen) {\n          repeat = 0;\n          repeatCodeLen = newLen;\n        }\n        const oldRepeat = repeat;\n        if (repeat > 0) {\n          repeat -= 2;\n          repeat = repeat << extraBits;\n        }\n        if (s.bitOffset >= 16) {\n          s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n          s.bitOffset -= 16;\n        }\n        repeat += readFewBits(s, extraBits) + 3;\n        const repeatDelta = repeat - oldRepeat;\n        if (symbol + repeatDelta > numSymbols) {\n          return makeError(s, -2);\n        }\n        for (let i = 0; i < repeatDelta; ++i) {\n          codeLengths[symbol++] = repeatCodeLen;\n        }\n        if (repeatCodeLen !== 0) {\n          space -= repeatDelta << 15 - repeatCodeLen;\n        }\n      }\n    }\n    if (space !== 0) {\n      return makeError(s, -18);\n    }\n    codeLengths.fill(0, symbol, numSymbols);\n    return 0;\n  }\n  function checkDupes(s, symbols, length) {\n    for (let i = 0; i < length - 1; ++i) {\n      for (let j = i + 1; j < length; ++j) {\n        if (symbols[i] === symbols[j]) {\n          return makeError(s, -7);\n        }\n      }\n    }\n    return 0;\n  }\n  function readSimpleHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s) {\n    const codeLengths = new Int32Array(alphabetSizeLimit);\n    const symbols = new Int32Array(4);\n    const maxBits = 1 + log2floor(alphabetSizeMax - 1);\n    const numSymbols = readFewBits(s, 2) + 1;\n    for (let i = 0; i < numSymbols; ++i) {\n      if (s.bitOffset >= 16) {\n        s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n        s.bitOffset -= 16;\n      }\n      const symbol = readFewBits(s, maxBits);\n      if (symbol >= alphabetSizeLimit) {\n        return makeError(s, -15);\n      }\n      symbols[i] = symbol;\n    }\n    const result = checkDupes(s, symbols, numSymbols);\n    if (result < 0) {\n      return result;\n    }\n    let histogramId = numSymbols;\n    if (numSymbols === 4) {\n      histogramId += readFewBits(s, 1);\n    }\n    switch (histogramId) {\n      case 1:\n        codeLengths[symbols[0]] = 1;\n        break;\n      case 2:\n        codeLengths[symbols[0]] = 1;\n        codeLengths[symbols[1]] = 1;\n        break;\n      case 3:\n        codeLengths[symbols[0]] = 1;\n        codeLengths[symbols[1]] = 2;\n        codeLengths[symbols[2]] = 2;\n        break;\n      case 4:\n        codeLengths[symbols[0]] = 2;\n        codeLengths[symbols[1]] = 2;\n        codeLengths[symbols[2]] = 2;\n        codeLengths[symbols[3]] = 2;\n        break;\n      case 5:\n        codeLengths[symbols[0]] = 1;\n        codeLengths[symbols[1]] = 2;\n        codeLengths[symbols[2]] = 3;\n        codeLengths[symbols[3]] = 3;\n        break;\n      default:\n        break;\n    }\n    return buildHuffmanTable(tableGroup, tableIdx, 8, codeLengths, alphabetSizeLimit);\n  }\n  function readComplexHuffmanCode(alphabetSizeLimit, skip, tableGroup, tableIdx, s) {\n    const codeLengths = new Int32Array(alphabetSizeLimit);\n    const codeLengthCodeLengths = new Int32Array(18);\n    let space = 32;\n    let numCodes = 0;\n    for (let i = skip; i < 18; ++i) {\n      const codeLenIdx = CODE_LENGTH_CODE_ORDER[i];\n      if (s.bitOffset >= 16) {\n        s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n        s.bitOffset -= 16;\n      }\n      const p = s.accumulator32 >>> s.bitOffset & 15;\n      s.bitOffset += FIXED_TABLE[p] >> 16;\n      const v = FIXED_TABLE[p] & 0xFFFF;\n      codeLengthCodeLengths[codeLenIdx] = v;\n      if (v !== 0) {\n        space -= 32 >> v;\n        numCodes++;\n        if (space <= 0) {\n          break;\n        }\n      }\n    }\n    if (space !== 0 && numCodes !== 1) {\n      return makeError(s, -4);\n    }\n    const result = readHuffmanCodeLengths(codeLengthCodeLengths, alphabetSizeLimit, codeLengths, s);\n    if (result < 0) {\n      return result;\n    }\n    return buildHuffmanTable(tableGroup, tableIdx, 8, codeLengths, alphabetSizeLimit);\n  }\n  function readHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s) {\n    if (s.halfOffset > 2030) {\n      const result = readMoreInput(s);\n      if (result < 0) {\n        return result;\n      }\n    }\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    const simpleCodeOrSkip = readFewBits(s, 2);\n    if (simpleCodeOrSkip === 1) {\n      return readSimpleHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s);\n    }\n    return readComplexHuffmanCode(alphabetSizeLimit, simpleCodeOrSkip, tableGroup, tableIdx, s);\n  }\n  function decodeContextMap(contextMapSize, contextMap, s) {\n    let result;\n    if (s.halfOffset > 2030) {\n      result = readMoreInput(s);\n      if (result < 0) {\n        return result;\n      }\n    }\n    const numTrees = decodeVarLenUnsignedByte(s) + 1;\n    if (numTrees === 1) {\n      contextMap.fill(0, 0, contextMapSize);\n      return numTrees;\n    }\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    const useRleForZeros = readFewBits(s, 1);\n    let maxRunLengthPrefix = 0;\n    if (useRleForZeros !== 0) {\n      maxRunLengthPrefix = readFewBits(s, 4) + 1;\n    }\n    const alphabetSize = numTrees + maxRunLengthPrefix;\n    const tableSize = MAX_HUFFMAN_TABLE_SIZE[alphabetSize + 31 >> 5];\n    const table = new Int32Array(tableSize + 1);\n    const tableIdx = table.length - 1;\n    result = readHuffmanCode(alphabetSize, alphabetSize, table, tableIdx, s);\n    if (result < 0) {\n      return result;\n    }\n    let i = 0;\n    while (i < contextMapSize) {\n      if (s.halfOffset > 2030) {\n        result = readMoreInput(s);\n        if (result < 0) {\n          return result;\n        }\n      }\n      if (s.bitOffset >= 16) {\n        s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n        s.bitOffset -= 16;\n      }\n      const code = readSymbol(table, tableIdx, s);\n      if (code === 0) {\n        contextMap[i] = 0;\n        i++;\n      } else if (code <= maxRunLengthPrefix) {\n        if (s.bitOffset >= 16) {\n          s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n          s.bitOffset -= 16;\n        }\n        let reps = (1 << code) + readFewBits(s, code);\n        while (reps !== 0) {\n          if (i >= contextMapSize) {\n            return makeError(s, -3);\n          }\n          contextMap[i] = 0;\n          i++;\n          reps--;\n        }\n      } else {\n        contextMap[i] = code - maxRunLengthPrefix;\n        i++;\n      }\n    }\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    if (readFewBits(s, 1) === 1) {\n      inverseMoveToFrontTransform(contextMap, contextMapSize);\n    }\n    return numTrees;\n  }\n  function decodeBlockTypeAndLength(s, treeType, numBlockTypes) {\n    const ringBuffers = s.rings;\n    const offset = 4 + treeType * 2;\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    let blockType = readSymbol(s.blockTrees, 2 * treeType, s);\n    const result = readBlockLength(s.blockTrees, 2 * treeType + 1, s);\n    if (blockType === 1) {\n      blockType = ringBuffers[offset + 1] + 1;\n    } else if (blockType === 0) {\n      blockType = ringBuffers[offset];\n    } else {\n      blockType -= 2;\n    }\n    if (blockType >= numBlockTypes) {\n      blockType -= numBlockTypes;\n    }\n    ringBuffers[offset] = ringBuffers[offset + 1];\n    ringBuffers[offset + 1] = blockType;\n    return result;\n  }\n  function decodeLiteralBlockSwitch(s) {\n    s.literalBlockLength = decodeBlockTypeAndLength(s, 0, s.numLiteralBlockTypes);\n    const literalBlockType = s.rings[5];\n    s.contextMapSlice = literalBlockType << 6;\n    s.literalTreeIdx = s.contextMap[s.contextMapSlice] & 0xFF;\n    const contextMode = s.contextModes[literalBlockType];\n    s.contextLookupOffset1 = contextMode << 9;\n    s.contextLookupOffset2 = s.contextLookupOffset1 + 256;\n  }\n  function decodeCommandBlockSwitch(s) {\n    s.commandBlockLength = decodeBlockTypeAndLength(s, 1, s.numCommandBlockTypes);\n    s.commandTreeIdx = s.rings[7];\n  }\n  function decodeDistanceBlockSwitch(s) {\n    s.distanceBlockLength = decodeBlockTypeAndLength(s, 2, s.numDistanceBlockTypes);\n    s.distContextMapSlice = s.rings[9] << 2;\n  }\n  function maybeReallocateRingBuffer(s) {\n    let newSize = s.maxRingBufferSize;\n    if (newSize > s.expectedTotalSize) {\n      const minimalNewSize = s.expectedTotalSize;\n      while (newSize >> 1 > minimalNewSize) {\n        newSize = newSize >> 1;\n      }\n      if (s.inputEnd === 0 && newSize < 16384 && s.maxRingBufferSize >= 16384) {\n        newSize = 16384;\n      }\n    }\n    if (newSize <= s.ringBufferSize) {\n      return;\n    }\n    const ringBufferSizeWithSlack = newSize + 37;\n    const newBuffer = new Int8Array(ringBufferSizeWithSlack);\n    const oldBuffer = s.ringBuffer;\n    if (oldBuffer.length !== 0) {\n      newBuffer.set(oldBuffer.subarray(0, s.ringBufferSize), 0);\n    }\n    s.ringBuffer = newBuffer;\n    s.ringBufferSize = newSize;\n  }\n  function readNextMetablockHeader(s) {\n    if (s.inputEnd !== 0) {\n      s.nextRunningState = 10;\n      s.runningState = 12;\n      return 0;\n    }\n    s.literalTreeGroup = new Int32Array(0);\n    s.commandTreeGroup = new Int32Array(0);\n    s.distanceTreeGroup = new Int32Array(0);\n    let result;\n    if (s.halfOffset > 2030) {\n      result = readMoreInput(s);\n      if (result < 0) {\n        return result;\n      }\n    }\n    result = decodeMetaBlockLength(s);\n    if (result < 0) {\n      return result;\n    }\n    if (s.metaBlockLength === 0 && s.isMetadata === 0) {\n      return 0;\n    }\n    if (s.isUncompressed !== 0 || s.isMetadata !== 0) {\n      result = jumpToByteBoundary(s);\n      if (result < 0) {\n        return result;\n      }\n      if (s.isMetadata === 0) {\n        s.runningState = 6;\n      } else {\n        s.runningState = 5;\n      }\n    } else {\n      s.runningState = 3;\n    }\n    if (s.isMetadata !== 0) {\n      return 0;\n    }\n    s.expectedTotalSize += s.metaBlockLength;\n    if (s.expectedTotalSize > 1 << 30) {\n      s.expectedTotalSize = 1 << 30;\n    }\n    if (s.ringBufferSize < s.maxRingBufferSize) {\n      maybeReallocateRingBuffer(s);\n    }\n    return 0;\n  }\n  function readMetablockPartition(s, treeType, numBlockTypes) {\n    let offset = s.blockTrees[2 * treeType];\n    if (numBlockTypes <= 1) {\n      s.blockTrees[2 * treeType + 1] = offset;\n      s.blockTrees[2 * treeType + 2] = offset;\n      return 1 << 28;\n    }\n    const blockTypeAlphabetSize = numBlockTypes + 2;\n    let result = readHuffmanCode(blockTypeAlphabetSize, blockTypeAlphabetSize, s.blockTrees, 2 * treeType, s);\n    if (result < 0) {\n      return result;\n    }\n    offset += result;\n    s.blockTrees[2 * treeType + 1] = offset;\n    const blockLengthAlphabetSize = 26;\n    result = readHuffmanCode(blockLengthAlphabetSize, blockLengthAlphabetSize, s.blockTrees, 2 * treeType + 1, s);\n    if (result < 0) {\n      return result;\n    }\n    offset += result;\n    s.blockTrees[2 * treeType + 2] = offset;\n    return readBlockLength(s.blockTrees, 2 * treeType + 1, s);\n  }\n  function calculateDistanceLut(s, alphabetSizeLimit) {\n    const distExtraBits = s.distExtraBits;\n    const distOffset = s.distOffset;\n    const npostfix = s.distancePostfixBits;\n    const ndirect = s.numDirectDistanceCodes;\n    const postfix = 1 << npostfix;\n    let bits = 1;\n    let half = 0;\n    let i = 16;\n    for (let j = 0; j < ndirect; ++j) {\n      distExtraBits[i] = 0;\n      distOffset[i] = j + 1;\n      ++i;\n    }\n    while (i < alphabetSizeLimit) {\n      const base = ndirect + ((2 + half << bits) - 4 << npostfix) + 1;\n      for (let j = 0; j < postfix; ++j) {\n        distExtraBits[i] = bits;\n        distOffset[i] = base + j;\n        ++i;\n      }\n      bits = bits + half;\n      half = half ^ 1;\n    }\n  }\n  function readMetablockHuffmanCodesAndContextMaps(s) {\n    s.numLiteralBlockTypes = decodeVarLenUnsignedByte(s) + 1;\n    let result = readMetablockPartition(s, 0, s.numLiteralBlockTypes);\n    if (result < 0) {\n      return result;\n    }\n    s.literalBlockLength = result;\n    s.numCommandBlockTypes = decodeVarLenUnsignedByte(s) + 1;\n    result = readMetablockPartition(s, 1, s.numCommandBlockTypes);\n    if (result < 0) {\n      return result;\n    }\n    s.commandBlockLength = result;\n    s.numDistanceBlockTypes = decodeVarLenUnsignedByte(s) + 1;\n    result = readMetablockPartition(s, 2, s.numDistanceBlockTypes);\n    if (result < 0) {\n      return result;\n    }\n    s.distanceBlockLength = result;\n    if (s.halfOffset > 2030) {\n      result = readMoreInput(s);\n      if (result < 0) {\n        return result;\n      }\n    }\n    if (s.bitOffset >= 16) {\n      s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n      s.bitOffset -= 16;\n    }\n    s.distancePostfixBits = readFewBits(s, 2);\n    s.numDirectDistanceCodes = readFewBits(s, 4) << s.distancePostfixBits;\n    s.contextModes = new Int8Array(s.numLiteralBlockTypes);\n    let i = 0;\n    while (i < s.numLiteralBlockTypes) {\n      const limit = Math.min(i + 96, s.numLiteralBlockTypes);\n      while (i < limit) {\n        if (s.bitOffset >= 16) {\n          s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n          s.bitOffset -= 16;\n        }\n        s.contextModes[i] = readFewBits(s, 2);\n        i++;\n      }\n      if (s.halfOffset > 2030) {\n        result = readMoreInput(s);\n        if (result < 0) {\n          return result;\n        }\n      }\n    }\n    const contextMapLength = s.numLiteralBlockTypes << 6;\n    s.contextMap = new Int8Array(contextMapLength);\n    result = decodeContextMap(contextMapLength, s.contextMap, s);\n    if (result < 0) {\n      return result;\n    }\n    const numLiteralTrees = result;\n    s.trivialLiteralContext = 1;\n    for (let j = 0; j < contextMapLength; ++j) {\n      if (s.contextMap[j] !== j >> 6) {\n        s.trivialLiteralContext = 0;\n        break;\n      }\n    }\n    s.distContextMap = new Int8Array(s.numDistanceBlockTypes << 2);\n    result = decodeContextMap(s.numDistanceBlockTypes << 2, s.distContextMap, s);\n    if (result < 0) {\n      return result;\n    }\n    const numDistTrees = result;\n    s.literalTreeGroup = new Int32Array(huffmanTreeGroupAllocSize(256, numLiteralTrees));\n    result = decodeHuffmanTreeGroup(256, 256, numLiteralTrees, s, s.literalTreeGroup);\n    if (result < 0) {\n      return result;\n    }\n    s.commandTreeGroup = new Int32Array(huffmanTreeGroupAllocSize(704, s.numCommandBlockTypes));\n    result = decodeHuffmanTreeGroup(704, 704, s.numCommandBlockTypes, s, s.commandTreeGroup);\n    if (result < 0) {\n      return result;\n    }\n    let distanceAlphabetSizeMax = calculateDistanceAlphabetSize(s.distancePostfixBits, s.numDirectDistanceCodes, 24);\n    let distanceAlphabetSizeLimit = distanceAlphabetSizeMax;\n    if (s.isLargeWindow === 1) {\n      distanceAlphabetSizeMax = calculateDistanceAlphabetSize(s.distancePostfixBits, s.numDirectDistanceCodes, 62);\n      result = calculateDistanceAlphabetLimit(s, 0x7FFFFFFC, s.distancePostfixBits, s.numDirectDistanceCodes);\n      if (result < 0) {\n        return result;\n      }\n      distanceAlphabetSizeLimit = result;\n    }\n    s.distanceTreeGroup = new Int32Array(huffmanTreeGroupAllocSize(distanceAlphabetSizeLimit, numDistTrees));\n    result = decodeHuffmanTreeGroup(distanceAlphabetSizeMax, distanceAlphabetSizeLimit, numDistTrees, s, s.distanceTreeGroup);\n    if (result < 0) {\n      return result;\n    }\n    calculateDistanceLut(s, distanceAlphabetSizeLimit);\n    s.contextMapSlice = 0;\n    s.distContextMapSlice = 0;\n    s.contextLookupOffset1 = s.contextModes[0] * 512;\n    s.contextLookupOffset2 = s.contextLookupOffset1 + 256;\n    s.literalTreeIdx = 0;\n    s.commandTreeIdx = 0;\n    s.rings[4] = 1;\n    s.rings[5] = 0;\n    s.rings[6] = 1;\n    s.rings[7] = 0;\n    s.rings[8] = 1;\n    s.rings[9] = 0;\n    return 0;\n  }\n  function copyUncompressedData(s) {\n    const ringBuffer = s.ringBuffer;\n    let result;\n    if (s.metaBlockLength <= 0) {\n      result = reload(s);\n      if (result < 0) {\n        return result;\n      }\n      s.runningState = 2;\n      return 0;\n    }\n    const chunkLength = Math.min(s.ringBufferSize - s.pos, s.metaBlockLength);\n    result = copyRawBytes(s, ringBuffer, s.pos, chunkLength);\n    if (result < 0) {\n      return result;\n    }\n    s.metaBlockLength -= chunkLength;\n    s.pos += chunkLength;\n    if (s.pos === s.ringBufferSize) {\n      s.nextRunningState = 6;\n      s.runningState = 12;\n      return 0;\n    }\n    result = reload(s);\n    if (result < 0) {\n      return result;\n    }\n    s.runningState = 2;\n    return 0;\n  }\n  function writeRingBuffer(s) {\n    const toWrite = Math.min(s.outputLength - s.outputUsed, s.ringBufferBytesReady - s.ringBufferBytesWritten);\n    if (toWrite !== 0) {\n      s.output.set(s.ringBuffer.subarray(s.ringBufferBytesWritten, s.ringBufferBytesWritten + toWrite), s.outputOffset + s.outputUsed);\n      s.outputUsed += toWrite;\n      s.ringBufferBytesWritten += toWrite;\n    }\n    if (s.outputUsed < s.outputLength) {\n      return 0;\n    }\n    return 2;\n  }\n  function huffmanTreeGroupAllocSize(alphabetSizeLimit, n) {\n    const maxTableSize = MAX_HUFFMAN_TABLE_SIZE[alphabetSizeLimit + 31 >> 5];\n    return n + n * maxTableSize;\n  }\n  function decodeHuffmanTreeGroup(alphabetSizeMax, alphabetSizeLimit, n, s, group) {\n    let next = n;\n    for (let i = 0; i < n; ++i) {\n      group[i] = next;\n      const result = readHuffmanCode(alphabetSizeMax, alphabetSizeLimit, group, i, s);\n      if (result < 0) {\n        return result;\n      }\n      next += result;\n    }\n    return 0;\n  }\n  function calculateFence(s) {\n    let result = s.ringBufferSize;\n    if (s.isEager !== 0) {\n      result = Math.min(result, s.ringBufferBytesWritten + s.outputLength - s.outputUsed);\n    }\n    return result;\n  }\n  function doUseDictionary(s, fence) {\n    if (s.distance > 0x7FFFFFFC) {\n      return makeError(s, -9);\n    }\n    const address = s.distance - s.maxDistance - 1 - s.cdTotalSize;\n    if (address < 0) {\n      const result = initializeCompoundDictionaryCopy(s, -address - 1, s.copyLength);\n      if (result < 0) {\n        return result;\n      }\n      s.runningState = 14;\n    } else {\n      const dictionaryData = data;\n      const wordLength = s.copyLength;\n      if (wordLength > 31) {\n        return makeError(s, -9);\n      }\n      const shift = sizeBits[wordLength];\n      if (shift === 0) {\n        return makeError(s, -9);\n      }\n      let offset = offsets[wordLength];\n      const mask = (1 << shift) - 1;\n      const wordIdx = address & mask;\n      const transformIdx = address >> shift;\n      offset += wordIdx * wordLength;\n      const transforms = RFC_TRANSFORMS;\n      if (transformIdx >= transforms.numTransforms) {\n        return makeError(s, -9);\n      }\n      const len = transformDictionaryWord(s.ringBuffer, s.pos, dictionaryData, offset, wordLength, transforms, transformIdx);\n      s.pos += len;\n      s.metaBlockLength -= len;\n      if (s.pos >= fence) {\n        s.nextRunningState = 4;\n        s.runningState = 12;\n        return 0;\n      }\n      s.runningState = 4;\n    }\n    return 0;\n  }\n  function initializeCompoundDictionary(s) {\n    s.cdBlockMap = new Int8Array(256);\n    let blockBits = 8;\n    while (s.cdTotalSize - 1 >> blockBits !== 0) {\n      blockBits++;\n    }\n    blockBits -= 8;\n    s.cdBlockBits = blockBits;\n    let cursor = 0;\n    let index = 0;\n    while (cursor < s.cdTotalSize) {\n      while (s.cdChunkOffsets[index + 1] < cursor) {\n        index++;\n      }\n      s.cdBlockMap[cursor >> blockBits] = index;\n      cursor += 1 << blockBits;\n    }\n  }\n  function initializeCompoundDictionaryCopy(s, address, length) {\n    if (s.cdBlockBits === -1) {\n      initializeCompoundDictionary(s);\n    }\n    let index = s.cdBlockMap[address >> s.cdBlockBits];\n    while (address >= s.cdChunkOffsets[index + 1]) {\n      index++;\n    }\n    if (s.cdTotalSize > address + length) {\n      return makeError(s, -9);\n    }\n    s.distRbIdx = s.distRbIdx + 1 & 0x3;\n    s.rings[s.distRbIdx] = s.distance;\n    s.metaBlockLength -= length;\n    s.cdBrIndex = index;\n    s.cdBrOffset = address - s.cdChunkOffsets[index];\n    s.cdBrLength = length;\n    s.cdBrCopied = 0;\n    return 0;\n  }\n  function copyFromCompoundDictionary(s, fence) {\n    let pos = s.pos;\n    const origPos = pos;\n    while (s.cdBrLength !== s.cdBrCopied) {\n      const space = fence - pos;\n      const chunkLength = s.cdChunkOffsets[s.cdBrIndex + 1] - s.cdChunkOffsets[s.cdBrIndex];\n      const remChunkLength = chunkLength - s.cdBrOffset;\n      let length = s.cdBrLength - s.cdBrCopied;\n      if (length > remChunkLength) {\n        length = remChunkLength;\n      }\n      if (length > space) {\n        length = space;\n      }\n      s.ringBuffer.set(s.cdChunks[s.cdBrIndex].subarray(s.cdBrOffset, s.cdBrOffset + length), pos);\n      pos += length;\n      s.cdBrOffset += length;\n      s.cdBrCopied += length;\n      if (length === remChunkLength) {\n        s.cdBrIndex++;\n        s.cdBrOffset = 0;\n      }\n      if (pos >= fence) {\n        break;\n      }\n    }\n    return pos - origPos;\n  }\n  function decompress(s) {\n    let result;\n    if (s.runningState === 0) {\n      return makeError(s, -25);\n    }\n    if (s.runningState < 0) {\n      return makeError(s, -28);\n    }\n    if (s.runningState === 11) {\n      return makeError(s, -22);\n    }\n    if (s.runningState === 1) {\n      const windowBits = decodeWindowBits(s);\n      if (windowBits === -1) {\n        return makeError(s, -11);\n      }\n      s.maxRingBufferSize = 1 << windowBits;\n      s.maxBackwardDistance = s.maxRingBufferSize - 16;\n      s.runningState = 2;\n    }\n    let fence = calculateFence(s);\n    let ringBufferMask = s.ringBufferSize - 1;\n    let ringBuffer = s.ringBuffer;\n    while (s.runningState !== 10) {\n      switch (s.runningState) {\n        case 2:\n          if (s.metaBlockLength < 0) {\n            return makeError(s, -10);\n          }\n          result = readNextMetablockHeader(s);\n          if (result < 0) {\n            return result;\n          }\n          fence = calculateFence(s);\n          ringBufferMask = s.ringBufferSize - 1;\n          ringBuffer = s.ringBuffer;\n          continue;\n        case 3:\n          result = readMetablockHuffmanCodesAndContextMaps(s);\n          if (result < 0) {\n            return result;\n          }\n          s.runningState = 4;\n          continue;\n        case 4:\n          if (s.metaBlockLength <= 0) {\n            s.runningState = 2;\n            continue;\n          }\n          if (s.halfOffset > 2030) {\n            result = readMoreInput(s);\n            if (result < 0) {\n              return result;\n            }\n          }\n          if (s.commandBlockLength === 0) {\n            decodeCommandBlockSwitch(s);\n          }\n          s.commandBlockLength--;\n          if (s.bitOffset >= 16) {\n            s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n            s.bitOffset -= 16;\n          }\n          const cmdCode = readSymbol(s.commandTreeGroup, s.commandTreeIdx, s) << 2;\n          const insertAndCopyExtraBits = CMD_LOOKUP[cmdCode];\n          const insertLengthOffset = CMD_LOOKUP[cmdCode + 1];\n          const copyLengthOffset = CMD_LOOKUP[cmdCode + 2];\n          s.distanceCode = CMD_LOOKUP[cmdCode + 3];\n          if (s.bitOffset >= 16) {\n            s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n            s.bitOffset -= 16;\n          }\n          const insertLengthExtraBits = insertAndCopyExtraBits & 0xFF;\n          s.insertLength = insertLengthOffset + (insertLengthExtraBits <= 16 ? readFewBits(s, insertLengthExtraBits) : readManyBits(s, insertLengthExtraBits));\n          if (s.bitOffset >= 16) {\n            s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n            s.bitOffset -= 16;\n          }\n          const copyLengthExtraBits = insertAndCopyExtraBits >> 8;\n          s.copyLength = copyLengthOffset + (copyLengthExtraBits <= 16 ? readFewBits(s, copyLengthExtraBits) : readManyBits(s, copyLengthExtraBits));\n          s.j = 0;\n          s.runningState = 7;\n          continue;\n        case 7:\n          if (s.trivialLiteralContext !== 0) {\n            while (s.j < s.insertLength) {\n              if (s.halfOffset > 2030) {\n                result = readMoreInput(s);\n                if (result < 0) {\n                  return result;\n                }\n              }\n              if (s.literalBlockLength === 0) {\n                decodeLiteralBlockSwitch(s);\n              }\n              s.literalBlockLength--;\n              if (s.bitOffset >= 16) {\n                s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n                s.bitOffset -= 16;\n              }\n              ringBuffer[s.pos] = readSymbol(s.literalTreeGroup, s.literalTreeIdx, s);\n              s.pos++;\n              s.j++;\n              if (s.pos >= fence) {\n                s.nextRunningState = 7;\n                s.runningState = 12;\n                break;\n              }\n            }\n          } else {\n            let prevByte1 = ringBuffer[s.pos - 1 & ringBufferMask] & 0xFF;\n            let prevByte2 = ringBuffer[s.pos - 2 & ringBufferMask] & 0xFF;\n            while (s.j < s.insertLength) {\n              if (s.halfOffset > 2030) {\n                result = readMoreInput(s);\n                if (result < 0) {\n                  return result;\n                }\n              }\n              if (s.literalBlockLength === 0) {\n                decodeLiteralBlockSwitch(s);\n              }\n              const literalContext = LOOKUP[s.contextLookupOffset1 + prevByte1] | LOOKUP[s.contextLookupOffset2 + prevByte2];\n              const literalTreeIdx = s.contextMap[s.contextMapSlice + literalContext] & 0xFF;\n              s.literalBlockLength--;\n              prevByte2 = prevByte1;\n              if (s.bitOffset >= 16) {\n                s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n                s.bitOffset -= 16;\n              }\n              prevByte1 = readSymbol(s.literalTreeGroup, literalTreeIdx, s);\n              ringBuffer[s.pos] = prevByte1;\n              s.pos++;\n              s.j++;\n              if (s.pos >= fence) {\n                s.nextRunningState = 7;\n                s.runningState = 12;\n                break;\n              }\n            }\n          }\n          if (s.runningState !== 7) {\n            continue;\n          }\n          s.metaBlockLength -= s.insertLength;\n          if (s.metaBlockLength <= 0) {\n            s.runningState = 4;\n            continue;\n          }\n          let distanceCode = s.distanceCode;\n          if (distanceCode < 0) {\n            s.distance = s.rings[s.distRbIdx];\n          } else {\n            if (s.halfOffset > 2030) {\n              result = readMoreInput(s);\n              if (result < 0) {\n                return result;\n              }\n            }\n            if (s.distanceBlockLength === 0) {\n              decodeDistanceBlockSwitch(s);\n            }\n            s.distanceBlockLength--;\n            if (s.bitOffset >= 16) {\n              s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n              s.bitOffset -= 16;\n            }\n            const distTreeIdx = s.distContextMap[s.distContextMapSlice + distanceCode] & 0xFF;\n            distanceCode = readSymbol(s.distanceTreeGroup, distTreeIdx, s);\n            if (distanceCode < 16) {\n              const index = s.distRbIdx + DISTANCE_SHORT_CODE_INDEX_OFFSET[distanceCode] & 0x3;\n              s.distance = s.rings[index] + DISTANCE_SHORT_CODE_VALUE_OFFSET[distanceCode];\n              if (s.distance < 0) {\n                return makeError(s, -12);\n              }\n            } else {\n              const extraBits = s.distExtraBits[distanceCode];\n              let bits;\n              if (s.bitOffset + extraBits <= 32) {\n                bits = readFewBits(s, extraBits);\n              } else {\n                if (s.bitOffset >= 16) {\n                  s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n                  s.bitOffset -= 16;\n                }\n                bits = extraBits <= 16 ? readFewBits(s, extraBits) : readManyBits(s, extraBits);\n              }\n              s.distance = s.distOffset[distanceCode] + (bits << s.distancePostfixBits);\n            }\n          }\n          if (s.maxDistance !== s.maxBackwardDistance && s.pos < s.maxBackwardDistance) {\n            s.maxDistance = s.pos;\n          } else {\n            s.maxDistance = s.maxBackwardDistance;\n          }\n          if (s.distance > s.maxDistance) {\n            s.runningState = 9;\n            continue;\n          }\n          if (distanceCode > 0) {\n            s.distRbIdx = s.distRbIdx + 1 & 0x3;\n            s.rings[s.distRbIdx] = s.distance;\n          }\n          if (s.copyLength > s.metaBlockLength) {\n            return makeError(s, -9);\n          }\n          s.j = 0;\n          s.runningState = 8;\n          continue;\n        case 8:\n          let src = s.pos - s.distance & ringBufferMask;\n          let dst = s.pos;\n          const copyLength = s.copyLength - s.j;\n          const srcEnd = src + copyLength;\n          const dstEnd = dst + copyLength;\n          if (srcEnd < ringBufferMask && dstEnd < ringBufferMask) {\n            if (copyLength < 12 || srcEnd > dst && dstEnd > src) {\n              const numQuads = copyLength + 3 >> 2;\n              for (let k = 0; k < numQuads; ++k) {\n                ringBuffer[dst++] = ringBuffer[src++];\n                ringBuffer[dst++] = ringBuffer[src++];\n                ringBuffer[dst++] = ringBuffer[src++];\n                ringBuffer[dst++] = ringBuffer[src++];\n              }\n            } else {\n              ringBuffer.copyWithin(dst, src, srcEnd);\n            }\n            s.j += copyLength;\n            s.metaBlockLength -= copyLength;\n            s.pos += copyLength;\n          } else {\n            while (s.j < s.copyLength) {\n              ringBuffer[s.pos] = ringBuffer[s.pos - s.distance & ringBufferMask];\n              s.metaBlockLength--;\n              s.pos++;\n              s.j++;\n              if (s.pos >= fence) {\n                s.nextRunningState = 8;\n                s.runningState = 12;\n                break;\n              }\n            }\n          }\n          if (s.runningState === 8) {\n            s.runningState = 4;\n          }\n          continue;\n        case 9:\n          result = doUseDictionary(s, fence);\n          if (result < 0) {\n            return result;\n          }\n          continue;\n        case 14:\n          s.pos += copyFromCompoundDictionary(s, fence);\n          if (s.pos >= fence) {\n            s.nextRunningState = 14;\n            s.runningState = 12;\n            return 2;\n          }\n          s.runningState = 4;\n          continue;\n        case 5:\n          while (s.metaBlockLength > 0) {\n            if (s.halfOffset > 2030) {\n              result = readMoreInput(s);\n              if (result < 0) {\n                return result;\n              }\n            }\n            if (s.bitOffset >= 16) {\n              s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n              s.bitOffset -= 16;\n            }\n            readFewBits(s, 8);\n            s.metaBlockLength--;\n          }\n          s.runningState = 2;\n          continue;\n        case 6:\n          result = copyUncompressedData(s);\n          if (result < 0) {\n            return result;\n          }\n          continue;\n        case 12:\n          s.ringBufferBytesReady = Math.min(s.pos, s.ringBufferSize);\n          s.runningState = 13;\n          continue;\n        case 13:\n          result = writeRingBuffer(s);\n          if (result !== 0) {\n            return result;\n          }\n          if (s.pos >= s.maxBackwardDistance) {\n            s.maxDistance = s.maxBackwardDistance;\n          }\n          if (s.pos >= s.ringBufferSize) {\n            if (s.pos > s.ringBufferSize) {\n              ringBuffer.copyWithin(0, s.ringBufferSize, s.pos);\n            }\n            s.pos = s.pos & ringBufferMask;\n            s.ringBufferBytesWritten = 0;\n          }\n          s.runningState = s.nextRunningState;\n          continue;\n        default:\n          return makeError(s, -28);\n      }\n    }\n    if (s.runningState !== 10) {\n      return makeError(s, -29);\n    }\n    if (s.metaBlockLength < 0) {\n      return makeError(s, -10);\n    }\n    result = jumpToByteBoundary(s);\n    if (result !== 0) {\n      return result;\n    }\n    result = checkHealth(s, 1);\n    if (result !== 0) {\n      return result;\n    }\n    return 1;\n  }\n  function Transforms(numTransforms, prefixSuffixLen, prefixSuffixCount) {\n    this.numTransforms = 0;\n    this.triplets = new Int32Array(0);\n    this.prefixSuffixStorage = new Int8Array(0);\n    this.prefixSuffixHeads = new Int32Array(0);\n    this.params = new Int16Array(0);\n    this.numTransforms = numTransforms;\n    this.triplets = new Int32Array(numTransforms * 3);\n    this.params = new Int16Array(numTransforms);\n    this.prefixSuffixStorage = new Int8Array(prefixSuffixLen);\n    this.prefixSuffixHeads = new Int32Array(prefixSuffixCount + 1);\n  }\n  const RFC_TRANSFORMS = new Transforms(121, 167, 50);\n  function unpackTransforms(prefixSuffix, prefixSuffixHeads, transforms, prefixSuffixSrc, transformsSrc) {\n    const prefixSuffixBytes = toUtf8Runes(prefixSuffixSrc);\n    const n = prefixSuffixBytes.length;\n    let index = 1;\n    let j = 0;\n    for (let i = 0; i < n; ++i) {\n      const c = prefixSuffixBytes[i];\n      if (c === 35) {\n        prefixSuffixHeads[index++] = j;\n      } else {\n        prefixSuffix[j++] = c;\n      }\n    }\n    for (let i = 0; i < 363; ++i) {\n      transforms[i] = transformsSrc.charCodeAt(i) - 32;\n    }\n  }\n  unpackTransforms(RFC_TRANSFORMS.prefixSuffixStorage, RFC_TRANSFORMS.prefixSuffixHeads, RFC_TRANSFORMS.triplets, \"# #s #, #e #.# the #.com/#\\xC2\\xA0# of # and # in # to #\\\"#\\\">#\\n#]# for # a # that #. # with #'# from # by #. The # on # as # is #ing #\\n\\t#:#ed #(# at #ly #=\\\"# of the #. This #,# not #er #al #='#ful #ive #less #est #ize #ous #\", \"     !! ! ,  *!  &!  \\\" !  ) *   * -  ! # !  #!*!  +  ,$ !  -  %  .  / #   0  1 .  \\\"   2  3!*   4%  ! # /   5  6  7  8 0  1 &   $   9 +   :  ;  < '  !=  >  ?! 4  @ 4  2  &   A *# (   B  C& ) %  ) !*# *-% A +! *.  D! %'  & E *6  F  G% ! *A *%  H! D  I!+!  J!+   K +- *4! A  L!*4  M  N +6  O!*% +.! K *G  P +%(  ! G *D +D  Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K\");\n  function transformDictionaryWord(dst, dstOffset, src, srcOffset, wordLen, transforms, transformIndex) {\n    let offset = dstOffset;\n    const triplets = transforms.triplets;\n    const prefixSuffixStorage = transforms.prefixSuffixStorage;\n    const prefixSuffixHeads = transforms.prefixSuffixHeads;\n    const transformOffset = 3 * transformIndex;\n    const prefixIdx = triplets[transformOffset];\n    const transformType = triplets[transformOffset + 1];\n    const suffixIdx = triplets[transformOffset + 2];\n    let prefix = prefixSuffixHeads[prefixIdx];\n    const prefixEnd = prefixSuffixHeads[prefixIdx + 1];\n    let suffix = prefixSuffixHeads[suffixIdx];\n    const suffixEnd = prefixSuffixHeads[suffixIdx + 1];\n    let omitFirst = transformType - 11;\n    let omitLast = transformType;\n    if (omitFirst < 1 || omitFirst > 9) {\n      omitFirst = 0;\n    }\n    if (omitLast < 1 || omitLast > 9) {\n      omitLast = 0;\n    }\n    while (prefix !== prefixEnd) {\n      dst[offset++] = prefixSuffixStorage[prefix++];\n    }\n    let len = wordLen;\n    if (omitFirst > len) {\n      omitFirst = len;\n    }\n    let dictOffset = srcOffset + omitFirst;\n    len -= omitFirst;\n    len -= omitLast;\n    let i = len;\n    while (i > 0) {\n      dst[offset++] = src[dictOffset++];\n      i--;\n    }\n    if (transformType === 10 || transformType === 11) {\n      let uppercaseOffset = offset - len;\n      if (transformType === 10) {\n        len = 1;\n      }\n      while (len > 0) {\n        const c0 = dst[uppercaseOffset] & 0xFF;\n        if (c0 < 0xC0) {\n          if (c0 >= 97 && c0 <= 122) {\n            dst[uppercaseOffset] = dst[uppercaseOffset] ^ 32;\n          }\n          uppercaseOffset += 1;\n          len -= 1;\n        } else if (c0 < 0xE0) {\n          dst[uppercaseOffset + 1] = dst[uppercaseOffset + 1] ^ 32;\n          uppercaseOffset += 2;\n          len -= 2;\n        } else {\n          dst[uppercaseOffset + 2] = dst[uppercaseOffset + 2] ^ 5;\n          uppercaseOffset += 3;\n          len -= 3;\n        }\n      }\n    } else if (transformType === 21 || transformType === 22) {\n      let shiftOffset = offset - len;\n      const param = transforms.params[transformIndex];\n      let scalar = (param & 0x7FFF) + (0x1000000 - (param & 0x8000));\n      while (len > 0) {\n        let step = 1;\n        const c0 = dst[shiftOffset] & 0xFF;\n        if (c0 < 0x80) {\n          scalar += c0;\n          dst[shiftOffset] = scalar & 0x7F;\n        } else if (c0 < 0xC0) {} else if (c0 < 0xE0) {\n          if (len >= 2) {\n            const c1 = dst[shiftOffset + 1];\n            scalar += c1 & 0x3F | (c0 & 0x1F) << 6;\n            dst[shiftOffset] = 0xC0 | scalar >> 6 & 0x1F;\n            dst[shiftOffset + 1] = c1 & 0xC0 | scalar & 0x3F;\n            step = 2;\n          } else {\n            step = len;\n          }\n        } else if (c0 < 0xF0) {\n          if (len >= 3) {\n            const c1 = dst[shiftOffset + 1];\n            const c2 = dst[shiftOffset + 2];\n            scalar += c2 & 0x3F | (c1 & 0x3F) << 6 | (c0 & 0x0F) << 12;\n            dst[shiftOffset] = 0xE0 | scalar >> 12 & 0x0F;\n            dst[shiftOffset + 1] = c1 & 0xC0 | scalar >> 6 & 0x3F;\n            dst[shiftOffset + 2] = c2 & 0xC0 | scalar & 0x3F;\n            step = 3;\n          } else {\n            step = len;\n          }\n        } else if (c0 < 0xF8) {\n          if (len >= 4) {\n            const c1 = dst[shiftOffset + 1];\n            const c2 = dst[shiftOffset + 2];\n            const c3 = dst[shiftOffset + 3];\n            scalar += c3 & 0x3F | (c2 & 0x3F) << 6 | (c1 & 0x3F) << 12 | (c0 & 0x07) << 18;\n            dst[shiftOffset] = 0xF0 | scalar >> 18 & 0x07;\n            dst[shiftOffset + 1] = c1 & 0xC0 | scalar >> 12 & 0x3F;\n            dst[shiftOffset + 2] = c2 & 0xC0 | scalar >> 6 & 0x3F;\n            dst[shiftOffset + 3] = c3 & 0xC0 | scalar & 0x3F;\n            step = 4;\n          } else {\n            step = len;\n          }\n        }\n        shiftOffset += step;\n        len -= step;\n        if (transformType === 21) {\n          len = 0;\n        }\n      }\n    }\n    while (suffix !== suffixEnd) {\n      dst[offset++] = prefixSuffixStorage[suffix++];\n    }\n    return offset - dstOffset;\n  }\n  function getNextKey(key, len) {\n    let step = 1 << len - 1;\n    while ((key & step) !== 0) {\n      step = step >> 1;\n    }\n    return (key & step - 1) + step;\n  }\n  function replicateValue(table, offset, step, end, item) {\n    let pos = end;\n    while (pos > 0) {\n      pos -= step;\n      table[offset + pos] = item;\n    }\n  }\n  function nextTableBitSize(count, len, rootBits) {\n    let bits = len;\n    let left = 1 << bits - rootBits;\n    while (bits < 15) {\n      left -= count[bits];\n      if (left <= 0) {\n        break;\n      }\n      bits++;\n      left = left << 1;\n    }\n    return bits - rootBits;\n  }\n  function buildHuffmanTable(tableGroup, tableIdx, rootBits, codeLengths, codeLengthsSize) {\n    const tableOffset = tableGroup[tableIdx];\n    const sorted = new Int32Array(codeLengthsSize);\n    const count = new Int32Array(16);\n    const offset = new Int32Array(16);\n    for (let sym = 0; sym < codeLengthsSize; ++sym) {\n      count[codeLengths[sym]]++;\n    }\n    offset[1] = 0;\n    for (let len = 1; len < 15; ++len) {\n      offset[len + 1] = offset[len] + count[len];\n    }\n    for (let sym = 0; sym < codeLengthsSize; ++sym) {\n      if (codeLengths[sym] !== 0) {\n        sorted[offset[codeLengths[sym]]++] = sym;\n      }\n    }\n    let tableBits = rootBits;\n    let tableSize = 1 << tableBits;\n    let totalSize = tableSize;\n    if (offset[15] === 1) {\n      for (let k = 0; k < totalSize; ++k) {\n        tableGroup[tableOffset + k] = sorted[0];\n      }\n      return totalSize;\n    }\n    let key = 0;\n    let symbol = 0;\n    let step = 1;\n    for (let len = 1; len <= rootBits; ++len) {\n      step = step << 1;\n      while (count[len] > 0) {\n        replicateValue(tableGroup, tableOffset + key, step, tableSize, len << 16 | sorted[symbol++]);\n        key = getNextKey(key, len);\n        count[len]--;\n      }\n    }\n    const mask = totalSize - 1;\n    let low = -1;\n    let currentOffset = tableOffset;\n    step = 1;\n    for (let len = rootBits + 1; len <= 15; ++len) {\n      step = step << 1;\n      while (count[len] > 0) {\n        if ((key & mask) !== low) {\n          currentOffset += tableSize;\n          tableBits = nextTableBitSize(count, len, rootBits);\n          tableSize = 1 << tableBits;\n          totalSize += tableSize;\n          low = key & mask;\n          tableGroup[tableOffset + low] = tableBits + rootBits << 16 | currentOffset - tableOffset - low;\n        }\n        replicateValue(tableGroup, currentOffset + (key >> rootBits), step, tableSize, len - rootBits << 16 | sorted[symbol++]);\n        key = getNextKey(key, len);\n        count[len]--;\n      }\n    }\n    return totalSize;\n  }\n  function readMoreInput(s) {\n    if (s.endOfStreamReached !== 0) {\n      if (halfAvailable(s) >= -2) {\n        return 0;\n      }\n      return makeError(s, -16);\n    }\n    const readOffset = s.halfOffset << 1;\n    let bytesInBuffer = 4096 - readOffset;\n    s.byteBuffer.copyWithin(0, readOffset, 4096);\n    s.halfOffset = 0;\n    while (bytesInBuffer < 4096) {\n      const spaceLeft = 4096 - bytesInBuffer;\n      const len = readInput(s, s.byteBuffer, bytesInBuffer, spaceLeft);\n      if (len < -1) {\n        return len;\n      }\n      if (len <= 0) {\n        s.endOfStreamReached = 1;\n        s.tailBytes = bytesInBuffer;\n        bytesInBuffer += 1;\n        break;\n      }\n      bytesInBuffer += len;\n    }\n    bytesToNibbles(s, bytesInBuffer);\n    return 0;\n  }\n  function checkHealth(s, endOfStream) {\n    if (s.endOfStreamReached === 0) {\n      return 0;\n    }\n    const byteOffset = (s.halfOffset << 1) + (s.bitOffset + 7 >> 3) - 4;\n    if (byteOffset > s.tailBytes) {\n      return makeError(s, -13);\n    }\n    if (endOfStream !== 0 && byteOffset !== s.tailBytes) {\n      return makeError(s, -17);\n    }\n    return 0;\n  }\n  function readFewBits(s, n) {\n    const v = s.accumulator32 >>> s.bitOffset & (1 << n) - 1;\n    s.bitOffset += n;\n    return v;\n  }\n  function readManyBits(s, n) {\n    const low = readFewBits(s, 16);\n    s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n    s.bitOffset -= 16;\n    return low | readFewBits(s, n - 16) << 16;\n  }\n  function initBitReader(s) {\n    s.byteBuffer = new Int8Array(4160);\n    s.accumulator32 = 0;\n    s.shortBuffer = new Int16Array(2080);\n    s.bitOffset = 32;\n    s.halfOffset = 2048;\n    s.endOfStreamReached = 0;\n    return prepare(s);\n  }\n  function prepare(s) {\n    if (s.halfOffset > 2030) {\n      const result = readMoreInput(s);\n      if (result !== 0) {\n        return result;\n      }\n    }\n    let health = checkHealth(s, 0);\n    if (health !== 0) {\n      return health;\n    }\n    s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n    s.bitOffset -= 16;\n    s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n    s.bitOffset -= 16;\n    return 0;\n  }\n  function reload(s) {\n    if (s.bitOffset === 32) {\n      return prepare(s);\n    }\n    return 0;\n  }\n  function jumpToByteBoundary(s) {\n    const padding = 32 - s.bitOffset & 7;\n    if (padding !== 0) {\n      const paddingBits = readFewBits(s, padding);\n      if (paddingBits !== 0) {\n        return makeError(s, -5);\n      }\n    }\n    return 0;\n  }\n  function halfAvailable(s) {\n    let limit = 2048;\n    if (s.endOfStreamReached !== 0) {\n      limit = s.tailBytes + 1 >> 1;\n    }\n    return limit - s.halfOffset;\n  }\n  function copyRawBytes(s, data, offset, length) {\n    let pos = offset;\n    let len = length;\n    if ((s.bitOffset & 7) !== 0) {\n      return makeError(s, -30);\n    }\n    while (s.bitOffset !== 32 && len !== 0) {\n      data[pos++] = s.accumulator32 >>> s.bitOffset;\n      s.bitOffset += 8;\n      len--;\n    }\n    if (len === 0) {\n      return 0;\n    }\n    const copyNibbles = Math.min(halfAvailable(s), len >> 1);\n    if (copyNibbles > 0) {\n      const readOffset = s.halfOffset << 1;\n      const delta = copyNibbles << 1;\n      data.set(s.byteBuffer.subarray(readOffset, readOffset + delta), pos);\n      pos += delta;\n      len -= delta;\n      s.halfOffset += copyNibbles;\n    }\n    if (len === 0) {\n      return 0;\n    }\n    if (halfAvailable(s) > 0) {\n      if (s.bitOffset >= 16) {\n        s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;\n        s.bitOffset -= 16;\n      }\n      while (len !== 0) {\n        data[pos++] = s.accumulator32 >>> s.bitOffset;\n        s.bitOffset += 8;\n        len--;\n      }\n      return checkHealth(s, 0);\n    }\n    while (len > 0) {\n      const chunkLen = readInput(s, data, pos, len);\n      if (chunkLen < -1) {\n        return chunkLen;\n      }\n      if (chunkLen <= 0) {\n        return makeError(s, -16);\n      }\n      pos += chunkLen;\n      len -= chunkLen;\n    }\n    return 0;\n  }\n  function bytesToNibbles(s, byteLen) {\n    const byteBuffer = s.byteBuffer;\n    const halfLen = byteLen >> 1;\n    const shortBuffer = s.shortBuffer;\n    for (let i = 0; i < halfLen; ++i) {\n      shortBuffer[i] = byteBuffer[i * 2] & 0xFF | (byteBuffer[i * 2 + 1] & 0xFF) << 8;\n    }\n  }\n  const LOOKUP = new Int32Array(2048);\n  function unpackLookupTable(lookup, utfMap, utfRle) {\n    for (let i = 0; i < 256; ++i) {\n      lookup[i] = i & 0x3F;\n      lookup[512 + i] = i >> 2;\n      lookup[1792 + i] = 2 + (i >> 6);\n    }\n    for (let i = 0; i < 128; ++i) {\n      lookup[1024 + i] = 4 * (utfMap.charCodeAt(i) - 32);\n    }\n    for (let i = 0; i < 64; ++i) {\n      lookup[1152 + i] = i & 1;\n      lookup[1216 + i] = 2 + (i & 1);\n    }\n    let offset = 1280;\n    for (let k = 0; k < 19; ++k) {\n      const value = k & 3;\n      const rep = utfRle.charCodeAt(k) - 32;\n      for (let i = 0; i < rep; ++i) {\n        lookup[offset++] = value;\n      }\n    }\n    for (let i = 0; i < 16; ++i) {\n      lookup[1792 + i] = 1;\n      lookup[2032 + i] = 6;\n    }\n    lookup[1792] = 0;\n    lookup[2047] = 7;\n    for (let i = 0; i < 256; ++i) {\n      lookup[1536 + i] = lookup[1792 + i] << 3;\n    }\n  }\n  unpackLookupTable(LOOKUP, \"         !!  !                  \\\"#$##%#$&'##(#)#++++++++++((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# \", \"A/*  ':  & : $  \\x81 @\");\n  function State() {\n    this.ringBuffer = new Int8Array(0);\n    this.contextModes = new Int8Array(0);\n    this.contextMap = new Int8Array(0);\n    this.distContextMap = new Int8Array(0);\n    this.distExtraBits = new Int8Array(0);\n    this.output = new Int8Array(0);\n    this.byteBuffer = new Int8Array(0);\n    this.shortBuffer = new Int16Array(0);\n    this.intBuffer = new Int32Array(0);\n    this.rings = new Int32Array(0);\n    this.blockTrees = new Int32Array(0);\n    this.literalTreeGroup = new Int32Array(0);\n    this.commandTreeGroup = new Int32Array(0);\n    this.distanceTreeGroup = new Int32Array(0);\n    this.distOffset = new Int32Array(0);\n    this.accumulator64 = 0;\n    this.runningState = 0;\n    this.nextRunningState = 0;\n    this.accumulator32 = 0;\n    this.bitOffset = 0;\n    this.halfOffset = 0;\n    this.tailBytes = 0;\n    this.endOfStreamReached = 0;\n    this.metaBlockLength = 0;\n    this.inputEnd = 0;\n    this.isUncompressed = 0;\n    this.isMetadata = 0;\n    this.literalBlockLength = 0;\n    this.numLiteralBlockTypes = 0;\n    this.commandBlockLength = 0;\n    this.numCommandBlockTypes = 0;\n    this.distanceBlockLength = 0;\n    this.numDistanceBlockTypes = 0;\n    this.pos = 0;\n    this.maxDistance = 0;\n    this.distRbIdx = 0;\n    this.trivialLiteralContext = 0;\n    this.literalTreeIdx = 0;\n    this.commandTreeIdx = 0;\n    this.j = 0;\n    this.insertLength = 0;\n    this.contextMapSlice = 0;\n    this.distContextMapSlice = 0;\n    this.contextLookupOffset1 = 0;\n    this.contextLookupOffset2 = 0;\n    this.distanceCode = 0;\n    this.numDirectDistanceCodes = 0;\n    this.distancePostfixBits = 0;\n    this.distance = 0;\n    this.copyLength = 0;\n    this.maxBackwardDistance = 0;\n    this.maxRingBufferSize = 0;\n    this.ringBufferSize = 0;\n    this.expectedTotalSize = 0;\n    this.outputOffset = 0;\n    this.outputLength = 0;\n    this.outputUsed = 0;\n    this.ringBufferBytesWritten = 0;\n    this.ringBufferBytesReady = 0;\n    this.isEager = 0;\n    this.isLargeWindow = 0;\n    this.cdNumChunks = 0;\n    this.cdTotalSize = 0;\n    this.cdBrIndex = 0;\n    this.cdBrOffset = 0;\n    this.cdBrLength = 0;\n    this.cdBrCopied = 0;\n    this.cdChunks = new Array(0);\n    this.cdChunkOffsets = new Int32Array(0);\n    this.cdBlockBits = 0;\n    this.cdBlockMap = new Int8Array(0);\n    this.input = new InputStream(new Int8Array(0));\n    this.ringBuffer = new Int8Array(0);\n    this.rings = new Int32Array(10);\n    this.rings[0] = 16;\n    this.rings[1] = 15;\n    this.rings[2] = 11;\n    this.rings[3] = 4;\n  }\n  let data = new Int8Array(0);\n  const offsets = new Int32Array(32);\n  const sizeBits = new Int32Array(32);\n  function setData(newData, newSizeBits) {\n    const dictionaryOffsets = offsets;\n    const dictionarySizeBits = sizeBits;\n    for (let i = 0; i < newSizeBits.length; ++i) {\n      dictionarySizeBits[i] = newSizeBits[i];\n    }\n    let pos = 0;\n    for (let i = 0; i < newSizeBits.length; ++i) {\n      dictionaryOffsets[i] = pos;\n      const bits = dictionarySizeBits[i];\n      if (bits !== 0) {\n        pos += i << (bits & 31);\n      }\n    }\n    for (let i = newSizeBits.length; i < 32; ++i) {\n      dictionaryOffsets[i] = pos;\n    }\n    data = newData;\n  }\n  function unpackDictionaryData(dictionary, data0, data1, skipFlip, sizeBits, sizeBitsData) {\n    const dict = toUsAsciiBytes(data0 + data1);\n    const skipFlipRunes = toUtf8Runes(skipFlip);\n    let offset = 0;\n    const n = skipFlipRunes.length >> 1;\n    for (let i = 0; i < n; ++i) {\n      const skip = skipFlipRunes[2 * i] - 36;\n      const flip = skipFlipRunes[2 * i + 1] - 36;\n      for (let j = 0; j < skip; ++j) {\n        dict[offset] = dict[offset] ^ 3;\n        offset++;\n      }\n      for (let j = 0; j < flip; ++j) {\n        dict[offset] = dict[offset] ^ 236;\n        offset++;\n      }\n    }\n    for (let i = 0; i < sizeBitsData.length; ++i) {\n      sizeBits[i] = sizeBitsData.charCodeAt(i) - 65;\n    }\n    dictionary.set(dict);\n  }\n  const dictionaryData = new Int8Array(122784);\n  const dictionarySizeBits = new Int32Array(25);\n  unpackDictionaryData(dictionaryData, \"wjnfgltmojefofewab`h`lgfgbwbpkltlmozpjwf`jwzlsfmivpwojhfeqfftlqhwf{wzfbqlufqalgzolufelqnallhsobzojufojmfkfosklnfpjgfnlqftlqgolmdwkfnujftejmgsbdfgbzpevookfbgwfqnfb`kbqfbeqlnwqvfnbqhbaofvslmkjdkgbwfobmgmftpfufmmf{w`bpfalwkslpwvpfgnbgfkbmgkfqftkbwmbnfOjmhaoldpjyfabpfkfognbhfnbjmvpfq$*#(klogfmgptjwkMftpqfbgtfqfpjdmwbhfkbufdbnfpffm`boosbwktfoosovpnfmvejonsbqwiljmwkjpojpwdllgmffgtbzptfpwilapnjmgboploldlqj`kvpfpobpwwfbnbqnzellghjmdtjoofbpwtbqgafpwejqfSbdfhmltbtbz-smdnlufwkbmolbgdjufpfoemlwfnv`keffgnbmzql`hj`lmlm`follhkjgfgjfgKlnfqvofklpwbib{jmel`ovaobtpofppkboeplnfpv`kylmf233&lmfp`bqfWjnfqb`faovfelvqtffheb`fklsfdbufkbqgolpwtkfmsbqhhfswsbpppkjsqllnKWNOsobmWzsfglmfpbufhffseobdojmhplogejufwllhqbwfwltmivnswkvpgbqh`bqgejofefbqpwbzhjoowkbweboobvwlfufq-`lnwbohpklsulwfgffsnlgfqfpwwvqmalqmabmgefooqlpfvqo+phjmqlof`lnfb`wpbdfpnffwdlog-isdjwfnubqzefowwkfmpfmggqlsUjft`lsz2-3!?,b=pwlsfopfojfpwlvqsb`h-djesbpw`pp<dqbznfbm%dw8qjgfpklwobwfpbjgqlbgubq#effoilkmqj`hslqwebpw$VB.gfbg?,a=sllqajoowzsfV-P-tllgnvpw1s{8JmelqbmhtjgftbmwtbooofbgX3^8sbvotbufpvqf'+$ tbjwnbppbqnpdlfpdbjmobmdsbjg\\\"..#ol`hvmjwqllwtbohejqntjef{no!plmdwfpw13s{hjmgqltpwlloelmwnbjopbefpwbqnbsp`lqfqbjmeoltabazpsbmpbzp7s{85s{8bqwpellwqfbotjhjkfbwpwfswqjslqd,obhftfbhwlogElqn`bpwebmpabmhufqzqvmpivozwbph2s{8dlbodqftpoltfgdfjg>!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?\\\"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+\\\"sj`hfujo'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sks<kfoowbootklnyk9\\t),\\x0E\\t#233kboo-\\t\\tB4s{8svpk`kbw3s{8`qft),?,kbpk46s{eobwqbqf#%%#wfoo`bnslmwlobjgnjppphjswfmwejmfnbofdfwpsolw733/\\x0E\\t\\x0E\\t`lloeffw-sks?aq=fqj`nlpwdvjgafoogfp`kbjqnbwkbwln,jnd% ;1ov`h`fmw3338wjmzdlmfkwnopfoogqvdEQFFmlgfmj`h<jg>olpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqn\\x0ElupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\\n.pjy....sqls$*8\\x0EojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#\\x0Elxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\\x7F\\\"+njmfyk9\\x04abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{\\\"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\\b$**8svqfnbdfsbqbwlmfalmg904Y\\\\le\\\\$^*8333/yk9\\x0Bwbmhzbqgaltoavpk965YIbub03s{\\t\\x7F~\\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9\\x05rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\\t~\\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\\t\\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\\tgvpw`ojs*-\\t\\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\\x0E\\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\\x7F.\\t\\\"331*mgltX2^8X^8\\tOld#pbow\\x0E\\t\\n\\nabmdwqjnabwk*x\\x0E\\t33s{\\t~*8hl9\\0effpbg=\\x0Ep9,,#X^8wloosovd+*x\\tx\\x0E\\t#-ip$133sgvboalbw-ISD*8\\t~rvlw*8\\t\\t$*8\\t\\x0E\\t~\\x0E1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\\\<Q<\\\\<R<P=l<\\\\=l=o=n<\\\\<Q<Y<S<R<R=n<T<[<Q<R<X<R=n<R<Z<Y<R<Q<T=i<q<\\\\<Y<Y<]=g<P=g<~=g=m<R<^=g<^<R<q<R<R<]<s<R<W<T<Q<T<L<H<q<Y<p=g=n=g<r<Q<T<P<X<\\\\<{<\\\\<x<\\\\<q=o<r<]=n<Y<t<[<Y<U<Q=o<P<P<N=g=o<Z5m5f4O5j5i4K5i4U5o5h4O5d4]4C5f4K5m5e5k5d5h5i5h5o4K5d5h5k4D4_4K5h4I5j5k5f4O5f5n4C5k5h4G5i4D5k5h5d5h5f4D5h4K5f4D5o4X5f4K5i4O5i5j4F4D5f5h5j4A4D5k5i5i4X5d4Xejqpwujgflojdkwtlqognfgjbtkjwf`olpfaob`hqjdkwpnbooallhpsob`fnvpj`ejfoglqgfqsljmwubovfofufowbaofalbqgklvpfdqlvstlqhpzfbqppwbwfwlgbztbwfqpwbqwpwzofgfbwksltfqsklmfmjdkwfqqlqjmsvwbalvwwfqnpwjwofwllopfufmwol`bowjnfpobqdftlqgpdbnfppklqwpsb`fel`vp`ofbqnlgfoaol`hdvjgfqbgjlpkbqftlnfmbdbjmnlmfzjnbdfmbnfpzlvmdojmfpobwfq`lolqdqffmeqlmw%bns8tbw`kelq`fsqj`fqvofpafdjmbewfqujpjwjppvfbqfbpafoltjmgf{wlwboklvqpobafosqjmwsqfppavjowojmhppsffgpwvgzwqbgfelvmgpfmpfvmgfqpkltmelqnpqbmdfbggfgpwjoonlufgwbhfmbalufeobpkej{fglewfmlwkfqujftp`kf`hofdboqjufqjwfnprvj`hpkbsfkvnbmf{jpwdljmdnlujfwkjqgabpj`sfb`fpwbdftjgwkoldjmjgfbptqlwfsbdfpvpfqpgqjufpwlqfaqfbhplvwkulj`fpjwfpnlmwktkfqfavjogtkj`kfbqwkelqvnwkqffpslqwsbqwz@oj`holtfqojufp`obppobzfqfmwqzpwlqzvpbdfplvmg`lvqwzlvq#ajqwkslsvswzsfpbssozJnbdfafjmdvssfqmlwfpfufqzpkltpnfbmpf{wqbnbw`kwqb`hhmltmfbqozafdbmpvsfqsbsfqmlqwkofbqmdjufmmbnfgfmgfgWfqnpsbqwpDqlvsaqbmgvpjmdtlnbmebopfqfbgzbvgjlwbhfptkjof-`ln,ojufg`bpfpgbjoz`kjogdqfbwivgdfwklpfvmjwpmfufqaqlbg`lbpw`lufqbssofejofp`z`ofp`fmfsobmp`oj`htqjwfrvffmsjf`ffnbjoeqbnflogfqsklwlojnjw`b`kf`jujop`boffmwfqwkfnfwkfqfwlv`kalvmgqlzbobphfgtklofpjm`fpwl`h#mbnfebjwkkfbqwfnswzleefqp`lsfltmfgnjdkwboavnwkjmhaollgbqqbznbilqwqvpw`bmlmvmjlm`lvmwubojgpwlmfPwzofOldjmkbsszl``vqofew9eqfpkrvjwfejonpdqbgfmffgpvqabmejdkwabpjpklufqbvwl8qlvwf-kwnonj{fgejmboZlvq#pojgfwlsj`aqltmbolmfgqbtmpsojwqfb`kQjdkwgbwfpnbq`krvlwfdllgpOjmhpglvawbpzm`wkvnaboolt`kjfezlvwkmlufo23s{8pfqufvmwjokbmgp@kf`hPsb`frvfqzibnfpfrvbowtj`f3/333Pwbqwsbmfoplmdpqlvmgfjdkwpkjewtlqwkslpwpofbgptffhpbuljgwkfpfnjofpsobmfpnbqwboskbsobmwnbqhpqbwfpsobzp`objnpbofpwf{wppwbqptqlmd?,k0=wkjmd-lqd,nvowjkfbqgSltfqpwbmgwlhfmplojg+wkjpaqjmdpkjsppwbeewqjfg`boopevoozeb`wpbdfmwWkjp#,,..=bgnjmfdzswFufmw26s{8Fnbjowqvf!`qlpppsfmwaoldpal{!=mlwfgofbuf`kjmbpjyfpdvfpw?,k7=qlalwkfbuzwqvf/pfufmdqbmg`qjnfpjdmpbtbqfgbm`fskbpf=?\\\"..fm\\\\VP% 0:8133s{\\\\mbnfobwjmfmilzbib{-bwjlmpnjwkV-P-#klogpsfwfqjmgjbmbu!=`kbjmp`lqf`lnfpgljmdsqjlqPkbqf2::3pqlnbmojpwpibsbmeboopwqjboltmfqbdqff?,k1=bavpfbofqwlsfqb!.,,T`bqgpkjoopwfbnpSklwlwqvwk`ofbm-sks<pbjmwnfwboolvjpnfbmwsqlleaqjfeqlt!=dfmqfwqv`hollhpUbovfEqbnf-mfw,..=\\t?wqz#x\\tubq#nbhfp`lpwpsobjmbgvowrvfpwwqbjmobalqkfosp`bvpfnbdj`nlwlqwkfjq163s{ofbpwpwfsp@lvmw`lvogdobpppjgfpevmgpklwfobtbqgnlvwknlufpsbqjpdjufpgvw`kwf{bpeqvjwmvoo/\\x7F\\x7FX^8wls!=\\t?\\\"..SLPW!l`fbm?aq,=eollqpsfbhgfswk#pjyfabmhp`bw`k`kbqw13s{8bojdmgfboptlvog63s{8vqo>!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?\\\"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\\x0E\\tabmgprvfvf>#x~8;3s{8`hjmdx\\x0E\\t\\n\\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\\t\\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\\x7F\\x7F#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9\\x0Fnpjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#\\\">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\\t~\\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?\\\"..\\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\\x7Fpvjwfpoj`fkbqqz213!#ptffwwq=\\x0E\\tmbnf>gjfdlsbdf#ptjpp..=\\t\\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9\\x0Fojg>!`Mbnf!tlqpfpklwp.al{.gfowb\\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\\x0E\\t?\\\"pwffo#zlv#k1=\\x0E\\telqn#ifpvp233&#nfmv-\\x0E\\t\\n\\x0E\\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\\t\\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\\x7F`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\\t\\\\elqn!ofbufppwqfpp!#,=\\x0E\\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\\x7F\\x7F#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\\x7Ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\\\jnbdfwkqfbgmbwjufsl`hfwal{!=\\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\\x7F\\x7F#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\\t\\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\\t\\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=\\x0Evpjmd#\\t\\nubq#=$*8\\t\\n?,wg=\\t?,wq=\\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\\bTA\\nzk\\x0BBl\\bQ\\x7F\\x0BUm\\x05Gx\\bSM\\nmC\\bTA\\twQ\\nd}\\bW@\\bTl\\bTF\\ti@\\tcT\\x0BBM\\x0B|j\\x04BV\\tqw\\tcC\\bWI\\npa\\tfM\\n{Z\\x05{X\\bTF\\bVV\\bVK\\t\\x7Fm\\x04kF\\t[]\\bPm\\bTv\\nsI\\x0Bpg\\t[I\\bQp\\x04mx\\x0B_W\\n^M\\npe\\x0BQ}\\x0BGu\\nel\\npe\\x04Ch\\x04BV\\bTA\\tSo\\nzk\\x0BGL\\x0BxD\\nd[\\x05Jz\\x05MY\\bQp\\x04li\\nfl\\npC\\x05{B\\x05Nt\\x0BwT\\ti_\\bTg\\x04QQ\\n|p\\x0BXN\\bQS\\x0BxD\\x04QC\\bWZ\\tpD\\x0BVS\\bTW\\x05Nt\\x04Yh\\nzu\\x04Kj\\x05N}\\twr\\tHa\\n_D\\tj`\\x0BQ}\\x0BWp\\nxZ\\x04{c\\tji\\tBU\\nbD\\x04a|\\tTn\\tpV\\nZd\\nmC\\x0BEV\\x05{X\\tc}\\tTo\\bWl\\bUd\\tIQ\\tcg\\x0Bxs\\nXW\\twR\\x0Bek\\tc}\\t]y\\tJn\\nrp\\neg\\npV\\nz\\\\\\x05{W\\npl\\nz\\\\\\nzU\\tPc\\t`{\\bV@\\nc|\\bRw\\ti_\\bVb\\nwX\\tHv\\x04Su\\bTF\\x0B_W\\x0BWs\\x0BsI\\x05m\\x7F\\nTT\\ndc\\tUS\\t}f\\tiZ\\bWz\\tc}\\x04MD\\tBe\\tiD\\x0B@@\\bTl\\bPv\\t}t\\x04Sw\\x04M`\\x0BnU\\tkW\\x0Bed\\nqo\\x0BxY\\tA|\\bTz\\x0By`\\x04BR\\x04BM\\tia\\x04XU\\nyu\\x04n^\\tfL\\tiI\\nXW\\tfD\\bWz\\bW@\\tyj\\t\\x7Fm\\tav\\tBN\\x0Bb\\\\\\tpD\\bTf\\nY[\\tJn\\bQy\\t[^\\x0BWc\\x0Byu\\x04Dl\\x04CJ\\x0BWj\\x0BHR\\t`V\\x0BuW\\tQy\\np@\\x0BGu\\x05pl\\x04Jm\\bW[\\nLP\\nxC\\n`m\\twQ\\x05ui\\x05\\x7FR\\nbI\\twQ\\tBZ\\tWV\\x04BR\\npg\\tcg\\x05ti\\x04CW\\n_y\\tRg\\bQa\\x0BQB\\x0BWc\\nYb\\x05le\\ngE\\x04Su\\nL[\\tQ\\x7F\\tea\\tdj\\x0B]W\\nb~\\x04M`\\twL\\bTV\\bVH\\nt\\x7F\\npl\\t|b\\x05s_\\bU|\\bTa\\x04oQ\\x05lv\\x04Sk\\x04M`\\bTv\\x0BK}\\nfl\\tcC\\x04oQ\\x04BR\\tHk\\t|d\\bQp\\tHK\\tBZ\\x0BHR\\bPv\\x0BLx\\x0BEZ\\bT\\x7F\\bTv\\tiD\\x05oD\\x05MU\\x0BwB\\x04Su\\x05k`\\x04St\\ntC\\tPl\\tKg\\noi\\tjY\\x0BxY\\x04h}\\nzk\\bWZ\\t\\x7Fm\\x0Be`\\tTB\\tfE\\nzk\\t`z\\x04Yh\\nV|\\tHK\\tAJ\\tAJ\\bUL\\tp\\\\\\tql\\nYc\\x04Kd\\nfy\\x04Yh\\t[I\\x0BDg\\x04Jm\\n]n\\nlb\\bUd\\n{Z\\tlu\\tfs\\x04oQ\\bTW\\x04Jm\\x0BwB\\tea\\x04Yh\\x04BC\\tsb\\tTn\\nzU\\n_y\\x0BxY\\tQ]\\ngw\\x04mt\\tO\\\\\\ntb\\bWW\\bQy\\tmI\\tV[\\ny\\\\\\naB\\x0BRb\\twQ\\n]Q\\x04QJ\\bWg\\x0BWa\\bQj\\ntC\\bVH\\nYm\\x0Bxs\\bVK\\nel\\bWI\\x0BxY\\x04Cq\\ntR\\x0BHV\\bTl\\bVw\\tay\\bQa\\bVV\\t}t\\tdj\\nr|\\tp\\\\\\twR\\n{i\\nTT\\t[I\\ti[\\tAJ\\x0Bxs\\x0B_W\\td{\\x0BQ}\\tcg\\tTz\\tA|\\tCj\\x0BLm\\x05N}\\x05m\\x7F\\nbK\\tdZ\\tp\\\\\\t`V\\tsV\\np@\\tiD\\twQ\\x0BQ}\\bTf\\x05ka\\x04Jm\\x0B@@\\bV`\\tzp\\n@N\\x04Sw\\tiI\\tcg\\noi\\x04Su\\bVw\\x04lo\\x04Cy\\tc}\\x0Bb\\\\\\tsU\\x04BA\\bWI\\bTf\\nxS\\tVp\\nd|\\bTV\\x0BbC\\tNo\\x05Ju\\nTC\\t|`\\n{Z\\tD]\\bU|\\tc}\\x05lm\\bTl\\tBv\\tPl\\tc}\\bQp\\t\\x7Fm\\nLk\\tkj\\n@N\\x04Sb\\x04KO\\tj_\\tp\\\\\\nzU\\bTl\\bTg\\bWI\\tcf\\x04XO\\bWW\\ndz\\x04li\\tBN\\nd[\\bWO\\x04MD\\x0BKC\\tdj\\tI_\\bVV\\ny\\\\\\x0BLm\\x05xl\\txB\\tkV\\x0Bb\\\\\\x0BJW\\x0BVS\\tVx\\x0BxD\\td{\\x04MD\\bTa\\t|`\\x0BPz\\x04R}\\x0BWs\\x04BM\\nsI\\x04CN\\bTa\\x04Jm\\npe\\ti_\\npV\\nrh\\tRd\\tHv\\n~A\\nxR\\x0BWh\\x0BWk\\nxS\\x0BAz\\x0BwX\\nbI\\x04oQ\\tfw\\nqI\\nV|\\nun\\x05z\\x7F\\x0Bpg\\td\\\\\\x0BoA\\x05{D\\ti_\\x05xB\\bT\\x7F\\t`V\\x05qr\\tTT\\x04g]\\x04CA\\x0BuR\\tVJ\\tT`\\npw\\x0BRb\\tI_\\nCx\\x04Ro\\x0BsI\\x04Cj\\x04Kh\\tBv\\tWV\\x04BB\\x05oD\\x05{D\\nhc\\x04Km\\x0B^R\\tQE\\n{I\\np@\\nc|\\x05Gt\\tc}\\x04Dl\\nzU\\x05qN\\tsV\\x05k}\\tHh\\x0B|j\\nqo\\x05u|\\tQ]\\x0Bek\\x05\\x7FZ\\x04M`\\x04St\\npe\\tdj\\bVG\\x0BeE\\t\\x7Fm\\x0BWc\\x04|I\\n[W\\tfL\\bT\\x7F\\tBZ\\x04Su\\x0BKa\\x04Cq\\x05Nt\\x04Y[\\nqI\\bTv\\tfM\\ti@\\t}f\\x04B\\\\\\tQy\\x0BBl\\bWg\\x04XD\\x05kc\\x0Bx[\\bVV\\tQ]\\t\\x7Fa\\tPy\\x0BxD\\nfI\\t}f\\x05oD\\tdj\\tSG\\x05ls\\t~D\\x04CN\\n{Z\\t\\\\v\\n_D\\nhc\\x0Bx_\\x04C[\\tAJ\\nLM\\tVx\\x04CI\\tbj\\tc^\\tcF\\ntC\\x04Sx\\twr\\x04XA\\bU\\\\\\t|a\\x0BK\\\\\\bTV\\bVj\\nd|\\tfs\\x04CX\\ntb\\bRw\\tVx\\tAE\\tA|\\bT\\x7F\\x05Nt\\x0BDg\\tVc\\bTl\\x04d@\\npo\\t\\x7FM\\tcF\\npe\\tiZ\\tBo\\bSq\\nfH\\x04l`\\bTx\\bWf\\tHE\\x0BF{\\tcO\\tfD\\nlm\\x0BfZ\\nlm\\x0BeU\\tdG\\x04BH\\bTV\\tSi\\x05MW\\nwX\\nz\\\\\\t\\\\c\\x04CX\\nd}\\tl}\\bQp\\bTV\\tF~\\bQ\\x7F\\t`i\\ng@\\x05nO\\bUd\\bTl\\nL[\\twQ\\tji\\ntC\\t|J\\nLU\\naB\\x0BxY\\x04Kj\\tAJ\\x05uN\\ti[\\npe\\x04Sk\\x0BDg\\x0Bx]\\bVb\\bVV\\nea\\tkV\\nqI\\bTa\\x04Sk\\nAO\\tpD\\ntb\\nts\\nyi\\bVg\\ti_\\x0B_W\\nLk\\x05Nt\\tyj\\tfM\\x04R\\x7F\\tiI\\bTl\\x0BwX\\tsV\\x0BMl\\nyu\\tAJ\\bVj\\x04KO\\tWV\\x0BA}\\x0BW\\x7F\\nrp\\tiD\\x0B|o\\x05lv\\x0BsI\\x04BM\\td~\\tCU\\bVb\\x04eV\\npC\\x0BwT\\tj`\\tc}\\x0Bxs\\x0Bps\\x0Bvh\\tWV\\x0BGg\\x0BAe\\x0BVK\\x0B]W\\trg\\x0BWc\\x05F`\\tBr\\x0Bb\\\\\\tdZ\\bQp\\nqI\\x04kF\\nLk\\x0BAR\\bWI\\bTg\\tbs\\tdw\\n{L\\n_y\\tiZ\\bTA\\tlg\\bVV\\bTl\\tdk\\n`k\\ta{\\ti_\\x05{A\\x05wj\\twN\\x0B@@\\bTe\\ti_\\n_D\\twL\\nAH\\x0BiK\\x0Bek\\n[]\\tp_\\tyj\\bTv\\tUS\\t[r\\n{I\\nps\\x05Gt\\x0BVK\\npl\\x04S}\\x0BWP\\t|d\\x04MD\\x0BHV\\bT\\x7F\\x04R}\\x04M`\\bTV\\bVH\\x05lv\\x04Ch\\bW[\\x04Ke\\tR{\\x0B^R\\tab\\tBZ\\tVA\\tB`\\nd|\\nhs\\x04Ke\\tBe\\x04Oi\\tR{\\td\\\\\\x05nB\\bWZ\\tdZ\\tVJ\\x05Os\\t\\x7Fm\\x04uQ\\x0BhZ\\x04Q@\\x04QQ\\nfI\\bW[\\x04B\\\\\\x04li\\nzU\\nMd\\x04M`\\nxS\\bVV\\n\\\\}\\x0BxD\\t\\x7Fm\\bTp\\x04IS\\nc|\\tkV\\x05i~\\tV{\\x0BhZ\\t|b\\bWt\\n@R\\x0BoA\\x0BnU\\bWI\\tea\\tB`\\tiD\\tc}\\tTz\\x04BR\\x0BQB\\x05Nj\\tCP\\t[I\\bTv\\t`W\\x05uN\\x0Bpg\\x0Bpg\\x0BWc\\tiT\\tbs\\twL\\tU_\\tc\\\\\\t|h\\x0BKa\\tNr\\tfL\\nq|\\nzu\\nz\\\\\\tNr\\bUg\\t|b\\x04m`\\bTv\\nyd\\nrp\\bWf\\tUX\\x04BV\\nzk\\nd}\\twQ\\t}f\\x04Ce\\x0Bed\\bTW\\bSB\\nxU\\tcn\\bTb\\ne\\x7F\\ta\\\\\\tSG\\bU|\\npV\\nN\\\\\\x04Kn\\x0BnU\\tAt\\tpD\\x0B^R\\x0BIr\\x04b[\\tR{\\tdE\\x0BxD\\x0BWK\\x0BWA\\bQL\\bW@\\x04Su\\bUd\\nDM\\tPc\\x04CA\\x04Dl\\x04oQ\\tHs\\x05wi\\x04ub\\n\\x7Fa\\bQp\\x05Ob\\nLP\\bTl\\x04Y[\\x0BK}\\tAJ\\bQ\\x7F\\x04n^\\x0BsA\\bSM\\nqM\\bWZ\\n^W\\x0Bz{\\x04S|\\tfD\\bVK\\bTv\\bPv\\x04BB\\tCP\\x04dF\\tid\\x0Bxs\\x04mx\\x0Bws\\tcC\\ntC\\tyc\\x05M`\\x0BW\\x7F\\nrh\\bQp\\x0BxD\\x04\\\\o\\nsI\\x04_k\\nzu\\x04kF\\tfD\\x04Xs\\x04XO\\tjp\\bTv\\x04BS\\x05{B\\tBr\\nzQ\\nbI\\tc{\\x04BD\\x04BV\\x05nO\\bTF\\tca\\x05Jd\\tfL\\tPV\\tI_\\nlK\\x04`o\\twX\\npa\\tgu\\bP}\\x05{^\\bWf\\n{I\\tBN\\npa\\x04Kl\\x0Bpg\\tcn\\tfL\\x0Bvh\\x04Cq\\bTl\\x0BnU\\bSq\\x04Cm\\twR\\bUJ\\npe\\nyd\\nYg\\x04Cy\\x0BKW\\tfD\\nea\\x04oQ\\tj_\\tBv\\x04nM\\x0BID\\bTa\\nzA\\x05pl\\n]n\\bTa\\tR{\\tfr\\n_y\\bUg\\x05{X\\x05kk\\x0BxD\\x04|I\\x05xl\\nfy\\x04Ce\\x0BwB\\nLk\\x0Bd]\\noi\\n}h\\tQ]\\npe\\bVw\\x04Hk\\x04OQ\\nzk\\tAJ\\npV\\bPv\\ny\\\\\\tA{\\x04Oi\\bSB\\x04XA\\x0BeE\\tjp\\nq}\\tiD\\x05qN\\x0B^R\\t\\x7Fm\\tiZ\\tBr\\bVg\\noi\\n\\\\X\\tU_\\nc|\\x0BHV\\bTf\\tTn\\x04\\\\N\\x04\\\\N\\nuB\\x05lv\\nyu\\tTd\\bTf\\bPL\\x0B]W\\tdG\\nA`\\nw^\\ngI\\npe\\tdw\\nz\\\\\\x05ia\\bWZ\\tcF\\x04Jm\\n{Z\\bWO\\x04_k\\x04Df\\x04RR\\td\\\\\\bVV\\x0Bxs\\x04BN\\x05ti\\x04lm\\tTd\\t]y\\x0BHV\\tSo\\x0B|j\\x04XX\\tA|\\x0BZ^\\x0BGu\\bTW\\x05M`\\x04kF\\x0BhZ\\x0BVK\\tdG\\x0BBl\\tay\\nxU\\x05qE\\x05nO\\bVw\\nqI\\x04CX\\ne\\x7F\\tPl\\bWO\\x0BLm\\tdL\\x05uH\\x04Cm\\tdT\\x04fn\\x0BwB\\x05ka\\x0BnU\\n@M\\nyT\\tHv\\t\\\\}\\x04Kh\\td~\\x04Yh\\x05k}\\neR\\td\\\\\\bWI\\t|b\\tHK\\tiD\\bTW\\x05MY\\npl\\bQ_\\twr\\x0BAx\\tHE\\bTg\\bSq\\x05vp\\x0Bb\\\\\\bWO\\nOl\\nsI\\nfy\\x0BID\\t\\\\c\\n{Z\\n^~\\npe\\nAO\\tTT\\x0Bxv\\x04k_\\bWO\\x0B|j\\x0BwB\\tQy\\ti@\\tPl\\tHa\\tdZ\\x05k}\\x04ra\\tUT\\x0BJc\\x0Bed\\np@\\tQN\\nd|\\tkj\\tHk\\x04M`\\noi\\twr\\td\\\\\\nlq\\no_\\nlb\\nL[\\tac\\x04BB\\x04BH\\x04Cm\\npl\\tIQ\\bVK\\x0Bxs\\n`e\\x0BiK\\npa\\x04Oi\\tUS\\bTp\\tfD\\nPG\\x05kk\\x04XA\\nz\\\\\\neg\\x0BWh\\twR\\x05qN\\nqS\\tcn\\x04lo\\nxS\\n^W\\tBU\\nt\\x7F\\tHE\\tp\\\\\\tfF\\tfw\\bVV\\bW@\\tak\\x0BVK\\x05ls\\tVJ\\bVV\\x0BeE\\x04\\\\o\\nyX\\nYm\\x04M`\\x05lL\\nd|\\nzk\\tA{\\x05sE\\twQ\\x04XT\\nt\\x7F\\tPl\\t]y\\x0BwT\\x05{p\\x04MD\\x0Bb\\\\\\tQ]\\x04Kj\\tJn\\nAH\\x0BRb\\tBU\\tHK\\t\\\\c\\nfI\\x05m\\x7F\\nqM\\n@R\\tSo\\noi\\x04BT\\tHv\\n_y\\x04Kh\\tBZ\\t]i\\bUJ\\tV{\\x04Sr\\nbI\\x0BGg\\ta_\\bTR\\nfI\\nfl\\t[K\\tII\\x04S|\\x0BuW\\tiI\\bWI\\nqI\\x0B|j\\x04BV\\bVg\\bWZ\\x04kF\\x0Bx]\\bTA\\tab\\tfr\\ti@\\tJd\\tJd\\x0Bps\\nAO\\bTa\\x05xu\\tiD\\nzk\\t|d\\t|`\\bW[\\tlP\\tdG\\bVV\\x0Bw}\\x0BqO\\ti[\\bQ\\x7F\\bTz\\x0BVF\\twN\\x05ts\\tdw\\bTv\\neS\\ngi\\tNr\\x05yS\\npe\\bVV\\bSq\\n`m\\tyj\\tBZ\\x0BWX\\bSB\\tc\\\\\\nUR\\t[J\\tc_\\x04nM\\bWQ\\x0BAx\\nMd\\tBr\\x05ui\\x0BxY\\bSM\\x0BWc\\x0B|j\\x0Bxs\\t}Q\\tBO\\bPL\\bWW\\tfM\\nAO\\tPc\\x0BeU\\x04e^\\bTg\\nqI\\tac\\bPv\\tcF\\x04oQ\\tQ\\x7F\\x0BhZ\\x05ka\\nz\\\\\\tiK\\tBU\\n`k\\tCP\\x04S|\\x04M`\\n{I\\tS{\\x04_O\\tBZ\\x04Zi\\x04Sk\\tps\\tp\\\\\\nYu\\n]s\\nxC\\bWt\\nbD\\tkV\\x0BGu\\x05yS\\nqA\\t[r\\neK\\x04M`\\tdZ\\x05lL\\bUg\\bTl\\nbD\\tUS\\x0Bb\\\\\\tpV\\ncc\\x04S\\\\\\tct\\t`z\\bPL\\x0BWs\\nA`\\neg\\bSq\\x05uE\\x04CR\\x0BDg\\t`W\\x0Bz{\\x0BWc\\x04Sk\\x04Sk\\tbW\\bUg\\tea\\nxZ\\tiI\\tUX\\tVJ\\nqn\\tS{\\x0BRb\\bTQ\\npl\\x05Gt\\x0BuW\\x05uj\\npF\\nqI\\tfL\\t[I\\tia\\x04XO\\nyu\\x0BDg\\x0Bed\\tq{\\x04VG\\bQ\\x7F\\x05ka\\tVj\\tkV\\txB\\nd|\\np@\\tQN\\tPc\\tps\\x04]j\\tkV\\toU\\bTp\\nzU\\x05nB\\x0BB]\\ta{\\bV@\\n]n\\x04m`\\tcz\\tR{\\x04m`\\bQa\\x0BwT\\bSM\\x05MY\\x05qN\\tdj\\x05~s\\x0BQ}\\x05MY\\x0BMB\\tBv\\twR\\bRg\\x0BQ}\\tql\\x0BKC\\nrm\\x05xu\\x04CC\\x0BwB\\x0Bvh\\tBq\\x04Xq\\npV\\ti_\\x05Ob\\x05uE\\nbd\\nqo\\x0B{i\\nC~\\tBL\\x0BeE\\x05uH\\bVj\\x04Ey\\x04Gz\\x0BzR\\x0B{i\\tcf\\n{Z\\n]n\\x04XA\\x0BGu\\x0BnU\\thS\\x0BGI\\nCc\\tHE\\bTA\\tHB\\x04BH\\x04Cj\\nCc\\bTF\\tHE\\nXI\\tA{\\bQ\\x7F\\tc\\\\\\x0BmO\\x0BWX\\nfH\\np@\\x05MY\\bTF\\nlK\\tBt\\nzU\\tTT\\x04Km\\x0BwT\\npV\\ndt\\x0ByI\\tVx\\tQ\\x7F\\tRg\\tTd\\nzU\\bRS\\nLM\\twA\\x04nM\\tTn\\ndS\\t]g\\nLc\\x0BwB\\t}t\\t[I\\tCP\\x04kX\\x0BFm\\x0BhZ\\x05m\\x7F\\ti[\\np@\\x0BQ}\\x0BW\\x7F\\t|d\\nMO\\nMd\\tf_\\tfD\\tcJ\\tHz\\x0BRb\\tio\\tPy\\x04Y[\\nxU\\tct\\x0B@@\\tww\\bPv\\x04BM\\x04FF\\ntb\\x05v|\\x0BKm\\tBq\\tBq\\x04Kh\\x04`o\\nZd\\x04XU\\ti]\\t|`\\tSt\\x04B\\\\\\bQ\\x7F\\x0B_W\\tTJ\\nqI\\t|a\\tA{\\x0BuP\\x04MD\\tPl\\nxR\\tfL\\x0Bws\\tc{\\td\\\\\\bV`\\neg\\tHK\\x05kc\\nd|\\bVV\\ny\\\\\\x05kc\\ti]\\bVG\\t`V\\tss\\tI_\\tAE\\tbs\\tdu\\nel\\tpD\\x0BW\\x7F\\nqs\\x05lv\\bSM\\x04Zi\\x0BVK\\x05ia\\x0BQB\\tQ\\x7F\\n{Z\\bPt\\x0BKl\\nlK\\nhs\\ndS\\bVK\\x05mf\\nd^\\tkV\\tcO\\nc|\\bVH\\t\\\\]\\bTv\\bSq\\tmI\\x0BDg\\tVJ\\tcn\\ny\\\\\\bVg\\bTv\\nyX\\bTF\\t]]\\bTp\\noi\\nhs\\x0BeU\\nBf\\tdj\\x05Mr\\n|p\\t\\\\g\\t]r\\bVb\\x05{D\\nd[\\x04XN\\tfM\\tO\\\\\\x05s_\\tcf\\tiZ\\x04XN\\x0BWc\\tqv\\n`m\\tU^\\x05oD\\nd|\\x0BGg\\tdE\\x0Bwf\\x04lo\\x04u}\\nd|\\x05oQ\\t`i\\x04Oi\\x0BxD\\ndZ\\nCx\\x04Yw\\nzk\\ntb\\ngw\\tyj\\tB`\\nyX\\x0Bps\\ntC\\x0BpP\\x0Bqw\\bPu\\bPX\\tDm\\npw\\x05Nj\\tss\\taG\\x0Bxs\\bPt\\noL\\x04Gz\\tOk\\ti@\\ti]\\x04eC\\tIQ\\tii\\tdj\\x0B@J\\t|d\\x05uh\\bWZ\\x0BeU\\x0BnU\\bTa\\tcC\\x04g]\\nzk\\x04Yh\\bVK\\nLU\\np@\\ntb\\ntR\\tCj\\x0BNP\\ti@\\bP{\\n\\\\}\\n{c\\nwX\\tfL\\bVG\\tc{\\t|`\\tAJ\\t|C\\tfD\\x05ln\\t|d\\tbs\\nqI\\x05{B\\x0BAx\\np@\\nzk\\x0BRb\\x05Os\\x0BWS\\x04e^\\x0BD_\\tBv\\x0BWd\\bVb\\x0Bxs\\x0BeE\\bRw\\n]n\\n|p\\x0Bg|\\tfw\\x05kc\\bTI\\x05ka\\n\\\\T\\x04Sp\\tju\\x0Bps\\npe\\x05u|\\x0BGr\\bVe\\tCU\\x04]M\\x04XU\\x0BxD\\bTa\\tIQ\\x0BWq\\tCU\\tam\\tdj\\bSo\\x04Sw\\x0BnU\\x04Ch\\tQ]\\x05s_\\bPt\\tfS\\bTa\\t\\\\}\\n@O\\x04Yc\\tUZ\\bTx\\npe\\x0BnU\\nzU\\t|}\\tiD\\nz\\\\\\bSM\\x0BxD\\x04BR\\nzQ\\tQN\\x04]M\\x04Yh\\nLP\\x0BFm\\x0BLX\\x05vc\\x0Bql\\x05ka\\tHK\\bVb\\ntC\\nCy\\bTv\\nuV\\x04oQ\\t`z\\t[I\\tB`\\x0BRb\\tyj\\tsb\\x0BWs\\bTl\\tkV\\x0Bed\\ne\\x7F\\x05lL\\x0BxN\\t\\x7Fm\\nJn\\tjY\\x0BxD\\bVb\\bSq\\x0Byu\\twL\\x0BXL\\bTA\\tpg\\tAt\\tnD\\x04XX\\twR\\npl\\nhw\\x05yS\\nps\\tcO\\bW[\\x0B|j\\x04XN\\tsV\\tp\\\\\\tBe\\nb~\\nAJ\\n]e\\x05k`\\x05qN\\tdw\\tWV\\tHE\\x0BEV\\x05Jz\\tid\\tB`\\tzh\\x05E]\\tfD\\bTg\\x05qN\\bTa\\tja\\x04Cv\\bSM\\nhc\\bUe\\x05t_\\tie\\x04g]\\twQ\\nPn\\bVB\\tjw\\bVg\\x0BbE\\tBZ\\x0BRH\\bP{\\tjp\\n\\\\}\\ta_\\tcC\\t|a\\x0BD]\\tBZ\\ti[\\tfD\\x0BxW\\no_\\td\\\\\\n_D\\ntb\\t\\\\c\\tAJ\\nlK\\x04oQ\\x04lo\\x0BLx\\x0BM@\\bWZ\\x04Kn\\x0Bpg\\nTi\\nIv\\n|r\\x0B@}\\x05Jz\\x05Lm\\x05Wh\\x05k}\\x05ln\\x0BxD\\n]s\\x04gc\\x0Bps\\tBr\\bTW\\x0BBM\\x05tZ\\nBY\\x04DW\\tjf\\x0BSW\\x04C}\\nqo\\tdE\\tmv\\tIQ\\bPP\\bUb\\x05lv\\x04BC\\nzQ\\t[I\\x0Bgl\\nig\\bUs\\x04BT\\x0BbC\\bSq\\tsU\\tiW\\nJn\\tSY\\tHK\\trg\\npV\\x0BID\\x0B|j\\x04KO\\t`S\\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl<X<W=c=k=n<R<V<\\\\<V<T<W<T=a=n<R<^=m<Y<Y<_<R<S=l<T=n<\\\\<V<Y=e<Y=o<Z<Y<v<\\\\<V<]<Y<[<]=g<W<R<Q<T<~=m<Y<S<R<X<A=n<R=n<R<P=k<Y<P<Q<Y=n<W<Y=n=l<\\\\<[<R<Q<\\\\<_<X<Y<P<Q<Y<x<W=c<s=l<T<Q<\\\\=m<Q<T=i=n<Y<P<V=n<R<_<R<X<^<R=n=n<\\\\<P<M<D<|<P<\\\\=c<K=n<R<^<\\\\=m<^<\\\\<P<Y<P=o<N<\\\\<V<X<^<\\\\<Q<\\\\<P=a=n<T=a=n=o<~<\\\\<P=n<Y=i<S=l<R=n=o=n<Q<\\\\<X<X<Q=c<~<R=n=n=l<T<Q<Y<U<~<\\\\=m<Q<T<P=m<\\\\<P=n<R=n=l=o<]<r<Q<T<P<T=l<Q<Y<Y<r<r<r<W<T=j=a=n<\\\\<r<Q<\\\\<Q<Y<P<X<R<P<P<R<U<X<^<Y<R<Q<R=m=o<X\\fHy\\fIk\\fHU\\fId\\fHy\\fIl\\fHT\\fIk\\fHy\\fHR\\fHy\\fIg\\fHx\\fH\\\\\\fHF\\fH\\\\\\fHD\\fIk\\fHc\\fHy\\fHy\\fHS\\fHA\\fIl\\fHk\\fHT\\fHy\\fH\\\\\\fHH\\fIg\\fHU\\fIg\\fHj\\fHF\\fHU\\fIl\\fHC\\fHU\\fHC\\fHR\\fHH\\fHy\\fHI\\fHRibdqbm\\fHj\\fHp\\fHp\\fIg\\fHi\\fH@\\fHJ\\fIg\\fH{\\fHd\\fHp\\fHR\\fH{\\fHc\\fHU\\fHB\\fHk\\fHD\\fHY\\fHU\\fHC\\fIk\\fHI\\fIk\\fHI\\fIl\\fHt\\fH\\\\\\fHp\\fH@\\fHJ\\fIl\\fHy\\fHd\\fHp\\fIl\\fHY\\fIk\\fHD\\fHd\\fHD\\fHc\\fHU\\fH\\\\\\fHe\\fHT\\fHB\\fIk\\fHy\\fHB\\fHY\\fIg\\fH^\\fIk\\fHT\\fH@\\fHB\\fHd\\fHJ\\fIk\\fH\\x7F\\fH\\\\\\fHj\\fHB\\fH@\\fHT\\fHA\\fH\\\\\\fH@\\fHD\\fHv\\fH^\\fHB\\fHD\\fHj\\fH{\\fHT\\fIl\\fH^\\fIl4U5h5e4I5h5e5k4\\\\4K4N4B4]4U4C4C4K5h5e5k4\\\\5k4Y5d4]4V5f4]5o4K5j5d5h4K4D5f5j4U4]4Z4\\\\5h5o5k5j4K5f5d5i5n4K5h4U5h5f4K5j4K5h5o5j4A4F5e5n4D5h5d4A4E4K4B4]5m5n4[4U4D4C4]5o5j4I4\\\\4K5o5i4K4K4A4C4I5h4K5m5f5k4D4U4Z5o5f5m4D4A4G5d5i5j5d5k5d4O5j4K4@4C4K5h5k4K4_5h5i4U5j4C5h5f4_4U4D4]4Y5h5e5i5j4\\\\4D5k4K4O5j5k5i4G5h5o5j4F4K5h4K4A5f4G5i4Y4]4X4]4A4A5d5h5d5m5f4K4\\\\4K5h5o5h5i4]4E4K5j4F4K5h5m4O4D5d4B4K4Y4O5j4F4K5j5k4K5h5f4U4Z5d5d5n4C4K4D5j4B5f4]4D5j4F5h5o5i4X4K4M5d5k5f4K4D5d5n4Y4Y5d5i4K4]5n5i4O4A4C5j4A5j4U4C5i4]4O5f4K4A4E5o4F4D4C5d5j5f4@4D5i5j5k4F4A4F4@5k4E4_5j4E5f4F5i5o4]4E4V4^4E5j5m4_4D5f4F5h5h5k5h5j4K4F5h5o5n5h4D5h5i4K4U5j5k4O5d5h4X5f4M5j5d4]4O5i4K5m5f5o4D5o5h4\\\\4K4F4]4F4D4D4O5j5k5i4_4K5j5o4D5f4U5m5n4C4A4_5j5h5k5i4X4U4]4O5k5h4X5k4]5n4[4]4[5h4Dsqlejofpfquj`fgfebvowkjnpfoegfwbjop`lmwfmwpvsslqwpwbqwfgnfppbdfpv``fppebpkjlm?wjwof=`lvmwqzb``lvmw`qfbwfgpwlqjfpqfpvowpqvmmjmdsql`fpptqjwjmdlaif`wpujpjaoftfo`lnfbqwj`ofvmhmltmmfwtlqh`lnsbmzgzmbnj`aqltpfqsqjub`zsqlaofnPfquj`fqfpsf`wgjpsobzqfrvfpwqfpfquftfapjwfkjpwlqzeqjfmgplswjlmptlqhjmdufqpjlmnjoojlm`kbmmfotjmglt-bggqfppujpjwfgtfbwkfq`lqqf`wsqlgv`wfgjqf`welqtbqgzlv#`bmqfnlufgpvaif`w`lmwqlobq`kjuf`vqqfmwqfbgjmdojaqbqzojnjwfgnbmbdfqevqwkfqpvnnbqznb`kjmfnjmvwfpsqjubwf`lmwf{wsqldqbnpl`jfwzmvnafqptqjwwfmfmbaofgwqjddfqplvq`fpolbgjmdfofnfmwsbqwmfqejmboozsfqef`wnfbmjmdpzpwfnphffsjmd`vowvqf%rvlw8/ilvqmbosqlif`wpvqeb`fp%rvlw8f{sjqfpqfujftpabobm`fFmdojpk@lmwfmwwkqlvdkSofbpf#lsjmjlm`lmwb`wbufqbdfsqjnbqzujoobdfPsbmjpkdboofqzgf`ojmfnffwjmdnjppjlmslsvobqrvbojwznfbpvqfdfmfqbopsf`jfppfppjlmpf`wjlmtqjwfqp`lvmwfqjmjwjboqfslqwpejdvqfpnfnafqpklogjmdgjpsvwffbqojfqf{sqfppgjdjwbosj`wvqfBmlwkfqnbqqjfgwqbeej`ofbgjmd`kbmdfg`fmwqbouj`wlqzjnbdfp,qfbplmppwvgjfpefbwvqfojpwjmdnvpw#afp`kllopUfqpjlmvpvboozfsjplgfsobzjmddqltjmdlaujlvplufqobzsqfpfmwb`wjlmp?,vo=\\x0E\\ttqbssfqboqfbgz`fqwbjmqfbojwzpwlqbdfbmlwkfqgfphwlsleefqfgsbwwfqmvmvpvboGjdjwbo`bsjwboTfapjwfebjovqf`lmmf`wqfgv`fgBmgqljggf`bgfpqfdvobq#%bns8#bmjnbopqfofbpfBvwlnbwdfwwjmdnfwklgpmlwkjmdSlsvobq`bswjlmofwwfqp`bswvqfp`jfm`foj`fmpf`kbmdfpFmdobmg>2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8\\\"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\\t\\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\\x0E\\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#\\\">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\\t\\tTkfm#lapfquf?,k1=\\x0E\\tNlgfqm#sqlujgf!#bow>!alqgfqp-\\t\\tElq#\\t\\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\\x0E\\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\\x0E\\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\\t\\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\\x0E\\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\\x0E\\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\\t\\n\\n?\\\"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\\x7F\\x7F#X^8\\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsks<jg>bo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\\t\\n?\\\"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-ip<bqf#wkfhlmwbhwwlgbz$p-kwno!#wbqdfw>tfbqjmdBoo#Qjd8\\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\\t\\x0E\\t?\\\"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\\x0E\\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\\t\\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\\t~*8\\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\\t\\t?\\\"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?\\\"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\\x7F\\x7Fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\\t\\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\\t\\n\\njw#jmwlqbmhfg#qbwf#levo=\\x0E\\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\\x0E\\t\\x0E\\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp\\\">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\\t\\n\\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\\x0E\\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl\\\"..#fmgojfp#jm$^*8\\x0E\\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\\t\\n\\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?\\\"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\\x0E\\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\\tsflsof-jm#lmf#>tjmgltellwfq\\\\b#dllg#qfhobnblwkfqp/wl#wkjp\\\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\\x0E\\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\\x0E\\t\\x0E\\t\\x0E\\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll\\\"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbm<ubovf>gjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\\x0E\\t\\n\\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\\x0E\\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\\x0E\\t\\x0E\\t?\\\"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\\t\\n\\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\\t\\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\\x0E\\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\\t\\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\\t\\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\\t\\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\\t\\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\\t\\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?\\\"..#fmg?,psbm=??aq#,=\\x0E\\t\\\\slsvsp\\x7Fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\\t\\tWkf#wb{lmlnznv`k#le#?,psbm=\\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\\x0E\\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\\t?kfbg=\\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8\\\"..#wjwof!=?,irvfqz-?,elqn=\\t+\\x0BBl\\bQ\\x7F*+\\x0BUm\\x05Gx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_<R<X<\\\\<Y=m<W<T<Y=m=n=`<]=g<W<R<]=g=n=`=a=n<R<P<y=m<W<T=n<R<_<R<P<Y<Q=c<^=m<Y=i=a=n<R<U<X<\\\\<Z<Y<]=g<W<T<_<R<X=o<X<Y<Q=`=a=n<R=n<]=g<W<\\\\=m<Y<]=c<R<X<T<Q=m<Y<]<Y<Q<\\\\<X<R=m<\\\\<U=n=h<R=n<R<Q<Y<_<R=m<^<R<T=m<^<R<U<T<_=l=g=n<R<Z<Y<^=m<Y<P=m<^<R=b<W<T=d=`=a=n<T=i<S<R<V<\\\\<X<Q<Y<U<X<R<P<\\\\<P<T=l<\\\\<W<T<]<R=n<Y<P=o=i<R=n=c<X<^=o=i=m<Y=n<T<W=b<X<T<X<Y<W<R<P<T=l<Y=n<Y<]=c=m<^<R<Y<^<T<X<Y=k<Y<_<R=a=n<T<P=m=k<Y=n=n<Y<P=g=j<Y<Q=g=m=n<\\\\<W<^<Y<X=`=n<Y<P<Y<^<R<X=g=n<Y<]<Y<^=g=d<Y<Q<\\\\<P<T=n<T<S<\\\\=n<R<P=o<S=l<\\\\<^<W<T=j<\\\\<R<X<Q<\\\\<_<R<X=g<[<Q<\\\\=b<P<R<_=o<X=l=o<_<^=m<Y<U<T<X<Y=n<V<T<Q<R<R<X<Q<R<X<Y<W<\\\\<X<Y<W<Y=m=l<R<V<T=b<Q=c<^<Y=m=`<y=m=n=`=l<\\\\<[<\\\\<Q<\\\\=d<T4K5h5h5k4K5h4F5f4@5i5f4U4B4K4Y4E4K5h4\\\\5f4U5h5f5k4@4C5f4C4K5h4N5j4K5h4]4C4F4A5o5i4Y5m4A4E5o4K5j4F4K5h5h5f5f5o5d5j4X4D5o4E5m5f5k4K4D5j4K4F4A5d4K4M4O5o4G4]4B5h4K5h4K5h4A4D4C5h5f5h4C4]5d4_4K4Z4V4[4F5o5d5j5k5j4K5o4_4K4A4E5j4K4C5f4K5h4[4D4U5h5f5o4X5o4]4K5f5i5o5j5i5j5k4K4X4]5o4E4]4J5f4_5j4X5f4[5i4K4\\\\4K4K5h5m5j4X4D4K4D4F4U4D4]4]4A5i4E5o4K5m4E5f5n5d5h5i4]5o4^5o5h5i4E4O4A5i4C5n5h4D5f5f4U5j5f4Y5d4]4E4[4]5f5n4X4K4]5o4@5d4K5h4O4B4]5e5i4U5j4K4K4D4A4G4U4]5d4Z4D4X5o5h5i4_4@5h4D5j4K5j4B4K5h4C5o4F4K4D5o5h5f4E4D4C5d5j4O5f4Z4K5f5d4@4C5m4]5f5n5o4F4D4F4O5m4Z5h5i4[4D4B4K5o4G4]4D4K4]5o4K5m4Z5h4K4A5h5e5j5m4_5k4O5f4K5i4]4C5d4C4O5j5k4K4C5f5j4K4K5h4K5j5i4U4]4Z4F4U5h5i4C4K4B5h5i5i5o5j\\x03\\x03\\x03\\x03\\x03\\x03\\x03\\x03\\x02\\x03\\x02\\x03\\x02\\x03\\x02\\x03\\x01\\x03\\x01\\x03\\x01\\x03\\x01\\x03\\x07\\x03\\x07\\x03\\x07\\x03\\x07\\x03\\x03\\x02\\x01\\0\\x07\\x06\\x05\\x04\\x04\\x05\\x06\\x07\\0\\x01\\x02\\x03\\x0B\\n\\t\\b\\x0F\\x0E\\r\\f\\f\\r\\x0E\\x0F\\b\\t\\n\\x0B\\x13\\x12\\x11\\x10\\x17\\x16\\x15\\x14\\x14\\x15\\x16\\x17\\x10\\x11\\x12\\x13\\x1B\\x1A\\x19\\x18\\x1F\\x1E\\x1D\\x1C\\x1C\\x1D\\x1E\\x1F\\x18\\x19\\x1A\\x1B\\x13\\x13\\x13\\x13\\x03\\x03\\x03\\x03\\x03\\x03\\x03\\x03\\x13\\x13\\x13\\x13\\x02\\x03\\x03\\x03\\x01\\x03\\x03\\x03\\x01\\x03\\x03\\x03\\x02\\x03\\x03\\x03\\x02\\x03\\x03\\x03\\0\\x03\\x03\\x03\\x13\\x13\\x03\\x02\\x03\\x03\\x03\\x02\\x03\\x03\\x13\\x13\\x03\\x02\\x03\\x03\\x03\\x0B\\x03\\x0B\\x03\\x0B\\x03\\x0B\\x03\\x03\\x03\\x02\\x03\\x01\\x03\\0\\x03\\x07\\x03\\x06\\x03\\x05\\x03\\x04qfplvq`fp`lvmwqjfprvfpwjlmpfrvjsnfmw`lnnvmjwzbubjobaofkjdkojdkwGWG,{kwnonbqhfwjmdhmltofgdfplnfwkjmd`lmwbjmfqgjqf`wjlmpvap`qjafbgufqwjpf`kbqb`wfq!#ubovf>!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\\x0E\\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\\t\\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\\t\\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\\x0E\\t?\\\"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\\t\\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?\\\"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\\t?\\\"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\\x0E\\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\\x0E\\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\\t%ow8\\\"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\\t\\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\\t?kfbg=\\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\\t?,b=?,wg=gfsfmg#lmpfbq`k!=\\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\\t\\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\\x7Fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\\x0E\\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\\fUh\\fT{\\fTN\\n{I\\np@\\x04Fr\\x0BBl\\bQ\\x7F\\tA{\\x0BUm\\x05Gx\\tA{\\x01yp\\x06YA\\0zX\\bTV\\bWl\\bUd\\x04BM\\x0BB{\\npV\\x0B@x\\x04B\\\\\\np@\\x04Db\\x04Gz\\tal\\npa\\tfM\\tuD\\bV~\\x04mx\\x0BQ}\\ndS\\tp\\\\\\bVK\\bS]\\bU|\\x05oD\\tkV\\x0Bed\\x0BHR\\nb~\\x04M`\\nJp\\x05oD\\x04|Q\\nLP\\x04Sw\\bTl\\nAI\\nxC\\bWt\\tBq\\x05F`\\x04Cm\\x0BLm\\tKx\\t}t\\bPv\\ny\\\\\\naB\\tV\\x7F\\nZd\\x04XU\\x04li\\tfr\\ti@\\tBH\\x04BD\\x04BV\\t`V\\n[]\\tp_\\tTn\\n~A\\nxR\\tuD\\t`{\\bV@\\tTn\\tHK\\tAJ\\x0Bxs\\x04Zf\\nqI\\x04Zf\\x0BBM\\x0B|j\\t}t\\bSM\\nmC\\x0BQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\\fHB\\fIk\\fHn\\fH^\\fHS\\fHc\\fHU\\fId\\fHn\\fH{\\fHC\\fHR\\fHT\\fHR\\fHI\\fHc\\fHY\\fHn\\fH\\\\\\fHU\\fIk\\fHy\\fIg\\fHd\\fHy\\fIm\\fHw\\fH\\\\\\fHU\\fHR\\fH@\\fHR\\fHJ\\fHy\\fHU\\fHR\\fHT\\fHA\\fIl\\fHU\\fIm\\fHc\\fH\\\\\\fHU\\fIl\\fHB\\fId\\fHn\\fHJ\\fHS\\fHD\\fH@\\fHR\\fHHgjsolgl`p\\fHT\\fHB\\fHC\\fH\\\\\\fIn\\fHF\\fHD\\fHR\\fHB\\fHF\\fHH\\fHR\\fHG\\fHS\\fH\\\\\\fHx\\fHT\\fHH\\fHH\\fH\\\\\\fHU\\fH^\\fIg\\fH{\\fHU\\fIm\\fHj\\fH@\\fHR\\fH\\\\\\fHJ\\fIk\\fHZ\\fHU\\fIm\\fHd\\fHz\\fIk\\fH^\\fHC\\fHJ\\fHS\\fHy\\fHR\\fHB\\fHY\\fIk\\fH@\\fHH\\fIl\\fHD\\fH@\\fIl\\fHv\\fHB\\fI`\\fHH\\fHT\\fHR\\fH^\\fH^\\fIk\\fHz\\fHp\\fIe\\fH@\\fHB\\fHJ\\fHJ\\fHH\\fHI\\fHR\\fHD\\fHU\\fIl\\fHZ\\fHU\\fH\\\\\\fHi\\fH^\\fH{\\fHy\\fHA\\fIl\\fHD\\fH{\\fH\\\\\\fHF\\fHR\\fHT\\fH\\\\\\fHR\\fHH\\fHy\\fHS\\fHc\\fHe\\fHT\\fIk\\fH{\\fHC\\fIl\\fHU\\fIn\\fHm\\fHj\\fH{\\fIk\\fHs\\fIl\\fHB\\fHz\\fIg\\fHp\\fHy\\fHR\\fH\\\\\\fHi\\fHA\\fIl\\fH{\\fHC\\fIk\\fHH\\fIm\\fHB\\fHY\\fIg\\fHs\\fHJ\\fIk\\fHn\\fHi\\fH{\\fH\\\\\\fH|\\fHT\\fIk\\fHB\\fIk\\fH^\\fH^\\fH{\\fHR\\fHU\\fHR\\fH^\\fHf\\fHF\\fH\\\\\\fHv\\fHR\\fH\\\\\\fH|\\fHT\\fHR\\fHJ\\fIk\\fH\\\\\\fHp\\fHS\\fHT\\fHJ\\fHS\\fH^\\fH@\\fHn\\fHJ\\fH@\\fHD\\fHR\\fHU\\fIn\\fHn\\fH^\\fHR\\fHz\\fHp\\fIl\\fHH\\fH@\\fHs\\fHD\\fHB\\fHS\\fH^\\fHk\\fHT\\fIk\\fHj\\fHD\\fIk\\fHD\\fHC\\fHR\\fHy\\fIm\\fH^\\fH^\\fIe\\fH{\\fHA\\fHR\\fH{\\fH\\\\\\fIk\\fH^\\fHp\\fH{\\fHU\\fH\\\\\\fHR\\fHB\\fH^\\fH{\\fIk\\fHF\\fIk\\fHp\\fHU\\fHR\\fHI\\fHk\\fHT\\fIl\\fHT\\fHU\\fIl\\fHy\\fH^\\fHR\\fHL\\fIl\\fHy\\fHU\\fHR\\fHm\\fHJ\\fIn\\fH\\\\\\fHH\\fHU\\fHH\\fHT\\fHR\\fHH\\fHC\\fHR\\fHJ\\fHj\\fHC\\fHR\\fHF\\fHR\\fHy\\fHy\\fI`\\fHD\\fHZ\\fHR\\fHB\\fHJ\\fIk\\fHz\\fHC\\fHU\\fIl\\fH\\\\\\fHR\\fHC\\fHz\\fIm\\fHJ\\fH^\\fH{\\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\\x0E\\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\\t\\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\\x0E\\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\\x0E\\t#`lopsbm>!?,elqn=\\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\\x0E\\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?\\\"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\\t\\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\\t?\\\"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\\t?,kfbg=\\x0E\\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\\t\\t%ow8\\\"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\\t?kfbg=\\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\\x0E\\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=\\x0E,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\\t\\n\\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks<?,avwwlm=\\tsfq`fmwbdfafpw.hmltm`qfbwjmd#b!#gjq>!owqOjfvwfmbmw\\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\\t\\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=\\x0E?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\\x0E\\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw\", \"fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf<P<R<Z<Q<R<]=o<X<Y=n<P<R<Z<Y=n<^=l<Y<P=c=n<\\\\<V<Z<Y=k=n<R<]=g<]<R<W<Y<Y<R=k<Y<Q=`=a=n<R<_<R<V<R<_<X<\\\\<S<R=m<W<Y<^=m<Y<_<R=m<\\\\<U=n<Y=k<Y=l<Y<[<P<R<_=o=n=m<\\\\<U=n<\\\\<Z<T<[<Q<T<P<Y<Z<X=o<]=o<X=o=n<s<R<T=m<V<[<X<Y=m=`<^<T<X<Y<R=m<^=c<[<T<Q=o<Z<Q<R=m<^<R<Y<U<W=b<X<Y<U<S<R=l<Q<R<P<Q<R<_<R<X<Y=n<Y<U=m<^<R<T=i<S=l<\\\\<^<\\\\=n<\\\\<V<R<U<P<Y=m=n<R<T<P<Y<Y=n<Z<T<[<Q=`<R<X<Q<R<U<W=o=k=d<Y<S<Y=l<Y<X=k<\\\\=m=n<T=k<\\\\=m=n=`=l<\\\\<]<R=n<Q<R<^=g=i<S=l<\\\\<^<R=m<R<]<R<U<S<R=n<R<P<P<Y<Q<Y<Y=k<T=m<W<Y<Q<R<^=g<Y=o=m<W=o<_<R<V<R<W<R<Q<\\\\<[<\\\\<X=n<\\\\<V<R<Y=n<R<_<X<\\\\<S<R=k=n<T<s<R=m<W<Y=n<\\\\<V<T<Y<Q<R<^=g<U=m=n<R<T=n=n<\\\\<V<T=i=m=l<\\\\<[=o<M<\\\\<Q<V=n=h<R=l=o<P<v<R<_<X<\\\\<V<Q<T<_<T=m<W<R<^<\\\\<Q<\\\\=d<Y<U<Q<\\\\<U=n<T=m<^<R<T<P=m<^=c<[=`<W=b<]<R<U=k<\\\\=m=n<R=m=l<Y<X<T<v=l<R<P<Y<H<R=l=o<P=l=g<Q<V<Y=m=n<\\\\<W<T<S<R<T=m<V=n=g=m=c=k<P<Y=m=c=j=j<Y<Q=n=l=n=l=o<X<\\\\=m<\\\\<P=g=i=l=g<Q<V<\\\\<q<R<^=g<U=k<\\\\=m<R<^<P<Y=m=n<\\\\=h<T<W=`<P<P<\\\\=l=n<\\\\=m=n=l<\\\\<Q<P<Y=m=n<Y=n<Y<V=m=n<Q<\\\\=d<T=i<P<T<Q=o=n<T<P<Y<Q<T<T<P<Y=b=n<Q<R<P<Y=l<_<R=l<R<X=m<\\\\<P<R<P=a=n<R<P=o<V<R<Q=j<Y=m<^<R<Y<P<V<\\\\<V<R<U<|=l=i<T<^5i5j4F4C5e4I4]4_4K5h4]4_4K5h4E4K5h4U4K5i5o4F4D5k4K4D4]4K5i4@4K5h5f5d5i4K5h4Y5d4]4@4C5f4C4E4K5h4U4Z5d4I4Z4K5m4E4K5h5n4_5i4K5h4U4K4D4F4A5i5f5h5i5h5m4K4F5i5h4F5n5e4F4U4C5f5h4K5h4X4U4]4O4B4D4K4]4F4[5d5f4]4U5h5f5o5i4I4]5m4K5n4[5h4D4K4F4K5h5h4V4E4F4]4F5f4D4K5h5j4K4_4K5h4X5f4B5i5j4F4C5f4K5h4U4]4D4K5h5n4Y4Y4K5m5h4K5i4U5h5f5k4K4F4A4C5f4G4K5h5h5k5i4K5h4U5i5h5i5o4F4D4E5f5i5o5j5o4K5h4[5m5h5m5f4C5f5d4I4C4K4]4E4F4K4]5f4B4K5h4Y4A4E4F4_4@5f5h4K5h5d5n4F4U5j4C5i4K5i4C5f5j4E4F4Y5i5f5i4O4]4X5f5m4K5h4\\\\5f5j4U4]4D5f4E4D5d4K4D4E4O5h4U4K4D4K5h4_5m4]5i4X4K5o5h4F4U4K5h5e4K5h4O5d5h4K5h4_5j4E4@4K5i4U4E4K5h4Y4A5m4K5h4C5f5j5o5h5i4K4F4K5h4B4K4Y4K5h5i5h5m4O4U4Z4K4M5o4F4K4D4E4K5h4B5f4]4]4_4K4J5h4K5h5n5h4D4K5h4O4C4D5i5n4K4[4U5i4]4K4_5h5i5j4[5n4E4K5h5o4F4D4K5h4]4@5h4K4X4F4]5o4K5h5n4C5i5f4U4[5f5opAzWbdMbnf+-isd!#bow>!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\\x7Fwkvna\\x7Fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\\t\\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\\t\\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\\t\\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\\x0E\\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\\t?kfbg=\\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm\\\"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\\tkbujmd#affm\\x0E\\t?kfbg=\\x0E\\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\\t\\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\\x0E\\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks<qfnbjmfg#jmwqbmpelqnfgKf#tbp#bopltbp#boqfbgzpwbwjpwj`bojm#ebulq#leNjmjpwqz#lenlufnfmw#leelqnvobwjlmjp#qfrvjqfg?ojmh#qfo>!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\\x0E\\t?,kfbg=\\x0E\\t@lmufqpfoz/=\\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\\x0E\\t\\n?,gju=\\x0E\\t\\x0E\\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\\t\\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\\x0E\\t\\n\\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\\x7Fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\\n\\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\\tKltfufq#wkfofbg#wl#wkf\\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?\\\"X@GBWBX\\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\\t,jmgf{-kwno!tjmglt-lsfm+#\\\"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\\x0E\\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?\\\"Xfmgje^..=~\\t?,p`qjsw=\\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\\t-mlmwlv`k#lapfqubwjlmp?,b=\\t?,gju=\\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\\t\\n\\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\\n\\n?,p`qjsw=\\t\\t\\n\\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\\x0E\\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\\t?,gju=\\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\\x0E\\t?kfbg=\\x0E\\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=\\x0Epbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\\t?,p`qjsw=\\t\\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\\t?gju#!=?,gju=\\x0E\\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\\x7F_p(',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*<p<R<Q<_<R<W<M=l<S=m<V<T=m=l<S=m<V<T=m=l<S=m<V<R5h4U4]4D5f4E\\nAO\\x05Gx\\bTA\\nzk\\x0BBl\\bQ\\x7F\\bTA\\nzk\\x0BUm\\bQ\\x7F\\bTA\\nzk\\npe\\x05u|\\ti@\\tcT\\bVV\\n\\\\}\\nxS\\tVp\\x05tS\\x05k`\\t[X\\t[X\\x0BHR\\bPv\\bTW\\bUe\\n\\x7Fa\\bQp\\x0B_W\\x0BWs\\nxS\\x0BAz\\n_y\\x04Khjmelqnb`j/_mkfqqbnjfmwbpfof`wq/_mj`lgfp`qjs`j/_m`obpjej`bglp`lml`jnjfmwlsvaoj`b`j/_mqfob`jlmbgbpjmelqn/Mwj`bqfob`jlmbglpgfsbqwbnfmwlwqbabibglqfpgjqf`wbnfmwfbzvmwbnjfmwlnfq`bglOjaqf`lmw/M`wfmlpkbajwb`jlmfp`vnsojnjfmwlqfpwbvqbmwfpgjpslpj`j/_m`lmpf`vfm`jbfof`wq/_mj`bbsoj`b`jlmfpgfp`lmf`wbgljmpwbob`j/_mqfbojyb`j/_mvwjojyb`j/_mfm`j`olsfgjbfmefqnfgbgfpjmpwqvnfmwlpf{sfqjfm`jbpjmpwjwv`j/_msbqwj`vobqfppva`bwfdlqjb=n<R<W=`<V<R<L<R=m=m<T<T=l<\\\\<]<R=n=g<]<R<W=`=d<Y<S=l<R=m=n<R<P<R<Z<Y=n<Y<X=l=o<_<T=i=m<W=o=k<\\\\<Y=m<Y<U=k<\\\\=m<^=m<Y<_<X<\\\\<L<R=m=m<T=c<p<R=m<V<^<Y<X=l=o<_<T<Y<_<R=l<R<X<\\\\<^<R<S=l<R=m<X<\\\\<Q<Q=g=i<X<R<W<Z<Q=g<T<P<Y<Q<Q<R<p<R=m<V<^=g=l=o<]<W<Y<U<p<R=m<V<^<\\\\=m=n=l<\\\\<Q=g<Q<T=k<Y<_<R=l<\\\\<]<R=n<Y<X<R<W<Z<Y<Q=o=m<W=o<_<T=n<Y<S<Y=l=`<r<X<Q<\\\\<V<R<S<R=n<R<P=o=l<\\\\<]<R=n=o<\\\\<S=l<Y<W=c<^<R<R<]=e<Y<R<X<Q<R<_<R=m<^<R<Y<_<R=m=n<\\\\=n=`<T<X=l=o<_<R<U=h<R=l=o<P<Y=i<R=l<R=d<R<S=l<R=n<T<^=m=m=g<W<V<\\\\<V<\\\\<Z<X=g<U<^<W<\\\\=m=n<T<_=l=o<S<S=g<^<P<Y=m=n<Y=l<\\\\<]<R=n<\\\\=m<V<\\\\<[<\\\\<W<S<Y=l<^=g<U<X<Y<W<\\\\=n=`<X<Y<Q=`<_<T<S<Y=l<T<R<X<]<T<[<Q<Y=m<R=m<Q<R<^<Y<P<R<P<Y<Q=n<V=o<S<T=n=`<X<R<W<Z<Q<\\\\=l<\\\\<P<V<\\\\=i<Q<\\\\=k<\\\\<W<R<L<\\\\<]<R=n<\\\\<N<R<W=`<V<R=m<R<^=m<Y<P<^=n<R=l<R<U<Q<\\\\=k<\\\\<W<\\\\=m<S<T=m<R<V=m<W=o<Z<]=g=m<T=m=n<Y<P<S<Y=k<\\\\=n<T<Q<R<^<R<_<R<S<R<P<R=e<T=m<\\\\<U=n<R<^<S<R=k<Y<P=o<S<R<P<R=e=`<X<R<W<Z<Q<R=m=m=g<W<V<T<]=g=m=n=l<R<X<\\\\<Q<Q=g<Y<P<Q<R<_<T<Y<S=l<R<Y<V=n<M<Y<U=k<\\\\=m<P<R<X<Y<W<T=n<\\\\<V<R<_<R<R<Q<W<\\\\<U<Q<_<R=l<R<X<Y<^<Y=l=m<T=c=m=n=l<\\\\<Q<Y=h<T<W=`<P=g=o=l<R<^<Q=c=l<\\\\<[<Q=g=i<T=m<V<\\\\=n=`<Q<Y<X<Y<W=b=c<Q<^<\\\\=l=c<P<Y<Q=`=d<Y<P<Q<R<_<T=i<X<\\\\<Q<Q<R<U<[<Q<\\\\=k<T=n<Q<Y<W=`<[=c=h<R=l=o<P<\\\\<N<Y<S<Y=l=`<P<Y=m=c=j<\\\\<[<\\\\=e<T=n=g<w=o=k=d<T<Y\\fHD\\fHU\\fIl\\fHn\\fHy\\fH\\\\\\fHD\\fIk\\fHi\\fHF\\fHD\\fIk\\fHy\\fHS\\fHC\\fHR\\fHy\\fH\\\\\\fIk\\fHn\\fHi\\fHD\\fIa\\fHC\\fHy\\fIa\\fHC\\fHR\\fH{\\fHR\\fHk\\fHM\\fH@\\fHR\\fH\\\\\\fIk\\fHy\\fHS\\fHT\\fIl\\fHJ\\fHS\\fHC\\fHR\\fHF\\fHU\\fH^\\fIk\\fHT\\fHS\\fHn\\fHU\\fHA\\fHR\\fH\\\\\\fHH\\fHi\\fHF\\fHD\\fIl\\fHY\\fHR\\fH^\\fIk\\fHT\\fIk\\fHY\\fHR\\fHy\\fH\\\\\\fHH\\fIk\\fHB\\fIk\\fH\\\\\\fIk\\fHU\\fIg\\fHD\\fIk\\fHT\\fHy\\fHH\\fIk\\fH@\\fHU\\fIm\\fHH\\fHT\\fHR\\fHk\\fHs\\fHU\\fIg\\fH{\\fHR\\fHp\\fHR\\fHD\\fIk\\fHB\\fHS\\fHD\\fHs\\fHy\\fH\\\\\\fHH\\fHR\\fHy\\fH\\\\\\fHD\\fHR\\fHe\\fHD\\fHy\\fIk\\fHC\\fHU\\fHR\\fHm\\fHT\\fH@\\fHT\\fIk\\fHA\\fHR\\fH[\\fHR\\fHj\\fHF\\fHy\\fIk\\fH^\\fHS\\fHC\\fIk\\fHZ\\fIm\\fH\\\\\\fIn\\fHk\\fHT\\fHy\\fIk\\fHt\\fHn\\fHs\\fIk\\fHB\\fIk\\fH\\\\\\fIl\\fHT\\fHy\\fHH\\fHR\\fHB\\fIk\\fH\\\\\\fHR\\fH^\\fIk\\fHy\\fH\\\\\\fHi\\fHK\\fHS\\fHy\\fHi\\fHF\\fHD\\fHR\\fHT\\fHB\\fHR\\fHp\\fHB\\fIm\\fHq\\fIk\\fHy\\fHR\\fH\\\\\\fHO\\fHU\\fIg\\fHH\\fHR\\fHy\\fHM\\fHP\\fIl\\fHC\\fHU\\fHR\\fHn\\fHU\\fIg\\fHs\\fH^\\fHZ\\fH@\\fIa\\fHJ\\fH^\\fHS\\fHC\\fHR\\fHp\\fIl\\fHY\\fHD\\fHp\\fHR\\fHH\\fHR\\fHy\\fId\\fHT\\fIk\\fHj\\fHF\\fHy\\fHR\\fHY\\fHR\\fH^\\fIl\\fHJ\\fIk\\fHD\\fIk\\fHF\\fIn\\fH\\\\\\fIl\\fHF\\fHR\\fHD\\fIl\\fHe\\fHT\\fHy\\fIk\\fHU\\fIg\\fH{\\fIl\\fH@\\fId\\fHL\\fHy\\fHj\\fHF\\fHy\\fIl\\fHY\\fH\\\\\\fIa\\fH[\\fH{\\fHR\\fHn\\fHY\\fHj\\fHF\\fHy\\fIg\\fHp\\fHS\\fH^\\fHR\\fHp\\fHR\\fHD\\fHR\\fHT\\fHU\\fHB\\fHH\\fHU\\fHB\\fIk\\fHn\\fHe\\fHD\\fHy\\fIl\\fHC\\fHR\\fHU\\fIn\\fHJ\\fH\\\\\\fIa\\fHp\\fHT\\fIn\\fHv\\fIl\\fHF\\fHT\\fHn\\fHJ\\fHT\\fHY\\fHR\\fH^\\fHU\\fIg\\fHD\\fHR\\fHU\\fIg\\fHH\\fIl\\fHp\\fId\\fHT\\fIk\\fHY\\fHR\\fHF\\fHT\\fHp\\fHD\\fHH\\fHR\\fHD\\fIk\\fHH\\fHR\\fHp\\fHR\\fH\\\\\\fIl\\fHt\\fHR\\fHC\\fH^\\fHp\\fHS\\fH^\\fIk\\fHD\\fIl\\fHv\\fIk\\fHp\\fHR\\fHn\\fHv\\fHF\\fHH\\fIa\\fH\\\\\\fH{\\fIn\\fH{\\fH^\\fHp\\fHR\\fHH\\fIk\\fH@\\fHR\\fHU\\fH\\\\\\fHj\\fHF\\fHD\\fIk\\fHY\\fHR\\fHU\\fHD\\fHk\\fHT\\fHy\\fHR\\fHT\\fIm\\fH@\\fHU\\fH\\\\\\fHU\\fHD\\fIk\\fHk\\fHT\\fHT\\fIk\\fHT\\fHU\\fHS\\fHH\\fH@\\fHM\\fHP\\fIk\\fHt\\fHs\\fHD\\fHR\\fHH\\fH^\\fHR\\fHZ\\fHF\\fHR\\fHn\\fHv\\fHZ\\fIa\\fH\\\\\\fIl\\fH@\\fHM\\fHP\\fIl\\fHU\\fIg\\fHH\\fIk\\fHT\\fHR\\fHd\\fHs\\fHZ\\fHR\\fHC\\fHJ\\fHT\\fHy\\fHH\\fIl\\fHp\\fHR\\fHH\\fIl\\fHY\\fHR\\fH^\\fHR\\fHU\\fHp\\fHR\\fH\\\\\\fHF\\fHs\\fHD\\fHR\\fH\\\\\\fHz\\fHD\\fIk\\fHT\\fHM\\fHP\\fHy\\fHB\\fHS\\fH^\\fHR\\fHe\\fHT\\fHy\\fIl\\fHy\\fIk\\fHY\\fH^\\fH^\\fH{\\fHH\\fHR\\fHz\\fHR\\fHD\\fHR\\fHi\\fH\\\\\\fIa\\fHI\\fHp\\fHU\\fHR\\fHn\\fHJ\\fIk\\fHz\\fHR\\fHF\\fHU\\fH^\\fIl\\fHD\\fHS\\fHC\\fHB\\fH@\\fHS\\fHD\\fHR\\fH@\\fId\\fHn\\fHy\\fHy\\fHU\\fIl\\fHn\\fHy\\fHU\\fHD\\fHR\\fHJ\\fIk\\fHH\\fHR\\fHU\\fHB\\fH^\\fIk\\fHy\\fHR\\fHG\\fIl\\fHp\\fH@\\fHy\\fHS\\fHH\\fIm\\fH\\\\\\fHH\\fHB\\fHR\\fHn\\fH{\\fHY\\fHU\\fIl\\fHn\\fH\\\\\\fIg\\fHp\\fHP\\fHB\\fHS\\fH^\\fIl\\fHj\\fH\\\\\\fIg\\fHF\\fHT\\fIk\\fHD\\fHR\\fHC\\fHR\\fHJ\\fHY\\fH^\\fIk\\fHD\\fIk\\fHz\\fHR\\fHH\\fHR\\fHy\\fH\\\\\\fIl\\fH@\\fHe\\fHD\\fHy\\fHR\\fHp\\fHY\\fHR\\fH@\\fHF\\fIn\\fH\\\\\\fHR\\fH@\\fHM\\fHP\\fHR\\fHT\\fI`\\fHJ\\fHR\\fHZ\\fIk\\fHC\\fH\\\\\\fHy\\fHS\\fHC\\fIk\\fHy\\fHU\\fHR\\fHn\\fHi\\fHy\\fHT\\fH\\\\\\fH@\\fHD\\fHR\\fHc\\fHY\\fHU\\fHR\\fHn\\fHT\\fIa\\fHI\\fH^\\fHB\\fHS\\fH^\\fIk\\fH^\\fIk\\fHz\\fHy\\fHY\\fHS\\fH[\\fHC\\fHy\\fIa\\fH\\\\\\fHn\\fHT\\fHB\\fIn\\fHU\\fHI\\fHR\\fHD\\fHR4F4_4F4[5f4U5i4X4K4]5o4E4D5d4K4_4[4E4K5h4Y5m4A4E5i5d4K4Z5f4U4K5h4B4K4Y4E4K5h5i4^5f4C4K5h4U4K5i4E4K5h5o4K4F4D4K5h4]4C5d4C4D4]5j4K5i4@4K5h4C5d5h4E4K5h4U4K5h5i4K5h5i5d5n4U4K5h4U4]4D5f4K5h4_4]5f4U4K5h4@5d4K5h4K5h4\\\\5k4K4D4K5h4A5f4K4E4K5h4A5n5d5n4K5h5o4]5f5i4K5h4U4]4K5n5i4A5m5d4T4E4K5h4G4K5j5f5i4X4K5k4C4E4K5h5i4]4O4E4K5h5n4]4N5j4K5h4X4D4K4D4K5h4A5d4K4]4K5h4@4C5f4C4K5h4O4_4]4E4K5h4U5h5d5i5i4@5i5d4U4E4K5h4]4A5i5j4K5h5j5n4K4[5m5h4_4[5f5j4K5h5o5d5f4F4K5h4C5j5f4K4D4]5o4K4F5k4K5h4]5f4K4Z4F4A5f4K4F5f4D4F5d5n5f4F4K5h4O5d5h5e4K5h4D4]5f4C4K5h5o5h4K5i4K5h4]4K4D4[4K5h4X4B4Y5f4_5f4K4]4K4F4K5h4G4K5h4G4K5h4Y5h4K4E4K5h4A4C5f4G4K5h4^5d4K4]4K5h4B5h5f4@4K5h4@5i5f4U4K5h4U4K5i5k4K5h4@5i4K5h4K5h4_4K4U4E5i4X4K5k4C5k4K5h4]4J5f4_4K5h4C4B5d5h4K5h5m5j5f4E4K5h5o4F4K4D4K5h4C5d4]5f4K5h4C4]5d4_4K4_4F4V4]5n4F4Y4K5i5f5i4K5h4D5j4K4F4K5h4U4T5f5ifmwfqwbjmnfmwvmgfqpwbmgjmd#>#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\\t?,gju=\\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\\x0E\\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\\t\\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\\x7F%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw\\\"Xfmgje^..=\\x0E\\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\\n\\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\\t?,p`qjsw=\\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,<plqw>wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?\\\"Xfmgje^..=\\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\\t?,p`qjsw=\\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?\\\"Xfmgje^..=\\x0E\\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\\twzsf>!pvanjw!#\\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?\\\"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?\\\"Xfmgje^..=\\t\\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\\t?,oj=\\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\\t\\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\\x0E\\t?algz#pwzof>!tjgwk9Wj\\rVSmd#Uj\\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\\t?,p`qjsw=\\t\\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\\t\\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=\\x0E#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\\x0E\\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\\t\\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\\x0E\\t?,p`qjsw=\\x0E\\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\\\jg!#`lmwfmw>!`bsjwbo#le#wkf\\x0E\\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#x\\x0Eje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\\t?,kfbg=\\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\\t-\\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\\x0E\\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?\\\"Xfmgje^..=\\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\\x0E\\t\\x0E\\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\\n\\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\\t?,p`qjsw=\\t?skjolplskj`bo#pqsphlkqubwphjwj\\rVSmd#Uj\\rWkw<L=o=m=m<V<T<U=l=o=m=m<V<T<Ujmufpwjdb`j/_msbqwj`jsb`j/_m<V<R=n<R=l=g<Y<R<]<W<\\\\=m=n<T<V<R=n<R=l=g<U=k<Y<W<R<^<Y<V=m<T=m=n<Y<P=g<q<R<^<R=m=n<T<V<R=n<R=l=g=i<R<]<W<\\\\=m=n=`<^=l<Y<P<Y<Q<T<V<R=n<R=l<\\\\=c=m<Y<_<R<X<Q=c=m<V<\\\\=k<\\\\=n=`<Q<R<^<R=m=n<T<O<V=l<\\\\<T<Q=g<^<R<S=l<R=m=g<V<R=n<R=l<R<U=m<X<Y<W<\\\\=n=`<S<R<P<R=e=`=b=m=l<Y<X=m=n<^<R<]=l<\\\\<[<R<P=m=n<R=l<R<Q=g=o=k<\\\\=m=n<T<Y=n<Y=k<Y<Q<T<Y<\\x7F<W<\\\\<^<Q<\\\\=c<T=m=n<R=l<T<T=m<T=m=n<Y<P<\\\\=l<Y=d<Y<Q<T=c<M<V<\\\\=k<\\\\=n=`<S<R=a=n<R<P=o=m<W<Y<X=o<Y=n=m<V<\\\\<[<\\\\=n=`=n<R<^<\\\\=l<R<^<V<R<Q<Y=k<Q<R=l<Y=d<Y<Q<T<Y<V<R=n<R=l<R<Y<R=l<_<\\\\<Q<R<^<V<R=n<R=l<R<P<L<Y<V<W<\\\\<P<\\\\4K5h5i5j4F4C5e5i5j4F4C5f4K4F4K5h5i5d4Z5d4U4K5h4D4]4K5i4@4K5h5i5d4K5n4U4K5h4]4_4K4J5h5i4X4K4]5o4K4F4K5h4O4U4Z4K4M4K5h4]5f4K4Z4E4K5h4F4Y5i5f5i4K5h4K4U4Z4K4M4K5h5j4F4K4J4@4K5h4O5h4U4K4D4K5h4F4_4@5f5h4K5h4O5n4_4K5i4K5h4Z4V4[4K4F4K5h5m5f4C5f5d4K5h4F4]4A5f4D4K5h4@4C5f4C4E4K5h4F4U5h5f5i4K5h4O4B4D4K4]4K5h4K5m5h4K5i4K5h4O5m5h4K5i4K5h4F4K4]5f4B4K5h4F5n5j5f4E4K5h4K5h4U4K4D4K5h4B5d4K4[4]4K5h5i4@4F5i4U4K5h4C5f5o5d4]4K5h4_5f4K4A4E4U4D4C4K5h5h5k4K5h4F4]4D5f4E4K5h4]5d4K4D4[4K5h4O4C4D5f4E4K5h4K4B4D4K4]4K5h5i4F4A4C4E4K5h4K4V4K5j5f`vqplq9sljmwfq8?,wjwof=\\t?nfwb#!#kqfe>!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\\x7F#?b#kqfe>!?\\\"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\\t\\n\\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\\t?,kwno=\\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\\x0E\\t?,p`qjsw=\\x0E\\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\\t?,gju=\\t\\tbgnjmjpwqbwjuf#?,algz=\\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\\x0E\\t\\n?gju#`obpp>!?,gju=\\t\\n?,gju=\\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\\t\\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\\x0E\\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\\bTA\\nzk#+\\x0BBl\\bQ\\x7F*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\\fHe\\fHF\\fHC\\fIg\\fH{\\fHF\\fIn\\fH\\\\\\fIa\\fHY\\fHU\\fHB\\fHR\\fH\\\\\\fIk\\fH^\\fIg\\fH{\\fIg\\fHn\\fHv\\fIm\\fHD\\fHR\\fHY\\fH^\\fIk\\fHy\\fHS\\fHD\\fHT\\fH\\\\\\fHy\\fHR\\fH\\\\\\fHF\\fIm\\fH^\\fHS\\fHT\\fHz\\fIg\\fHp\\fIk\\fHn\\fHv\\fHR\\fHU\\fHS\\fHc\\fHA\\fIk\\fHp\\fIk\\fHn\\fHZ\\fHR\\fHB\\fHS\\fH^\\fHU\\fHB\\fHR\\fH\\\\\\fIl\\fHp\\fHR\\fH{\\fH\\\\\\fHO\\fH@\\fHD\\fHR\\fHD\\fIk\\fHy\\fIm\\fHB\\fHR\\fH\\\\\\fH@\\fIa\\fH^\\fIe\\fH{\\fHB\\fHR\\fH^\\fHS\\fHy\\fHB\\fHU\\fHS\\fH^\\fHR\\fHF\\fIo\\fH[\\fIa\\fHL\\fH@\\fHN\\fHP\\fHH\\fIk\\fHA\\fHR\\fHp\\fHF\\fHR\\fHy\\fIa\\fH^\\fHS\\fHy\\fHs\\fIa\\fH\\\\\\fIk\\fHD\\fHz\\fHS\\fH^\\fHR\\fHG\\fHJ\\fI`\\fH\\\\\\fHR\\fHD\\fHB\\fHR\\fHB\\fH^\\fIk\\fHB\\fHH\\fHJ\\fHR\\fHD\\fH@\\fHR\\fHp\\fHR\\fH\\\\\\fHY\\fHS\\fHy\\fHR\\fHT\\fHy\\fIa\\fHC\\fIg\\fHn\\fHv\\fHR\\fHU\\fHH\\fIk\\fHF\\fHU\\fIm\\fHm\\fHv\\fH@\\fHH\\fHR\\fHC\\fHR\\fHT\\fHn\\fHY\\fHR\\fHJ\\fHJ\\fIk\\fHz\\fHD\\fIk\\fHF\\fHS\\fHw\\fH^\\fIk\\fHY\\fHS\\fHZ\\fIk\\fH[\\fH\\\\\\fHR\\fHp\\fIa\\fHC\\fHe\\fHH\\fIa\\fHH\\fH\\\\\\fHB\\fIm\\fHn\\fH@\\fHd\\fHJ\\fIg\\fHD\\fIg\\fHn\\fHe\\fHF\\fHy\\fH\\\\\\fHO\\fHF\\fHN\\fHP\\fIk\\fHn\\fHT\\fIa\\fHI\\fHS\\fHH\\fHG\\fHS\\fH^\\fIa\\fHB\\fHB\\fIm\\fHz\\fIa\\fHC\\fHi\\fHv\\fIa\\fHw\\fHR\\fHw\\fIn\\fHs\\fHH\\fIl\\fHT\\fHn\\fH{\\fIl\\fHH\\fHp\\fHR\\fHc\\fH{\\fHR\\fHY\\fHS\\fHA\\fHR\\fH{\\fHt\\fHO\\fIa\\fHs\\fIk\\fHJ\\fIn\\fHT\\fH\\\\\\fIk\\fHJ\\fHS\\fHD\\fIg\\fHn\\fHU\\fHH\\fIa\\fHC\\fHR\\fHT\\fIk\\fHy\\fIa\\fHT\\fH{\\fHR\\fHn\\fHK\\fIl\\fHY\\fHS\\fHZ\\fIa\\fHY\\fH\\\\\\fHR\\fHH\\fIk\\fHn\\fHJ\\fId\\fHs\\fIa\\fHT\\fHD\\fHy\\fIa\\fHZ\\fHR\\fHT\\fHR\\fHB\\fHD\\fIk\\fHi\\fHJ\\fHR\\fH^\\fHH\\fH@\\fHS\\fHp\\fH^\\fIl\\fHF\\fIm\\fH\\\\\\fIn\\fH[\\fHU\\fHS\\fHn\\fHJ\\fIl\\fHB\\fHS\\fHH\\fIa\\fH\\\\\\fHy\\fHY\\fHS\\fHH\\fHR\\fH\\\\\\fIm\\fHF\\fHC\\fIk\\fHT\\fIa\\fHI\\fHR\\fHD\\fHy\\fH\\\\\\fIg\\fHM\\fHP\\fHB\\fIm\\fHy\\fIa\\fHH\\fHC\\fIg\\fHp\\fHD\\fHR\\fHy\\fIo\\fHF\\fHC\\fHR\\fHF\\fIg\\fHT\\fIa\\fHs\\fHt\\fH\\\\\\fIk\\fH^\\fIn\\fHy\\fHR\\fH\\\\\\fIa\\fHC\\fHY\\fHS\\fHv\\fHR\\fH\\\\\\fHT\\fIn\\fHv\\fHD\\fHR\\fHB\\fIn\\fH^\\fIa\\fHC\\fHJ\\fIk\\fHz\\fIk\\fHn\\fHU\\fHB\\fIk\\fHZ\\fHR\\fHT\\fIa\\fHy\\fIn\\fH^\\fHB\\fId\\fHn\\fHD\\fIk\\fHH\\fId\\fHC\\fHR\\fH\\\\\\fHp\\fHS\\fHT\\fHy\\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\\t?,p`qjsw=\\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\\t?,kwno=\\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\\x0E\\t?,p`qjsw=\\x0E\\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\\t\\n\\n?,gju=\\tgjpsobz9#mlmf8!=!#,=\\t?ojmh#qfo>!\\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\\x7Fwkvna\\x7Fofew\\x7Fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\\t\\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\\x0E\\t?-ip!=?,p`qjsw=\\x0E\\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\\t##?sbdf=\\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*\\\"y\\\"W\\\"W\\\"[\\\"Q\\\"U\\\"V\\\"@=i=l<^<\\\\=n=m<V<T<V<R<P<S<\\\\<Q<T<T=c<^<W=c<Y=n=m=c<x<R<]<\\\\<^<T=n=`=k<Y<W<R<^<Y<V<\\\\=l<\\\\<[<^<T=n<T=c<t<Q=n<Y=l<Q<Y=n<r=n<^<Y=n<T=n=`<Q<\\\\<S=l<T<P<Y=l<T<Q=n<Y=l<Q<Y=n<V<R=n<R=l<R<_<R=m=n=l<\\\\<Q<T=j=g<V<\\\\=k<Y=m=n<^<Y=o=m<W<R<^<T=c=i<S=l<R<]<W<Y<P=g<S<R<W=o=k<T=n=`=c<^<W=c=b=n=m=c<Q<\\\\<T<]<R<W<Y<Y<V<R<P<S<\\\\<Q<T=c<^<Q<T<P<\\\\<Q<T<Y=m=l<Y<X=m=n<^<\\\\4K5h5i5d4K4Z5f4U4K5h4]4J5f4_5f4E4K5h4K5j4F5n4K5h5i4X4K4]5o4K4F5o4K5h4_5f4K4]4K4F4K5h5i5o4F5d4D4E4K5h4_4U5d4C5f4E4K4A4Y4K4J5f4K4F4K5h4U4K5h5i5f4E4K5h4Y5d4F5f4K4F4K5h4K5j4F4]5j4F4K5h4F4Y4K5i5f5i4K5h4I4_5h4K5i5f4K5h5i4X4K4]5o4E4K5h5i4]4J5f4K4Fqlalwp!#`lmwfmw>!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\\x7Fqjdkw\\x7Fwkvna\\x7F-ip!=?,p`qjsw=\\x0E\\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\\x0E\\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\\x0E\\t?,gju=\\x0E\\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\\t?,algz=\\t?,kwno=\\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\\x0E\\t?,gju=\\x0E\\t\\x0E\\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\\x0E\\t?,kwno=\\x0E\\\"y\\\"W\\\"W\\\"[\\\"Q\\\"U\\\"V\\\"@\\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\\x7Fwkvna\\x7Fqjdkw\\x7F1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\\x0E\\t?,kwno=\\x0E\\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?\\\"GL@WZSF#kwno=\\x0E\\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\\x7F#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\\x0E\\t?,gju=\\x0E\\t\\x0E\\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\\t?,gju=\\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\\n\\n?,gju=\\t\\n\\n?,gju=\\twkf#nlwjlm#sj`wvqf<}=f<W<_<\\\\=l=m<V<T<]=f<W<_<\\\\=l=m<V<T<H<Y<X<Y=l<\\\\=j<T<T<Q<Y=m<V<R<W=`<V<R=m<R<R<]=e<Y<Q<T<Y=m<R<R<]=e<Y<Q<T=c<S=l<R<_=l<\\\\<P<P=g<r=n<S=l<\\\\<^<T=n=`<]<Y=m<S<W<\\\\=n<Q<R<P<\\\\=n<Y=l<T<\\\\<W=g<S<R<[<^<R<W=c<Y=n<S<R=m<W<Y<X<Q<T<Y=l<\\\\<[<W<T=k<Q=g=i<S=l<R<X=o<V=j<T<T<S=l<R<_=l<\\\\<P<P<\\\\<S<R<W<Q<R=m=n=`=b<Q<\\\\=i<R<X<T=n=m=c<T<[<]=l<\\\\<Q<Q<R<Y<Q<\\\\=m<Y<W<Y<Q<T=c<T<[<P<Y<Q<Y<Q<T=c<V<\\\\=n<Y<_<R=l<T<T<|<W<Y<V=m<\\\\<Q<X=l\\fHJ\\fIa\\fHY\\fHR\\fH\\\\\\fHR\\fHB\\fId\\fHD\\fIm\\fHi\\fH^\\fHF\\fIa\\fH\\\\\\fHJ\\fHR\\fHD\\fHA\\fHR\\fH\\\\\\fHH\\fIl\\fHC\\fHi\\fHD\\fIm\\fHJ\\fIk\\fHZ\\fHU\\fHS\\fHD\\fIa\\fHJ\\fIl\\fHk\\fHn\\fHM\\fHS\\fHC\\fHR\\fHJ\\fHS\\fH^\\fIa\\fH^\\fIl\\fHi\\fHK\\fHS\\fHy\\fHR\\fH\\\\\\fHY\\fIl\\fHM\\fHS\\fHC\\fIg\\fHv\\fHS\\fHs\\fIa\\fHL\\fIk\\fHT\\fHB\\fHR\\fHv\\fHR\\fH\\\\\\fHp\\fHn\\fHy\\fIa\\fHZ\\fHD\\fHJ\\fIm\\fHD\\fHS\\fHC\\fHR\\fHF\\fIa\\fH\\\\\\fHC\\fIg\\fH{\\fHi\\fHD\\fIm\\fHT\\fHR\\fH\\\\\\fH}\\fHD\\fH^\\fHR\\fHk\\fHD\\fHF\\fHR\\fH\\\\\\fIa\\fHs\\fIl\\fHZ\\fH\\\\\\fIa\\fHH\\fIg\\fHn\\fH^\\fIg\\fHy\\fHT\\fHA\\fHR\\fHG\\fHP\\fIa\\fH^\\fId\\fHZ\\fHZ\\fH\\\\\\fIa\\fHH\\fIk\\fHn\\fHF\\fIa\\fH\\\\\\fHJ\\fIk\\fHZ\\fHF\\fIa\\fH^\\fIk\\fHC\\fH\\\\\\fHy\\fIk\\fHn\\fHJ\\fIa\\fH\\\\\\fHT\\fIa\\fHI\\fHS\\fHH\\fHS\\fHe\\fHH\\fIa\\fHF\\fHR\\fHJ\\fHe\\fHD\\fIa\\fHU\\fIk\\fHn\\fHv\\fHS\\fHs\\fIa\\fHL\\fHR\\fHC\\fHR\\fHH\\fIa\\fH\\\\\\fHR\\fHp\\fIa\\fHC\\fHR\\fHJ\\fHR\\fHF\\fIm\\fH\\\\\\fHR\\fHD\\fIk\\fHp\\fIg\\fHM\\fHP\\fIk\\fHn\\fHi\\fHD\\fIm\\fHY\\fHR\\fHJ\\fHZ\\fIa\\fH\\\\\\fIk\\fHO\\fIl\\fHZ\\fHS\\fHy\\fIa\\fH[\\fHR\\fHT\\fH\\\\\\fHy\\fHR\\fH\\\\\\fIl\\fHT\\fHn\\fH{\\fIa\\fH\\\\\\fHU\\fHF\\fH\\\\\\fHS\\fHO\\fHR\\fHB\\fH@\\fIa\\fH\\\\\\fHR\\fHn\\fHM\\fH@\\fHv\\fIa\\fHv\\fIg\\fHn\\fHe\\fHF\\fH^\\fH@\\fIa\\fHK\\fHB\\fHn\\fHH\\fIa\\fH\\\\\\fIl\\fHT\\fHn\\fHF\\fH\\\\\\fIa\\fHy\\fHe\\fHB\\fIa\\fHB\\fIl\\fHJ\\fHB\\fHR\\fHK\\fIa\\fHC\\fHB\\fHT\\fHU\\fHR\\fHC\\fHH\\fHR\\fHZ\\fH@\\fIa\\fHJ\\fIg\\fHn\\fHB\\fIl\\fHM\\fHS\\fHC\\fHR\\fHj\\fHd\\fHF\\fIl\\fHc\\fH^\\fHB\\fIg\\fH@\\fHR\\fHk\\fH^\\fHT\\fHn\\fHz\\fIa\\fHC\\fHR\\fHj\\fHF\\fH\\\\\\fIk\\fHZ\\fHD\\fHi\\fHD\\fIm\\fH@\\fHn\\fHK\\fH@\\fHR\\fHp\\fHP\\fHR\\fH\\\\\\fHD\\fHY\\fIl\\fHD\\fHH\\fHB\\fHF\\fIa\\fH\\\\\\fHB\\fIm\\fHz\\fHF\\fIa\\fH\\\\\\fHZ\\fIa\\fHD\\fHF\\fH\\\\\\fHS\\fHY\\fHR\\fH\\\\\\fHD\\fIm\\fHy\\fHT\\fHR\\fHD\\fHT\\fHB\\fH\\\\\\fIa\\fHI\\fHD\\fHj\\fHC\\fIg\\fHp\\fHS\\fHH\\fHT\\fIg\\fHB\\fHY\\fHR\\fH\\\\4K5h5i4X4K4]5o4K4F4K5h5i5j4F4C5f4K4F4K5h5o5i4D5f5d4F4]4K5h5i4X4K5k4C4K4F4U4C4C4K5h4^5d4K4]4U4C4C4K5h4]4C5d4C4K5h4I4_5h4K5i5f4E4K5h5m5d4F5d4X5d4D4K5h5i4_4K4D5n4K4F4K5h5i4U5h5d5i4K4F4K5h5i4_5h4_5h4K4F4K5h4@4]4K5m5f5o4_4K5h4K4_5h4K5i5f4E4K5h4K4F4Y4K5h4K4Fhfztlqgp!#`lmwfmw>!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\\t?,gju=\\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\\t\\x0E\\t?,algz=\\x0E\\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\\tt-bggFufmwOjpwfmfq<b`wjlm>!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\\t\\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f<W<_<\\\\=l=m<V<T\\t#wzsf>!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\\t?,p`qjsw=\\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\\x0E\\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\\x0E\\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\\t?,p`qjsw=\\x0E\\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\\x0E\\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\\t?,p`qjsw=\\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?\\\"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\\x0E\\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\\t?,gju=\\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\\t?,gju=\\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*<O<V=l<\\\\={<Q=m=`<V<\\\\=o<V=l<\\\\={<Q=m=`<V<\\\\<L<R=m=m<T<U=m<V<R<U<P<\\\\=n<Y=l<T<\\\\<W<R<^<T<Q=h<R=l<P<\\\\=j<T<T=o<S=l<\\\\<^<W<Y<Q<T=c<Q<Y<R<]=i<R<X<T<P<R<T<Q=h<R=l<P<\\\\=j<T=c<t<Q=h<R=l<P<\\\\=j<T=c<L<Y=m<S=o<]<W<T<V<T<V<R<W<T=k<Y=m=n<^<R<T<Q=h<R=l<P<\\\\=j<T=b=n<Y=l=l<T=n<R=l<T<T<X<R=m=n<\\\\=n<R=k<Q<R4K5h5i4F5d4K4@4C5d5j4K5h4K4X4F4]4K5o4K4F4K5h4K5n4F4]4K4A4K4Fkwno8#`kbqpfw>VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\\x0E\\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\\t?,gju=\\t?,gju=\\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\\t?lswjlm#ubov?\\\"GL@WZSF#kwno=\\t?\\\"..XJmwfqmbwjlmbo#Bjqslqw=\\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\\fTL\\fT^\\fTE\\fT^\\fUh\\fT{\\fTN\\roI\\ro|\\roL\\ro{\\roO\\rov\\rot\\nAO\\x05Gx\\bTA\\nzk#+\\x0BUm\\x05Gx*\\fHD\\fHS\\fH\\\\\\fIa\\fHJ\\fIk\\fHZ\\fHM\\fHR\\fHe\\fHD\\fH^\\fIg\\fHM\\fHy\\fIa\\fH[\\fIk\\fHH\\fIa\\fH\\\\\\fHp\\fHR\\fHD\\fHy\\fHR\\fH\\\\\\fIl\\fHT\\fHn\\fH@\\fHn\\fHK\\fHS\\fHH\\fHT\\fIa\\fHI\\fHR\\fHF\\fHD\\fHR\\fHT\\fIa\\fHY\\fIl\\fHy\\fHR\\fH\\\\\\fHT\\fHn\\fHT\\fIa\\fHy\\fH\\\\\\fHO\\fHT\\fHR\\fHB\\fH{\\fIa\\fH\\\\\\fIl\\fHv\\fHS\\fHs\\fIa\\fHL\\fIg\\fHn\\fHY\\fHS\\fHp\\fIa\\fHr\\fHR\\fHD\\fHi\\fHB\\fIk\\fH\\\\\\fHS\\fHy\\fHR\\fHY\\fHS\\fHA\\fHS\\fHD\\fIa\\fHD\\fH{\\fHR\\fHM\\fHS\\fHC\\fHR\\fHm\\fHy\\fIa\\fHC\\fIg\\fHn\\fHy\\fHS\\fHT\\fIm\\fH\\\\\\fHy\\fIa\\fH[\\fHR\\fHF\\fHU\\fIm\\fHm\\fHv\\fHH\\fIl\\fHF\\fIa\\fH\\\\\\fH@\\fHn\\fHK\\fHD\\fHs\\fHS\\fHF\\fIa\\fHF\\fHO\\fIl\\fHy\\fIa\\fH\\\\\\fHS\\fHy\\fIk\\fHs\\fHF\\fIa\\fH\\\\\\fHR\\fH\\\\\\fHn\\fHA\\fHF\\fIa\\fH\\\\\\fHR\\fHF\\fIa\\fHH\\fHB\\fHR\\fH^\\fHS\\fHy\\fIg\\fHn\\fH\\\\\\fHG\\fHP\\fIa\\fHH\\fHR\\fH\\\\\\fHD\\fHS\\fH\\\\\\fIa\\fHB\\fHR\\fHO\\fH^\\fHS\\fHB\\fHS\\fHs\\fIk\\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?\\\"GL@WZSF#kwno=\\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\\n\\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*<R=l<_<\\\\<Q<T<[<\\\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n=`<R<]=l<\\\\<[<R<^<\\\\<Q<T=c=l<Y<_<T=m=n=l<\\\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n<T<R<]=c<[<\\\\=n<Y<W=`<Q<\\\\?\\\"GL@WZSF#kwno#SVAOJ@#!mw.Wzsf!#`lmwfmw>!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\\t\\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=<X<Y=c=n<Y<W=`<Q<R=m=n<T=m<R<R=n<^<Y=n=m=n<^<T<T<S=l<R<T<[<^<R<X=m=n<^<\\\\<]<Y<[<R<S<\\\\=m<Q<R=m=n<T\\fHF\\fIm\\fHT\\fIa\\fHH\\fHS\\fHy\\fHR\\fHy\\fHR\\fHn\\fH{\\fIa\\fH\\\\\\fIk\\fHT\\fHe\\fHD\\fIa\\fHU\\fIg\\fHn\\fHD\\fIk\\fHY\\fHS\\fHK\\fHR\\fHD\\fHT\\fHA\\fHR\\fHG\\fHS\\fHy\\fIa\\fHT\\fHS\\fHn\\fH{\\fHT\\fIm\\fH\\\\\\fHy\\fIa\\fH[\\fHS\\fHH\\fHy\\fIe\\fHF\\fIl\\fH\\\\\\fHR\\fHk\\fHs\\fHY\\fHS\\fHp\\fIa\\fHr\\fHR\\fHF\\fHD\\fHy\\fHR\\fH\\\\\\fIa\\fH\\\\\\fHY\\fHR\\fHd\\fHT\\fHy\\fIa\\fH\\\\\\fHS\\fHC\\fHH\\fHR\", \"\\u06F7%\\u018C'T%\\x85'W%\\xD7%O%g%\\xA6&\\u0193%\\u01E5&>&*&'&^&\\x88\\u0178\\u0C3E&\\u01AD&\\u0192&)&^&%&'&\\x82&P&1&\\xB1&3&]&m&u&E&t&C&\\xCF&V&V&/&>&6&\\u0F76\\u177Co&p&@&E&M&P&x&@&F&e&\\xCC&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1\\u025E*\\u03EA\\u21F3&\\u1372&K&;&)&E&H&P&0&?&9&V&\\x81&-&v&a&,&E&)&?&=&'&'&B&\\u0D2E&\\u0503&\\u0316*&*8&%&%&&&%,)&\\x9A&>&\\x86&7&]&F&2&>&J&6&n&2&%&?&\\x8E&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%\\u053C\\x84(,(<&,&\\u03DA&\\u18C7&-&,(%&(&%&(\\u013B0&X&D&\\x81&j&'&J&(&.&B&3&Z&R&h&3&E&E&<\\xC6-\\u0360\\u1EF3&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&C\\u072C\\u2A25&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&\\u1E78\\xCC-&7&1&F&7&t&W&7&I&.&.&^&=\\u0F9C\\u19D3&8(>&/&/&\\u077B')'\\u1065')'%@/&0&%\\u043E\\u09C0*&*@&C\\u053D\\u05D4\\u0274\\u05EB4\\u0DD7\\u071A\\u04D16\\u0D84&/\\u0178\\u0303Z&*%\\u0246\\u03FF&\\u0134&1\\xA8\\u04B4\\u0174\", dictionarySizeBits, \"AAAAKKLLKKKKKJJIHHIHHGGFF\");\n  setData(dictionaryData, dictionarySizeBits);\n  function InputStream(data) {\n    this.data = new Int8Array(0);\n    this.offset = 0;\n    this.data = data;\n  }\n  function readInput(s, dst, offset, length) {\n    if (s.input === null) {\n      return -1;\n    }\n    const src = s.input;\n    const end = Math.min(src.offset + length, src.data.length);\n    const bytesRead = end - src.offset;\n    dst.set(src.data.subarray(src.offset, end), offset);\n    src.offset += bytesRead;\n    return bytesRead;\n  }\n  function closeInput(s) {\n    s.input = new InputStream(new Int8Array(0));\n  }\n  function toUsAsciiBytes(src) {\n    const n = src.length;\n    const result = new Int8Array(n);\n    for (let i = 0; i < n; ++i) {\n      result[i] = src.charCodeAt(i);\n    }\n    return result;\n  }\n  function toUtf8Runes(src) {\n    const n = src.length;\n    const result = new Int32Array(n);\n    for (let i = 0; i < n; ++i) {\n      result[i] = src.charCodeAt(i);\n    }\n    return result;\n  }\n  function makeError(s, code) {\n    if (code >= 0) {\n      return code;\n    }\n    if (s.runningState >= 0) {\n      s.runningState = code;\n    }\n    throw new Error(\"Brotli error code: \" + code);\n  }\n  let ByteBuffer;\n  function decode(bytes, options) {\n    let s = new State();\n    s.input = new InputStream(bytes);\n    initState(s);\n    if (options) {\n      let customDictionary = options[\"customDictionary\"];\n      if (customDictionary) attachDictionaryChunk(s, customDictionary);\n    }\n    let totalOutput = 0;\n    let chunks = [];\n    while (true) {\n      let chunk = new Int8Array(16384);\n      chunks.push(chunk);\n      s.output = chunk;\n      s.outputOffset = 0;\n      s.outputLength = 16384;\n      s.outputUsed = 0;\n      decompress(s);\n      totalOutput += s.outputUsed;\n      if (s.outputUsed < 16384) break;\n    }\n    close(s);\n    closeInput(s);\n    let result = new Int8Array(totalOutput);\n    let offset = 0;\n    for (let i = 0; i < chunks.length; ++i) {\n      let chunk = chunks[i];\n      let end = Math.min(totalOutput, offset + 16384);\n      let len = end - offset;\n      if (len < 16384) {\n        result.set(chunk.subarray(0, len), offset);\n      } else {\n        result.set(chunk, offset);\n      }\n      offset += len;\n    }\n    return result;\n  }\n  return decode;\n};\nlet BrotliDecode = makeBrotliDecode();\n;// ./src/core/brotli_stream.js\n\n\n\n\n\n\n\n\nclass BrotliStream extends DecodeStream {\n  #isAsync = true;\n  constructor(stream, maybeLength) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n  }\n  readBlock() {\n    const bytes = this.stream.getBytes();\n    const decodedData = BrotliDecode(new Int8Array(bytes.buffer, bytes.byteOffset, bytes.length));\n    this.buffer = new Uint8Array(decodedData.buffer, decodedData.byteOffset, decodedData.length);\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  }\n  async getImageData(length, _decoderOptions) {\n    const data = await this.asyncGetBytes();\n    if (!data) {\n      return this.getBytes(length);\n    }\n    if (data.length <= length) {\n      return data;\n    }\n    return data.subarray(0, length);\n  }\n  async asyncGetBytes() {\n    const {\n      decompressed,\n      compressed\n    } = await this.asyncGetBytesFromDecompressionStream(\"brotli\");\n    if (decompressed) {\n      return decompressed;\n    }\n    this.#isAsync = false;\n    this.stream = new Stream(compressed, 0, compressed.length, this.stream.dict);\n    this.reset();\n    return null;\n  }\n  get isAsync() {\n    return this.#isAsync;\n  }\n}\n\n;// ./external/jbig2/jbig2.js\n\n\n\n\n\n\nasync function JBig2(moduleArg = {}) {\n  var moduleRtn;\n  var Module = moduleArg;\n  var ENVIRONMENT_IS_WEB = true;\n  var ENVIRONMENT_IS_WORKER = false;\n  var arguments_ = [];\n  var thisProgram = \"./this.program\";\n  var quit_ = (status, toThrow) => {\n    throw toThrow;\n  };\n  var _scriptName = import.meta.url;\n  var scriptDirectory = \"\";\n  var readAsync, readBinary;\n  if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n    try {\n      scriptDirectory = new URL(\".\", _scriptName).href;\n    } catch {}\n    readAsync = async url => {\n      var response = await fetch(url, {\n        credentials: \"same-origin\"\n      });\n      if (response.ok) {\n        return response.arrayBuffer();\n      }\n      throw new Error(response.status + \" : \" + response.url);\n    };\n  } else {}\n  var out = console.log.bind(console);\n  var err = console.error.bind(console);\n  var wasmBinary;\n  var ABORT = false;\n  var EXITSTATUS;\n  var readyPromiseResolve, readyPromiseReject;\n  var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n  var HEAP64, HEAPU64;\n  var runtimeInitialized = false;\n  function updateMemoryViews() {\n    var b = wasmMemory.buffer;\n    HEAP8 = new Int8Array(b);\n    HEAP16 = new Int16Array(b);\n    HEAPU8 = new Uint8Array(b);\n    HEAPU16 = new Uint16Array(b);\n    HEAP32 = new Int32Array(b);\n    HEAPU32 = new Uint32Array(b);\n    HEAPF32 = new Float32Array(b);\n    HEAPF64 = new Float64Array(b);\n    HEAP64 = new BigInt64Array(b);\n    HEAPU64 = new BigUint64Array(b);\n  }\n  function preRun() {\n    if (Module[\"preRun\"]) {\n      if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [Module[\"preRun\"]];\n      while (Module[\"preRun\"].length) {\n        addOnPreRun(Module[\"preRun\"].shift());\n      }\n    }\n    callRuntimeCallbacks(onPreRuns);\n  }\n  function initRuntime() {\n    runtimeInitialized = true;\n    wasmExports[\"j\"]();\n  }\n  function postRun() {\n    if (Module[\"postRun\"]) {\n      if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [Module[\"postRun\"]];\n      while (Module[\"postRun\"].length) {\n        addOnPostRun(Module[\"postRun\"].shift());\n      }\n    }\n    callRuntimeCallbacks(onPostRuns);\n  }\n  function abort(what) {\n    Module[\"onAbort\"]?.(what);\n    what = \"Aborted(\" + what + \")\";\n    err(what);\n    ABORT = true;\n    what += \". Build with -sASSERTIONS for more info.\";\n    var e = new WebAssembly.RuntimeError(what);\n    readyPromiseReject?.(e);\n    throw e;\n  }\n  var wasmBinaryFile;\n  function getWasmImports() {\n    var imports = {\n      a: wasmImports\n    };\n    return imports;\n  }\n  async function createWasm() {\n    function receiveInstance(instance, module) {\n      wasmExports = instance.exports;\n      assignWasmExports(wasmExports);\n      updateMemoryViews();\n      return wasmExports;\n    }\n    var info = getWasmImports();\n    return new Promise((resolve, reject) => {\n      Module[\"instantiateWasm\"](info, (inst, mod) => {\n        resolve(receiveInstance(inst, mod));\n      });\n    });\n  }\n  class ExitStatus {\n    name = \"ExitStatus\";\n    constructor(status) {\n      this.message = `Program terminated with exit(${status})`;\n      this.status = status;\n    }\n  }\n  var callRuntimeCallbacks = callbacks => {\n    while (callbacks.length > 0) {\n      callbacks.shift()(Module);\n    }\n  };\n  var onPostRuns = [];\n  var addOnPostRun = cb => onPostRuns.push(cb);\n  var onPreRuns = [];\n  var addOnPreRun = cb => onPreRuns.push(cb);\n  var noExitRuntime = true;\n  var __abort_js = () => abort(\"\");\n  var runtimeKeepaliveCounter = 0;\n  var __emscripten_runtime_keepalive_clear = () => {\n    noExitRuntime = false;\n    runtimeKeepaliveCounter = 0;\n  };\n  var timers = {};\n  var handleException = e => {\n    if (e instanceof ExitStatus || e == \"unwind\") {\n      return EXITSTATUS;\n    }\n    quit_(1, e);\n  };\n  var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;\n  var _proc_exit = code => {\n    EXITSTATUS = code;\n    if (!keepRuntimeAlive()) {\n      Module[\"onExit\"]?.(code);\n      ABORT = true;\n    }\n    quit_(code, new ExitStatus(code));\n  };\n  var exitJS = (status, implicit) => {\n    EXITSTATUS = status;\n    _proc_exit(status);\n  };\n  var _exit = exitJS;\n  var maybeExit = () => {\n    if (!keepRuntimeAlive()) {\n      try {\n        _exit(EXITSTATUS);\n      } catch (e) {\n        handleException(e);\n      }\n    }\n  };\n  var callUserCallback = func => {\n    if (ABORT) {\n      return;\n    }\n    try {\n      return func();\n    } catch (e) {\n      handleException(e);\n    } finally {\n      maybeExit();\n    }\n  };\n  var _emscripten_get_now = () => performance.now();\n  var __setitimer_js = (which, timeout_ms) => {\n    if (timers[which]) {\n      clearTimeout(timers[which].id);\n      delete timers[which];\n    }\n    if (!timeout_ms) return 0;\n    var id = setTimeout(() => {\n      delete timers[which];\n      callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));\n    }, timeout_ms);\n    timers[which] = {\n      id,\n      timeout_ms\n    };\n    return 0;\n  };\n  function _createImageData(size) {\n    Module.imageData = new Uint8Array(size);\n  }\n  var getHeapMax = () => 2147483648;\n  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;\n  var growMemory = size => {\n    var oldHeapSize = wasmMemory.buffer.byteLength;\n    var pages = (size - oldHeapSize + 65535) / 65536 | 0;\n    try {\n      wasmMemory.grow(pages);\n      updateMemoryViews();\n      return 1;\n    } catch (e) {}\n  };\n  var _emscripten_resize_heap = requestedSize => {\n    var oldSize = HEAPU8.length;\n    requestedSize >>>= 0;\n    var maxHeapSize = getHeapMax();\n    if (requestedSize > maxHeapSize) {\n      return false;\n    }\n    for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n      var overGrownHeapSize = oldSize * (1 + .2 / cutDown);\n      overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n      var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));\n      var replacement = growMemory(newSize);\n      if (replacement) {\n        return true;\n      }\n    }\n    return false;\n  };\n  function _setImageData(array_ptr, pitch8, pitch32, height) {\n    if (pitch32 === pitch8) {\n      Module.imageData = new Uint8ClampedArray(HEAPU8.subarray(array_ptr, array_ptr + pitch32 * height));\n      return;\n    }\n    const destSize = pitch8 * height;\n    const imageData = Module.imageData = new Uint8ClampedArray(destSize);\n    for (let srcStart = array_ptr, destStart = 0; destStart < destSize; srcStart += pitch32, destStart += pitch8) {\n      imageData.set(HEAPU8.subarray(srcStart, srcStart + pitch8), destStart);\n    }\n  }\n  function _setLineData(line_ptr, pitch8, offset) {\n    Module.imageData.set(HEAPU8.subarray(line_ptr, line_ptr + pitch8), offset);\n  }\n  var writeArrayToMemory = (array, buffer) => {\n    HEAP8.set(array, buffer);\n  };\n  if (Module[\"noExitRuntime\"]) noExitRuntime = Module[\"noExitRuntime\"];\n  if (Module[\"print\"]) out = Module[\"print\"];\n  if (Module[\"printErr\"]) err = Module[\"printErr\"];\n  if (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n  if (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n  if (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n  if (Module[\"preInit\"]) {\n    if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [Module[\"preInit\"]];\n    while (Module[\"preInit\"].length > 0) {\n      Module[\"preInit\"].shift()();\n    }\n  }\n  Module[\"writeArrayToMemory\"] = writeArrayToMemory;\n  var _malloc, _free, _jbig2_decode, _ccitt_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;\n  function assignWasmExports(wasmExports) {\n    _malloc = Module[\"_malloc\"] = wasmExports[\"k\"];\n    _free = Module[\"_free\"] = wasmExports[\"l\"];\n    _jbig2_decode = Module[\"_jbig2_decode\"] = wasmExports[\"m\"];\n    _ccitt_decode = Module[\"_ccitt_decode\"] = wasmExports[\"n\"];\n    __emscripten_timeout = wasmExports[\"o\"];\n    memory = wasmMemory = wasmExports[\"i\"];\n    __indirect_function_table = wasmExports[\"__indirect_function_table\"];\n  }\n  var wasmImports = {\n    e: __abort_js,\n    b: __emscripten_runtime_keepalive_clear,\n    c: __setitimer_js,\n    g: _createImageData,\n    d: _emscripten_resize_heap,\n    a: _proc_exit,\n    h: _setImageData,\n    f: _setLineData\n  };\n  function run() {\n    preRun();\n    function doRun() {\n      Module[\"calledRun\"] = true;\n      if (ABORT) return;\n      initRuntime();\n      readyPromiseResolve?.(Module);\n      Module[\"onRuntimeInitialized\"]?.();\n      postRun();\n    }\n    if (Module[\"setStatus\"]) {\n      Module[\"setStatus\"](\"Running...\");\n      setTimeout(() => {\n        setTimeout(() => Module[\"setStatus\"](\"\"), 1);\n        doRun();\n      }, 1);\n    } else {\n      doRun();\n    }\n  }\n  var wasmExports;\n  wasmExports = await createWasm();\n  run();\n  if (runtimeInitialized) {\n    moduleRtn = Module;\n  } else {\n    moduleRtn = new Promise((resolve, reject) => {\n      readyPromiseResolve = resolve;\n      readyPromiseReject = reject;\n    });\n  }\n  return moduleRtn;\n}\n/* harmony default export */ const jbig2 = (JBig2);\n;// ./src/core/wasm_image.js\n\n\n\n\n\n\n\n\n\n\n\nclass WasmImage {\n  static #handler = null;\n  static #instances = new Set();\n  static #useWasm = true;\n  static #useWorkerFetch = true;\n  static #wasmUrl = null;\n  #buffer = null;\n  #modulePromise = null;\n  _filename = null;\n  _noWasmFilename = null;\n  static setOptions({\n    handler,\n    useWasm,\n    useWorkerFetch,\n    wasmUrl\n  }) {\n    WasmImage.#useWasm = useWasm;\n    WasmImage.#useWorkerFetch = useWorkerFetch;\n    WasmImage.#wasmUrl = wasmUrl;\n    if (!useWorkerFetch) {\n      WasmImage.#handler = handler;\n    }\n  }\n  static get instance() {\n    unreachable(\"Abstract getter `instance` accessed\");\n  }\n  static cleanup() {\n    for (const instance of WasmImage.#instances) {\n      instance.#modulePromise = null;\n    }\n  }\n  constructor(trackInstance = false) {\n    if (trackInstance) {\n      WasmImage.#instances.add(this);\n    }\n  }\n  async #getJsModule(fallbackCallback) {\n    let instance = null;\n    try {\n      const mod = await import(\n      /*webpackIgnore: true*/\n      /*@vite-ignore*/\n      `${WasmImage.#wasmUrl}${this._noWasmFilename}`);\n      instance = mod.default();\n    } catch (ex) {\n      warn(`#getJsModule: ${ex}`);\n    }\n    fallbackCallback(instance);\n  }\n  async #instantiateWasm(fallbackCallback, imports, successCallback) {\n    try {\n      if (!this.#buffer) {\n        if (WasmImage.#useWorkerFetch) {\n          this.#buffer = await fetchBinaryData(`${WasmImage.#wasmUrl}${this._filename}`);\n        } else {\n          this.#buffer = await WasmImage.#handler.sendWithPromise(\"FetchBinaryData\", {\n            kind: \"wasmUrl\",\n            filename: this._filename\n          });\n        }\n      }\n      const results = await WebAssembly.instantiate(this.#buffer, imports);\n      return successCallback(results.instance);\n    } catch (ex) {\n      warn(`#instantiateWasm: ${ex}`);\n      this.#getJsModule(fallbackCallback);\n      return null;\n    }\n  }\n  _getModule(ImageDecoder) {\n    if (!this.#modulePromise) {\n      const {\n        promise,\n        resolve\n      } = Promise.withResolvers();\n      const promises = [promise];\n      if (!WasmImage.#useWasm) {\n        this.#getJsModule(resolve);\n      } else {\n        promises.push(ImageDecoder({\n          warn: warn,\n          instantiateWasm: this.#instantiateWasm.bind(this, resolve)\n        }));\n      }\n      this.#modulePromise = Promise.race(promises);\n    }\n    return this.#modulePromise;\n  }\n  async decode(bytes, _params) {\n    unreachable(\"Abstract method `decode` called\");\n  }\n}\n\n;// ./src/core/jbig2_ccittFax.js\n\n\n\nclass Jbig2Error extends BaseException {\n  constructor(msg) {\n    super(msg, \"Jbig2Error\");\n  }\n}\nclass JBig2CCITTFaxImage extends WasmImage {\n  _filename = \"jbig2.wasm\";\n  _noWasmFilename = \"jbig2_nowasm_fallback.js\";\n  static get instance() {\n    return shadow(this, \"instance\", new JBig2CCITTFaxImage(true));\n  }\n  async decode(bytes, width, height, globals, CCITTOptions) {\n    const module = await this._getModule(jbig2);\n    if (!module) {\n      throw new Jbig2Error(\"JBig2 failed to initialize\");\n    }\n    let ptr, globalsPtr;\n    try {\n      const size = bytes.length;\n      ptr = module._malloc(size);\n      module.writeArrayToMemory(bytes, ptr);\n      if (CCITTOptions) {\n        module._ccitt_decode(ptr, size, width, height, CCITTOptions.K, CCITTOptions.EndOfLine ? 1 : 0, CCITTOptions.EncodedByteAlign ? 1 : 0, CCITTOptions.BlackIs1 ? 1 : 0, CCITTOptions.Columns, CCITTOptions.Rows);\n      } else {\n        const globalsSize = globals ? globals.length : 0;\n        if (globalsSize > 0) {\n          globalsPtr = module._malloc(globalsSize);\n          module.writeArrayToMemory(globals, globalsPtr);\n        }\n        module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);\n      }\n      if (!module.imageData) {\n        throw new Jbig2Error(\"Unknown error\");\n      }\n      const {\n        imageData\n      } = module;\n      module.imageData = null;\n      return imageData;\n    } finally {\n      if (ptr) {\n        module._free(ptr);\n      }\n      if (globalsPtr) {\n        module._free(globalsPtr);\n      }\n    }\n  }\n}\n\n;// ./src/core/ccitt_stream.js\n\n\n\n\nclass CCITTFaxStream extends DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n    this.stream = str;\n    this.maybeLength = maybeLength;\n    this.dict = str.dict;\n    if (!(params instanceof Dict)) {\n      params = Dict.empty;\n    }\n    this.params = {\n      K: params.get(\"K\") || 0,\n      EndOfLine: !!params.get(\"EndOfLine\"),\n      EncodedByteAlign: !!params.get(\"EncodedByteAlign\"),\n      Columns: params.get(\"Columns\") || 1728,\n      Rows: params.get(\"Rows\") || 0,\n      EndOfBlock: !!(params.get(\"EndOfBlock\") ?? true),\n      BlackIs1: !!params.get(\"BlackIs1\")\n    };\n  }\n  get bytes() {\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n  get isImageStream() {\n    return true;\n  }\n  get isAsyncDecoder() {\n    return true;\n  }\n  async decodeImage(bytes, length, _decoderOptions) {\n    if (this.eof) {\n      return this.buffer;\n    }\n    if (!bytes) {\n      bytes = this.stream.isAsync ? (await this.stream.asyncGetBytes()) || this.bytes : this.bytes;\n    }\n    this.buffer = await JBig2CCITTFaxImage.instance.decode(bytes, this.dict.get(\"W\", \"Width\"), this.dict.get(\"H\", \"Height\"), null, this.params);\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n    return this.buffer;\n  }\n}\n\n;// ./src/core/flate_stream.js\n\n\n\n\n\n\n\n\nconst codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nconst lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\nconst distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\nconst fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\nconst fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\nclass FlateStream extends DecodeStream {\n  #isAsync = true;\n  constructor(str, maybeLength) {\n    super(maybeLength);\n    this.stream = str;\n    this.dict = str.dict;\n    const cmf = str.getByte();\n    const flg = str.getByte();\n    if (cmf === -1 || flg === -1) {\n      throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n    }\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);\n    }\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n    }\n    if (flg & 0x20) {\n      throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n    }\n    this.codeSize = 0;\n    this.codeBuf = 0;\n  }\n  async getImageData(length, _decoderOptions) {\n    const data = await this.asyncGetBytes();\n    if (!data) {\n      return this.getBytes(length);\n    }\n    if (data.length <= length) {\n      return data;\n    }\n    return data.subarray(0, length);\n  }\n  async asyncGetBytes() {\n    const {\n      decompressed,\n      compressed\n    } = await this.asyncGetBytesFromDecompressionStream(\"deflate\");\n    if (decompressed) {\n      return decompressed;\n    }\n    this.#isAsync = false;\n    this.stream = new Stream(compressed, 2, compressed.length, this.stream.dict);\n    this.reset();\n    return null;\n  }\n  get isAsync() {\n    return this.#isAsync;\n  }\n  getBits(bits) {\n    const str = this.stream;\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n    let b;\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad encoding in flate stream\");\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    b = codeBuf & (1 << bits) - 1;\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n    return b;\n  }\n  getCode(table) {\n    const str = this.stream;\n    const codes = table[0];\n    const maxLen = table[1];\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n    let b;\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        break;\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    const code = codes[codeBuf & (1 << maxLen) - 1];\n    const codeLen = code >> 16;\n    const codeVal = code & 0xffff;\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new FormatError(\"Bad encoding in flate stream\");\n    }\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  }\n  generateHuffmanTable(lengths) {\n    const n = lengths.length;\n    let maxLen = 0;\n    let i;\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n    const size = 1 << maxLen;\n    const codes = new Int32Array(size);\n    for (let len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n      for (let val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          let code2 = 0;\n          let t = code;\n          for (i = 0; i < len; ++i) {\n            code2 = code2 << 1 | t & 1;\n            t >>= 1;\n          }\n          for (i = code2; i < size; i += skip) {\n            codes[i] = len << 16 | val;\n          }\n          ++code;\n        }\n      }\n    }\n    return [codes, maxLen];\n  }\n  #endsStreamOnError(err) {\n    info(err);\n    this.eof = true;\n  }\n  readBlock() {\n    let buffer, hdr, len;\n    const str = this.stream;\n    try {\n      hdr = this.getBits(3);\n    } catch (ex) {\n      this.#endsStreamOnError(ex.message);\n      return;\n    }\n    if (hdr & 1) {\n      this.eof = true;\n    }\n    hdr >>= 1;\n    if (hdr === 0) {\n      let b;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      let blockLen = b;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      blockLen |= b << 8;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      let check = b;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      check |= b << 8;\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        throw new FormatError(\"Bad uncompressed block length in flate stream\");\n      }\n      this.codeBuf = 0;\n      this.codeSize = 0;\n      const bufferLength = this.bufferLength,\n        end = bufferLength + blockLen;\n      buffer = this.ensureBuffer(end);\n      this.bufferLength = end;\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        const block = str.getBytes(blockLen);\n        buffer.set(block, bufferLength);\n        if (block.length < blockLen) {\n          this.eof = true;\n        }\n      }\n      return;\n    }\n    let litCodeTable;\n    let distCodeTable;\n    if (hdr === 1) {\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      const numLitCodes = this.getBits(5) + 257;\n      const numDistCodes = this.getBits(5) + 1;\n      const numCodeLenCodes = this.getBits(4) + 4;\n      const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n      let i;\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n      const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n      len = 0;\n      i = 0;\n      const codes = numLitCodes + numDistCodes;\n      const codeLengths = new Uint8Array(codes);\n      let bitsLength, bitsOffset, what;\n      while (i < codes) {\n        const code = this.getCode(codeLenCodeTab);\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n        let repeatLength = this.getBits(bitsLength) + bitsOffset;\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n      litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n      distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n    } else {\n      throw new FormatError(\"Unknown block type in flate stream\");\n    }\n    buffer = this.buffer;\n    let limit = buffer ? buffer.length : 0;\n    let pos = this.bufferLength;\n    while (true) {\n      let code1 = this.getCode(litCodeTable);\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n        buffer[pos++] = code1;\n        continue;\n      }\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      let code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      const dist = (code1 & 0xffff) + code2;\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n      for (let k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  }\n}\n\n;// ./src/core/jbig2_stream.js\n\n\n\n\n\nclass Jbig2Stream extends DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n  get bytes() {\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n  ensureBuffer(requested) {}\n  get isAsyncDecoder() {\n    return true;\n  }\n  get isImageStream() {\n    return true;\n  }\n  static stripFileHeader(bytes) {\n    if (bytes.length >= 9 && bytes[0] === 0x97 && bytes[1] === 0x4a && bytes[2] === 0x42 && bytes[3] === 0x32 && bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a) {\n      const headerLength = (bytes[8] & 2) === 0 ? 13 : 9;\n      return bytes.subarray(headerLength);\n    }\n    return bytes;\n  }\n  async decodeImage(bytes, length, _decoderOptions) {\n    if (this.eof) {\n      return this.buffer;\n    }\n    bytes = Jbig2Stream.stripFileHeader(bytes || this.bytes);\n    let globals = null;\n    if (this.params instanceof Dict) {\n      const globalsStream = this.params.get(\"JBIG2Globals\");\n      if (globalsStream instanceof BaseStream) {\n        globals = Jbig2Stream.stripFileHeader(globalsStream.getBytes());\n      }\n    }\n    this.buffer = await JBig2CCITTFaxImage.instance.decode(bytes, this.dict.get(\"Width\"), this.dict.get(\"Height\"), globals);\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n    return this.buffer;\n  }\n  get canAsyncDecodeImageFromBuffer() {\n    return this.stream.isAsync;\n  }\n}\n\n;// ./external/openjpeg/openjpeg.js\n\n\n\n\n\n\nasync function OpenJPEG(moduleArg = {}) {\n  var moduleRtn;\n  var Module = moduleArg;\n  var ENVIRONMENT_IS_WEB = true;\n  var ENVIRONMENT_IS_WORKER = false;\n  var arguments_ = [];\n  var thisProgram = \"./this.program\";\n  var quit_ = (status, toThrow) => {\n    throw toThrow;\n  };\n  var _scriptName = import.meta.url;\n  var scriptDirectory = \"\";\n  var readAsync, readBinary;\n  if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n    try {\n      scriptDirectory = new URL(\".\", _scriptName).href;\n    } catch {}\n    readAsync = async url => {\n      var response = await fetch(url, {\n        credentials: \"same-origin\"\n      });\n      if (response.ok) {\n        return response.arrayBuffer();\n      }\n      throw new Error(response.status + \" : \" + response.url);\n    };\n  } else {}\n  var out = console.log.bind(console);\n  var err = console.error.bind(console);\n  var wasmBinary;\n  var ABORT = false;\n  var EXITSTATUS;\n  class EmscriptenEH {}\n  class EmscriptenSjLj extends EmscriptenEH {}\n  var readyPromiseResolve, readyPromiseReject;\n  var runtimeInitialized = false;\n  function updateMemoryViews() {\n    var b = wasmMemory.buffer;\n    HEAP8 = new Int8Array(b);\n    HEAP16 = new Int16Array(b);\n    HEAPU8 = new Uint8Array(b);\n    HEAPU16 = new Uint16Array(b);\n    HEAP32 = new Int32Array(b);\n    HEAPU32 = new Uint32Array(b);\n    HEAPF32 = new Float32Array(b);\n    HEAPF64 = new Float64Array(b);\n    HEAP64 = new BigInt64Array(b);\n    HEAPU64 = new BigUint64Array(b);\n  }\n  function preRun() {\n    if (Module[\"preRun\"]) {\n      if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [Module[\"preRun\"]];\n      while (Module[\"preRun\"].length) {\n        addOnPreRun(Module[\"preRun\"].shift());\n      }\n    }\n    callRuntimeCallbacks(onPreRuns);\n  }\n  function initRuntime() {\n    runtimeInitialized = true;\n    wasmExports[\"s\"]();\n  }\n  function postRun() {\n    if (Module[\"postRun\"]) {\n      if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [Module[\"postRun\"]];\n      while (Module[\"postRun\"].length) {\n        addOnPostRun(Module[\"postRun\"].shift());\n      }\n    }\n    callRuntimeCallbacks(onPostRuns);\n  }\n  function abort(what) {\n    Module[\"onAbort\"]?.(what);\n    what = `Aborted(${what})`;\n    err(what);\n    ABORT = true;\n    what += \". Build with -sASSERTIONS for more info.\";\n    var e = new WebAssembly.RuntimeError(what);\n    readyPromiseReject?.(e);\n    throw e;\n  }\n  var wasmBinaryFile;\n  function getWasmImports() {\n    var imports = {\n      a: wasmImports\n    };\n    return imports;\n  }\n  async function createWasm() {\n    function receiveInstance(instance, module) {\n      wasmExports = instance.exports;\n      assignWasmExports(wasmExports);\n      updateMemoryViews();\n      return wasmExports;\n    }\n    var info = getWasmImports();\n    return new Promise((resolve, reject) => {\n      Module[\"instantiateWasm\"](info, (inst, mod) => {\n        resolve(receiveInstance(inst, mod));\n      });\n    });\n  }\n  class ExitStatus {\n    name = \"ExitStatus\";\n    constructor(status) {\n      this.message = `Program terminated with exit(${status})`;\n      this.status = status;\n    }\n  }\n  var HEAP16;\n  var HEAP32;\n  var HEAP64;\n  var HEAP8;\n  var HEAPF32;\n  var HEAPF64;\n  var HEAPU16;\n  var HEAPU32;\n  var HEAPU64;\n  var HEAPU8;\n  var callRuntimeCallbacks = callbacks => {\n    while (callbacks.length > 0) {\n      callbacks.shift()(Module);\n    }\n  };\n  var onPostRuns = [];\n  var addOnPostRun = cb => onPostRuns.push(cb);\n  var onPreRuns = [];\n  var addOnPreRun = cb => onPreRuns.push(cb);\n  var noExitRuntime = true;\n  var __abort_js = () => abort(\"\");\n  var runtimeKeepaliveCounter = 0;\n  var __emscripten_runtime_keepalive_clear = () => {\n    noExitRuntime = false;\n    runtimeKeepaliveCounter = 0;\n  };\n  var timers = {};\n  var handleException = e => {\n    if (e instanceof ExitStatus || e == \"unwind\") {\n      return EXITSTATUS;\n    }\n    quit_(1, e);\n  };\n  var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;\n  var _proc_exit = code => {\n    EXITSTATUS = code;\n    if (!keepRuntimeAlive()) {\n      Module[\"onExit\"]?.(code);\n      ABORT = true;\n    }\n    quit_(code, new ExitStatus(code));\n  };\n  var exitJS = (status, implicit) => {\n    EXITSTATUS = status;\n    _proc_exit(status);\n  };\n  var _exit = exitJS;\n  var maybeExit = () => {\n    if (!keepRuntimeAlive()) {\n      try {\n        _exit(EXITSTATUS);\n      } catch (e) {\n        handleException(e);\n      }\n    }\n  };\n  var callUserCallback = func => {\n    if (ABORT) {\n      return;\n    }\n    try {\n      return func();\n    } catch (e) {\n      handleException(e);\n    } finally {\n      maybeExit();\n    }\n  };\n  var _emscripten_get_now = () => performance.now();\n  var __setitimer_js = (which, timeout_ms) => {\n    if (timers[which]) {\n      clearTimeout(timers[which].id);\n      delete timers[which];\n    }\n    if (!timeout_ms) return 0;\n    var id = setTimeout(() => {\n      delete timers[which];\n      callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));\n    }, timeout_ms);\n    timers[which] = {\n      id,\n      timeout_ms\n    };\n    return 0;\n  };\n  function _copy_pixels_1(compG_ptr, nb_pixels) {\n    compG_ptr >>= 2;\n    const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels);\n    const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);\n    imageData.set(compG);\n  }\n  function _copy_pixels_3(compR_ptr, compG_ptr, compB_ptr, nb_pixels) {\n    compR_ptr >>= 2;\n    compG_ptr >>= 2;\n    compB_ptr >>= 2;\n    const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 3);\n    const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);\n    const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);\n    const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);\n    for (let i = 0; i < nb_pixels; i++) {\n      imageData[3 * i] = compR[i];\n      imageData[3 * i + 1] = compG[i];\n      imageData[3 * i + 2] = compB[i];\n    }\n  }\n  function _copy_pixels_4(compR_ptr, compG_ptr, compB_ptr, compA_ptr, nb_pixels) {\n    compR_ptr >>= 2;\n    compG_ptr >>= 2;\n    compB_ptr >>= 2;\n    compA_ptr >>= 2;\n    const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);\n    const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);\n    const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);\n    const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);\n    const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels);\n    for (let i = 0; i < nb_pixels; i++) {\n      imageData[4 * i] = compR[i];\n      imageData[4 * i + 1] = compG[i];\n      imageData[4 * i + 2] = compB[i];\n      imageData[4 * i + 3] = compA[i];\n    }\n  }\n  var getHeapMax = () => 2147483648;\n  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;\n  var growMemory = size => {\n    var oldHeapSize = wasmMemory.buffer.byteLength;\n    var pages = (size - oldHeapSize + 65535) / 65536 | 0;\n    try {\n      wasmMemory.grow(pages);\n      updateMemoryViews();\n      return 1;\n    } catch (e) {}\n  };\n  var _emscripten_resize_heap = requestedSize => {\n    var oldSize = HEAPU8.length;\n    requestedSize >>>= 0;\n    var maxHeapSize = getHeapMax();\n    if (requestedSize > maxHeapSize) {\n      return false;\n    }\n    for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n      var overGrownHeapSize = oldSize * (1 + .2 / cutDown);\n      overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n      var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));\n      var replacement = growMemory(newSize);\n      if (replacement) {\n        return true;\n      }\n    }\n    return false;\n  };\n  var ENV = {};\n  var getExecutableName = () => thisProgram || \"./this.program\";\n  var getEnvStrings = () => {\n    if (!getEnvStrings.strings) {\n      var lang = (globalThis.navigator?.language ?? \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n      var env = {\n        USER: \"web_user\",\n        LOGNAME: \"web_user\",\n        PATH: \"/\",\n        PWD: \"/\",\n        HOME: \"/home/web_user\",\n        LANG: lang,\n        _: getExecutableName()\n      };\n      for (var x in ENV) {\n        if (ENV[x] === undefined) delete env[x];else env[x] = ENV[x];\n      }\n      var strings = [];\n      for (var x in env) {\n        strings.push(`${x}=${env[x]}`);\n      }\n      getEnvStrings.strings = strings;\n    }\n    return getEnvStrings.strings;\n  };\n  var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {\n    if (!(maxBytesToWrite > 0)) return 0;\n    var startIdx = outIdx;\n    var endIdx = outIdx + maxBytesToWrite - 1;\n    for (var i = 0; i < str.length; ++i) {\n      var u = str.codePointAt(i);\n      if (u <= 127) {\n        if (outIdx >= endIdx) break;\n        heap[outIdx++] = u;\n      } else if (u <= 2047) {\n        if (outIdx + 1 >= endIdx) break;\n        heap[outIdx++] = 192 | u >> 6;\n        heap[outIdx++] = 128 | u & 63;\n      } else if (u <= 65535) {\n        if (outIdx + 2 >= endIdx) break;\n        heap[outIdx++] = 224 | u >> 12;\n        heap[outIdx++] = 128 | u >> 6 & 63;\n        heap[outIdx++] = 128 | u & 63;\n      } else {\n        if (outIdx + 3 >= endIdx) break;\n        heap[outIdx++] = 240 | u >> 18;\n        heap[outIdx++] = 128 | u >> 12 & 63;\n        heap[outIdx++] = 128 | u >> 6 & 63;\n        heap[outIdx++] = 128 | u & 63;\n        i++;\n      }\n    }\n    heap[outIdx] = 0;\n    return outIdx - startIdx;\n  };\n  var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n  var _environ_get = (__environ, environ_buf) => {\n    var bufSize = 0;\n    var envp = 0;\n    for (var string of getEnvStrings()) {\n      var ptr = environ_buf + bufSize;\n      HEAPU32[__environ + envp >> 2] = ptr;\n      bufSize += stringToUTF8(string, ptr, Infinity) + 1;\n      envp += 4;\n    }\n    return 0;\n  };\n  var lengthBytesUTF8 = str => {\n    var len = 0;\n    for (var i = 0; i < str.length; ++i) {\n      var c = str.charCodeAt(i);\n      if (c <= 127) {\n        len++;\n      } else if (c <= 2047) {\n        len += 2;\n      } else if (c >= 55296 && c <= 57343) {\n        len += 4;\n        ++i;\n      } else {\n        len += 3;\n      }\n    }\n    return len;\n  };\n  var _environ_sizes_get = (penviron_count, penviron_buf_size) => {\n    var strings = getEnvStrings();\n    HEAPU32[penviron_count >> 2] = strings.length;\n    var bufSize = 0;\n    for (var string of strings) {\n      bufSize += lengthBytesUTF8(string) + 1;\n    }\n    HEAPU32[penviron_buf_size >> 2] = bufSize;\n    return 0;\n  };\n  var INT53_MAX = 9007199254740992;\n  var INT53_MIN = -9007199254740992;\n  var bigintToI53Checked = num => num < INT53_MIN || num > INT53_MAX ? NaN : Number(num);\n  function _fd_seek(fd, offset, whence, newOffset) {\n    offset = bigintToI53Checked(offset);\n    return 70;\n  }\n  var printCharBuffers = [null, [], []];\n  var UTF8Decoder = globalThis.TextDecoder && new TextDecoder();\n  var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {\n    var maxIdx = idx + maxBytesToRead;\n    if (ignoreNul) return maxIdx;\n    while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx;\n    return idx;\n  };\n  var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => {\n    var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul);\n    if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n      return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n    }\n    var str = \"\";\n    while (idx < endPtr) {\n      var u0 = heapOrArray[idx++];\n      if (!(u0 & 128)) {\n        str += String.fromCharCode(u0);\n        continue;\n      }\n      var u1 = heapOrArray[idx++] & 63;\n      if ((u0 & 224) == 192) {\n        str += String.fromCharCode((u0 & 31) << 6 | u1);\n        continue;\n      }\n      var u2 = heapOrArray[idx++] & 63;\n      if ((u0 & 240) == 224) {\n        u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n      } else {\n        u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n      }\n      if (u0 < 65536) {\n        str += String.fromCharCode(u0);\n      } else {\n        var ch = u0 - 65536;\n        str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n      }\n    }\n    return str;\n  };\n  var printChar = (stream, curr) => {\n    var buffer = printCharBuffers[stream];\n    if (curr === 0 || curr === 10) {\n      (stream === 1 ? out : err)(UTF8ArrayToString(buffer));\n      buffer.length = 0;\n    } else {\n      buffer.push(curr);\n    }\n  };\n  var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead, ignoreNul) : \"\";\n  var _fd_write = (fd, iov, iovcnt, pnum) => {\n    var num = 0;\n    for (var i = 0; i < iovcnt; i++) {\n      var ptr = HEAPU32[iov >> 2];\n      var len = HEAPU32[iov + 4 >> 2];\n      iov += 8;\n      for (var j = 0; j < len; j++) {\n        printChar(fd, HEAPU8[ptr + j]);\n      }\n      num += len;\n    }\n    HEAPU32[pnum >> 2] = num;\n    return 0;\n  };\n  function _gray_to_rgba(compG_ptr, nb_pixels) {\n    compG_ptr >>= 2;\n    const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);\n    const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);\n    for (let i = 0; i < nb_pixels; i++) {\n      imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i];\n      imageData[4 * i + 3] = 255;\n    }\n  }\n  function _graya_to_rgba(compG_ptr, compA_ptr, nb_pixels) {\n    compG_ptr >>= 2;\n    compA_ptr >>= 2;\n    const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);\n    const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);\n    const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels);\n    for (let i = 0; i < nb_pixels; i++) {\n      imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i];\n      imageData[4 * i + 3] = compA[i];\n    }\n  }\n  function _jsPrintWarning(message_ptr) {\n    const message = UTF8ToString(message_ptr);\n    (Module.warn || console.warn)(`OpenJPEG: ${message}`);\n  }\n  function _rgb_to_rgba(compR_ptr, compG_ptr, compB_ptr, nb_pixels) {\n    compR_ptr >>= 2;\n    compG_ptr >>= 2;\n    compB_ptr >>= 2;\n    const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);\n    const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);\n    const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);\n    const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);\n    for (let i = 0; i < nb_pixels; i++) {\n      imageData[4 * i] = compR[i];\n      imageData[4 * i + 1] = compG[i];\n      imageData[4 * i + 2] = compB[i];\n      imageData[4 * i + 3] = 255;\n    }\n  }\n  function _storeErrorMessage(message_ptr) {\n    const message = UTF8ToString(message_ptr);\n    if (!Module.errorMessages) {\n      Module.errorMessages = message;\n    } else {\n      Module.errorMessages += \"\\n\" + message;\n    }\n  }\n  var writeArrayToMemory = (array, buffer) => {\n    HEAP8.set(array, buffer);\n  };\n  if (Module[\"noExitRuntime\"]) noExitRuntime = Module[\"noExitRuntime\"];\n  if (Module[\"print\"]) out = Module[\"print\"];\n  if (Module[\"printErr\"]) err = Module[\"printErr\"];\n  if (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n  if (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n  if (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n  if (Module[\"preInit\"]) {\n    if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [Module[\"preInit\"]];\n    while (Module[\"preInit\"].length > 0) {\n      Module[\"preInit\"].shift()();\n    }\n  }\n  Module[\"writeArrayToMemory\"] = writeArrayToMemory;\n  var _malloc, _free, _jp2_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;\n  function assignWasmExports(wasmExports) {\n    _malloc = Module[\"_malloc\"] = wasmExports[\"t\"];\n    _free = Module[\"_free\"] = wasmExports[\"u\"];\n    _jp2_decode = Module[\"_jp2_decode\"] = wasmExports[\"v\"];\n    __emscripten_timeout = wasmExports[\"w\"];\n    memory = wasmMemory = wasmExports[\"r\"];\n    __indirect_function_table = wasmExports[\"__indirect_function_table\"];\n  }\n  var wasmImports = {\n    m: __abort_js,\n    l: __emscripten_runtime_keepalive_clear,\n    i: __setitimer_js,\n    f: _copy_pixels_1,\n    e: _copy_pixels_3,\n    d: _copy_pixels_4,\n    j: _emscripten_resize_heap,\n    o: _environ_get,\n    p: _environ_sizes_get,\n    n: _fd_seek,\n    b: _fd_write,\n    q: _gray_to_rgba,\n    h: _graya_to_rgba,\n    c: _jsPrintWarning,\n    k: _proc_exit,\n    g: _rgb_to_rgba,\n    a: _storeErrorMessage\n  };\n  function run() {\n    preRun();\n    function doRun() {\n      Module[\"calledRun\"] = true;\n      if (ABORT) return;\n      initRuntime();\n      readyPromiseResolve?.(Module);\n      Module[\"onRuntimeInitialized\"]?.();\n      postRun();\n    }\n    if (Module[\"setStatus\"]) {\n      Module[\"setStatus\"](\"Running...\");\n      setTimeout(() => {\n        setTimeout(() => Module[\"setStatus\"](\"\"), 1);\n        doRun();\n      }, 1);\n    } else {\n      doRun();\n    }\n  }\n  var wasmExports;\n  wasmExports = await createWasm();\n  run();\n  if (runtimeInitialized) {\n    moduleRtn = Module;\n  } else {\n    moduleRtn = new Promise((resolve, reject) => {\n      readyPromiseResolve = resolve;\n      readyPromiseReject = reject;\n    });\n  }\n  return moduleRtn;\n}\n/* harmony default export */ const openjpeg = (OpenJPEG);\n;// ./src/core/jpx.js\n\n\n\n\nclass JpxError extends BaseException {\n  constructor(msg) {\n    super(msg, \"JpxError\");\n  }\n}\nclass JpxImage extends WasmImage {\n  _filename = \"openjpeg.wasm\";\n  _noWasmFilename = \"openjpeg_nowasm_fallback.js\";\n  static get instance() {\n    return shadow(this, \"instance\", new JpxImage(true));\n  }\n  async decode(bytes, {\n    numComponents = 4,\n    isIndexedColormap = false,\n    smaskInData = false,\n    reducePower = 0\n  } = {}) {\n    const module = await this._getModule(openjpeg);\n    if (!module) {\n      throw new JpxError(\"OpenJPEG failed to initialize\");\n    }\n    let ptr;\n    try {\n      const size = bytes.length;\n      ptr = module._malloc(size);\n      module.writeArrayToMemory(bytes, ptr);\n      const ret = module._jp2_decode(ptr, size, numComponents > 0 ? numComponents : 0, !!isIndexedColormap, !!smaskInData, reducePower);\n      if (ret) {\n        const {\n          errorMessages\n        } = module;\n        if (errorMessages) {\n          delete module.errorMessages;\n          throw new JpxError(errorMessages);\n        }\n        throw new JpxError(\"Unknown error\");\n      }\n      const {\n        imageData\n      } = module;\n      module.imageData = null;\n      return imageData;\n    } finally {\n      if (ptr) {\n        module._free(ptr);\n      }\n    }\n  }\n  static parseImageProperties(stream) {\n    let newByte = stream.getByte();\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = oldByte << 8 | newByte;\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0;\n        const Ysiz = stream.getInt32() >>> 0;\n        const XOsiz = stream.getInt32() >>> 0;\n        const YOsiz = stream.getInt32() >>> 0;\n        stream.skip(16);\n        const Csiz = stream.getUint16();\n        return {\n          width: Xsiz - XOsiz,\n          height: Ysiz - YOsiz,\n          bitsPerComponent: 8,\n          componentsCount: Csiz\n        };\n      }\n    }\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n}\n\n;// ./src/core/jpx_stream.js\n\n\n\nclass JpxStream extends DecodeStream {\n  constructor(stream, maybeLength) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n  }\n  get bytes() {\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n  ensureBuffer(requested) {}\n  get isAsyncDecoder() {\n    return true;\n  }\n  async decodeImage(bytes, _length, decoderOptions) {\n    if (this.eof) {\n      return this.buffer;\n    }\n    bytes ||= this.bytes;\n    this.buffer = await JpxImage.instance.decode(bytes, decoderOptions);\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n    return this.buffer;\n  }\n  get canAsyncDecodeImageFromBuffer() {\n    return this.stream.isAsync;\n  }\n  get isImageStream() {\n    return true;\n  }\n}\n\n;// ./src/core/lzw_stream.js\n\n\n\n\n\n\nclass LZWStream extends DecodeStream {\n  constructor(str, maybeLength, earlyChange) {\n    super(maybeLength);\n    this.stream = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n    const maxLzwDictionarySize = 4096;\n    const lzwState = {\n      earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0\n    };\n    for (let i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n    this.lzwState = lzwState;\n  }\n  readBits(n) {\n    let bitsCached = this.bitsCached;\n    let cachedData = this.cachedData;\n    while (bitsCached < n) {\n      const c = this.stream.getByte();\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n      cachedData = cachedData << 8 | c;\n      bitsCached += 8;\n    }\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    return cachedData >>> bitsCached & (1 << n) - 1;\n  }\n  readBlock() {\n    const blockSize = 512,\n      decodedSizeDelta = blockSize;\n    let estimatedDecodedSize = blockSize * 2;\n    let i, j, q;\n    const lzwState = this.lzwState;\n    if (!lzwState) {\n      return;\n    }\n    const earlyChange = lzwState.earlyChange;\n    let nextCode = lzwState.nextCode;\n    const dictionaryValues = lzwState.dictionaryValues;\n    const dictionaryLengths = lzwState.dictionaryLengths;\n    const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    let codeLength = lzwState.codeLength;\n    let prevCode = lzwState.prevCode;\n    const currentSequence = lzwState.currentSequence;\n    let currentSequenceLength = lzwState.currentSequenceLength;\n    let decodedLength = 0;\n    let currentBufferLength = this.bufferLength;\n    let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n    for (i = 0; i < blockSize; i++) {\n      const code = this.readBits(codeLength);\n      const hasPrev = currentSequenceLength > 0;\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n      }\n      prevCode = code;\n      decodedLength += currentSequenceLength;\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n    this.bufferLength = currentBufferLength;\n  }\n}\n\n;// ./src/core/predictor_stream.js\n\n\n\n\n\n\n\n\nclass PredictorStream extends DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n    if (!(params instanceof Dict)) {\n      return str;\n    }\n    const predictor = this.predictor = params.get(\"Predictor\") || 1;\n    if (predictor <= 1) {\n      return str;\n    }\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new FormatError(`Unsupported predictor: ${predictor}`);\n    }\n    this.readBlock = predictor === 2 ? this.readBlockTiff : this.readBlockPng;\n    this.stream = str;\n    this.dict = str.dict;\n    const colors = this.colors = params.get(\"Colors\") || 1;\n    const bits = this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8;\n    const columns = this.columns = params.get(\"Columns\") || 1;\n    this.pixBytes = colors * bits + 7 >> 3;\n    this.rowBytes = columns * colors * bits + 7 >> 3;\n    return this;\n  }\n  readBlockTiff() {\n    const rowBytes = this.rowBytes;\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n    const bits = this.bits;\n    const colors = this.colors;\n    const rawBytes = this.stream.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n    let inbuf = 0,\n      outbuf = 0;\n    let inbits = 0,\n      outbits = 0;\n    let pos = bufferLength;\n    let i;\n    if (bits === 1 && colors === 1) {\n      for (i = 0; i < rowBytes; ++i) {\n        let c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      const bytesPerPixel = colors * 2;\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n      for (; i < rowBytes; i += 2) {\n        const sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff);\n        buffer[pos++] = sum >> 8 & 0xff;\n        buffer[pos++] = sum & 0xff;\n      }\n    } else {\n      const compArray = new Uint8Array(colors + 1);\n      const bitMask = (1 << bits) - 1;\n      let j = 0,\n        k = bufferLength;\n      const columns = this.columns;\n      for (i = 0; i < columns; ++i) {\n        for (let kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = inbuf << 8 | rawBytes[j++] & 0xff;\n            inbits += 8;\n          }\n          compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n          inbits -= bits;\n          outbuf = outbuf << bits | compArray[kk];\n          outbits += bits;\n          if (outbits >= 8) {\n            buffer[k++] = outbuf >> outbits - 8 & 0xff;\n            outbits -= 8;\n          }\n        }\n      }\n      if (outbits > 0) {\n        buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n      }\n    }\n    this.bufferLength += rowBytes;\n  }\n  readBlockPng() {\n    const rowBytes = this.rowBytes;\n    const pixBytes = this.pixBytes;\n    const predictor = this.stream.getByte();\n    const rawBytes = this.stream.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n    let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n    let i,\n      j = bufferLength,\n      up,\n      c;\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n        break;\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n        for (; i < rowBytes; ++i) {\n          buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;\n          j++;\n        }\n        break;\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;\n        }\n        break;\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;\n          j++;\n        }\n        break;\n      case 4:\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          const upLeft = prevRow[i - pixBytes];\n          const left = buffer[j - pixBytes];\n          const p = left + up - upLeft;\n          let pa = p - left;\n          if (pa < 0) {\n            pa = -pa;\n          }\n          let pb = p - up;\n          if (pb < 0) {\n            pb = -pb;\n          }\n          let pc = p - upLeft;\n          if (pc < 0) {\n            pc = -pc;\n          }\n          c = rawBytes[i];\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n        break;\n      default:\n        throw new FormatError(`Unsupported predictor: ${predictor}`);\n    }\n    this.bufferLength += rowBytes;\n  }\n}\n\n;// ./src/core/run_length_stream.js\n\nclass RunLengthStream extends DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n    this.stream = str;\n    this.dict = str.dict;\n  }\n  readBlock() {\n    const repeatHeader = this.stream.getBytes(2);\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n    let buffer;\n    let bufferLength = this.bufferLength;\n    let n = repeatHeader[0];\n    if (n < 128) {\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n      if (n > 0) {\n        const source = this.stream.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer.fill(repeatHeader[1], bufferLength, bufferLength + n);\n      bufferLength += n;\n    }\n    this.bufferLength = bufferLength;\n  }\n}\n\n;// ./src/core/parser.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nfunction getInlineImageCacheKey(bytes) {\n  const strBuf = [],\n    ii = bytes.length;\n  let i = 0;\n  while (i < ii - 1) {\n    strBuf.push(bytes[i++] << 8 | bytes[i++]);\n  }\n  if (i < ii) {\n    strBuf.push(bytes[i]);\n  }\n  return ii + \"_\" + String.fromCharCode.apply(null, strBuf);\n}\nclass Parser {\n  constructor({\n    lexer,\n    xref,\n    allowStreams = false,\n    recoveryMode = false\n  }) {\n    this.lexer = lexer;\n    this.xref = xref;\n    this.allowStreams = allowStreams;\n    this.recoveryMode = recoveryMode;\n    this.imageCache = Object.create(null);\n    this._imageId = 0;\n    this.refill();\n  }\n  refill() {\n    this.buf1 = this.lexer.getObj();\n    this.buf2 = this.lexer.getObj();\n  }\n  shift() {\n    if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n      this.buf1 = this.buf2;\n      this.buf2 = null;\n    } else {\n      this.buf1 = this.buf2;\n      this.buf2 = this.lexer.getObj();\n    }\n  }\n  tryShift() {\n    try {\n      this.shift();\n      return true;\n    } catch (e) {\n      if (e instanceof MissingDataException) {\n        throw e;\n      }\n      return false;\n    }\n  }\n  getObj(cipherTransform = null) {\n    const buf1 = this.buf1;\n    this.shift();\n    if (buf1 instanceof Cmd) {\n      switch (buf1.cmd) {\n        case \"BI\":\n          return this.makeInlineImage(cipherTransform);\n        case \"[\":\n          const array = [];\n          while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n            array.push(this.getObj(cipherTransform));\n          }\n          if (this.buf1 === EOF) {\n            if (this.recoveryMode) {\n              return array;\n            }\n            throw new ParserEOFException(\"End of file inside array.\");\n          }\n          this.shift();\n          return array;\n        case \"<<\":\n          const dict = new Dict(this.xref);\n          while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n            if (!(this.buf1 instanceof Name)) {\n              info(\"Malformed dictionary: key must be a name object\");\n              this.shift();\n              continue;\n            }\n            const key = this.buf1.name;\n            this.shift();\n            if (this.buf1 === EOF) {\n              break;\n            }\n            dict.set(key, this.getObj(cipherTransform));\n          }\n          if (this.buf1 === EOF) {\n            if (this.recoveryMode) {\n              return dict;\n            }\n            throw new ParserEOFException(\"End of file inside dictionary.\");\n          }\n          if (isCmd(this.buf2, \"stream\")) {\n            return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n          }\n          this.shift();\n          return dict;\n        default:\n          return buf1;\n      }\n    }\n    if (Number.isInteger(buf1)) {\n      if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n        const ref = Ref.get(buf1, this.buf1);\n        this.shift();\n        this.shift();\n        return ref;\n      }\n      return buf1;\n    }\n    if (typeof buf1 === \"string\") {\n      if (cipherTransform) {\n        return cipherTransform.decryptString(buf1);\n      }\n      return buf1;\n    }\n    return buf1;\n  }\n  findDefaultInlineStreamEnd(stream) {\n    const E = 0x45,\n      I = 0x49,\n      SPACE = 0x20,\n      LF = 0xa,\n      CR = 0xd,\n      NUL = 0x0;\n    const {\n        knownCommands\n      } = this.lexer,\n      startPos = stream.pos,\n      n = 15;\n    let state = 0,\n      ch,\n      maybeEIPos;\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else {\n        if (ch === SPACE || ch === LF || ch === CR) {\n          maybeEIPos = stream.pos;\n          const followingBytes = stream.peekBytes(n);\n          const ii = followingBytes.length;\n          if (ii === 0) {\n            break;\n          }\n          for (let i = 0; i < ii; i++) {\n            ch = followingBytes[i];\n            if (ch === NUL && followingBytes[i + 1] !== NUL) {\n              continue;\n            }\n            if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n              state = 0;\n              break;\n            }\n          }\n          if (state !== 2) {\n            continue;\n          }\n          if (!knownCommands) {\n            warn(\"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\");\n            continue;\n          }\n          const tmpLexer = new Lexer(new Stream(stream.peekBytes(5 * n)), knownCommands);\n          tmpLexer._hexStringWarn = () => {};\n          let numArgs = 0;\n          while (true) {\n            const nextObj = tmpLexer.getObj();\n            if (nextObj === EOF) {\n              state = 0;\n              break;\n            }\n            if (nextObj instanceof Cmd) {\n              const knownCommand = knownCommands[nextObj.cmd];\n              if (!knownCommand) {\n                state = 0;\n                break;\n              } else if (knownCommand.variableArgs ? numArgs <= knownCommand.numArgs : numArgs === knownCommand.numArgs) {\n                break;\n              }\n              numArgs = 0;\n              continue;\n            }\n            numArgs++;\n          }\n          if (state === 2) {\n            break;\n          }\n        } else {\n          state = 0;\n        }\n      }\n    }\n    if (ch === -1) {\n      warn(\"findDefaultInlineStreamEnd: \" + \"Reached the end of the stream without finding a valid EI marker\");\n      if (maybeEIPos) {\n        warn('... trying to recover by using the last \"EI\" occurrence.');\n        stream.skip(-(stream.pos - maybeEIPos));\n      }\n    }\n    let endOffset = 4;\n    stream.skip(-endOffset);\n    ch = stream.peekByte();\n    stream.skip(endOffset);\n    if (!isWhiteSpace(ch)) {\n      endOffset--;\n    }\n    return stream.pos - endOffset - startPos;\n  }\n  findDCTDecodeInlineStreamEnd(stream) {\n    const startPos = stream.pos;\n    let foundEOI = false,\n      b,\n      markerLength;\n    while ((b = stream.getByte()) !== -1) {\n      if (b !== 0xff) {\n        continue;\n      }\n      switch (stream.getByte()) {\n        case 0x00:\n          break;\n        case 0xff:\n          stream.skip(-1);\n          break;\n        case 0xd9:\n          foundEOI = true;\n          break;\n        case 0xc0:\n        case 0xc1:\n        case 0xc2:\n        case 0xc3:\n        case 0xc5:\n        case 0xc6:\n        case 0xc7:\n        case 0xc9:\n        case 0xca:\n        case 0xcb:\n        case 0xcd:\n        case 0xce:\n        case 0xcf:\n        case 0xc4:\n        case 0xcc:\n        case 0xda:\n        case 0xdb:\n        case 0xdc:\n        case 0xdd:\n        case 0xde:\n        case 0xdf:\n        case 0xe0:\n        case 0xe1:\n        case 0xe2:\n        case 0xe3:\n        case 0xe4:\n        case 0xe5:\n        case 0xe6:\n        case 0xe7:\n        case 0xe8:\n        case 0xe9:\n        case 0xea:\n        case 0xeb:\n        case 0xec:\n        case 0xed:\n        case 0xee:\n        case 0xef:\n        case 0xfe:\n          markerLength = stream.getUint16();\n          if (markerLength > 2) {\n            stream.skip(markerLength - 2);\n          } else {\n            stream.skip(-2);\n          }\n          break;\n      }\n      if (foundEOI) {\n        break;\n      }\n    }\n    const length = stream.pos - startPos;\n    if (b === -1) {\n      warn(\"Inline DCTDecode image stream: \" + \"EOI marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n  findASCII85DecodeInlineStreamEnd(stream) {\n    const TILDE = 0x7e,\n      GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === TILDE) {\n        const tildePos = stream.pos;\n        ch = stream.peekByte();\n        while (isWhiteSpace(ch)) {\n          stream.skip();\n          ch = stream.peekByte();\n        }\n        if (ch === GT) {\n          stream.skip();\n          break;\n        }\n        if (stream.pos > tildePos) {\n          const maybeEI = stream.peekBytes(2);\n          if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) {\n            break;\n          }\n        }\n      }\n    }\n    const length = stream.pos - startPos;\n    if (ch === -1) {\n      warn(\"Inline ASCII85Decode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n  findASCIIHexDecodeInlineStreamEnd(stream) {\n    const GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === GT) {\n        break;\n      }\n    }\n    const length = stream.pos - startPos;\n    if (ch === -1) {\n      warn(\"Inline ASCIIHexDecode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n  inlineStreamSkipEI(stream) {\n    const E = 0x45,\n      I = 0x49;\n    let state = 0,\n      ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else if (state === 2) {\n        break;\n      }\n    }\n  }\n  makeInlineImage(cipherTransform) {\n    const lexer = this.lexer;\n    const stream = lexer.stream;\n    const dictMap = Object.create(null);\n    let dictLength;\n    while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n      if (!(this.buf1 instanceof Name)) {\n        throw new FormatError(\"Dictionary key must be a name object\");\n      }\n      const key = this.buf1.name;\n      this.shift();\n      if (this.buf1 === EOF) {\n        break;\n      }\n      dictMap[key] = this.getObj(cipherTransform);\n    }\n    if (lexer.beginInlineImagePos !== -1) {\n      dictLength = stream.pos - lexer.beginInlineImagePos;\n    }\n    const filter = this.#fetchIfRef(dictMap.F || dictMap.Filter);\n    let filterName;\n    if (filter instanceof Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = this.#fetchIfRef(filter[0]);\n      if (filterZero instanceof Name) {\n        filterName = filterZero.name;\n      }\n    }\n    const startPos = stream.pos;\n    let length;\n    switch (filterName) {\n      case \"DCT\":\n      case \"DCTDecode\":\n        length = this.findDCTDecodeInlineStreamEnd(stream);\n        break;\n      case \"A85\":\n      case \"ASCII85Decode\":\n        length = this.findASCII85DecodeInlineStreamEnd(stream);\n        break;\n      case \"AHx\":\n      case \"ASCIIHexDecode\":\n        length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n        break;\n      default:\n        length = this.findDefaultInlineStreamEnd(stream);\n    }\n    let cacheKey;\n    if (length < MAX_LENGTH_TO_CACHE && dictLength > 0) {\n      const initialStreamPos = stream.pos;\n      stream.pos = lexer.beginInlineImagePos;\n      cacheKey = getInlineImageCacheKey(stream.getBytes(dictLength + length));\n      stream.pos = initialStreamPos;\n      const cacheEntry = this.imageCache[cacheKey];\n      if (cacheEntry !== undefined) {\n        this.buf2 = Cmd.get(\"EI\");\n        this.shift();\n        cacheEntry.reset();\n        return cacheEntry;\n      }\n    }\n    const dict = new Dict(this.xref);\n    for (const key in dictMap) {\n      dict.set(key, dictMap[key]);\n    }\n    let imageStream = stream.makeSubStream(startPos, length, dict);\n    if (cipherTransform && !this.#hasCryptFilter(filter)) {\n      imageStream = cipherTransform.createStream(imageStream, length);\n    }\n    imageStream = this.filter(imageStream, dict, length, cipherTransform);\n    imageStream.dict = dict;\n    if (cacheKey !== undefined) {\n      imageStream.cacheKey = `inline_img_${++this._imageId}`;\n      this.imageCache[cacheKey] = imageStream;\n    }\n    this.buf2 = Cmd.get(\"EI\");\n    this.shift();\n    return imageStream;\n  }\n  #fetchIfRef(obj) {\n    return this.xref ? this.xref.fetchIfRef(obj) : obj;\n  }\n  #hasCryptFilter(filter) {\n    if (!Array.isArray(filter)) {\n      return isName(filter, \"Crypt\");\n    }\n    for (const f of filter) {\n      if (isName(this.#fetchIfRef(f), \"Crypt\")) {\n        return true;\n      }\n    }\n    return false;\n  }\n  #findStreamLength(startPos) {\n    const {\n      stream\n    } = this.lexer;\n    stream.pos = startPos;\n    const SCAN_BLOCK_LENGTH = 2048;\n    const signatureLength = \"endstream\".length;\n    const END_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64]);\n    const endLength = END_SIGNATURE.length;\n    const PARTIAL_SIGNATURE = [new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61, 0x6d]), new Uint8Array([0x73, 0x74, 0x65, 0x61, 0x6d]), new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61])];\n    const normalLength = signatureLength - endLength;\n    while (stream.pos < stream.end) {\n      const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      const scanLength = scanBytes.length - signatureLength;\n      if (scanLength <= 0) {\n        break;\n      }\n      let pos = 0;\n      while (pos < scanLength) {\n        let j = 0;\n        while (j < endLength && scanBytes[pos + j] === END_SIGNATURE[j]) {\n          j++;\n        }\n        if (j >= endLength) {\n          let found = false;\n          for (const part of PARTIAL_SIGNATURE) {\n            const partLen = part.length;\n            let k = 0;\n            while (k < partLen && scanBytes[pos + j + k] === part[k]) {\n              k++;\n            }\n            if (k >= normalLength) {\n              found = true;\n              break;\n            }\n            if (k >= partLen) {\n              const lastByte = scanBytes[pos + j + k];\n              if (isWhiteSpace(lastByte)) {\n                info(`Found \"${bytesToString([...END_SIGNATURE, ...part])}\" when ` + \"searching for endstream command.\");\n                found = true;\n              }\n              break;\n            }\n          }\n          if (found) {\n            stream.pos += pos;\n            return stream.pos - startPos;\n          }\n        }\n        pos++;\n      }\n      stream.pos += scanLength;\n    }\n    return -1;\n  }\n  makeStream(dict, cipherTransform) {\n    const lexer = this.lexer;\n    let stream = lexer.stream;\n    lexer.skipToNextLine();\n    const startPos = stream.pos - 1;\n    let length = dict.get(\"Length\");\n    if (!Number.isInteger(length)) {\n      info(`Bad length \"${length && length.toString()}\" in stream.`);\n      length = 0;\n    }\n    stream.pos = startPos + length;\n    lexer.nextChar();\n    if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n      this.shift();\n    } else {\n      length = this.#findStreamLength(startPos);\n      if (length < 0) {\n        throw new FormatError(\"Missing endstream command.\");\n      }\n      lexer.nextChar();\n      this.shift();\n      this.shift();\n    }\n    this.shift();\n    stream = stream.makeSubStream(startPos, length, dict);\n    const filter = dict.get(\"F\", \"Filter\");\n    if (cipherTransform && !this.#hasCryptFilter(filter)) {\n      stream = cipherTransform.createStream(stream, length);\n    }\n    stream = this.filter(stream, dict, length, cipherTransform);\n    stream.dict = dict;\n    return stream;\n  }\n  filter(stream, dict, length, cipherTransform = null) {\n    let filter = dict.get(\"F\", \"Filter\");\n    let params = dict.get(\"DP\", \"DecodeParms\");\n    if (filter instanceof Name) {\n      if (Array.isArray(params)) {\n        warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n      }\n      return this.makeFilter(stream, filter.name, length, params, cipherTransform);\n    }\n    let maybeLength = length;\n    if (Array.isArray(filter)) {\n      const filterArray = filter;\n      const paramsArray = params;\n      for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n        filter = this.#fetchIfRef(filterArray[i]);\n        if (!(filter instanceof Name)) {\n          throw new FormatError(`Bad filter name \"${filter}\"`);\n        }\n        params = null;\n        if (Array.isArray(paramsArray) && i in paramsArray) {\n          params = this.#fetchIfRef(paramsArray[i]);\n        }\n        stream = this.makeFilter(stream, filter.name, maybeLength, params, cipherTransform);\n        maybeLength = null;\n      }\n    }\n    return stream;\n  }\n  makeFilter(stream, name, maybeLength, params, cipherTransform = null) {\n    if (maybeLength === 0) {\n      warn(`Empty \"${name}\" stream.`);\n      return new NullStream();\n    }\n    try {\n      switch (name) {\n        case \"Fl\":\n        case \"FlateDecode\":\n          if (params) {\n            return new PredictorStream(new FlateStream(stream, maybeLength), maybeLength, params);\n          }\n          return new FlateStream(stream, maybeLength);\n        case \"LZW\":\n        case \"LZWDecode\":\n          let earlyChange = 1;\n          if (params) {\n            if (params.has(\"EarlyChange\")) {\n              earlyChange = params.get(\"EarlyChange\");\n            }\n            return new PredictorStream(new LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n          }\n          return new LZWStream(stream, maybeLength, earlyChange);\n        case \"DCT\":\n        case \"DCTDecode\":\n          return new JpegStream(stream, maybeLength, params);\n        case \"JPX\":\n        case \"JPXDecode\":\n          return new JpxStream(stream, maybeLength);\n        case \"A85\":\n        case \"ASCII85Decode\":\n          return new Ascii85Stream(stream, maybeLength);\n        case \"AHx\":\n        case \"ASCIIHexDecode\":\n          return new AsciiHexStream(stream, maybeLength);\n        case \"CCF\":\n        case \"CCITTFaxDecode\":\n          return new CCITTFaxStream(stream, maybeLength, params);\n        case \"RL\":\n        case \"RunLengthDecode\":\n          return new RunLengthStream(stream, maybeLength);\n        case \"JBIG2Decode\":\n          return new Jbig2Stream(stream, maybeLength, params);\n        case \"BrotliDecode\":\n          return new BrotliStream(stream, maybeLength);\n        case \"Crypt\":\n          {\n            if (!cipherTransform) {\n              warn('Filter \"Crypt\" is missing a cipher transform.');\n              return stream;\n            }\n            const param = params instanceof Dict ? params.get(\"Name\") : null;\n            const cryptName = param instanceof Name ? param : Name.get(\"Identity\");\n            return cipherTransform.createStream(stream, maybeLength, cryptName);\n          }\n      }\n      warn(`Filter \"${name}\" is not supported.`);\n      return stream;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Invalid stream: \"${ex}\"`);\n      return new NullStream();\n    }\n  }\n}\nconst specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, 2, 0, 2, 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, 2, 0, 2, 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, 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];\nfunction toHexDigit(ch) {\n  if (ch >= 0x30 && ch <= 0x39) {\n    return ch & 0x0f;\n  }\n  if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n    return (ch & 0x0f) + 9;\n  }\n  return -1;\n}\nclass Lexer {\n  constructor(stream, knownCommands = null) {\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n    this.knownCommands = knownCommands;\n    this._hexStringNumWarn = 0;\n    this.beginInlineImagePos = -1;\n  }\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n  peekChar() {\n    return this.stream.peekByte();\n  }\n  getNumber() {\n    let ch = this.currentChar;\n    let divideBy = 0;\n    let sign = 1;\n    if (ch === 0x2d) {\n      sign = -1;\n      ch = this.nextChar();\n      if (ch === 0x2d) {\n        ch = this.nextChar();\n      }\n    } else if (ch === 0x2b) {\n      ch = this.nextChar();\n    }\n    if (ch === 0x0a || ch === 0x0d) {\n      do {\n        ch = this.nextChar();\n      } while (ch === 0x0a || ch === 0x0d);\n    }\n    if (ch === 0x2e) {\n      divideBy = 10;\n      ch = this.nextChar();\n    }\n    if (ch < 0x30 || ch > 0x39) {\n      const msg = `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`;\n      if (isWhiteSpace(ch) || ch === 0x28 || ch === 0x3c || ch === -1) {\n        info(`Lexer.getNumber - \"${msg}\".`);\n        return 0;\n      }\n      throw new FormatError(msg);\n    }\n    let baseValue = ch - 0x30;\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= 0x30 && ch <= 0x39) {\n        const currentDigit = ch - 0x30;\n        if (divideBy !== 0) {\n          divideBy *= 10;\n        }\n        baseValue = baseValue * 10 + currentDigit;\n      } else if (ch === 0x2e) {\n        if (divideBy === 0) {\n          divideBy = 1;\n        } else {\n          break;\n        }\n      } else if (ch === 0x2d) {\n        warn(\"Badly formatted number: minus sign in the middle\");\n      } else {\n        break;\n      }\n    }\n    if (divideBy !== 0) {\n      baseValue /= divideBy;\n    }\n    return sign * baseValue;\n  }\n  getString() {\n    let numParen = 1;\n    let done = false;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.nextChar();\n    while (true) {\n      let charBuffered = false;\n      switch (ch | 0) {\n        case -1:\n          warn(\"Unterminated string\");\n          done = true;\n          break;\n        case 0x28:\n          ++numParen;\n          strBuf.push(\"(\");\n          break;\n        case 0x29:\n          if (--numParen === 0) {\n            this.nextChar();\n            done = true;\n          } else {\n            strBuf.push(\")\");\n          }\n          break;\n        case 0x5c:\n          ch = this.nextChar();\n          switch (ch) {\n            case -1:\n              warn(\"Unterminated string\");\n              done = true;\n              break;\n            case 0x6e:\n              strBuf.push(\"\\n\");\n              break;\n            case 0x72:\n              strBuf.push(\"\\r\");\n              break;\n            case 0x74:\n              strBuf.push(\"\\t\");\n              break;\n            case 0x62:\n              strBuf.push(\"\\b\");\n              break;\n            case 0x66:\n              strBuf.push(\"\\f\");\n              break;\n            case 0x5c:\n            case 0x28:\n            case 0x29:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n            case 0x30:\n            case 0x31:\n            case 0x32:\n            case 0x33:\n            case 0x34:\n            case 0x35:\n            case 0x36:\n            case 0x37:\n              let x = ch & 0x0f;\n              ch = this.nextChar();\n              charBuffered = true;\n              if (ch >= 0x30 && ch <= 0x37) {\n                x = (x << 3) + (ch & 0x0f);\n                ch = this.nextChar();\n                if (ch >= 0x30 && ch <= 0x37) {\n                  charBuffered = false;\n                  x = (x << 3) + (ch & 0x0f);\n                }\n              }\n              strBuf.push(String.fromCharCode(x));\n              break;\n            case 0x0d:\n              if (this.peekChar() === 0x0a) {\n                this.nextChar();\n              }\n              break;\n            case 0x0a:\n              break;\n            default:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n          }\n          break;\n        default:\n          strBuf.push(String.fromCharCode(ch));\n          break;\n      }\n      if (done) {\n        break;\n      }\n      if (!charBuffered) {\n        ch = this.nextChar();\n      }\n    }\n    return strBuf.join(\"\");\n  }\n  getName() {\n    let ch, previousCh;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      if (ch === 0x23) {\n        ch = this.nextChar();\n        if (specialChars[ch]) {\n          warn(\"Lexer_getName: \" + \"NUMBER SIGN (#) should be followed by a hexadecimal number.\");\n          strBuf.push(\"#\");\n          break;\n        }\n        const x = toHexDigit(ch);\n        if (x !== -1) {\n          previousCh = ch;\n          ch = this.nextChar();\n          const x2 = toHexDigit(ch);\n          if (x2 === -1) {\n            warn(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + \"in hexadecimal number.\");\n            strBuf.push(\"#\", String.fromCharCode(previousCh));\n            if (specialChars[ch]) {\n              break;\n            }\n            strBuf.push(String.fromCharCode(ch));\n            continue;\n          }\n          strBuf.push(String.fromCharCode(x << 4 | x2));\n        } else {\n          strBuf.push(\"#\", String.fromCharCode(ch));\n        }\n      } else {\n        strBuf.push(String.fromCharCode(ch));\n      }\n    }\n    if (strBuf.length > 127) {\n      warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n    }\n    return Name.get(strBuf.join(\"\"));\n  }\n  _hexStringWarn(ch) {\n    const MAX_HEX_STRING_NUM_WARN = 5;\n    if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n      warn(\"getHexString - ignoring additional invalid characters.\");\n      return;\n    }\n    if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n      return;\n    }\n    warn(`getHexString - ignoring invalid character: ${ch}`);\n  }\n  getHexString() {\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.currentChar;\n    let firstDigit = -1,\n      digit = -1;\n    this._hexStringNumWarn = 0;\n    while (true) {\n      if (ch < 0) {\n        warn(\"Unterminated hex string\");\n        break;\n      } else if (ch === 0x3e) {\n        this.nextChar();\n        break;\n      } else if (specialChars[ch] === 1) {\n        ch = this.nextChar();\n        continue;\n      } else {\n        digit = toHexDigit(ch);\n        if (digit === -1) {\n          this._hexStringWarn(ch);\n        } else if (firstDigit === -1) {\n          firstDigit = digit;\n        } else {\n          strBuf.push(String.fromCharCode(firstDigit << 4 | digit));\n          firstDigit = -1;\n        }\n        ch = this.nextChar();\n      }\n    }\n    if (firstDigit !== -1) {\n      strBuf.push(String.fromCharCode(firstDigit << 4));\n    }\n    return strBuf.join(\"\");\n  }\n  getObj() {\n    let comment = false;\n    let ch = this.currentChar;\n    while (true) {\n      if (ch < 0) {\n        return EOF;\n      }\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (specialChars[ch] !== 1) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n    switch (ch | 0) {\n      case 0x30:\n      case 0x31:\n      case 0x32:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n        return this.getNumber();\n      case 0x28:\n        return this.getString();\n      case 0x2f:\n        return this.getName();\n      case 0x5b:\n        this.nextChar();\n        return Cmd.get(\"[\");\n      case 0x5d:\n        this.nextChar();\n        return Cmd.get(\"]\");\n      case 0x3c:\n        ch = this.nextChar();\n        if (ch === 0x3c) {\n          this.nextChar();\n          return Cmd.get(\"<<\");\n        }\n        return this.getHexString();\n      case 0x3e:\n        ch = this.nextChar();\n        if (ch === 0x3e) {\n          this.nextChar();\n          return Cmd.get(\">>\");\n        }\n        return Cmd.get(\">\");\n      case 0x7b:\n        this.nextChar();\n        return Cmd.get(\"{\");\n      case 0x7d:\n        this.nextChar();\n        return Cmd.get(\"}\");\n      case 0x29:\n        this.nextChar();\n        throw new FormatError(`Illegal character: ${ch}`);\n    }\n    let str = String.fromCharCode(ch);\n    if (ch < 0x20 || ch > 0x7f) {\n      const nextCh = this.peekChar();\n      if (nextCh >= 0x20 && nextCh <= 0x7f) {\n        this.nextChar();\n        return Cmd.get(str);\n      }\n    }\n    const knownCommands = this.knownCommands;\n    let knownCommandFound = knownCommands?.[str] !== undefined;\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      const possibleCommand = str + String.fromCharCode(ch);\n      if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n        break;\n      }\n      if (str.length === 128) {\n        throw new FormatError(`Command token too long: ${str.length}`);\n      }\n      str = possibleCommand;\n      knownCommandFound = knownCommands?.[str] !== undefined;\n    }\n    if (str === \"true\") {\n      return true;\n    }\n    if (str === \"false\") {\n      return false;\n    }\n    if (str === \"null\") {\n      return null;\n    }\n    if (str === \"BI\") {\n      this.beginInlineImagePos = this.stream.pos;\n    }\n    return Cmd.get(str);\n  }\n  skipToNextLine() {\n    let ch = this.currentChar;\n    while (ch >= 0) {\n      if (ch === 0x0d) {\n        ch = this.nextChar();\n        if (ch === 0x0a) {\n          this.nextChar();\n        }\n        break;\n      } else if (ch === 0x0a) {\n        this.nextChar();\n        break;\n      }\n      ch = this.nextChar();\n    }\n  }\n}\nclass Linearization {\n  static create(stream) {\n    function getInt(linDict, name, allowZeroValue = false) {\n      const obj = linDict.get(name);\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n      throw new Error(`The \"${name}\" parameter in the linearization ` + \"dictionary is invalid.\");\n    }\n    function getHints(linDict) {\n      const hints = linDict.get(\"H\");\n      let hintsLength;\n      if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n        for (let index = 0; index < hintsLength; index++) {\n          const hint = hints[index];\n          if (!(Number.isInteger(hint) && hint > 0)) {\n            throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);\n          }\n        }\n        return hints;\n      }\n      throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n    }\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: null\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n    const linDict = parser.getObj();\n    let obj, length;\n    if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && isCmd(obj3, \"obj\") && linDict instanceof Dict && typeof (obj = linDict.get(\"Linearized\")) === \"number\" && obj > 0)) {\n      return null;\n    } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n      throw new Error('The \"L\" parameter in the linearization dictionary ' + \"does not equal the stream length.\");\n    }\n    return {\n      length,\n      hints: getHints(linDict),\n      objectNumberFirst: getInt(linDict, \"O\"),\n      endFirst: getInt(linDict, \"E\"),\n      numPages: getInt(linDict, \"N\"),\n      mainXRefEntriesOffset: getInt(linDict, \"T\"),\n      pageFirst: linDict.has(\"P\") ? getInt(linDict, \"P\", true) : 0\n    };\n  }\n}\n\n;// ./src/core/cmap.js\n\n\n\n\n\n\n\n\n\n\n\nconst BUILT_IN_CMAPS = [\"Adobe-GB1-UCS2\", \"Adobe-CNS1-UCS2\", \"Adobe-Japan1-UCS2\", \"Adobe-Korea1-UCS2\", \"78-EUC-H\", \"78-EUC-V\", \"78-H\", \"78-RKSJ-H\", \"78-RKSJ-V\", \"78-V\", \"78ms-RKSJ-H\", \"78ms-RKSJ-V\", \"83pv-RKSJ-H\", \"90ms-RKSJ-H\", \"90ms-RKSJ-V\", \"90msp-RKSJ-H\", \"90msp-RKSJ-V\", \"90pv-RKSJ-H\", \"90pv-RKSJ-V\", \"Add-H\", \"Add-RKSJ-H\", \"Add-RKSJ-V\", \"Add-V\", \"Adobe-CNS1-0\", \"Adobe-CNS1-1\", \"Adobe-CNS1-2\", \"Adobe-CNS1-3\", \"Adobe-CNS1-4\", \"Adobe-CNS1-5\", \"Adobe-CNS1-6\", \"Adobe-GB1-0\", \"Adobe-GB1-1\", \"Adobe-GB1-2\", \"Adobe-GB1-3\", \"Adobe-GB1-4\", \"Adobe-GB1-5\", \"Adobe-Japan1-0\", \"Adobe-Japan1-1\", \"Adobe-Japan1-2\", \"Adobe-Japan1-3\", \"Adobe-Japan1-4\", \"Adobe-Japan1-5\", \"Adobe-Japan1-6\", \"Adobe-Korea1-0\", \"Adobe-Korea1-1\", \"Adobe-Korea1-2\", \"B5-H\", \"B5-V\", \"B5pc-H\", \"B5pc-V\", \"CNS-EUC-H\", \"CNS-EUC-V\", \"CNS1-H\", \"CNS1-V\", \"CNS2-H\", \"CNS2-V\", \"ETHK-B5-H\", \"ETHK-B5-V\", \"ETen-B5-H\", \"ETen-B5-V\", \"ETenms-B5-H\", \"ETenms-B5-V\", \"EUC-H\", \"EUC-V\", \"Ext-H\", \"Ext-RKSJ-H\", \"Ext-RKSJ-V\", \"Ext-V\", \"GB-EUC-H\", \"GB-EUC-V\", \"GB-H\", \"GB-V\", \"GBK-EUC-H\", \"GBK-EUC-V\", \"GBK2K-H\", \"GBK2K-V\", \"GBKp-EUC-H\", \"GBKp-EUC-V\", \"GBT-EUC-H\", \"GBT-EUC-V\", \"GBT-H\", \"GBT-V\", \"GBTpc-EUC-H\", \"GBTpc-EUC-V\", \"GBpc-EUC-H\", \"GBpc-EUC-V\", \"H\", \"HKdla-B5-H\", \"HKdla-B5-V\", \"HKdlb-B5-H\", \"HKdlb-B5-V\", \"HKgccs-B5-H\", \"HKgccs-B5-V\", \"HKm314-B5-H\", \"HKm314-B5-V\", \"HKm471-B5-H\", \"HKm471-B5-V\", \"HKscs-B5-H\", \"HKscs-B5-V\", \"Hankaku\", \"Hiragana\", \"KSC-EUC-H\", \"KSC-EUC-V\", \"KSC-H\", \"KSC-Johab-H\", \"KSC-Johab-V\", \"KSC-V\", \"KSCms-UHC-H\", \"KSCms-UHC-HW-H\", \"KSCms-UHC-HW-V\", \"KSCms-UHC-V\", \"KSCpc-EUC-H\", \"KSCpc-EUC-V\", \"Katakana\", \"NWP-H\", \"NWP-V\", \"RKSJ-H\", \"RKSJ-V\", \"Roman\", \"UniCNS-UCS2-H\", \"UniCNS-UCS2-V\", \"UniCNS-UTF16-H\", \"UniCNS-UTF16-V\", \"UniCNS-UTF32-H\", \"UniCNS-UTF32-V\", \"UniCNS-UTF8-H\", \"UniCNS-UTF8-V\", \"UniGB-UCS2-H\", \"UniGB-UCS2-V\", \"UniGB-UTF16-H\", \"UniGB-UTF16-V\", \"UniGB-UTF32-H\", \"UniGB-UTF32-V\", \"UniGB-UTF8-H\", \"UniGB-UTF8-V\", \"UniJIS-UCS2-H\", \"UniJIS-UCS2-HW-H\", \"UniJIS-UCS2-HW-V\", \"UniJIS-UCS2-V\", \"UniJIS-UTF16-H\", \"UniJIS-UTF16-V\", \"UniJIS-UTF32-H\", \"UniJIS-UTF32-V\", \"UniJIS-UTF8-H\", \"UniJIS-UTF8-V\", \"UniJIS2004-UTF16-H\", \"UniJIS2004-UTF16-V\", \"UniJIS2004-UTF32-H\", \"UniJIS2004-UTF32-V\", \"UniJIS2004-UTF8-H\", \"UniJIS2004-UTF8-V\", \"UniJISPro-UCS2-HW-V\", \"UniJISPro-UCS2-V\", \"UniJISPro-UTF8-V\", \"UniJISX0213-UTF32-H\", \"UniJISX0213-UTF32-V\", \"UniJISX02132004-UTF32-H\", \"UniJISX02132004-UTF32-V\", \"UniKS-UCS2-H\", \"UniKS-UCS2-V\", \"UniKS-UTF16-H\", \"UniKS-UTF16-V\", \"UniKS-UTF32-H\", \"UniKS-UTF32-V\", \"UniKS-UTF8-H\", \"UniKS-UTF8-V\", \"V\", \"WP-Symbol\"];\nconst MAX_MAP_RANGE = 2 ** 24 - 1;\nclass CMap {\n  constructor(builtInCMap = false) {\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    this._map = [];\n    this.name = \"\";\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n  addCodespaceRange(n, low, high) {\n    this.codespaceRanges[n - 1].push(low, high);\n    this.numCodespaceRanges++;\n  }\n  mapCidRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n    while (low <= high) {\n      this._map[low++] = dstLow++;\n    }\n  }\n  mapBfRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n    const lastByte = dstLow.length - 1;\n    while (low <= high) {\n      this._map[low++] = dstLow;\n      const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n      if (nextCharCode > 0xff) {\n        dstLow = dstLow.substring(0, lastByte - 1) + String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) + \"\\x00\";\n        continue;\n      }\n      dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n    }\n  }\n  mapBfRangeToArray(low, high, array) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n    }\n    const ii = array.length;\n    let i = 0;\n    while (low <= high && i < ii) {\n      this._map[low] = array[i++];\n      ++low;\n    }\n  }\n  mapOne(src, dst) {\n    this._map[src] = dst;\n  }\n  lookup(code) {\n    return this._map[code];\n  }\n  contains(code) {\n    return this._map[code] !== undefined;\n  }\n  forEach(callback) {\n    const map = this._map;\n    const length = map.length;\n    if (length <= 0x10000) {\n      for (let i = 0; i < length; i++) {\n        if (map[i] !== undefined) {\n          callback(i, map[i]);\n        }\n      }\n    } else {\n      for (const i in map) {\n        callback(i, map[i]);\n      }\n    }\n  }\n  charCodeOf(value) {\n    const map = this._map;\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n    return -1;\n  }\n  getMap() {\n    return this._map;\n  }\n  readCharCode(str, offset, out) {\n    let c = 0;\n    const codespaceRanges = this.codespaceRanges;\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n      const codespaceRange = codespaceRanges[n];\n      for (let k = 0, kk = codespaceRange.length; k < kk;) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n        if (c >= low && c <= high) {\n          out.charcode = c;\n          out.length = n + 1;\n          return;\n        }\n      }\n    }\n    out.charcode = 0;\n    out.length = 1;\n  }\n  getCharCodeLength(charCode) {\n    const codespaceRanges = this.codespaceRanges;\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      const codespaceRange = codespaceRanges[n];\n      for (let k = 0, kk = codespaceRange.length; k < kk;) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n        if (charCode >= low && charCode <= high) {\n          return n + 1;\n        }\n      }\n    }\n    return 1;\n  }\n  get length() {\n    return this._map.length;\n  }\n  get isIdentityCMap() {\n    if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n      return false;\n    }\n    if (this._map.length !== 0x10000) {\n      return false;\n    }\n    for (let i = 0; i < 0x10000; i++) {\n      if (this._map[i] !== i) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\nclass IdentityCMap extends CMap {\n  constructor(vertical, n) {\n    super();\n    this.vertical = vertical;\n    this.addCodespaceRange(n, 0, 0xffff);\n  }\n  mapCidRange(low, high, dstLow) {\n    unreachable(\"should not call mapCidRange\");\n  }\n  mapBfRange(low, high, dstLow) {\n    unreachable(\"should not call mapBfRange\");\n  }\n  mapBfRangeToArray(low, high, array) {\n    unreachable(\"should not call mapBfRangeToArray\");\n  }\n  mapOne(src, dst) {\n    unreachable(\"should not call mapCidOne\");\n  }\n  lookup(code) {\n    return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n  }\n  contains(code) {\n    return Number.isInteger(code) && code <= 0xffff;\n  }\n  forEach(callback) {\n    for (let i = 0; i <= 0xffff; i++) {\n      callback(i, i);\n    }\n  }\n  charCodeOf(value) {\n    return Number.isInteger(value) && value <= 0xffff ? value : -1;\n  }\n  getMap() {\n    const map = new Array(0x10000);\n    for (let i = 0; i <= 0xffff; i++) {\n      map[i] = i;\n    }\n    return map;\n  }\n  get length() {\n    return 0x10000;\n  }\n  get isIdentityCMap() {\n    unreachable(\"should not access .isIdentityCMap\");\n  }\n}\nfunction strToInt(str) {\n  let a = 0;\n  for (let i = 0; i < str.length; i++) {\n    a = a << 8 | str.charCodeAt(i);\n  }\n  return a >>> 0;\n}\nfunction expectString(obj) {\n  if (typeof obj !== \"string\") {\n    throw new FormatError(\"Malformed CMap: expected string.\");\n  }\n}\nfunction expectInt(obj) {\n  if (!Number.isInteger(obj)) {\n    throw new FormatError(\"Malformed CMap: expected int.\");\n  }\n}\nfunction parseBfChar(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endbfchar\")) {\n      return;\n    }\n    expectString(obj);\n    const src = strToInt(obj);\n    obj = lexer.getObj();\n    expectString(obj);\n    const dst = obj;\n    cMap.mapOne(src, dst);\n  }\n}\nfunction parseBfRange(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endbfrange\")) {\n      return;\n    }\n    expectString(obj);\n    const low = strToInt(obj);\n    obj = lexer.getObj();\n    expectString(obj);\n    const high = strToInt(obj);\n    obj = lexer.getObj();\n    if (Number.isInteger(obj) || typeof obj === \"string\") {\n      const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n      cMap.mapBfRange(low, high, dstLow);\n    } else if (isCmd(obj, \"[\")) {\n      obj = lexer.getObj();\n      const array = [];\n      while (!isCmd(obj, \"]\") && obj !== EOF) {\n        array.push(obj);\n        obj = lexer.getObj();\n      }\n      cMap.mapBfRangeToArray(low, high, array);\n    } else {\n      break;\n    }\n  }\n  throw new FormatError(\"Invalid bf range.\");\n}\nfunction parseCidChar(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endcidchar\")) {\n      return;\n    }\n    expectString(obj);\n    const src = strToInt(obj);\n    obj = lexer.getObj();\n    expectInt(obj);\n    const dst = obj;\n    cMap.mapOne(src, dst);\n  }\n}\nfunction parseCidRange(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endcidrange\")) {\n      return;\n    }\n    expectString(obj);\n    const low = strToInt(obj);\n    obj = lexer.getObj();\n    expectString(obj);\n    const high = strToInt(obj);\n    obj = lexer.getObj();\n    expectInt(obj);\n    const dstLow = obj;\n    cMap.mapCidRange(low, high, dstLow);\n  }\n}\nfunction parseCodespaceRange(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endcodespacerange\")) {\n      return;\n    }\n    if (typeof obj !== \"string\") {\n      break;\n    }\n    const low = strToInt(obj);\n    obj = lexer.getObj();\n    if (typeof obj !== \"string\") {\n      break;\n    }\n    const high = strToInt(obj);\n    cMap.addCodespaceRange(obj.length, low, high);\n  }\n  throw new FormatError(\"Invalid codespace range.\");\n}\nfunction parseWMode(cMap, lexer) {\n  const obj = lexer.getObj();\n  if (Number.isInteger(obj)) {\n    cMap.vertical = !!obj;\n  }\n}\nfunction parseCMapName(cMap, lexer) {\n  const obj = lexer.getObj();\n  if (obj instanceof Name) {\n    cMap.name = obj.name;\n  }\n}\nasync function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n  let previous, embeddedUseCMap;\n  objLoop: while (true) {\n    try {\n      const obj = lexer.getObj();\n      if (obj === EOF) {\n        break;\n      } else if (obj instanceof Name) {\n        if (obj.name === \"WMode\") {\n          parseWMode(cMap, lexer);\n        } else if (obj.name === \"CMapName\") {\n          parseCMapName(cMap, lexer);\n        }\n        previous = obj;\n      } else if (obj instanceof Cmd) {\n        switch (obj.cmd) {\n          case \"endcmap\":\n            break objLoop;\n          case \"usecmap\":\n            if (previous instanceof Name) {\n              embeddedUseCMap = previous.name;\n            }\n            break;\n          case \"begincodespacerange\":\n            parseCodespaceRange(cMap, lexer);\n            break;\n          case \"beginbfchar\":\n            parseBfChar(cMap, lexer);\n            break;\n          case \"begincidchar\":\n            parseCidChar(cMap, lexer);\n            break;\n          case \"beginbfrange\":\n            parseBfRange(cMap, lexer);\n            break;\n          case \"begincidrange\":\n            parseCidRange(cMap, lexer);\n            break;\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Invalid cMap data: \" + ex);\n      continue;\n    }\n  }\n  if (!useCMap && embeddedUseCMap) {\n    useCMap = embeddedUseCMap;\n  }\n  if (useCMap) {\n    return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n  }\n  return cMap;\n}\nasync function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n  cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n  if (cMap.numCodespaceRanges === 0) {\n    const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n    for (let i = 0; i < useCodespaceRanges.length; i++) {\n      cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n    }\n    cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n  }\n  cMap.useCMap.forEach(function (key, value) {\n    if (!cMap.contains(key)) {\n      cMap.mapOne(key, value);\n    }\n  });\n  return cMap;\n}\nasync function createBuiltInCMap(name, fetchBuiltInCMap) {\n  if (name === \"Identity-H\") {\n    return new IdentityCMap(false, 2);\n  } else if (name === \"Identity-V\") {\n    return new IdentityCMap(true, 2);\n  }\n  if (!BUILT_IN_CMAPS.includes(name)) {\n    throw new Error(\"Unknown CMap name: \" + name);\n  }\n  if (!fetchBuiltInCMap) {\n    throw new Error(\"Built-in CMap parameters are not provided.\");\n  }\n  const {\n    cMapData,\n    isCompressed\n  } = await fetchBuiltInCMap(name);\n  const cMap = new CMap(true);\n  if (isCompressed) {\n    return new BinaryCMapReader().process(cMapData, cMap, useCMap => extendCMap(cMap, fetchBuiltInCMap, useCMap));\n  }\n  const lexer = new Lexer(new Stream(cMapData));\n  return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n}\nclass CMapFactory {\n  static async create({\n    encoding,\n    fetchBuiltInCMap,\n    useCMap\n  }) {\n    if (encoding instanceof Name) {\n      return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n    } else if (encoding instanceof BaseStream) {\n      if (encoding.isAsync) {\n        const bytes = await encoding.asyncGetBytes();\n        if (bytes) {\n          encoding = new Stream(bytes, 0, bytes.length, encoding.dict);\n        }\n      }\n      const parsedCMap = await parseCMap(new CMap(), new Lexer(encoding), fetchBuiltInCMap, useCMap);\n      if (parsedCMap.isIdentityCMap) {\n        return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n      }\n      return parsedCMap;\n    }\n    throw new Error(\"Encoding required.\");\n  }\n}\n\n;// ./src/shared/obj_bin_transform_utils.js\nclass CSS_FONT_INFO {\n  static strings = [\"fontFamily\", \"fontWeight\", \"italicAngle\"];\n}\nclass SYSTEM_FONT_INFO {\n  static strings = [\"css\", \"loadedName\", \"baseFontName\", \"src\"];\n}\nclass FONT_INFO {\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}\nclass PATTERN_INFO {\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}\n\n;// ./src/core/obj_bin_transform_core.js\n\n\n\n\n\n\n\n\nfunction compileCssFontInfo(info) {\n  const encoder = new TextEncoder();\n  const encodedStrings = {};\n  let stringsLength = 0;\n  for (const prop of CSS_FONT_INFO.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 CSS_FONT_INFO.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, \"compileCssFontInfo: Buffer overflow\");\n  return buffer;\n}\nfunction compileSystemFontInfo(info) {\n  const encoder = new TextEncoder();\n  const encodedStrings = {};\n  let stringsLength = 0;\n  for (const prop of SYSTEM_FONT_INFO.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 SYSTEM_FONT_INFO.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, \"compileSystemFontInfo: Buffer overflow\");\n  return buffer.transferToFixedLength(offset);\n}\nfunction compileFontInfo(font) {\n  const systemFontInfoBuffer = font.systemFontInfo ? compileSystemFontInfo(font.systemFontInfo) : null;\n  const cssFontInfoBuffer = font.cssFontInfo ? compileCssFontInfo(font.cssFontInfo) : null;\n  const encoder = new TextEncoder();\n  const encodedStrings = {};\n  let stringsLength = 0;\n  for (const prop of FONT_INFO.strings) {\n    encodedStrings[prop] = encoder.encode(font[prop]);\n    stringsLength += 4 + encodedStrings[prop].length;\n  }\n  const lengthEstimate = FONT_INFO.OFFSET_STRINGS + 4 + stringsLength + 4 + (systemFontInfoBuffer?.byteLength ?? 0) + 4 + (cssFontInfoBuffer?.byteLength ?? 0) + 4 + (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 = FONT_INFO.bools.length;\n  let boolByte = 0,\n    boolBit = 0;\n  for (let i = 0; i < numBools; i++) {\n    const value = font[FONT_INFO.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 === FONT_INFO.OFFSET_NUMBERS, \"compileFontInfo: Boolean properties offset mismatch\");\n  for (const prop of FONT_INFO.numbers) {\n    view.setFloat64(offset, font[prop]);\n    offset += 8;\n  }\n  assert(offset === FONT_INFO.OFFSET_BBOX, \"compileFontInfo: 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 === FONT_INFO.OFFSET_FONT_MATRIX, \"compileFontInfo: 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 === FONT_INFO.OFFSET_DEFAULT_VMETRICS, \"compileFontInfo: FontMatrix properties offset mismatch\");\n  if (font.defaultVMetrics) {\n    view.setUint8(offset++, 3);\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 === FONT_INFO.OFFSET_STRINGS, \"compileFontInfo: DefaultVMetrics properties offset mismatch\");\n  view.setUint32(FONT_INFO.OFFSET_STRINGS, 0);\n  offset += 4;\n  for (const prop of FONT_INFO.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(FONT_INFO.OFFSET_STRINGS, offset - FONT_INFO.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, \"compileFontInfo: 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, \"compileFontInfo: 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, \"compileFontInfo: Buffer overflow\");\n  return buffer.transferToFixedLength(offset);\n}\nfunction compilePatternInfo(ir) {\n  let kind,\n    bbox = null,\n    coords = [],\n    colors = [],\n    colorStops = [],\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      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 / 4);\n  const nStop = colorStops.length;\n  const byteLen = 20 + nCoord * 8 + nColor * 4 + nStop * 8 + (bbox ? 16 : 0) + (background ? 3 : 0);\n  const buffer = new ArrayBuffer(byteLen);\n  const dataView = new DataView(buffer);\n  const u8data = new Uint8Array(buffer);\n  dataView.setUint8(PATTERN_INFO.KIND, kind);\n  dataView.setUint8(PATTERN_INFO.HAS_BBOX, bbox ? 1 : 0);\n  dataView.setUint8(PATTERN_INFO.HAS_BACKGROUND, background ? 1 : 0);\n  dataView.setUint8(PATTERN_INFO.SHADING_TYPE, shadingType);\n  dataView.setUint32(PATTERN_INFO.N_COORD, nCoord, true);\n  dataView.setUint32(PATTERN_INFO.N_COLOR, nColor, true);\n  dataView.setUint32(PATTERN_INFO.N_STOP, nStop, true);\n  dataView.setUint32(PATTERN_INFO.N_FIGURES, 0, 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 * 4;\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  }\n  return buffer;\n}\nfunction compileFontPathInfo(path) {\n  return path.slice().buffer;\n}\n\n;// ./src/core/encodings.js\nconst ExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\", \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nconst MacExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\", \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\", \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\", \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\", \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\", \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\", \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\", \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\", \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\", \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\", \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\", \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\", \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\", \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\", \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\", \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\", \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\", \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\nconst MacRomanEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\"];\nconst StandardEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\", \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\", \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\", \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\", \"\", \"\", \"\"];\nconst WinAnsiEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\", \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\", \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\", \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\", \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\", \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\", \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\", \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\", \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\", \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\", \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\", \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\", \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\", \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\", \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\", \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\", \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\", \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\", \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\", \"ydieresis\"];\nconst SymbolSetEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\", \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\", \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\", \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\", \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\", \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\", \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\", \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\", \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\", \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\", \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\", \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\", \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\", \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\", \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\", \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\", \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\", \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\", \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\", \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\", \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\", \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\", \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\", \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\", \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\", \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\", \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\", \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\", \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\", \"bracerightbt\", \"\"];\nconst ZapfDingbatsEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\", \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\", \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\", \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\", \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\", \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\", \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\", \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\", \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\", \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\", \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\", \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\", \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\", \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\", \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\", \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\", \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\", \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\", \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\", \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case \"WinAnsiEncoding\":\n      return WinAnsiEncoding;\n    case \"StandardEncoding\":\n      return StandardEncoding;\n    case \"MacRomanEncoding\":\n      return MacRomanEncoding;\n    case \"SymbolSetEncoding\":\n      return SymbolSetEncoding;\n    case \"ZapfDingbatsEncoding\":\n      return ZapfDingbatsEncoding;\n    case \"ExpertEncoding\":\n      return ExpertEncoding;\n    case \"MacExpertEncoding\":\n      return MacExpertEncoding;\n    default:\n      return null;\n  }\n}\n\n;// ./src/core/glyphlist.js\n\nconst getGlyphsUnicode = getLookupTableFactory(function (t) {\n  t.A = 0x0041;\n  t.AE = 0x00c6;\n  t.AEacute = 0x01fc;\n  t.AEmacron = 0x01e2;\n  t.AEsmall = 0xf7e6;\n  t.Aacute = 0x00c1;\n  t.Aacutesmall = 0xf7e1;\n  t.Abreve = 0x0102;\n  t.Abreveacute = 0x1eae;\n  t.Abrevecyrillic = 0x04d0;\n  t.Abrevedotbelow = 0x1eb6;\n  t.Abrevegrave = 0x1eb0;\n  t.Abrevehookabove = 0x1eb2;\n  t.Abrevetilde = 0x1eb4;\n  t.Acaron = 0x01cd;\n  t.Acircle = 0x24b6;\n  t.Acircumflex = 0x00c2;\n  t.Acircumflexacute = 0x1ea4;\n  t.Acircumflexdotbelow = 0x1eac;\n  t.Acircumflexgrave = 0x1ea6;\n  t.Acircumflexhookabove = 0x1ea8;\n  t.Acircumflexsmall = 0xf7e2;\n  t.Acircumflextilde = 0x1eaa;\n  t.Acute = 0xf6c9;\n  t.Acutesmall = 0xf7b4;\n  t.Acyrillic = 0x0410;\n  t.Adblgrave = 0x0200;\n  t.Adieresis = 0x00c4;\n  t.Adieresiscyrillic = 0x04d2;\n  t.Adieresismacron = 0x01de;\n  t.Adieresissmall = 0xf7e4;\n  t.Adotbelow = 0x1ea0;\n  t.Adotmacron = 0x01e0;\n  t.Agrave = 0x00c0;\n  t.Agravesmall = 0xf7e0;\n  t.Ahookabove = 0x1ea2;\n  t.Aiecyrillic = 0x04d4;\n  t.Ainvertedbreve = 0x0202;\n  t.Alpha = 0x0391;\n  t.Alphatonos = 0x0386;\n  t.Amacron = 0x0100;\n  t.Amonospace = 0xff21;\n  t.Aogonek = 0x0104;\n  t.Aring = 0x00c5;\n  t.Aringacute = 0x01fa;\n  t.Aringbelow = 0x1e00;\n  t.Aringsmall = 0xf7e5;\n  t.Asmall = 0xf761;\n  t.Atilde = 0x00c3;\n  t.Atildesmall = 0xf7e3;\n  t.Aybarmenian = 0x0531;\n  t.B = 0x0042;\n  t.Bcircle = 0x24b7;\n  t.Bdotaccent = 0x1e02;\n  t.Bdotbelow = 0x1e04;\n  t.Becyrillic = 0x0411;\n  t.Benarmenian = 0x0532;\n  t.Beta = 0x0392;\n  t.Bhook = 0x0181;\n  t.Blinebelow = 0x1e06;\n  t.Bmonospace = 0xff22;\n  t.Brevesmall = 0xf6f4;\n  t.Bsmall = 0xf762;\n  t.Btopbar = 0x0182;\n  t.C = 0x0043;\n  t.Caarmenian = 0x053e;\n  t.Cacute = 0x0106;\n  t.Caron = 0xf6ca;\n  t.Caronsmall = 0xf6f5;\n  t.Ccaron = 0x010c;\n  t.Ccedilla = 0x00c7;\n  t.Ccedillaacute = 0x1e08;\n  t.Ccedillasmall = 0xf7e7;\n  t.Ccircle = 0x24b8;\n  t.Ccircumflex = 0x0108;\n  t.Cdot = 0x010a;\n  t.Cdotaccent = 0x010a;\n  t.Cedillasmall = 0xf7b8;\n  t.Chaarmenian = 0x0549;\n  t.Cheabkhasiancyrillic = 0x04bc;\n  t.Checyrillic = 0x0427;\n  t.Chedescenderabkhasiancyrillic = 0x04be;\n  t.Chedescendercyrillic = 0x04b6;\n  t.Chedieresiscyrillic = 0x04f4;\n  t.Cheharmenian = 0x0543;\n  t.Chekhakassiancyrillic = 0x04cb;\n  t.Cheverticalstrokecyrillic = 0x04b8;\n  t.Chi = 0x03a7;\n  t.Chook = 0x0187;\n  t.Circumflexsmall = 0xf6f6;\n  t.Cmonospace = 0xff23;\n  t.Coarmenian = 0x0551;\n  t.Csmall = 0xf763;\n  t.D = 0x0044;\n  t.DZ = 0x01f1;\n  t.DZcaron = 0x01c4;\n  t.Daarmenian = 0x0534;\n  t.Dafrican = 0x0189;\n  t.Dcaron = 0x010e;\n  t.Dcedilla = 0x1e10;\n  t.Dcircle = 0x24b9;\n  t.Dcircumflexbelow = 0x1e12;\n  t.Dcroat = 0x0110;\n  t.Ddotaccent = 0x1e0a;\n  t.Ddotbelow = 0x1e0c;\n  t.Decyrillic = 0x0414;\n  t.Deicoptic = 0x03ee;\n  t.Delta = 0x2206;\n  t.Deltagreek = 0x0394;\n  t.Dhook = 0x018a;\n  t.Dieresis = 0xf6cb;\n  t.DieresisAcute = 0xf6cc;\n  t.DieresisGrave = 0xf6cd;\n  t.Dieresissmall = 0xf7a8;\n  t.Digammagreek = 0x03dc;\n  t.Djecyrillic = 0x0402;\n  t.Dlinebelow = 0x1e0e;\n  t.Dmonospace = 0xff24;\n  t.Dotaccentsmall = 0xf6f7;\n  t.Dslash = 0x0110;\n  t.Dsmall = 0xf764;\n  t.Dtopbar = 0x018b;\n  t.Dz = 0x01f2;\n  t.Dzcaron = 0x01c5;\n  t.Dzeabkhasiancyrillic = 0x04e0;\n  t.Dzecyrillic = 0x0405;\n  t.Dzhecyrillic = 0x040f;\n  t.E = 0x0045;\n  t.Eacute = 0x00c9;\n  t.Eacutesmall = 0xf7e9;\n  t.Ebreve = 0x0114;\n  t.Ecaron = 0x011a;\n  t.Ecedillabreve = 0x1e1c;\n  t.Echarmenian = 0x0535;\n  t.Ecircle = 0x24ba;\n  t.Ecircumflex = 0x00ca;\n  t.Ecircumflexacute = 0x1ebe;\n  t.Ecircumflexbelow = 0x1e18;\n  t.Ecircumflexdotbelow = 0x1ec6;\n  t.Ecircumflexgrave = 0x1ec0;\n  t.Ecircumflexhookabove = 0x1ec2;\n  t.Ecircumflexsmall = 0xf7ea;\n  t.Ecircumflextilde = 0x1ec4;\n  t.Ecyrillic = 0x0404;\n  t.Edblgrave = 0x0204;\n  t.Edieresis = 0x00cb;\n  t.Edieresissmall = 0xf7eb;\n  t.Edot = 0x0116;\n  t.Edotaccent = 0x0116;\n  t.Edotbelow = 0x1eb8;\n  t.Efcyrillic = 0x0424;\n  t.Egrave = 0x00c8;\n  t.Egravesmall = 0xf7e8;\n  t.Eharmenian = 0x0537;\n  t.Ehookabove = 0x1eba;\n  t.Eightroman = 0x2167;\n  t.Einvertedbreve = 0x0206;\n  t.Eiotifiedcyrillic = 0x0464;\n  t.Elcyrillic = 0x041b;\n  t.Elevenroman = 0x216a;\n  t.Emacron = 0x0112;\n  t.Emacronacute = 0x1e16;\n  t.Emacrongrave = 0x1e14;\n  t.Emcyrillic = 0x041c;\n  t.Emonospace = 0xff25;\n  t.Encyrillic = 0x041d;\n  t.Endescendercyrillic = 0x04a2;\n  t.Eng = 0x014a;\n  t.Enghecyrillic = 0x04a4;\n  t.Enhookcyrillic = 0x04c7;\n  t.Eogonek = 0x0118;\n  t.Eopen = 0x0190;\n  t.Epsilon = 0x0395;\n  t.Epsilontonos = 0x0388;\n  t.Ercyrillic = 0x0420;\n  t.Ereversed = 0x018e;\n  t.Ereversedcyrillic = 0x042d;\n  t.Escyrillic = 0x0421;\n  t.Esdescendercyrillic = 0x04aa;\n  t.Esh = 0x01a9;\n  t.Esmall = 0xf765;\n  t.Eta = 0x0397;\n  t.Etarmenian = 0x0538;\n  t.Etatonos = 0x0389;\n  t.Eth = 0x00d0;\n  t.Ethsmall = 0xf7f0;\n  t.Etilde = 0x1ebc;\n  t.Etildebelow = 0x1e1a;\n  t.Euro = 0x20ac;\n  t.Ezh = 0x01b7;\n  t.Ezhcaron = 0x01ee;\n  t.Ezhreversed = 0x01b8;\n  t.F = 0x0046;\n  t.Fcircle = 0x24bb;\n  t.Fdotaccent = 0x1e1e;\n  t.Feharmenian = 0x0556;\n  t.Feicoptic = 0x03e4;\n  t.Fhook = 0x0191;\n  t.Fitacyrillic = 0x0472;\n  t.Fiveroman = 0x2164;\n  t.Fmonospace = 0xff26;\n  t.Fourroman = 0x2163;\n  t.Fsmall = 0xf766;\n  t.G = 0x0047;\n  t.GBsquare = 0x3387;\n  t.Gacute = 0x01f4;\n  t.Gamma = 0x0393;\n  t.Gammaafrican = 0x0194;\n  t.Gangiacoptic = 0x03ea;\n  t.Gbreve = 0x011e;\n  t.Gcaron = 0x01e6;\n  t.Gcedilla = 0x0122;\n  t.Gcircle = 0x24bc;\n  t.Gcircumflex = 0x011c;\n  t.Gcommaaccent = 0x0122;\n  t.Gdot = 0x0120;\n  t.Gdotaccent = 0x0120;\n  t.Gecyrillic = 0x0413;\n  t.Ghadarmenian = 0x0542;\n  t.Ghemiddlehookcyrillic = 0x0494;\n  t.Ghestrokecyrillic = 0x0492;\n  t.Gheupturncyrillic = 0x0490;\n  t.Ghook = 0x0193;\n  t.Gimarmenian = 0x0533;\n  t.Gjecyrillic = 0x0403;\n  t.Gmacron = 0x1e20;\n  t.Gmonospace = 0xff27;\n  t.Grave = 0xf6ce;\n  t.Gravesmall = 0xf760;\n  t.Gsmall = 0xf767;\n  t.Gsmallhook = 0x029b;\n  t.Gstroke = 0x01e4;\n  t.H = 0x0048;\n  t.H18533 = 0x25cf;\n  t.H18543 = 0x25aa;\n  t.H18551 = 0x25ab;\n  t.H22073 = 0x25a1;\n  t.HPsquare = 0x33cb;\n  t.Haabkhasiancyrillic = 0x04a8;\n  t.Hadescendercyrillic = 0x04b2;\n  t.Hardsigncyrillic = 0x042a;\n  t.Hbar = 0x0126;\n  t.Hbrevebelow = 0x1e2a;\n  t.Hcedilla = 0x1e28;\n  t.Hcircle = 0x24bd;\n  t.Hcircumflex = 0x0124;\n  t.Hdieresis = 0x1e26;\n  t.Hdotaccent = 0x1e22;\n  t.Hdotbelow = 0x1e24;\n  t.Hmonospace = 0xff28;\n  t.Hoarmenian = 0x0540;\n  t.Horicoptic = 0x03e8;\n  t.Hsmall = 0xf768;\n  t.Hungarumlaut = 0xf6cf;\n  t.Hungarumlautsmall = 0xf6f8;\n  t.Hzsquare = 0x3390;\n  t.I = 0x0049;\n  t.IAcyrillic = 0x042f;\n  t.IJ = 0x0132;\n  t.IUcyrillic = 0x042e;\n  t.Iacute = 0x00cd;\n  t.Iacutesmall = 0xf7ed;\n  t.Ibreve = 0x012c;\n  t.Icaron = 0x01cf;\n  t.Icircle = 0x24be;\n  t.Icircumflex = 0x00ce;\n  t.Icircumflexsmall = 0xf7ee;\n  t.Icyrillic = 0x0406;\n  t.Idblgrave = 0x0208;\n  t.Idieresis = 0x00cf;\n  t.Idieresisacute = 0x1e2e;\n  t.Idieresiscyrillic = 0x04e4;\n  t.Idieresissmall = 0xf7ef;\n  t.Idot = 0x0130;\n  t.Idotaccent = 0x0130;\n  t.Idotbelow = 0x1eca;\n  t.Iebrevecyrillic = 0x04d6;\n  t.Iecyrillic = 0x0415;\n  t.Ifraktur = 0x2111;\n  t.Igrave = 0x00cc;\n  t.Igravesmall = 0xf7ec;\n  t.Ihookabove = 0x1ec8;\n  t.Iicyrillic = 0x0418;\n  t.Iinvertedbreve = 0x020a;\n  t.Iishortcyrillic = 0x0419;\n  t.Imacron = 0x012a;\n  t.Imacroncyrillic = 0x04e2;\n  t.Imonospace = 0xff29;\n  t.Iniarmenian = 0x053b;\n  t.Iocyrillic = 0x0401;\n  t.Iogonek = 0x012e;\n  t.Iota = 0x0399;\n  t.Iotaafrican = 0x0196;\n  t.Iotadieresis = 0x03aa;\n  t.Iotatonos = 0x038a;\n  t.Ismall = 0xf769;\n  t.Istroke = 0x0197;\n  t.Itilde = 0x0128;\n  t.Itildebelow = 0x1e2c;\n  t.Izhitsacyrillic = 0x0474;\n  t.Izhitsadblgravecyrillic = 0x0476;\n  t.J = 0x004a;\n  t.Jaarmenian = 0x0541;\n  t.Jcircle = 0x24bf;\n  t.Jcircumflex = 0x0134;\n  t.Jecyrillic = 0x0408;\n  t.Jheharmenian = 0x054b;\n  t.Jmonospace = 0xff2a;\n  t.Jsmall = 0xf76a;\n  t.K = 0x004b;\n  t.KBsquare = 0x3385;\n  t.KKsquare = 0x33cd;\n  t.Kabashkircyrillic = 0x04a0;\n  t.Kacute = 0x1e30;\n  t.Kacyrillic = 0x041a;\n  t.Kadescendercyrillic = 0x049a;\n  t.Kahookcyrillic = 0x04c3;\n  t.Kappa = 0x039a;\n  t.Kastrokecyrillic = 0x049e;\n  t.Kaverticalstrokecyrillic = 0x049c;\n  t.Kcaron = 0x01e8;\n  t.Kcedilla = 0x0136;\n  t.Kcircle = 0x24c0;\n  t.Kcommaaccent = 0x0136;\n  t.Kdotbelow = 0x1e32;\n  t.Keharmenian = 0x0554;\n  t.Kenarmenian = 0x053f;\n  t.Khacyrillic = 0x0425;\n  t.Kheicoptic = 0x03e6;\n  t.Khook = 0x0198;\n  t.Kjecyrillic = 0x040c;\n  t.Klinebelow = 0x1e34;\n  t.Kmonospace = 0xff2b;\n  t.Koppacyrillic = 0x0480;\n  t.Koppagreek = 0x03de;\n  t.Ksicyrillic = 0x046e;\n  t.Ksmall = 0xf76b;\n  t.L = 0x004c;\n  t.LJ = 0x01c7;\n  t.LL = 0xf6bf;\n  t.Lacute = 0x0139;\n  t.Lambda = 0x039b;\n  t.Lcaron = 0x013d;\n  t.Lcedilla = 0x013b;\n  t.Lcircle = 0x24c1;\n  t.Lcircumflexbelow = 0x1e3c;\n  t.Lcommaaccent = 0x013b;\n  t.Ldot = 0x013f;\n  t.Ldotaccent = 0x013f;\n  t.Ldotbelow = 0x1e36;\n  t.Ldotbelowmacron = 0x1e38;\n  t.Liwnarmenian = 0x053c;\n  t.Lj = 0x01c8;\n  t.Ljecyrillic = 0x0409;\n  t.Llinebelow = 0x1e3a;\n  t.Lmonospace = 0xff2c;\n  t.Lslash = 0x0141;\n  t.Lslashsmall = 0xf6f9;\n  t.Lsmall = 0xf76c;\n  t.M = 0x004d;\n  t.MBsquare = 0x3386;\n  t.Macron = 0xf6d0;\n  t.Macronsmall = 0xf7af;\n  t.Macute = 0x1e3e;\n  t.Mcircle = 0x24c2;\n  t.Mdotaccent = 0x1e40;\n  t.Mdotbelow = 0x1e42;\n  t.Menarmenian = 0x0544;\n  t.Mmonospace = 0xff2d;\n  t.Msmall = 0xf76d;\n  t.Mturned = 0x019c;\n  t.Mu = 0x039c;\n  t.N = 0x004e;\n  t.NJ = 0x01ca;\n  t.Nacute = 0x0143;\n  t.Ncaron = 0x0147;\n  t.Ncedilla = 0x0145;\n  t.Ncircle = 0x24c3;\n  t.Ncircumflexbelow = 0x1e4a;\n  t.Ncommaaccent = 0x0145;\n  t.Ndotaccent = 0x1e44;\n  t.Ndotbelow = 0x1e46;\n  t.Nhookleft = 0x019d;\n  t.Nineroman = 0x2168;\n  t.Nj = 0x01cb;\n  t.Njecyrillic = 0x040a;\n  t.Nlinebelow = 0x1e48;\n  t.Nmonospace = 0xff2e;\n  t.Nowarmenian = 0x0546;\n  t.Nsmall = 0xf76e;\n  t.Ntilde = 0x00d1;\n  t.Ntildesmall = 0xf7f1;\n  t.Nu = 0x039d;\n  t.O = 0x004f;\n  t.OE = 0x0152;\n  t.OEsmall = 0xf6fa;\n  t.Oacute = 0x00d3;\n  t.Oacutesmall = 0xf7f3;\n  t.Obarredcyrillic = 0x04e8;\n  t.Obarreddieresiscyrillic = 0x04ea;\n  t.Obreve = 0x014e;\n  t.Ocaron = 0x01d1;\n  t.Ocenteredtilde = 0x019f;\n  t.Ocircle = 0x24c4;\n  t.Ocircumflex = 0x00d4;\n  t.Ocircumflexacute = 0x1ed0;\n  t.Ocircumflexdotbelow = 0x1ed8;\n  t.Ocircumflexgrave = 0x1ed2;\n  t.Ocircumflexhookabove = 0x1ed4;\n  t.Ocircumflexsmall = 0xf7f4;\n  t.Ocircumflextilde = 0x1ed6;\n  t.Ocyrillic = 0x041e;\n  t.Odblacute = 0x0150;\n  t.Odblgrave = 0x020c;\n  t.Odieresis = 0x00d6;\n  t.Odieresiscyrillic = 0x04e6;\n  t.Odieresissmall = 0xf7f6;\n  t.Odotbelow = 0x1ecc;\n  t.Ogoneksmall = 0xf6fb;\n  t.Ograve = 0x00d2;\n  t.Ogravesmall = 0xf7f2;\n  t.Oharmenian = 0x0555;\n  t.Ohm = 0x2126;\n  t.Ohookabove = 0x1ece;\n  t.Ohorn = 0x01a0;\n  t.Ohornacute = 0x1eda;\n  t.Ohorndotbelow = 0x1ee2;\n  t.Ohorngrave = 0x1edc;\n  t.Ohornhookabove = 0x1ede;\n  t.Ohorntilde = 0x1ee0;\n  t.Ohungarumlaut = 0x0150;\n  t.Oi = 0x01a2;\n  t.Oinvertedbreve = 0x020e;\n  t.Omacron = 0x014c;\n  t.Omacronacute = 0x1e52;\n  t.Omacrongrave = 0x1e50;\n  t.Omega = 0x2126;\n  t.Omegacyrillic = 0x0460;\n  t.Omegagreek = 0x03a9;\n  t.Omegaroundcyrillic = 0x047a;\n  t.Omegatitlocyrillic = 0x047c;\n  t.Omegatonos = 0x038f;\n  t.Omicron = 0x039f;\n  t.Omicrontonos = 0x038c;\n  t.Omonospace = 0xff2f;\n  t.Oneroman = 0x2160;\n  t.Oogonek = 0x01ea;\n  t.Oogonekmacron = 0x01ec;\n  t.Oopen = 0x0186;\n  t.Oslash = 0x00d8;\n  t.Oslashacute = 0x01fe;\n  t.Oslashsmall = 0xf7f8;\n  t.Osmall = 0xf76f;\n  t.Ostrokeacute = 0x01fe;\n  t.Otcyrillic = 0x047e;\n  t.Otilde = 0x00d5;\n  t.Otildeacute = 0x1e4c;\n  t.Otildedieresis = 0x1e4e;\n  t.Otildesmall = 0xf7f5;\n  t.P = 0x0050;\n  t.Pacute = 0x1e54;\n  t.Pcircle = 0x24c5;\n  t.Pdotaccent = 0x1e56;\n  t.Pecyrillic = 0x041f;\n  t.Peharmenian = 0x054a;\n  t.Pemiddlehookcyrillic = 0x04a6;\n  t.Phi = 0x03a6;\n  t.Phook = 0x01a4;\n  t.Pi = 0x03a0;\n  t.Piwrarmenian = 0x0553;\n  t.Pmonospace = 0xff30;\n  t.Psi = 0x03a8;\n  t.Psicyrillic = 0x0470;\n  t.Psmall = 0xf770;\n  t.Q = 0x0051;\n  t.Qcircle = 0x24c6;\n  t.Qmonospace = 0xff31;\n  t.Qsmall = 0xf771;\n  t.R = 0x0052;\n  t.Raarmenian = 0x054c;\n  t.Racute = 0x0154;\n  t.Rcaron = 0x0158;\n  t.Rcedilla = 0x0156;\n  t.Rcircle = 0x24c7;\n  t.Rcommaaccent = 0x0156;\n  t.Rdblgrave = 0x0210;\n  t.Rdotaccent = 0x1e58;\n  t.Rdotbelow = 0x1e5a;\n  t.Rdotbelowmacron = 0x1e5c;\n  t.Reharmenian = 0x0550;\n  t.Rfraktur = 0x211c;\n  t.Rho = 0x03a1;\n  t.Ringsmall = 0xf6fc;\n  t.Rinvertedbreve = 0x0212;\n  t.Rlinebelow = 0x1e5e;\n  t.Rmonospace = 0xff32;\n  t.Rsmall = 0xf772;\n  t.Rsmallinverted = 0x0281;\n  t.Rsmallinvertedsuperior = 0x02b6;\n  t.S = 0x0053;\n  t.SF010000 = 0x250c;\n  t.SF020000 = 0x2514;\n  t.SF030000 = 0x2510;\n  t.SF040000 = 0x2518;\n  t.SF050000 = 0x253c;\n  t.SF060000 = 0x252c;\n  t.SF070000 = 0x2534;\n  t.SF080000 = 0x251c;\n  t.SF090000 = 0x2524;\n  t.SF100000 = 0x2500;\n  t.SF110000 = 0x2502;\n  t.SF190000 = 0x2561;\n  t.SF200000 = 0x2562;\n  t.SF210000 = 0x2556;\n  t.SF220000 = 0x2555;\n  t.SF230000 = 0x2563;\n  t.SF240000 = 0x2551;\n  t.SF250000 = 0x2557;\n  t.SF260000 = 0x255d;\n  t.SF270000 = 0x255c;\n  t.SF280000 = 0x255b;\n  t.SF360000 = 0x255e;\n  t.SF370000 = 0x255f;\n  t.SF380000 = 0x255a;\n  t.SF390000 = 0x2554;\n  t.SF400000 = 0x2569;\n  t.SF410000 = 0x2566;\n  t.SF420000 = 0x2560;\n  t.SF430000 = 0x2550;\n  t.SF440000 = 0x256c;\n  t.SF450000 = 0x2567;\n  t.SF460000 = 0x2568;\n  t.SF470000 = 0x2564;\n  t.SF480000 = 0x2565;\n  t.SF490000 = 0x2559;\n  t.SF500000 = 0x2558;\n  t.SF510000 = 0x2552;\n  t.SF520000 = 0x2553;\n  t.SF530000 = 0x256b;\n  t.SF540000 = 0x256a;\n  t.Sacute = 0x015a;\n  t.Sacutedotaccent = 0x1e64;\n  t.Sampigreek = 0x03e0;\n  t.Scaron = 0x0160;\n  t.Scarondotaccent = 0x1e66;\n  t.Scaronsmall = 0xf6fd;\n  t.Scedilla = 0x015e;\n  t.Schwa = 0x018f;\n  t.Schwacyrillic = 0x04d8;\n  t.Schwadieresiscyrillic = 0x04da;\n  t.Scircle = 0x24c8;\n  t.Scircumflex = 0x015c;\n  t.Scommaaccent = 0x0218;\n  t.Sdotaccent = 0x1e60;\n  t.Sdotbelow = 0x1e62;\n  t.Sdotbelowdotaccent = 0x1e68;\n  t.Seharmenian = 0x054d;\n  t.Sevenroman = 0x2166;\n  t.Shaarmenian = 0x0547;\n  t.Shacyrillic = 0x0428;\n  t.Shchacyrillic = 0x0429;\n  t.Sheicoptic = 0x03e2;\n  t.Shhacyrillic = 0x04ba;\n  t.Shimacoptic = 0x03ec;\n  t.Sigma = 0x03a3;\n  t.Sixroman = 0x2165;\n  t.Smonospace = 0xff33;\n  t.Softsigncyrillic = 0x042c;\n  t.Ssmall = 0xf773;\n  t.Stigmagreek = 0x03da;\n  t.T = 0x0054;\n  t.Tau = 0x03a4;\n  t.Tbar = 0x0166;\n  t.Tcaron = 0x0164;\n  t.Tcedilla = 0x0162;\n  t.Tcircle = 0x24c9;\n  t.Tcircumflexbelow = 0x1e70;\n  t.Tcommaaccent = 0x0162;\n  t.Tdotaccent = 0x1e6a;\n  t.Tdotbelow = 0x1e6c;\n  t.Tecyrillic = 0x0422;\n  t.Tedescendercyrillic = 0x04ac;\n  t.Tenroman = 0x2169;\n  t.Tetsecyrillic = 0x04b4;\n  t.Theta = 0x0398;\n  t.Thook = 0x01ac;\n  t.Thorn = 0x00de;\n  t.Thornsmall = 0xf7fe;\n  t.Threeroman = 0x2162;\n  t.Tildesmall = 0xf6fe;\n  t.Tiwnarmenian = 0x054f;\n  t.Tlinebelow = 0x1e6e;\n  t.Tmonospace = 0xff34;\n  t.Toarmenian = 0x0539;\n  t.Tonefive = 0x01bc;\n  t.Tonesix = 0x0184;\n  t.Tonetwo = 0x01a7;\n  t.Tretroflexhook = 0x01ae;\n  t.Tsecyrillic = 0x0426;\n  t.Tshecyrillic = 0x040b;\n  t.Tsmall = 0xf774;\n  t.Twelveroman = 0x216b;\n  t.Tworoman = 0x2161;\n  t.U = 0x0055;\n  t.Uacute = 0x00da;\n  t.Uacutesmall = 0xf7fa;\n  t.Ubreve = 0x016c;\n  t.Ucaron = 0x01d3;\n  t.Ucircle = 0x24ca;\n  t.Ucircumflex = 0x00db;\n  t.Ucircumflexbelow = 0x1e76;\n  t.Ucircumflexsmall = 0xf7fb;\n  t.Ucyrillic = 0x0423;\n  t.Udblacute = 0x0170;\n  t.Udblgrave = 0x0214;\n  t.Udieresis = 0x00dc;\n  t.Udieresisacute = 0x01d7;\n  t.Udieresisbelow = 0x1e72;\n  t.Udieresiscaron = 0x01d9;\n  t.Udieresiscyrillic = 0x04f0;\n  t.Udieresisgrave = 0x01db;\n  t.Udieresismacron = 0x01d5;\n  t.Udieresissmall = 0xf7fc;\n  t.Udotbelow = 0x1ee4;\n  t.Ugrave = 0x00d9;\n  t.Ugravesmall = 0xf7f9;\n  t.Uhookabove = 0x1ee6;\n  t.Uhorn = 0x01af;\n  t.Uhornacute = 0x1ee8;\n  t.Uhorndotbelow = 0x1ef0;\n  t.Uhorngrave = 0x1eea;\n  t.Uhornhookabove = 0x1eec;\n  t.Uhorntilde = 0x1eee;\n  t.Uhungarumlaut = 0x0170;\n  t.Uhungarumlautcyrillic = 0x04f2;\n  t.Uinvertedbreve = 0x0216;\n  t.Ukcyrillic = 0x0478;\n  t.Umacron = 0x016a;\n  t.Umacroncyrillic = 0x04ee;\n  t.Umacrondieresis = 0x1e7a;\n  t.Umonospace = 0xff35;\n  t.Uogonek = 0x0172;\n  t.Upsilon = 0x03a5;\n  t.Upsilon1 = 0x03d2;\n  t.Upsilonacutehooksymbolgreek = 0x03d3;\n  t.Upsilonafrican = 0x01b1;\n  t.Upsilondieresis = 0x03ab;\n  t.Upsilondieresishooksymbolgreek = 0x03d4;\n  t.Upsilonhooksymbol = 0x03d2;\n  t.Upsilontonos = 0x038e;\n  t.Uring = 0x016e;\n  t.Ushortcyrillic = 0x040e;\n  t.Usmall = 0xf775;\n  t.Ustraightcyrillic = 0x04ae;\n  t.Ustraightstrokecyrillic = 0x04b0;\n  t.Utilde = 0x0168;\n  t.Utildeacute = 0x1e78;\n  t.Utildebelow = 0x1e74;\n  t.V = 0x0056;\n  t.Vcircle = 0x24cb;\n  t.Vdotbelow = 0x1e7e;\n  t.Vecyrillic = 0x0412;\n  t.Vewarmenian = 0x054e;\n  t.Vhook = 0x01b2;\n  t.Vmonospace = 0xff36;\n  t.Voarmenian = 0x0548;\n  t.Vsmall = 0xf776;\n  t.Vtilde = 0x1e7c;\n  t.W = 0x0057;\n  t.Wacute = 0x1e82;\n  t.Wcircle = 0x24cc;\n  t.Wcircumflex = 0x0174;\n  t.Wdieresis = 0x1e84;\n  t.Wdotaccent = 0x1e86;\n  t.Wdotbelow = 0x1e88;\n  t.Wgrave = 0x1e80;\n  t.Wmonospace = 0xff37;\n  t.Wsmall = 0xf777;\n  t.X = 0x0058;\n  t.Xcircle = 0x24cd;\n  t.Xdieresis = 0x1e8c;\n  t.Xdotaccent = 0x1e8a;\n  t.Xeharmenian = 0x053d;\n  t.Xi = 0x039e;\n  t.Xmonospace = 0xff38;\n  t.Xsmall = 0xf778;\n  t.Y = 0x0059;\n  t.Yacute = 0x00dd;\n  t.Yacutesmall = 0xf7fd;\n  t.Yatcyrillic = 0x0462;\n  t.Ycircle = 0x24ce;\n  t.Ycircumflex = 0x0176;\n  t.Ydieresis = 0x0178;\n  t.Ydieresissmall = 0xf7ff;\n  t.Ydotaccent = 0x1e8e;\n  t.Ydotbelow = 0x1ef4;\n  t.Yericyrillic = 0x042b;\n  t.Yerudieresiscyrillic = 0x04f8;\n  t.Ygrave = 0x1ef2;\n  t.Yhook = 0x01b3;\n  t.Yhookabove = 0x1ef6;\n  t.Yiarmenian = 0x0545;\n  t.Yicyrillic = 0x0407;\n  t.Yiwnarmenian = 0x0552;\n  t.Ymonospace = 0xff39;\n  t.Ysmall = 0xf779;\n  t.Ytilde = 0x1ef8;\n  t.Yusbigcyrillic = 0x046a;\n  t.Yusbigiotifiedcyrillic = 0x046c;\n  t.Yuslittlecyrillic = 0x0466;\n  t.Yuslittleiotifiedcyrillic = 0x0468;\n  t.Z = 0x005a;\n  t.Zaarmenian = 0x0536;\n  t.Zacute = 0x0179;\n  t.Zcaron = 0x017d;\n  t.Zcaronsmall = 0xf6ff;\n  t.Zcircle = 0x24cf;\n  t.Zcircumflex = 0x1e90;\n  t.Zdot = 0x017b;\n  t.Zdotaccent = 0x017b;\n  t.Zdotbelow = 0x1e92;\n  t.Zecyrillic = 0x0417;\n  t.Zedescendercyrillic = 0x0498;\n  t.Zedieresiscyrillic = 0x04de;\n  t.Zeta = 0x0396;\n  t.Zhearmenian = 0x053a;\n  t.Zhebrevecyrillic = 0x04c1;\n  t.Zhecyrillic = 0x0416;\n  t.Zhedescendercyrillic = 0x0496;\n  t.Zhedieresiscyrillic = 0x04dc;\n  t.Zlinebelow = 0x1e94;\n  t.Zmonospace = 0xff3a;\n  t.Zsmall = 0xf77a;\n  t.Zstroke = 0x01b5;\n  t.a = 0x0061;\n  t.aabengali = 0x0986;\n  t.aacute = 0x00e1;\n  t.aadeva = 0x0906;\n  t.aagujarati = 0x0a86;\n  t.aagurmukhi = 0x0a06;\n  t.aamatragurmukhi = 0x0a3e;\n  t.aarusquare = 0x3303;\n  t.aavowelsignbengali = 0x09be;\n  t.aavowelsigndeva = 0x093e;\n  t.aavowelsigngujarati = 0x0abe;\n  t.abbreviationmarkarmenian = 0x055f;\n  t.abbreviationsigndeva = 0x0970;\n  t.abengali = 0x0985;\n  t.abopomofo = 0x311a;\n  t.abreve = 0x0103;\n  t.abreveacute = 0x1eaf;\n  t.abrevecyrillic = 0x04d1;\n  t.abrevedotbelow = 0x1eb7;\n  t.abrevegrave = 0x1eb1;\n  t.abrevehookabove = 0x1eb3;\n  t.abrevetilde = 0x1eb5;\n  t.acaron = 0x01ce;\n  t.acircle = 0x24d0;\n  t.acircumflex = 0x00e2;\n  t.acircumflexacute = 0x1ea5;\n  t.acircumflexdotbelow = 0x1ead;\n  t.acircumflexgrave = 0x1ea7;\n  t.acircumflexhookabove = 0x1ea9;\n  t.acircumflextilde = 0x1eab;\n  t.acute = 0x00b4;\n  t.acutebelowcmb = 0x0317;\n  t.acutecmb = 0x0301;\n  t.acutecomb = 0x0301;\n  t.acutedeva = 0x0954;\n  t.acutelowmod = 0x02cf;\n  t.acutetonecmb = 0x0341;\n  t.acyrillic = 0x0430;\n  t.adblgrave = 0x0201;\n  t.addakgurmukhi = 0x0a71;\n  t.adeva = 0x0905;\n  t.adieresis = 0x00e4;\n  t.adieresiscyrillic = 0x04d3;\n  t.adieresismacron = 0x01df;\n  t.adotbelow = 0x1ea1;\n  t.adotmacron = 0x01e1;\n  t.ae = 0x00e6;\n  t.aeacute = 0x01fd;\n  t.aekorean = 0x3150;\n  t.aemacron = 0x01e3;\n  t.afii00208 = 0x2015;\n  t.afii08941 = 0x20a4;\n  t.afii10017 = 0x0410;\n  t.afii10018 = 0x0411;\n  t.afii10019 = 0x0412;\n  t.afii10020 = 0x0413;\n  t.afii10021 = 0x0414;\n  t.afii10022 = 0x0415;\n  t.afii10023 = 0x0401;\n  t.afii10024 = 0x0416;\n  t.afii10025 = 0x0417;\n  t.afii10026 = 0x0418;\n  t.afii10027 = 0x0419;\n  t.afii10028 = 0x041a;\n  t.afii10029 = 0x041b;\n  t.afii10030 = 0x041c;\n  t.afii10031 = 0x041d;\n  t.afii10032 = 0x041e;\n  t.afii10033 = 0x041f;\n  t.afii10034 = 0x0420;\n  t.afii10035 = 0x0421;\n  t.afii10036 = 0x0422;\n  t.afii10037 = 0x0423;\n  t.afii10038 = 0x0424;\n  t.afii10039 = 0x0425;\n  t.afii10040 = 0x0426;\n  t.afii10041 = 0x0427;\n  t.afii10042 = 0x0428;\n  t.afii10043 = 0x0429;\n  t.afii10044 = 0x042a;\n  t.afii10045 = 0x042b;\n  t.afii10046 = 0x042c;\n  t.afii10047 = 0x042d;\n  t.afii10048 = 0x042e;\n  t.afii10049 = 0x042f;\n  t.afii10050 = 0x0490;\n  t.afii10051 = 0x0402;\n  t.afii10052 = 0x0403;\n  t.afii10053 = 0x0404;\n  t.afii10054 = 0x0405;\n  t.afii10055 = 0x0406;\n  t.afii10056 = 0x0407;\n  t.afii10057 = 0x0408;\n  t.afii10058 = 0x0409;\n  t.afii10059 = 0x040a;\n  t.afii10060 = 0x040b;\n  t.afii10061 = 0x040c;\n  t.afii10062 = 0x040e;\n  t.afii10063 = 0xf6c4;\n  t.afii10064 = 0xf6c5;\n  t.afii10065 = 0x0430;\n  t.afii10066 = 0x0431;\n  t.afii10067 = 0x0432;\n  t.afii10068 = 0x0433;\n  t.afii10069 = 0x0434;\n  t.afii10070 = 0x0435;\n  t.afii10071 = 0x0451;\n  t.afii10072 = 0x0436;\n  t.afii10073 = 0x0437;\n  t.afii10074 = 0x0438;\n  t.afii10075 = 0x0439;\n  t.afii10076 = 0x043a;\n  t.afii10077 = 0x043b;\n  t.afii10078 = 0x043c;\n  t.afii10079 = 0x043d;\n  t.afii10080 = 0x043e;\n  t.afii10081 = 0x043f;\n  t.afii10082 = 0x0440;\n  t.afii10083 = 0x0441;\n  t.afii10084 = 0x0442;\n  t.afii10085 = 0x0443;\n  t.afii10086 = 0x0444;\n  t.afii10087 = 0x0445;\n  t.afii10088 = 0x0446;\n  t.afii10089 = 0x0447;\n  t.afii10090 = 0x0448;\n  t.afii10091 = 0x0449;\n  t.afii10092 = 0x044a;\n  t.afii10093 = 0x044b;\n  t.afii10094 = 0x044c;\n  t.afii10095 = 0x044d;\n  t.afii10096 = 0x044e;\n  t.afii10097 = 0x044f;\n  t.afii10098 = 0x0491;\n  t.afii10099 = 0x0452;\n  t.afii10100 = 0x0453;\n  t.afii10101 = 0x0454;\n  t.afii10102 = 0x0455;\n  t.afii10103 = 0x0456;\n  t.afii10104 = 0x0457;\n  t.afii10105 = 0x0458;\n  t.afii10106 = 0x0459;\n  t.afii10107 = 0x045a;\n  t.afii10108 = 0x045b;\n  t.afii10109 = 0x045c;\n  t.afii10110 = 0x045e;\n  t.afii10145 = 0x040f;\n  t.afii10146 = 0x0462;\n  t.afii10147 = 0x0472;\n  t.afii10148 = 0x0474;\n  t.afii10192 = 0xf6c6;\n  t.afii10193 = 0x045f;\n  t.afii10194 = 0x0463;\n  t.afii10195 = 0x0473;\n  t.afii10196 = 0x0475;\n  t.afii10831 = 0xf6c7;\n  t.afii10832 = 0xf6c8;\n  t.afii10846 = 0x04d9;\n  t.afii299 = 0x200e;\n  t.afii300 = 0x200f;\n  t.afii301 = 0x200d;\n  t.afii57381 = 0x066a;\n  t.afii57388 = 0x060c;\n  t.afii57392 = 0x0660;\n  t.afii57393 = 0x0661;\n  t.afii57394 = 0x0662;\n  t.afii57395 = 0x0663;\n  t.afii57396 = 0x0664;\n  t.afii57397 = 0x0665;\n  t.afii57398 = 0x0666;\n  t.afii57399 = 0x0667;\n  t.afii57400 = 0x0668;\n  t.afii57401 = 0x0669;\n  t.afii57403 = 0x061b;\n  t.afii57407 = 0x061f;\n  t.afii57409 = 0x0621;\n  t.afii57410 = 0x0622;\n  t.afii57411 = 0x0623;\n  t.afii57412 = 0x0624;\n  t.afii57413 = 0x0625;\n  t.afii57414 = 0x0626;\n  t.afii57415 = 0x0627;\n  t.afii57416 = 0x0628;\n  t.afii57417 = 0x0629;\n  t.afii57418 = 0x062a;\n  t.afii57419 = 0x062b;\n  t.afii57420 = 0x062c;\n  t.afii57421 = 0x062d;\n  t.afii57422 = 0x062e;\n  t.afii57423 = 0x062f;\n  t.afii57424 = 0x0630;\n  t.afii57425 = 0x0631;\n  t.afii57426 = 0x0632;\n  t.afii57427 = 0x0633;\n  t.afii57428 = 0x0634;\n  t.afii57429 = 0x0635;\n  t.afii57430 = 0x0636;\n  t.afii57431 = 0x0637;\n  t.afii57432 = 0x0638;\n  t.afii57433 = 0x0639;\n  t.afii57434 = 0x063a;\n  t.afii57440 = 0x0640;\n  t.afii57441 = 0x0641;\n  t.afii57442 = 0x0642;\n  t.afii57443 = 0x0643;\n  t.afii57444 = 0x0644;\n  t.afii57445 = 0x0645;\n  t.afii57446 = 0x0646;\n  t.afii57448 = 0x0648;\n  t.afii57449 = 0x0649;\n  t.afii57450 = 0x064a;\n  t.afii57451 = 0x064b;\n  t.afii57452 = 0x064c;\n  t.afii57453 = 0x064d;\n  t.afii57454 = 0x064e;\n  t.afii57455 = 0x064f;\n  t.afii57456 = 0x0650;\n  t.afii57457 = 0x0651;\n  t.afii57458 = 0x0652;\n  t.afii57470 = 0x0647;\n  t.afii57505 = 0x06a4;\n  t.afii57506 = 0x067e;\n  t.afii57507 = 0x0686;\n  t.afii57508 = 0x0698;\n  t.afii57509 = 0x06af;\n  t.afii57511 = 0x0679;\n  t.afii57512 = 0x0688;\n  t.afii57513 = 0x0691;\n  t.afii57514 = 0x06ba;\n  t.afii57519 = 0x06d2;\n  t.afii57534 = 0x06d5;\n  t.afii57636 = 0x20aa;\n  t.afii57645 = 0x05be;\n  t.afii57658 = 0x05c3;\n  t.afii57664 = 0x05d0;\n  t.afii57665 = 0x05d1;\n  t.afii57666 = 0x05d2;\n  t.afii57667 = 0x05d3;\n  t.afii57668 = 0x05d4;\n  t.afii57669 = 0x05d5;\n  t.afii57670 = 0x05d6;\n  t.afii57671 = 0x05d7;\n  t.afii57672 = 0x05d8;\n  t.afii57673 = 0x05d9;\n  t.afii57674 = 0x05da;\n  t.afii57675 = 0x05db;\n  t.afii57676 = 0x05dc;\n  t.afii57677 = 0x05dd;\n  t.afii57678 = 0x05de;\n  t.afii57679 = 0x05df;\n  t.afii57680 = 0x05e0;\n  t.afii57681 = 0x05e1;\n  t.afii57682 = 0x05e2;\n  t.afii57683 = 0x05e3;\n  t.afii57684 = 0x05e4;\n  t.afii57685 = 0x05e5;\n  t.afii57686 = 0x05e6;\n  t.afii57687 = 0x05e7;\n  t.afii57688 = 0x05e8;\n  t.afii57689 = 0x05e9;\n  t.afii57690 = 0x05ea;\n  t.afii57694 = 0xfb2a;\n  t.afii57695 = 0xfb2b;\n  t.afii57700 = 0xfb4b;\n  t.afii57705 = 0xfb1f;\n  t.afii57716 = 0x05f0;\n  t.afii57717 = 0x05f1;\n  t.afii57718 = 0x05f2;\n  t.afii57723 = 0xfb35;\n  t.afii57793 = 0x05b4;\n  t.afii57794 = 0x05b5;\n  t.afii57795 = 0x05b6;\n  t.afii57796 = 0x05bb;\n  t.afii57797 = 0x05b8;\n  t.afii57798 = 0x05b7;\n  t.afii57799 = 0x05b0;\n  t.afii57800 = 0x05b2;\n  t.afii57801 = 0x05b1;\n  t.afii57802 = 0x05b3;\n  t.afii57803 = 0x05c2;\n  t.afii57804 = 0x05c1;\n  t.afii57806 = 0x05b9;\n  t.afii57807 = 0x05bc;\n  t.afii57839 = 0x05bd;\n  t.afii57841 = 0x05bf;\n  t.afii57842 = 0x05c0;\n  t.afii57929 = 0x02bc;\n  t.afii61248 = 0x2105;\n  t.afii61289 = 0x2113;\n  t.afii61352 = 0x2116;\n  t.afii61573 = 0x202c;\n  t.afii61574 = 0x202d;\n  t.afii61575 = 0x202e;\n  t.afii61664 = 0x200c;\n  t.afii63167 = 0x066d;\n  t.afii64937 = 0x02bd;\n  t.agrave = 0x00e0;\n  t.agujarati = 0x0a85;\n  t.agurmukhi = 0x0a05;\n  t.ahiragana = 0x3042;\n  t.ahookabove = 0x1ea3;\n  t.aibengali = 0x0990;\n  t.aibopomofo = 0x311e;\n  t.aideva = 0x0910;\n  t.aiecyrillic = 0x04d5;\n  t.aigujarati = 0x0a90;\n  t.aigurmukhi = 0x0a10;\n  t.aimatragurmukhi = 0x0a48;\n  t.ainarabic = 0x0639;\n  t.ainfinalarabic = 0xfeca;\n  t.aininitialarabic = 0xfecb;\n  t.ainmedialarabic = 0xfecc;\n  t.ainvertedbreve = 0x0203;\n  t.aivowelsignbengali = 0x09c8;\n  t.aivowelsigndeva = 0x0948;\n  t.aivowelsigngujarati = 0x0ac8;\n  t.akatakana = 0x30a2;\n  t.akatakanahalfwidth = 0xff71;\n  t.akorean = 0x314f;\n  t.alef = 0x05d0;\n  t.alefarabic = 0x0627;\n  t.alefdageshhebrew = 0xfb30;\n  t.aleffinalarabic = 0xfe8e;\n  t.alefhamzaabovearabic = 0x0623;\n  t.alefhamzaabovefinalarabic = 0xfe84;\n  t.alefhamzabelowarabic = 0x0625;\n  t.alefhamzabelowfinalarabic = 0xfe88;\n  t.alefhebrew = 0x05d0;\n  t.aleflamedhebrew = 0xfb4f;\n  t.alefmaddaabovearabic = 0x0622;\n  t.alefmaddaabovefinalarabic = 0xfe82;\n  t.alefmaksuraarabic = 0x0649;\n  t.alefmaksurafinalarabic = 0xfef0;\n  t.alefmaksurainitialarabic = 0xfef3;\n  t.alefmaksuramedialarabic = 0xfef4;\n  t.alefpatahhebrew = 0xfb2e;\n  t.alefqamatshebrew = 0xfb2f;\n  t.aleph = 0x2135;\n  t.allequal = 0x224c;\n  t.alpha = 0x03b1;\n  t.alphatonos = 0x03ac;\n  t.amacron = 0x0101;\n  t.amonospace = 0xff41;\n  t.ampersand = 0x0026;\n  t.ampersandmonospace = 0xff06;\n  t.ampersandsmall = 0xf726;\n  t.amsquare = 0x33c2;\n  t.anbopomofo = 0x3122;\n  t.angbopomofo = 0x3124;\n  t.angbracketleft = 0x3008;\n  t.angbracketright = 0x3009;\n  t.angkhankhuthai = 0x0e5a;\n  t.angle = 0x2220;\n  t.anglebracketleft = 0x3008;\n  t.anglebracketleftvertical = 0xfe3f;\n  t.anglebracketright = 0x3009;\n  t.anglebracketrightvertical = 0xfe40;\n  t.angleleft = 0x2329;\n  t.angleright = 0x232a;\n  t.angstrom = 0x212b;\n  t.anoteleia = 0x0387;\n  t.anudattadeva = 0x0952;\n  t.anusvarabengali = 0x0982;\n  t.anusvaradeva = 0x0902;\n  t.anusvaragujarati = 0x0a82;\n  t.aogonek = 0x0105;\n  t.apaatosquare = 0x3300;\n  t.aparen = 0x249c;\n  t.apostrophearmenian = 0x055a;\n  t.apostrophemod = 0x02bc;\n  t.apple = 0xf8ff;\n  t.approaches = 0x2250;\n  t.approxequal = 0x2248;\n  t.approxequalorimage = 0x2252;\n  t.approximatelyequal = 0x2245;\n  t.araeaekorean = 0x318e;\n  t.araeakorean = 0x318d;\n  t.arc = 0x2312;\n  t.arighthalfring = 0x1e9a;\n  t.aring = 0x00e5;\n  t.aringacute = 0x01fb;\n  t.aringbelow = 0x1e01;\n  t.arrowboth = 0x2194;\n  t.arrowdashdown = 0x21e3;\n  t.arrowdashleft = 0x21e0;\n  t.arrowdashright = 0x21e2;\n  t.arrowdashup = 0x21e1;\n  t.arrowdblboth = 0x21d4;\n  t.arrowdbldown = 0x21d3;\n  t.arrowdblleft = 0x21d0;\n  t.arrowdblright = 0x21d2;\n  t.arrowdblup = 0x21d1;\n  t.arrowdown = 0x2193;\n  t.arrowdownleft = 0x2199;\n  t.arrowdownright = 0x2198;\n  t.arrowdownwhite = 0x21e9;\n  t.arrowheaddownmod = 0x02c5;\n  t.arrowheadleftmod = 0x02c2;\n  t.arrowheadrightmod = 0x02c3;\n  t.arrowheadupmod = 0x02c4;\n  t.arrowhorizex = 0xf8e7;\n  t.arrowleft = 0x2190;\n  t.arrowleftdbl = 0x21d0;\n  t.arrowleftdblstroke = 0x21cd;\n  t.arrowleftoverright = 0x21c6;\n  t.arrowleftwhite = 0x21e6;\n  t.arrowright = 0x2192;\n  t.arrowrightdblstroke = 0x21cf;\n  t.arrowrightheavy = 0x279e;\n  t.arrowrightoverleft = 0x21c4;\n  t.arrowrightwhite = 0x21e8;\n  t.arrowtableft = 0x21e4;\n  t.arrowtabright = 0x21e5;\n  t.arrowup = 0x2191;\n  t.arrowupdn = 0x2195;\n  t.arrowupdnbse = 0x21a8;\n  t.arrowupdownbase = 0x21a8;\n  t.arrowupleft = 0x2196;\n  t.arrowupleftofdown = 0x21c5;\n  t.arrowupright = 0x2197;\n  t.arrowupwhite = 0x21e7;\n  t.arrowvertex = 0xf8e6;\n  t.asciicircum = 0x005e;\n  t.asciicircummonospace = 0xff3e;\n  t.asciitilde = 0x007e;\n  t.asciitildemonospace = 0xff5e;\n  t.ascript = 0x0251;\n  t.ascriptturned = 0x0252;\n  t.asmallhiragana = 0x3041;\n  t.asmallkatakana = 0x30a1;\n  t.asmallkatakanahalfwidth = 0xff67;\n  t.asterisk = 0x002a;\n  t.asteriskaltonearabic = 0x066d;\n  t.asteriskarabic = 0x066d;\n  t.asteriskmath = 0x2217;\n  t.asteriskmonospace = 0xff0a;\n  t.asterisksmall = 0xfe61;\n  t.asterism = 0x2042;\n  t.asuperior = 0xf6e9;\n  t.asymptoticallyequal = 0x2243;\n  t.at = 0x0040;\n  t.atilde = 0x00e3;\n  t.atmonospace = 0xff20;\n  t.atsmall = 0xfe6b;\n  t.aturned = 0x0250;\n  t.aubengali = 0x0994;\n  t.aubopomofo = 0x3120;\n  t.audeva = 0x0914;\n  t.augujarati = 0x0a94;\n  t.augurmukhi = 0x0a14;\n  t.aulengthmarkbengali = 0x09d7;\n  t.aumatragurmukhi = 0x0a4c;\n  t.auvowelsignbengali = 0x09cc;\n  t.auvowelsigndeva = 0x094c;\n  t.auvowelsigngujarati = 0x0acc;\n  t.avagrahadeva = 0x093d;\n  t.aybarmenian = 0x0561;\n  t.ayin = 0x05e2;\n  t.ayinaltonehebrew = 0xfb20;\n  t.ayinhebrew = 0x05e2;\n  t.b = 0x0062;\n  t.babengali = 0x09ac;\n  t.backslash = 0x005c;\n  t.backslashmonospace = 0xff3c;\n  t.badeva = 0x092c;\n  t.bagujarati = 0x0aac;\n  t.bagurmukhi = 0x0a2c;\n  t.bahiragana = 0x3070;\n  t.bahtthai = 0x0e3f;\n  t.bakatakana = 0x30d0;\n  t.bar = 0x007c;\n  t.barmonospace = 0xff5c;\n  t.bbopomofo = 0x3105;\n  t.bcircle = 0x24d1;\n  t.bdotaccent = 0x1e03;\n  t.bdotbelow = 0x1e05;\n  t.beamedsixteenthnotes = 0x266c;\n  t.because = 0x2235;\n  t.becyrillic = 0x0431;\n  t.beharabic = 0x0628;\n  t.behfinalarabic = 0xfe90;\n  t.behinitialarabic = 0xfe91;\n  t.behiragana = 0x3079;\n  t.behmedialarabic = 0xfe92;\n  t.behmeeminitialarabic = 0xfc9f;\n  t.behmeemisolatedarabic = 0xfc08;\n  t.behnoonfinalarabic = 0xfc6d;\n  t.bekatakana = 0x30d9;\n  t.benarmenian = 0x0562;\n  t.bet = 0x05d1;\n  t.beta = 0x03b2;\n  t.betasymbolgreek = 0x03d0;\n  t.betdagesh = 0xfb31;\n  t.betdageshhebrew = 0xfb31;\n  t.bethebrew = 0x05d1;\n  t.betrafehebrew = 0xfb4c;\n  t.bhabengali = 0x09ad;\n  t.bhadeva = 0x092d;\n  t.bhagujarati = 0x0aad;\n  t.bhagurmukhi = 0x0a2d;\n  t.bhook = 0x0253;\n  t.bihiragana = 0x3073;\n  t.bikatakana = 0x30d3;\n  t.bilabialclick = 0x0298;\n  t.bindigurmukhi = 0x0a02;\n  t.birusquare = 0x3331;\n  t.blackcircle = 0x25cf;\n  t.blackdiamond = 0x25c6;\n  t.blackdownpointingtriangle = 0x25bc;\n  t.blackleftpointingpointer = 0x25c4;\n  t.blackleftpointingtriangle = 0x25c0;\n  t.blacklenticularbracketleft = 0x3010;\n  t.blacklenticularbracketleftvertical = 0xfe3b;\n  t.blacklenticularbracketright = 0x3011;\n  t.blacklenticularbracketrightvertical = 0xfe3c;\n  t.blacklowerlefttriangle = 0x25e3;\n  t.blacklowerrighttriangle = 0x25e2;\n  t.blackrectangle = 0x25ac;\n  t.blackrightpointingpointer = 0x25ba;\n  t.blackrightpointingtriangle = 0x25b6;\n  t.blacksmallsquare = 0x25aa;\n  t.blacksmilingface = 0x263b;\n  t.blacksquare = 0x25a0;\n  t.blackstar = 0x2605;\n  t.blackupperlefttriangle = 0x25e4;\n  t.blackupperrighttriangle = 0x25e5;\n  t.blackuppointingsmalltriangle = 0x25b4;\n  t.blackuppointingtriangle = 0x25b2;\n  t.blank = 0x2423;\n  t.blinebelow = 0x1e07;\n  t.block = 0x2588;\n  t.bmonospace = 0xff42;\n  t.bobaimaithai = 0x0e1a;\n  t.bohiragana = 0x307c;\n  t.bokatakana = 0x30dc;\n  t.bparen = 0x249d;\n  t.bqsquare = 0x33c3;\n  t.braceex = 0xf8f4;\n  t.braceleft = 0x007b;\n  t.braceleftbt = 0xf8f3;\n  t.braceleftmid = 0xf8f2;\n  t.braceleftmonospace = 0xff5b;\n  t.braceleftsmall = 0xfe5b;\n  t.bracelefttp = 0xf8f1;\n  t.braceleftvertical = 0xfe37;\n  t.braceright = 0x007d;\n  t.bracerightbt = 0xf8fe;\n  t.bracerightmid = 0xf8fd;\n  t.bracerightmonospace = 0xff5d;\n  t.bracerightsmall = 0xfe5c;\n  t.bracerighttp = 0xf8fc;\n  t.bracerightvertical = 0xfe38;\n  t.bracketleft = 0x005b;\n  t.bracketleftbt = 0xf8f0;\n  t.bracketleftex = 0xf8ef;\n  t.bracketleftmonospace = 0xff3b;\n  t.bracketlefttp = 0xf8ee;\n  t.bracketright = 0x005d;\n  t.bracketrightbt = 0xf8fb;\n  t.bracketrightex = 0xf8fa;\n  t.bracketrightmonospace = 0xff3d;\n  t.bracketrighttp = 0xf8f9;\n  t.breve = 0x02d8;\n  t.brevebelowcmb = 0x032e;\n  t.brevecmb = 0x0306;\n  t.breveinvertedbelowcmb = 0x032f;\n  t.breveinvertedcmb = 0x0311;\n  t.breveinverteddoublecmb = 0x0361;\n  t.bridgebelowcmb = 0x032a;\n  t.bridgeinvertedbelowcmb = 0x033a;\n  t.brokenbar = 0x00a6;\n  t.bstroke = 0x0180;\n  t.bsuperior = 0xf6ea;\n  t.btopbar = 0x0183;\n  t.buhiragana = 0x3076;\n  t.bukatakana = 0x30d6;\n  t.bullet = 0x2022;\n  t.bulletinverse = 0x25d8;\n  t.bulletoperator = 0x2219;\n  t.bullseye = 0x25ce;\n  t.c = 0x0063;\n  t.caarmenian = 0x056e;\n  t.cabengali = 0x099a;\n  t.cacute = 0x0107;\n  t.cadeva = 0x091a;\n  t.cagujarati = 0x0a9a;\n  t.cagurmukhi = 0x0a1a;\n  t.calsquare = 0x3388;\n  t.candrabindubengali = 0x0981;\n  t.candrabinducmb = 0x0310;\n  t.candrabindudeva = 0x0901;\n  t.candrabindugujarati = 0x0a81;\n  t.capslock = 0x21ea;\n  t.careof = 0x2105;\n  t.caron = 0x02c7;\n  t.caronbelowcmb = 0x032c;\n  t.caroncmb = 0x030c;\n  t.carriagereturn = 0x21b5;\n  t.cbopomofo = 0x3118;\n  t.ccaron = 0x010d;\n  t.ccedilla = 0x00e7;\n  t.ccedillaacute = 0x1e09;\n  t.ccircle = 0x24d2;\n  t.ccircumflex = 0x0109;\n  t.ccurl = 0x0255;\n  t.cdot = 0x010b;\n  t.cdotaccent = 0x010b;\n  t.cdsquare = 0x33c5;\n  t.cedilla = 0x00b8;\n  t.cedillacmb = 0x0327;\n  t.cent = 0x00a2;\n  t.centigrade = 0x2103;\n  t.centinferior = 0xf6df;\n  t.centmonospace = 0xffe0;\n  t.centoldstyle = 0xf7a2;\n  t.centsuperior = 0xf6e0;\n  t.chaarmenian = 0x0579;\n  t.chabengali = 0x099b;\n  t.chadeva = 0x091b;\n  t.chagujarati = 0x0a9b;\n  t.chagurmukhi = 0x0a1b;\n  t.chbopomofo = 0x3114;\n  t.cheabkhasiancyrillic = 0x04bd;\n  t.checkmark = 0x2713;\n  t.checyrillic = 0x0447;\n  t.chedescenderabkhasiancyrillic = 0x04bf;\n  t.chedescendercyrillic = 0x04b7;\n  t.chedieresiscyrillic = 0x04f5;\n  t.cheharmenian = 0x0573;\n  t.chekhakassiancyrillic = 0x04cc;\n  t.cheverticalstrokecyrillic = 0x04b9;\n  t.chi = 0x03c7;\n  t.chieuchacirclekorean = 0x3277;\n  t.chieuchaparenkorean = 0x3217;\n  t.chieuchcirclekorean = 0x3269;\n  t.chieuchkorean = 0x314a;\n  t.chieuchparenkorean = 0x3209;\n  t.chochangthai = 0x0e0a;\n  t.chochanthai = 0x0e08;\n  t.chochingthai = 0x0e09;\n  t.chochoethai = 0x0e0c;\n  t.chook = 0x0188;\n  t.cieucacirclekorean = 0x3276;\n  t.cieucaparenkorean = 0x3216;\n  t.cieuccirclekorean = 0x3268;\n  t.cieuckorean = 0x3148;\n  t.cieucparenkorean = 0x3208;\n  t.cieucuparenkorean = 0x321c;\n  t.circle = 0x25cb;\n  t.circlecopyrt = 0x00a9;\n  t.circlemultiply = 0x2297;\n  t.circleot = 0x2299;\n  t.circleplus = 0x2295;\n  t.circlepostalmark = 0x3036;\n  t.circlewithlefthalfblack = 0x25d0;\n  t.circlewithrighthalfblack = 0x25d1;\n  t.circumflex = 0x02c6;\n  t.circumflexbelowcmb = 0x032d;\n  t.circumflexcmb = 0x0302;\n  t.clear = 0x2327;\n  t.clickalveolar = 0x01c2;\n  t.clickdental = 0x01c0;\n  t.clicklateral = 0x01c1;\n  t.clickretroflex = 0x01c3;\n  t.club = 0x2663;\n  t.clubsuitblack = 0x2663;\n  t.clubsuitwhite = 0x2667;\n  t.cmcubedsquare = 0x33a4;\n  t.cmonospace = 0xff43;\n  t.cmsquaredsquare = 0x33a0;\n  t.coarmenian = 0x0581;\n  t.colon = 0x003a;\n  t.colonmonetary = 0x20a1;\n  t.colonmonospace = 0xff1a;\n  t.colonsign = 0x20a1;\n  t.colonsmall = 0xfe55;\n  t.colontriangularhalfmod = 0x02d1;\n  t.colontriangularmod = 0x02d0;\n  t.comma = 0x002c;\n  t.commaabovecmb = 0x0313;\n  t.commaaboverightcmb = 0x0315;\n  t.commaaccent = 0xf6c3;\n  t.commaarabic = 0x060c;\n  t.commaarmenian = 0x055d;\n  t.commainferior = 0xf6e1;\n  t.commamonospace = 0xff0c;\n  t.commareversedabovecmb = 0x0314;\n  t.commareversedmod = 0x02bd;\n  t.commasmall = 0xfe50;\n  t.commasuperior = 0xf6e2;\n  t.commaturnedabovecmb = 0x0312;\n  t.commaturnedmod = 0x02bb;\n  t.compass = 0x263c;\n  t.congruent = 0x2245;\n  t.contourintegral = 0x222e;\n  t.control = 0x2303;\n  t.controlACK = 0x0006;\n  t.controlBEL = 0x0007;\n  t.controlBS = 0x0008;\n  t.controlCAN = 0x0018;\n  t.controlCR = 0x000d;\n  t.controlDC1 = 0x0011;\n  t.controlDC2 = 0x0012;\n  t.controlDC3 = 0x0013;\n  t.controlDC4 = 0x0014;\n  t.controlDEL = 0x007f;\n  t.controlDLE = 0x0010;\n  t.controlEM = 0x0019;\n  t.controlENQ = 0x0005;\n  t.controlEOT = 0x0004;\n  t.controlESC = 0x001b;\n  t.controlETB = 0x0017;\n  t.controlETX = 0x0003;\n  t.controlFF = 0x000c;\n  t.controlFS = 0x001c;\n  t.controlGS = 0x001d;\n  t.controlHT = 0x0009;\n  t.controlLF = 0x000a;\n  t.controlNAK = 0x0015;\n  t.controlNULL = 0x0000;\n  t.controlRS = 0x001e;\n  t.controlSI = 0x000f;\n  t.controlSO = 0x000e;\n  t.controlSOT = 0x0002;\n  t.controlSTX = 0x0001;\n  t.controlSUB = 0x001a;\n  t.controlSYN = 0x0016;\n  t.controlUS = 0x001f;\n  t.controlVT = 0x000b;\n  t.copyright = 0x00a9;\n  t.copyrightsans = 0xf8e9;\n  t.copyrightserif = 0xf6d9;\n  t.cornerbracketleft = 0x300c;\n  t.cornerbracketlefthalfwidth = 0xff62;\n  t.cornerbracketleftvertical = 0xfe41;\n  t.cornerbracketright = 0x300d;\n  t.cornerbracketrighthalfwidth = 0xff63;\n  t.cornerbracketrightvertical = 0xfe42;\n  t.corporationsquare = 0x337f;\n  t.cosquare = 0x33c7;\n  t.coverkgsquare = 0x33c6;\n  t.cparen = 0x249e;\n  t.cruzeiro = 0x20a2;\n  t.cstretched = 0x0297;\n  t.curlyand = 0x22cf;\n  t.curlyor = 0x22ce;\n  t.currency = 0x00a4;\n  t.cyrBreve = 0xf6d1;\n  t.cyrFlex = 0xf6d2;\n  t.cyrbreve = 0xf6d4;\n  t.cyrflex = 0xf6d5;\n  t.d = 0x0064;\n  t.daarmenian = 0x0564;\n  t.dabengali = 0x09a6;\n  t.dadarabic = 0x0636;\n  t.dadeva = 0x0926;\n  t.dadfinalarabic = 0xfebe;\n  t.dadinitialarabic = 0xfebf;\n  t.dadmedialarabic = 0xfec0;\n  t.dagesh = 0x05bc;\n  t.dageshhebrew = 0x05bc;\n  t.dagger = 0x2020;\n  t.daggerdbl = 0x2021;\n  t.dagujarati = 0x0aa6;\n  t.dagurmukhi = 0x0a26;\n  t.dahiragana = 0x3060;\n  t.dakatakana = 0x30c0;\n  t.dalarabic = 0x062f;\n  t.dalet = 0x05d3;\n  t.daletdagesh = 0xfb33;\n  t.daletdageshhebrew = 0xfb33;\n  t.dalethebrew = 0x05d3;\n  t.dalfinalarabic = 0xfeaa;\n  t.dammaarabic = 0x064f;\n  t.dammalowarabic = 0x064f;\n  t.dammatanaltonearabic = 0x064c;\n  t.dammatanarabic = 0x064c;\n  t.danda = 0x0964;\n  t.dargahebrew = 0x05a7;\n  t.dargalefthebrew = 0x05a7;\n  t.dasiapneumatacyrilliccmb = 0x0485;\n  t.dblGrave = 0xf6d3;\n  t.dblanglebracketleft = 0x300a;\n  t.dblanglebracketleftvertical = 0xfe3d;\n  t.dblanglebracketright = 0x300b;\n  t.dblanglebracketrightvertical = 0xfe3e;\n  t.dblarchinvertedbelowcmb = 0x032b;\n  t.dblarrowleft = 0x21d4;\n  t.dblarrowright = 0x21d2;\n  t.dbldanda = 0x0965;\n  t.dblgrave = 0xf6d6;\n  t.dblgravecmb = 0x030f;\n  t.dblintegral = 0x222c;\n  t.dbllowline = 0x2017;\n  t.dbllowlinecmb = 0x0333;\n  t.dbloverlinecmb = 0x033f;\n  t.dblprimemod = 0x02ba;\n  t.dblverticalbar = 0x2016;\n  t.dblverticallineabovecmb = 0x030e;\n  t.dbopomofo = 0x3109;\n  t.dbsquare = 0x33c8;\n  t.dcaron = 0x010f;\n  t.dcedilla = 0x1e11;\n  t.dcircle = 0x24d3;\n  t.dcircumflexbelow = 0x1e13;\n  t.dcroat = 0x0111;\n  t.ddabengali = 0x09a1;\n  t.ddadeva = 0x0921;\n  t.ddagujarati = 0x0aa1;\n  t.ddagurmukhi = 0x0a21;\n  t.ddalarabic = 0x0688;\n  t.ddalfinalarabic = 0xfb89;\n  t.dddhadeva = 0x095c;\n  t.ddhabengali = 0x09a2;\n  t.ddhadeva = 0x0922;\n  t.ddhagujarati = 0x0aa2;\n  t.ddhagurmukhi = 0x0a22;\n  t.ddotaccent = 0x1e0b;\n  t.ddotbelow = 0x1e0d;\n  t.decimalseparatorarabic = 0x066b;\n  t.decimalseparatorpersian = 0x066b;\n  t.decyrillic = 0x0434;\n  t.degree = 0x00b0;\n  t.dehihebrew = 0x05ad;\n  t.dehiragana = 0x3067;\n  t.deicoptic = 0x03ef;\n  t.dekatakana = 0x30c7;\n  t.deleteleft = 0x232b;\n  t.deleteright = 0x2326;\n  t.delta = 0x03b4;\n  t.deltaturned = 0x018d;\n  t.denominatorminusonenumeratorbengali = 0x09f8;\n  t.dezh = 0x02a4;\n  t.dhabengali = 0x09a7;\n  t.dhadeva = 0x0927;\n  t.dhagujarati = 0x0aa7;\n  t.dhagurmukhi = 0x0a27;\n  t.dhook = 0x0257;\n  t.dialytikatonos = 0x0385;\n  t.dialytikatonoscmb = 0x0344;\n  t.diamond = 0x2666;\n  t.diamondsuitwhite = 0x2662;\n  t.dieresis = 0x00a8;\n  t.dieresisacute = 0xf6d7;\n  t.dieresisbelowcmb = 0x0324;\n  t.dieresiscmb = 0x0308;\n  t.dieresisgrave = 0xf6d8;\n  t.dieresistonos = 0x0385;\n  t.dihiragana = 0x3062;\n  t.dikatakana = 0x30c2;\n  t.dittomark = 0x3003;\n  t.divide = 0x00f7;\n  t.divides = 0x2223;\n  t.divisionslash = 0x2215;\n  t.djecyrillic = 0x0452;\n  t.dkshade = 0x2593;\n  t.dlinebelow = 0x1e0f;\n  t.dlsquare = 0x3397;\n  t.dmacron = 0x0111;\n  t.dmonospace = 0xff44;\n  t.dnblock = 0x2584;\n  t.dochadathai = 0x0e0e;\n  t.dodekthai = 0x0e14;\n  t.dohiragana = 0x3069;\n  t.dokatakana = 0x30c9;\n  t.dollar = 0x0024;\n  t.dollarinferior = 0xf6e3;\n  t.dollarmonospace = 0xff04;\n  t.dollaroldstyle = 0xf724;\n  t.dollarsmall = 0xfe69;\n  t.dollarsuperior = 0xf6e4;\n  t.dong = 0x20ab;\n  t.dorusquare = 0x3326;\n  t.dotaccent = 0x02d9;\n  t.dotaccentcmb = 0x0307;\n  t.dotbelowcmb = 0x0323;\n  t.dotbelowcomb = 0x0323;\n  t.dotkatakana = 0x30fb;\n  t.dotlessi = 0x0131;\n  t.dotlessj = 0xf6be;\n  t.dotlessjstrokehook = 0x0284;\n  t.dotmath = 0x22c5;\n  t.dottedcircle = 0x25cc;\n  t.doubleyodpatah = 0xfb1f;\n  t.doubleyodpatahhebrew = 0xfb1f;\n  t.downtackbelowcmb = 0x031e;\n  t.downtackmod = 0x02d5;\n  t.dparen = 0x249f;\n  t.dsuperior = 0xf6eb;\n  t.dtail = 0x0256;\n  t.dtopbar = 0x018c;\n  t.duhiragana = 0x3065;\n  t.dukatakana = 0x30c5;\n  t.dz = 0x01f3;\n  t.dzaltone = 0x02a3;\n  t.dzcaron = 0x01c6;\n  t.dzcurl = 0x02a5;\n  t.dzeabkhasiancyrillic = 0x04e1;\n  t.dzecyrillic = 0x0455;\n  t.dzhecyrillic = 0x045f;\n  t.e = 0x0065;\n  t.eacute = 0x00e9;\n  t.earth = 0x2641;\n  t.ebengali = 0x098f;\n  t.ebopomofo = 0x311c;\n  t.ebreve = 0x0115;\n  t.ecandradeva = 0x090d;\n  t.ecandragujarati = 0x0a8d;\n  t.ecandravowelsigndeva = 0x0945;\n  t.ecandravowelsigngujarati = 0x0ac5;\n  t.ecaron = 0x011b;\n  t.ecedillabreve = 0x1e1d;\n  t.echarmenian = 0x0565;\n  t.echyiwnarmenian = 0x0587;\n  t.ecircle = 0x24d4;\n  t.ecircumflex = 0x00ea;\n  t.ecircumflexacute = 0x1ebf;\n  t.ecircumflexbelow = 0x1e19;\n  t.ecircumflexdotbelow = 0x1ec7;\n  t.ecircumflexgrave = 0x1ec1;\n  t.ecircumflexhookabove = 0x1ec3;\n  t.ecircumflextilde = 0x1ec5;\n  t.ecyrillic = 0x0454;\n  t.edblgrave = 0x0205;\n  t.edeva = 0x090f;\n  t.edieresis = 0x00eb;\n  t.edot = 0x0117;\n  t.edotaccent = 0x0117;\n  t.edotbelow = 0x1eb9;\n  t.eegurmukhi = 0x0a0f;\n  t.eematragurmukhi = 0x0a47;\n  t.efcyrillic = 0x0444;\n  t.egrave = 0x00e8;\n  t.egujarati = 0x0a8f;\n  t.eharmenian = 0x0567;\n  t.ehbopomofo = 0x311d;\n  t.ehiragana = 0x3048;\n  t.ehookabove = 0x1ebb;\n  t.eibopomofo = 0x311f;\n  t.eight = 0x0038;\n  t.eightarabic = 0x0668;\n  t.eightbengali = 0x09ee;\n  t.eightcircle = 0x2467;\n  t.eightcircleinversesansserif = 0x2791;\n  t.eightdeva = 0x096e;\n  t.eighteencircle = 0x2471;\n  t.eighteenparen = 0x2485;\n  t.eighteenperiod = 0x2499;\n  t.eightgujarati = 0x0aee;\n  t.eightgurmukhi = 0x0a6e;\n  t.eighthackarabic = 0x0668;\n  t.eighthangzhou = 0x3028;\n  t.eighthnotebeamed = 0x266b;\n  t.eightideographicparen = 0x3227;\n  t.eightinferior = 0x2088;\n  t.eightmonospace = 0xff18;\n  t.eightoldstyle = 0xf738;\n  t.eightparen = 0x247b;\n  t.eightperiod = 0x248f;\n  t.eightpersian = 0x06f8;\n  t.eightroman = 0x2177;\n  t.eightsuperior = 0x2078;\n  t.eightthai = 0x0e58;\n  t.einvertedbreve = 0x0207;\n  t.eiotifiedcyrillic = 0x0465;\n  t.ekatakana = 0x30a8;\n  t.ekatakanahalfwidth = 0xff74;\n  t.ekonkargurmukhi = 0x0a74;\n  t.ekorean = 0x3154;\n  t.elcyrillic = 0x043b;\n  t.element = 0x2208;\n  t.elevencircle = 0x246a;\n  t.elevenparen = 0x247e;\n  t.elevenperiod = 0x2492;\n  t.elevenroman = 0x217a;\n  t.ellipsis = 0x2026;\n  t.ellipsisvertical = 0x22ee;\n  t.emacron = 0x0113;\n  t.emacronacute = 0x1e17;\n  t.emacrongrave = 0x1e15;\n  t.emcyrillic = 0x043c;\n  t.emdash = 0x2014;\n  t.emdashvertical = 0xfe31;\n  t.emonospace = 0xff45;\n  t.emphasismarkarmenian = 0x055b;\n  t.emptyset = 0x2205;\n  t.enbopomofo = 0x3123;\n  t.encyrillic = 0x043d;\n  t.endash = 0x2013;\n  t.endashvertical = 0xfe32;\n  t.endescendercyrillic = 0x04a3;\n  t.eng = 0x014b;\n  t.engbopomofo = 0x3125;\n  t.enghecyrillic = 0x04a5;\n  t.enhookcyrillic = 0x04c8;\n  t.enspace = 0x2002;\n  t.eogonek = 0x0119;\n  t.eokorean = 0x3153;\n  t.eopen = 0x025b;\n  t.eopenclosed = 0x029a;\n  t.eopenreversed = 0x025c;\n  t.eopenreversedclosed = 0x025e;\n  t.eopenreversedhook = 0x025d;\n  t.eparen = 0x24a0;\n  t.epsilon = 0x03b5;\n  t.epsilontonos = 0x03ad;\n  t.equal = 0x003d;\n  t.equalmonospace = 0xff1d;\n  t.equalsmall = 0xfe66;\n  t.equalsuperior = 0x207c;\n  t.equivalence = 0x2261;\n  t.erbopomofo = 0x3126;\n  t.ercyrillic = 0x0440;\n  t.ereversed = 0x0258;\n  t.ereversedcyrillic = 0x044d;\n  t.escyrillic = 0x0441;\n  t.esdescendercyrillic = 0x04ab;\n  t.esh = 0x0283;\n  t.eshcurl = 0x0286;\n  t.eshortdeva = 0x090e;\n  t.eshortvowelsigndeva = 0x0946;\n  t.eshreversedloop = 0x01aa;\n  t.eshsquatreversed = 0x0285;\n  t.esmallhiragana = 0x3047;\n  t.esmallkatakana = 0x30a7;\n  t.esmallkatakanahalfwidth = 0xff6a;\n  t.estimated = 0x212e;\n  t.esuperior = 0xf6ec;\n  t.eta = 0x03b7;\n  t.etarmenian = 0x0568;\n  t.etatonos = 0x03ae;\n  t.eth = 0x00f0;\n  t.etilde = 0x1ebd;\n  t.etildebelow = 0x1e1b;\n  t.etnahtafoukhhebrew = 0x0591;\n  t.etnahtafoukhlefthebrew = 0x0591;\n  t.etnahtahebrew = 0x0591;\n  t.etnahtalefthebrew = 0x0591;\n  t.eturned = 0x01dd;\n  t.eukorean = 0x3161;\n  t.euro = 0x20ac;\n  t.evowelsignbengali = 0x09c7;\n  t.evowelsigndeva = 0x0947;\n  t.evowelsigngujarati = 0x0ac7;\n  t.exclam = 0x0021;\n  t.exclamarmenian = 0x055c;\n  t.exclamdbl = 0x203c;\n  t.exclamdown = 0x00a1;\n  t.exclamdownsmall = 0xf7a1;\n  t.exclammonospace = 0xff01;\n  t.exclamsmall = 0xf721;\n  t.existential = 0x2203;\n  t.ezh = 0x0292;\n  t.ezhcaron = 0x01ef;\n  t.ezhcurl = 0x0293;\n  t.ezhreversed = 0x01b9;\n  t.ezhtail = 0x01ba;\n  t.f = 0x0066;\n  t.fadeva = 0x095e;\n  t.fagurmukhi = 0x0a5e;\n  t.fahrenheit = 0x2109;\n  t.fathaarabic = 0x064e;\n  t.fathalowarabic = 0x064e;\n  t.fathatanarabic = 0x064b;\n  t.fbopomofo = 0x3108;\n  t.fcircle = 0x24d5;\n  t.fdotaccent = 0x1e1f;\n  t.feharabic = 0x0641;\n  t.feharmenian = 0x0586;\n  t.fehfinalarabic = 0xfed2;\n  t.fehinitialarabic = 0xfed3;\n  t.fehmedialarabic = 0xfed4;\n  t.feicoptic = 0x03e5;\n  t.female = 0x2640;\n  t.ff = 0xfb00;\n  t.f_f = 0xfb00;\n  t.ffi = 0xfb03;\n  t.f_f_i = 0xfb03;\n  t.ffl = 0xfb04;\n  t.f_f_l = 0xfb04;\n  t.fi = 0xfb01;\n  t.f_i = 0xfb01;\n  t.fifteencircle = 0x246e;\n  t.fifteenparen = 0x2482;\n  t.fifteenperiod = 0x2496;\n  t.figuredash = 0x2012;\n  t.filledbox = 0x25a0;\n  t.filledrect = 0x25ac;\n  t.finalkaf = 0x05da;\n  t.finalkafdagesh = 0xfb3a;\n  t.finalkafdageshhebrew = 0xfb3a;\n  t.finalkafhebrew = 0x05da;\n  t.finalmem = 0x05dd;\n  t.finalmemhebrew = 0x05dd;\n  t.finalnun = 0x05df;\n  t.finalnunhebrew = 0x05df;\n  t.finalpe = 0x05e3;\n  t.finalpehebrew = 0x05e3;\n  t.finaltsadi = 0x05e5;\n  t.finaltsadihebrew = 0x05e5;\n  t.firsttonechinese = 0x02c9;\n  t.fisheye = 0x25c9;\n  t.fitacyrillic = 0x0473;\n  t.five = 0x0035;\n  t.fivearabic = 0x0665;\n  t.fivebengali = 0x09eb;\n  t.fivecircle = 0x2464;\n  t.fivecircleinversesansserif = 0x278e;\n  t.fivedeva = 0x096b;\n  t.fiveeighths = 0x215d;\n  t.fivegujarati = 0x0aeb;\n  t.fivegurmukhi = 0x0a6b;\n  t.fivehackarabic = 0x0665;\n  t.fivehangzhou = 0x3025;\n  t.fiveideographicparen = 0x3224;\n  t.fiveinferior = 0x2085;\n  t.fivemonospace = 0xff15;\n  t.fiveoldstyle = 0xf735;\n  t.fiveparen = 0x2478;\n  t.fiveperiod = 0x248c;\n  t.fivepersian = 0x06f5;\n  t.fiveroman = 0x2174;\n  t.fivesuperior = 0x2075;\n  t.fivethai = 0x0e55;\n  t.fl = 0xfb02;\n  t.f_l = 0xfb02;\n  t.florin = 0x0192;\n  t.fmonospace = 0xff46;\n  t.fmsquare = 0x3399;\n  t.fofanthai = 0x0e1f;\n  t.fofathai = 0x0e1d;\n  t.fongmanthai = 0x0e4f;\n  t.forall = 0x2200;\n  t.four = 0x0034;\n  t.fourarabic = 0x0664;\n  t.fourbengali = 0x09ea;\n  t.fourcircle = 0x2463;\n  t.fourcircleinversesansserif = 0x278d;\n  t.fourdeva = 0x096a;\n  t.fourgujarati = 0x0aea;\n  t.fourgurmukhi = 0x0a6a;\n  t.fourhackarabic = 0x0664;\n  t.fourhangzhou = 0x3024;\n  t.fourideographicparen = 0x3223;\n  t.fourinferior = 0x2084;\n  t.fourmonospace = 0xff14;\n  t.fournumeratorbengali = 0x09f7;\n  t.fouroldstyle = 0xf734;\n  t.fourparen = 0x2477;\n  t.fourperiod = 0x248b;\n  t.fourpersian = 0x06f4;\n  t.fourroman = 0x2173;\n  t.foursuperior = 0x2074;\n  t.fourteencircle = 0x246d;\n  t.fourteenparen = 0x2481;\n  t.fourteenperiod = 0x2495;\n  t.fourthai = 0x0e54;\n  t.fourthtonechinese = 0x02cb;\n  t.fparen = 0x24a1;\n  t.fraction = 0x2044;\n  t.franc = 0x20a3;\n  t.g = 0x0067;\n  t.gabengali = 0x0997;\n  t.gacute = 0x01f5;\n  t.gadeva = 0x0917;\n  t.gafarabic = 0x06af;\n  t.gaffinalarabic = 0xfb93;\n  t.gafinitialarabic = 0xfb94;\n  t.gafmedialarabic = 0xfb95;\n  t.gagujarati = 0x0a97;\n  t.gagurmukhi = 0x0a17;\n  t.gahiragana = 0x304c;\n  t.gakatakana = 0x30ac;\n  t.gamma = 0x03b3;\n  t.gammalatinsmall = 0x0263;\n  t.gammasuperior = 0x02e0;\n  t.gangiacoptic = 0x03eb;\n  t.gbopomofo = 0x310d;\n  t.gbreve = 0x011f;\n  t.gcaron = 0x01e7;\n  t.gcedilla = 0x0123;\n  t.gcircle = 0x24d6;\n  t.gcircumflex = 0x011d;\n  t.gcommaaccent = 0x0123;\n  t.gdot = 0x0121;\n  t.gdotaccent = 0x0121;\n  t.gecyrillic = 0x0433;\n  t.gehiragana = 0x3052;\n  t.gekatakana = 0x30b2;\n  t.geometricallyequal = 0x2251;\n  t.gereshaccenthebrew = 0x059c;\n  t.gereshhebrew = 0x05f3;\n  t.gereshmuqdamhebrew = 0x059d;\n  t.germandbls = 0x00df;\n  t.gershayimaccenthebrew = 0x059e;\n  t.gershayimhebrew = 0x05f4;\n  t.getamark = 0x3013;\n  t.ghabengali = 0x0998;\n  t.ghadarmenian = 0x0572;\n  t.ghadeva = 0x0918;\n  t.ghagujarati = 0x0a98;\n  t.ghagurmukhi = 0x0a18;\n  t.ghainarabic = 0x063a;\n  t.ghainfinalarabic = 0xfece;\n  t.ghaininitialarabic = 0xfecf;\n  t.ghainmedialarabic = 0xfed0;\n  t.ghemiddlehookcyrillic = 0x0495;\n  t.ghestrokecyrillic = 0x0493;\n  t.gheupturncyrillic = 0x0491;\n  t.ghhadeva = 0x095a;\n  t.ghhagurmukhi = 0x0a5a;\n  t.ghook = 0x0260;\n  t.ghzsquare = 0x3393;\n  t.gihiragana = 0x304e;\n  t.gikatakana = 0x30ae;\n  t.gimarmenian = 0x0563;\n  t.gimel = 0x05d2;\n  t.gimeldagesh = 0xfb32;\n  t.gimeldageshhebrew = 0xfb32;\n  t.gimelhebrew = 0x05d2;\n  t.gjecyrillic = 0x0453;\n  t.glottalinvertedstroke = 0x01be;\n  t.glottalstop = 0x0294;\n  t.glottalstopinverted = 0x0296;\n  t.glottalstopmod = 0x02c0;\n  t.glottalstopreversed = 0x0295;\n  t.glottalstopreversedmod = 0x02c1;\n  t.glottalstopreversedsuperior = 0x02e4;\n  t.glottalstopstroke = 0x02a1;\n  t.glottalstopstrokereversed = 0x02a2;\n  t.gmacron = 0x1e21;\n  t.gmonospace = 0xff47;\n  t.gohiragana = 0x3054;\n  t.gokatakana = 0x30b4;\n  t.gparen = 0x24a2;\n  t.gpasquare = 0x33ac;\n  t.gradient = 0x2207;\n  t.grave = 0x0060;\n  t.gravebelowcmb = 0x0316;\n  t.gravecmb = 0x0300;\n  t.gravecomb = 0x0300;\n  t.gravedeva = 0x0953;\n  t.gravelowmod = 0x02ce;\n  t.gravemonospace = 0xff40;\n  t.gravetonecmb = 0x0340;\n  t.greater = 0x003e;\n  t.greaterequal = 0x2265;\n  t.greaterequalorless = 0x22db;\n  t.greatermonospace = 0xff1e;\n  t.greaterorequivalent = 0x2273;\n  t.greaterorless = 0x2277;\n  t.greateroverequal = 0x2267;\n  t.greatersmall = 0xfe65;\n  t.gscript = 0x0261;\n  t.gstroke = 0x01e5;\n  t.guhiragana = 0x3050;\n  t.guillemotleft = 0x00ab;\n  t.guillemotright = 0x00bb;\n  t.guilsinglleft = 0x2039;\n  t.guilsinglright = 0x203a;\n  t.gukatakana = 0x30b0;\n  t.guramusquare = 0x3318;\n  t.gysquare = 0x33c9;\n  t.h = 0x0068;\n  t.haabkhasiancyrillic = 0x04a9;\n  t.haaltonearabic = 0x06c1;\n  t.habengali = 0x09b9;\n  t.hadescendercyrillic = 0x04b3;\n  t.hadeva = 0x0939;\n  t.hagujarati = 0x0ab9;\n  t.hagurmukhi = 0x0a39;\n  t.haharabic = 0x062d;\n  t.hahfinalarabic = 0xfea2;\n  t.hahinitialarabic = 0xfea3;\n  t.hahiragana = 0x306f;\n  t.hahmedialarabic = 0xfea4;\n  t.haitusquare = 0x332a;\n  t.hakatakana = 0x30cf;\n  t.hakatakanahalfwidth = 0xff8a;\n  t.halantgurmukhi = 0x0a4d;\n  t.hamzaarabic = 0x0621;\n  t.hamzalowarabic = 0x0621;\n  t.hangulfiller = 0x3164;\n  t.hardsigncyrillic = 0x044a;\n  t.harpoonleftbarbup = 0x21bc;\n  t.harpoonrightbarbup = 0x21c0;\n  t.hasquare = 0x33ca;\n  t.hatafpatah = 0x05b2;\n  t.hatafpatah16 = 0x05b2;\n  t.hatafpatah23 = 0x05b2;\n  t.hatafpatah2f = 0x05b2;\n  t.hatafpatahhebrew = 0x05b2;\n  t.hatafpatahnarrowhebrew = 0x05b2;\n  t.hatafpatahquarterhebrew = 0x05b2;\n  t.hatafpatahwidehebrew = 0x05b2;\n  t.hatafqamats = 0x05b3;\n  t.hatafqamats1b = 0x05b3;\n  t.hatafqamats28 = 0x05b3;\n  t.hatafqamats34 = 0x05b3;\n  t.hatafqamatshebrew = 0x05b3;\n  t.hatafqamatsnarrowhebrew = 0x05b3;\n  t.hatafqamatsquarterhebrew = 0x05b3;\n  t.hatafqamatswidehebrew = 0x05b3;\n  t.hatafsegol = 0x05b1;\n  t.hatafsegol17 = 0x05b1;\n  t.hatafsegol24 = 0x05b1;\n  t.hatafsegol30 = 0x05b1;\n  t.hatafsegolhebrew = 0x05b1;\n  t.hatafsegolnarrowhebrew = 0x05b1;\n  t.hatafsegolquarterhebrew = 0x05b1;\n  t.hatafsegolwidehebrew = 0x05b1;\n  t.hbar = 0x0127;\n  t.hbopomofo = 0x310f;\n  t.hbrevebelow = 0x1e2b;\n  t.hcedilla = 0x1e29;\n  t.hcircle = 0x24d7;\n  t.hcircumflex = 0x0125;\n  t.hdieresis = 0x1e27;\n  t.hdotaccent = 0x1e23;\n  t.hdotbelow = 0x1e25;\n  t.he = 0x05d4;\n  t.heart = 0x2665;\n  t.heartsuitblack = 0x2665;\n  t.heartsuitwhite = 0x2661;\n  t.hedagesh = 0xfb34;\n  t.hedageshhebrew = 0xfb34;\n  t.hehaltonearabic = 0x06c1;\n  t.heharabic = 0x0647;\n  t.hehebrew = 0x05d4;\n  t.hehfinalaltonearabic = 0xfba7;\n  t.hehfinalalttwoarabic = 0xfeea;\n  t.hehfinalarabic = 0xfeea;\n  t.hehhamzaabovefinalarabic = 0xfba5;\n  t.hehhamzaaboveisolatedarabic = 0xfba4;\n  t.hehinitialaltonearabic = 0xfba8;\n  t.hehinitialarabic = 0xfeeb;\n  t.hehiragana = 0x3078;\n  t.hehmedialaltonearabic = 0xfba9;\n  t.hehmedialarabic = 0xfeec;\n  t.heiseierasquare = 0x337b;\n  t.hekatakana = 0x30d8;\n  t.hekatakanahalfwidth = 0xff8d;\n  t.hekutaarusquare = 0x3336;\n  t.henghook = 0x0267;\n  t.herutusquare = 0x3339;\n  t.het = 0x05d7;\n  t.hethebrew = 0x05d7;\n  t.hhook = 0x0266;\n  t.hhooksuperior = 0x02b1;\n  t.hieuhacirclekorean = 0x327b;\n  t.hieuhaparenkorean = 0x321b;\n  t.hieuhcirclekorean = 0x326d;\n  t.hieuhkorean = 0x314e;\n  t.hieuhparenkorean = 0x320d;\n  t.hihiragana = 0x3072;\n  t.hikatakana = 0x30d2;\n  t.hikatakanahalfwidth = 0xff8b;\n  t.hiriq = 0x05b4;\n  t.hiriq14 = 0x05b4;\n  t.hiriq21 = 0x05b4;\n  t.hiriq2d = 0x05b4;\n  t.hiriqhebrew = 0x05b4;\n  t.hiriqnarrowhebrew = 0x05b4;\n  t.hiriqquarterhebrew = 0x05b4;\n  t.hiriqwidehebrew = 0x05b4;\n  t.hlinebelow = 0x1e96;\n  t.hmonospace = 0xff48;\n  t.hoarmenian = 0x0570;\n  t.hohipthai = 0x0e2b;\n  t.hohiragana = 0x307b;\n  t.hokatakana = 0x30db;\n  t.hokatakanahalfwidth = 0xff8e;\n  t.holam = 0x05b9;\n  t.holam19 = 0x05b9;\n  t.holam26 = 0x05b9;\n  t.holam32 = 0x05b9;\n  t.holamhebrew = 0x05b9;\n  t.holamnarrowhebrew = 0x05b9;\n  t.holamquarterhebrew = 0x05b9;\n  t.holamwidehebrew = 0x05b9;\n  t.honokhukthai = 0x0e2e;\n  t.hookabovecomb = 0x0309;\n  t.hookcmb = 0x0309;\n  t.hookpalatalizedbelowcmb = 0x0321;\n  t.hookretroflexbelowcmb = 0x0322;\n  t.hoonsquare = 0x3342;\n  t.horicoptic = 0x03e9;\n  t.horizontalbar = 0x2015;\n  t.horncmb = 0x031b;\n  t.hotsprings = 0x2668;\n  t.house = 0x2302;\n  t.hparen = 0x24a3;\n  t.hsuperior = 0x02b0;\n  t.hturned = 0x0265;\n  t.huhiragana = 0x3075;\n  t.huiitosquare = 0x3333;\n  t.hukatakana = 0x30d5;\n  t.hukatakanahalfwidth = 0xff8c;\n  t.hungarumlaut = 0x02dd;\n  t.hungarumlautcmb = 0x030b;\n  t.hv = 0x0195;\n  t.hyphen = 0x002d;\n  t.hypheninferior = 0xf6e5;\n  t.hyphenmonospace = 0xff0d;\n  t.hyphensmall = 0xfe63;\n  t.hyphensuperior = 0xf6e6;\n  t.hyphentwo = 0x2010;\n  t.i = 0x0069;\n  t.iacute = 0x00ed;\n  t.iacyrillic = 0x044f;\n  t.ibengali = 0x0987;\n  t.ibopomofo = 0x3127;\n  t.ibreve = 0x012d;\n  t.icaron = 0x01d0;\n  t.icircle = 0x24d8;\n  t.icircumflex = 0x00ee;\n  t.icyrillic = 0x0456;\n  t.idblgrave = 0x0209;\n  t.ideographearthcircle = 0x328f;\n  t.ideographfirecircle = 0x328b;\n  t.ideographicallianceparen = 0x323f;\n  t.ideographiccallparen = 0x323a;\n  t.ideographiccentrecircle = 0x32a5;\n  t.ideographicclose = 0x3006;\n  t.ideographiccomma = 0x3001;\n  t.ideographiccommaleft = 0xff64;\n  t.ideographiccongratulationparen = 0x3237;\n  t.ideographiccorrectcircle = 0x32a3;\n  t.ideographicearthparen = 0x322f;\n  t.ideographicenterpriseparen = 0x323d;\n  t.ideographicexcellentcircle = 0x329d;\n  t.ideographicfestivalparen = 0x3240;\n  t.ideographicfinancialcircle = 0x3296;\n  t.ideographicfinancialparen = 0x3236;\n  t.ideographicfireparen = 0x322b;\n  t.ideographichaveparen = 0x3232;\n  t.ideographichighcircle = 0x32a4;\n  t.ideographiciterationmark = 0x3005;\n  t.ideographiclaborcircle = 0x3298;\n  t.ideographiclaborparen = 0x3238;\n  t.ideographicleftcircle = 0x32a7;\n  t.ideographiclowcircle = 0x32a6;\n  t.ideographicmedicinecircle = 0x32a9;\n  t.ideographicmetalparen = 0x322e;\n  t.ideographicmoonparen = 0x322a;\n  t.ideographicnameparen = 0x3234;\n  t.ideographicperiod = 0x3002;\n  t.ideographicprintcircle = 0x329e;\n  t.ideographicreachparen = 0x3243;\n  t.ideographicrepresentparen = 0x3239;\n  t.ideographicresourceparen = 0x323e;\n  t.ideographicrightcircle = 0x32a8;\n  t.ideographicsecretcircle = 0x3299;\n  t.ideographicselfparen = 0x3242;\n  t.ideographicsocietyparen = 0x3233;\n  t.ideographicspace = 0x3000;\n  t.ideographicspecialparen = 0x3235;\n  t.ideographicstockparen = 0x3231;\n  t.ideographicstudyparen = 0x323b;\n  t.ideographicsunparen = 0x3230;\n  t.ideographicsuperviseparen = 0x323c;\n  t.ideographicwaterparen = 0x322c;\n  t.ideographicwoodparen = 0x322d;\n  t.ideographiczero = 0x3007;\n  t.ideographmetalcircle = 0x328e;\n  t.ideographmooncircle = 0x328a;\n  t.ideographnamecircle = 0x3294;\n  t.ideographsuncircle = 0x3290;\n  t.ideographwatercircle = 0x328c;\n  t.ideographwoodcircle = 0x328d;\n  t.ideva = 0x0907;\n  t.idieresis = 0x00ef;\n  t.idieresisacute = 0x1e2f;\n  t.idieresiscyrillic = 0x04e5;\n  t.idotbelow = 0x1ecb;\n  t.iebrevecyrillic = 0x04d7;\n  t.iecyrillic = 0x0435;\n  t.ieungacirclekorean = 0x3275;\n  t.ieungaparenkorean = 0x3215;\n  t.ieungcirclekorean = 0x3267;\n  t.ieungkorean = 0x3147;\n  t.ieungparenkorean = 0x3207;\n  t.igrave = 0x00ec;\n  t.igujarati = 0x0a87;\n  t.igurmukhi = 0x0a07;\n  t.ihiragana = 0x3044;\n  t.ihookabove = 0x1ec9;\n  t.iibengali = 0x0988;\n  t.iicyrillic = 0x0438;\n  t.iideva = 0x0908;\n  t.iigujarati = 0x0a88;\n  t.iigurmukhi = 0x0a08;\n  t.iimatragurmukhi = 0x0a40;\n  t.iinvertedbreve = 0x020b;\n  t.iishortcyrillic = 0x0439;\n  t.iivowelsignbengali = 0x09c0;\n  t.iivowelsigndeva = 0x0940;\n  t.iivowelsigngujarati = 0x0ac0;\n  t.ij = 0x0133;\n  t.ikatakana = 0x30a4;\n  t.ikatakanahalfwidth = 0xff72;\n  t.ikorean = 0x3163;\n  t.ilde = 0x02dc;\n  t.iluyhebrew = 0x05ac;\n  t.imacron = 0x012b;\n  t.imacroncyrillic = 0x04e3;\n  t.imageorapproximatelyequal = 0x2253;\n  t.imatragurmukhi = 0x0a3f;\n  t.imonospace = 0xff49;\n  t.increment = 0x2206;\n  t.infinity = 0x221e;\n  t.iniarmenian = 0x056b;\n  t.integral = 0x222b;\n  t.integralbottom = 0x2321;\n  t.integralbt = 0x2321;\n  t.integralex = 0xf8f5;\n  t.integraltop = 0x2320;\n  t.integraltp = 0x2320;\n  t.intersection = 0x2229;\n  t.intisquare = 0x3305;\n  t.invbullet = 0x25d8;\n  t.invcircle = 0x25d9;\n  t.invsmileface = 0x263b;\n  t.iocyrillic = 0x0451;\n  t.iogonek = 0x012f;\n  t.iota = 0x03b9;\n  t.iotadieresis = 0x03ca;\n  t.iotadieresistonos = 0x0390;\n  t.iotalatin = 0x0269;\n  t.iotatonos = 0x03af;\n  t.iparen = 0x24a4;\n  t.irigurmukhi = 0x0a72;\n  t.ismallhiragana = 0x3043;\n  t.ismallkatakana = 0x30a3;\n  t.ismallkatakanahalfwidth = 0xff68;\n  t.issharbengali = 0x09fa;\n  t.istroke = 0x0268;\n  t.isuperior = 0xf6ed;\n  t.iterationhiragana = 0x309d;\n  t.iterationkatakana = 0x30fd;\n  t.itilde = 0x0129;\n  t.itildebelow = 0x1e2d;\n  t.iubopomofo = 0x3129;\n  t.iucyrillic = 0x044e;\n  t.ivowelsignbengali = 0x09bf;\n  t.ivowelsigndeva = 0x093f;\n  t.ivowelsigngujarati = 0x0abf;\n  t.izhitsacyrillic = 0x0475;\n  t.izhitsadblgravecyrillic = 0x0477;\n  t.j = 0x006a;\n  t.jaarmenian = 0x0571;\n  t.jabengali = 0x099c;\n  t.jadeva = 0x091c;\n  t.jagujarati = 0x0a9c;\n  t.jagurmukhi = 0x0a1c;\n  t.jbopomofo = 0x3110;\n  t.jcaron = 0x01f0;\n  t.jcircle = 0x24d9;\n  t.jcircumflex = 0x0135;\n  t.jcrossedtail = 0x029d;\n  t.jdotlessstroke = 0x025f;\n  t.jecyrillic = 0x0458;\n  t.jeemarabic = 0x062c;\n  t.jeemfinalarabic = 0xfe9e;\n  t.jeeminitialarabic = 0xfe9f;\n  t.jeemmedialarabic = 0xfea0;\n  t.jeharabic = 0x0698;\n  t.jehfinalarabic = 0xfb8b;\n  t.jhabengali = 0x099d;\n  t.jhadeva = 0x091d;\n  t.jhagujarati = 0x0a9d;\n  t.jhagurmukhi = 0x0a1d;\n  t.jheharmenian = 0x057b;\n  t.jis = 0x3004;\n  t.jmonospace = 0xff4a;\n  t.jparen = 0x24a5;\n  t.jsuperior = 0x02b2;\n  t.k = 0x006b;\n  t.kabashkircyrillic = 0x04a1;\n  t.kabengali = 0x0995;\n  t.kacute = 0x1e31;\n  t.kacyrillic = 0x043a;\n  t.kadescendercyrillic = 0x049b;\n  t.kadeva = 0x0915;\n  t.kaf = 0x05db;\n  t.kafarabic = 0x0643;\n  t.kafdagesh = 0xfb3b;\n  t.kafdageshhebrew = 0xfb3b;\n  t.kaffinalarabic = 0xfeda;\n  t.kafhebrew = 0x05db;\n  t.kafinitialarabic = 0xfedb;\n  t.kafmedialarabic = 0xfedc;\n  t.kafrafehebrew = 0xfb4d;\n  t.kagujarati = 0x0a95;\n  t.kagurmukhi = 0x0a15;\n  t.kahiragana = 0x304b;\n  t.kahookcyrillic = 0x04c4;\n  t.kakatakana = 0x30ab;\n  t.kakatakanahalfwidth = 0xff76;\n  t.kappa = 0x03ba;\n  t.kappasymbolgreek = 0x03f0;\n  t.kapyeounmieumkorean = 0x3171;\n  t.kapyeounphieuphkorean = 0x3184;\n  t.kapyeounpieupkorean = 0x3178;\n  t.kapyeounssangpieupkorean = 0x3179;\n  t.karoriisquare = 0x330d;\n  t.kashidaautoarabic = 0x0640;\n  t.kashidaautonosidebearingarabic = 0x0640;\n  t.kasmallkatakana = 0x30f5;\n  t.kasquare = 0x3384;\n  t.kasraarabic = 0x0650;\n  t.kasratanarabic = 0x064d;\n  t.kastrokecyrillic = 0x049f;\n  t.katahiraprolongmarkhalfwidth = 0xff70;\n  t.kaverticalstrokecyrillic = 0x049d;\n  t.kbopomofo = 0x310e;\n  t.kcalsquare = 0x3389;\n  t.kcaron = 0x01e9;\n  t.kcedilla = 0x0137;\n  t.kcircle = 0x24da;\n  t.kcommaaccent = 0x0137;\n  t.kdotbelow = 0x1e33;\n  t.keharmenian = 0x0584;\n  t.kehiragana = 0x3051;\n  t.kekatakana = 0x30b1;\n  t.kekatakanahalfwidth = 0xff79;\n  t.kenarmenian = 0x056f;\n  t.kesmallkatakana = 0x30f6;\n  t.kgreenlandic = 0x0138;\n  t.khabengali = 0x0996;\n  t.khacyrillic = 0x0445;\n  t.khadeva = 0x0916;\n  t.khagujarati = 0x0a96;\n  t.khagurmukhi = 0x0a16;\n  t.khaharabic = 0x062e;\n  t.khahfinalarabic = 0xfea6;\n  t.khahinitialarabic = 0xfea7;\n  t.khahmedialarabic = 0xfea8;\n  t.kheicoptic = 0x03e7;\n  t.khhadeva = 0x0959;\n  t.khhagurmukhi = 0x0a59;\n  t.khieukhacirclekorean = 0x3278;\n  t.khieukhaparenkorean = 0x3218;\n  t.khieukhcirclekorean = 0x326a;\n  t.khieukhkorean = 0x314b;\n  t.khieukhparenkorean = 0x320a;\n  t.khokhaithai = 0x0e02;\n  t.khokhonthai = 0x0e05;\n  t.khokhuatthai = 0x0e03;\n  t.khokhwaithai = 0x0e04;\n  t.khomutthai = 0x0e5b;\n  t.khook = 0x0199;\n  t.khorakhangthai = 0x0e06;\n  t.khzsquare = 0x3391;\n  t.kihiragana = 0x304d;\n  t.kikatakana = 0x30ad;\n  t.kikatakanahalfwidth = 0xff77;\n  t.kiroguramusquare = 0x3315;\n  t.kiromeetorusquare = 0x3316;\n  t.kirosquare = 0x3314;\n  t.kiyeokacirclekorean = 0x326e;\n  t.kiyeokaparenkorean = 0x320e;\n  t.kiyeokcirclekorean = 0x3260;\n  t.kiyeokkorean = 0x3131;\n  t.kiyeokparenkorean = 0x3200;\n  t.kiyeoksioskorean = 0x3133;\n  t.kjecyrillic = 0x045c;\n  t.klinebelow = 0x1e35;\n  t.klsquare = 0x3398;\n  t.kmcubedsquare = 0x33a6;\n  t.kmonospace = 0xff4b;\n  t.kmsquaredsquare = 0x33a2;\n  t.kohiragana = 0x3053;\n  t.kohmsquare = 0x33c0;\n  t.kokaithai = 0x0e01;\n  t.kokatakana = 0x30b3;\n  t.kokatakanahalfwidth = 0xff7a;\n  t.kooposquare = 0x331e;\n  t.koppacyrillic = 0x0481;\n  t.koreanstandardsymbol = 0x327f;\n  t.koroniscmb = 0x0343;\n  t.kparen = 0x24a6;\n  t.kpasquare = 0x33aa;\n  t.ksicyrillic = 0x046f;\n  t.ktsquare = 0x33cf;\n  t.kturned = 0x029e;\n  t.kuhiragana = 0x304f;\n  t.kukatakana = 0x30af;\n  t.kukatakanahalfwidth = 0xff78;\n  t.kvsquare = 0x33b8;\n  t.kwsquare = 0x33be;\n  t.l = 0x006c;\n  t.labengali = 0x09b2;\n  t.lacute = 0x013a;\n  t.ladeva = 0x0932;\n  t.lagujarati = 0x0ab2;\n  t.lagurmukhi = 0x0a32;\n  t.lakkhangyaothai = 0x0e45;\n  t.lamaleffinalarabic = 0xfefc;\n  t.lamalefhamzaabovefinalarabic = 0xfef8;\n  t.lamalefhamzaaboveisolatedarabic = 0xfef7;\n  t.lamalefhamzabelowfinalarabic = 0xfefa;\n  t.lamalefhamzabelowisolatedarabic = 0xfef9;\n  t.lamalefisolatedarabic = 0xfefb;\n  t.lamalefmaddaabovefinalarabic = 0xfef6;\n  t.lamalefmaddaaboveisolatedarabic = 0xfef5;\n  t.lamarabic = 0x0644;\n  t.lambda = 0x03bb;\n  t.lambdastroke = 0x019b;\n  t.lamed = 0x05dc;\n  t.lameddagesh = 0xfb3c;\n  t.lameddageshhebrew = 0xfb3c;\n  t.lamedhebrew = 0x05dc;\n  t.lamfinalarabic = 0xfede;\n  t.lamhahinitialarabic = 0xfcca;\n  t.laminitialarabic = 0xfedf;\n  t.lamjeeminitialarabic = 0xfcc9;\n  t.lamkhahinitialarabic = 0xfccb;\n  t.lamlamhehisolatedarabic = 0xfdf2;\n  t.lammedialarabic = 0xfee0;\n  t.lammeemhahinitialarabic = 0xfd88;\n  t.lammeeminitialarabic = 0xfccc;\n  t.largecircle = 0x25ef;\n  t.lbar = 0x019a;\n  t.lbelt = 0x026c;\n  t.lbopomofo = 0x310c;\n  t.lcaron = 0x013e;\n  t.lcedilla = 0x013c;\n  t.lcircle = 0x24db;\n  t.lcircumflexbelow = 0x1e3d;\n  t.lcommaaccent = 0x013c;\n  t.ldot = 0x0140;\n  t.ldotaccent = 0x0140;\n  t.ldotbelow = 0x1e37;\n  t.ldotbelowmacron = 0x1e39;\n  t.leftangleabovecmb = 0x031a;\n  t.lefttackbelowcmb = 0x0318;\n  t.less = 0x003c;\n  t.lessequal = 0x2264;\n  t.lessequalorgreater = 0x22da;\n  t.lessmonospace = 0xff1c;\n  t.lessorequivalent = 0x2272;\n  t.lessorgreater = 0x2276;\n  t.lessoverequal = 0x2266;\n  t.lesssmall = 0xfe64;\n  t.lezh = 0x026e;\n  t.lfblock = 0x258c;\n  t.lhookretroflex = 0x026d;\n  t.lira = 0x20a4;\n  t.liwnarmenian = 0x056c;\n  t.lj = 0x01c9;\n  t.ljecyrillic = 0x0459;\n  t.ll = 0xf6c0;\n  t.lladeva = 0x0933;\n  t.llagujarati = 0x0ab3;\n  t.llinebelow = 0x1e3b;\n  t.llladeva = 0x0934;\n  t.llvocalicbengali = 0x09e1;\n  t.llvocalicdeva = 0x0961;\n  t.llvocalicvowelsignbengali = 0x09e3;\n  t.llvocalicvowelsigndeva = 0x0963;\n  t.lmiddletilde = 0x026b;\n  t.lmonospace = 0xff4c;\n  t.lmsquare = 0x33d0;\n  t.lochulathai = 0x0e2c;\n  t.logicaland = 0x2227;\n  t.logicalnot = 0x00ac;\n  t.logicalnotreversed = 0x2310;\n  t.logicalor = 0x2228;\n  t.lolingthai = 0x0e25;\n  t.longs = 0x017f;\n  t.lowlinecenterline = 0xfe4e;\n  t.lowlinecmb = 0x0332;\n  t.lowlinedashed = 0xfe4d;\n  t.lozenge = 0x25ca;\n  t.lparen = 0x24a7;\n  t.lslash = 0x0142;\n  t.lsquare = 0x2113;\n  t.lsuperior = 0xf6ee;\n  t.ltshade = 0x2591;\n  t.luthai = 0x0e26;\n  t.lvocalicbengali = 0x098c;\n  t.lvocalicdeva = 0x090c;\n  t.lvocalicvowelsignbengali = 0x09e2;\n  t.lvocalicvowelsigndeva = 0x0962;\n  t.lxsquare = 0x33d3;\n  t.m = 0x006d;\n  t.mabengali = 0x09ae;\n  t.macron = 0x00af;\n  t.macronbelowcmb = 0x0331;\n  t.macroncmb = 0x0304;\n  t.macronlowmod = 0x02cd;\n  t.macronmonospace = 0xffe3;\n  t.macute = 0x1e3f;\n  t.madeva = 0x092e;\n  t.magujarati = 0x0aae;\n  t.magurmukhi = 0x0a2e;\n  t.mahapakhhebrew = 0x05a4;\n  t.mahapakhlefthebrew = 0x05a4;\n  t.mahiragana = 0x307e;\n  t.maichattawalowleftthai = 0xf895;\n  t.maichattawalowrightthai = 0xf894;\n  t.maichattawathai = 0x0e4b;\n  t.maichattawaupperleftthai = 0xf893;\n  t.maieklowleftthai = 0xf88c;\n  t.maieklowrightthai = 0xf88b;\n  t.maiekthai = 0x0e48;\n  t.maiekupperleftthai = 0xf88a;\n  t.maihanakatleftthai = 0xf884;\n  t.maihanakatthai = 0x0e31;\n  t.maitaikhuleftthai = 0xf889;\n  t.maitaikhuthai = 0x0e47;\n  t.maitholowleftthai = 0xf88f;\n  t.maitholowrightthai = 0xf88e;\n  t.maithothai = 0x0e49;\n  t.maithoupperleftthai = 0xf88d;\n  t.maitrilowleftthai = 0xf892;\n  t.maitrilowrightthai = 0xf891;\n  t.maitrithai = 0x0e4a;\n  t.maitriupperleftthai = 0xf890;\n  t.maiyamokthai = 0x0e46;\n  t.makatakana = 0x30de;\n  t.makatakanahalfwidth = 0xff8f;\n  t.male = 0x2642;\n  t.mansyonsquare = 0x3347;\n  t.maqafhebrew = 0x05be;\n  t.mars = 0x2642;\n  t.masoracirclehebrew = 0x05af;\n  t.masquare = 0x3383;\n  t.mbopomofo = 0x3107;\n  t.mbsquare = 0x33d4;\n  t.mcircle = 0x24dc;\n  t.mcubedsquare = 0x33a5;\n  t.mdotaccent = 0x1e41;\n  t.mdotbelow = 0x1e43;\n  t.meemarabic = 0x0645;\n  t.meemfinalarabic = 0xfee2;\n  t.meeminitialarabic = 0xfee3;\n  t.meemmedialarabic = 0xfee4;\n  t.meemmeeminitialarabic = 0xfcd1;\n  t.meemmeemisolatedarabic = 0xfc48;\n  t.meetorusquare = 0x334d;\n  t.mehiragana = 0x3081;\n  t.meizierasquare = 0x337e;\n  t.mekatakana = 0x30e1;\n  t.mekatakanahalfwidth = 0xff92;\n  t.mem = 0x05de;\n  t.memdagesh = 0xfb3e;\n  t.memdageshhebrew = 0xfb3e;\n  t.memhebrew = 0x05de;\n  t.menarmenian = 0x0574;\n  t.merkhahebrew = 0x05a5;\n  t.merkhakefulahebrew = 0x05a6;\n  t.merkhakefulalefthebrew = 0x05a6;\n  t.merkhalefthebrew = 0x05a5;\n  t.mhook = 0x0271;\n  t.mhzsquare = 0x3392;\n  t.middledotkatakanahalfwidth = 0xff65;\n  t.middot = 0x00b7;\n  t.mieumacirclekorean = 0x3272;\n  t.mieumaparenkorean = 0x3212;\n  t.mieumcirclekorean = 0x3264;\n  t.mieumkorean = 0x3141;\n  t.mieumpansioskorean = 0x3170;\n  t.mieumparenkorean = 0x3204;\n  t.mieumpieupkorean = 0x316e;\n  t.mieumsioskorean = 0x316f;\n  t.mihiragana = 0x307f;\n  t.mikatakana = 0x30df;\n  t.mikatakanahalfwidth = 0xff90;\n  t.minus = 0x2212;\n  t.minusbelowcmb = 0x0320;\n  t.minuscircle = 0x2296;\n  t.minusmod = 0x02d7;\n  t.minusplus = 0x2213;\n  t.minute = 0x2032;\n  t.miribaarusquare = 0x334a;\n  t.mirisquare = 0x3349;\n  t.mlonglegturned = 0x0270;\n  t.mlsquare = 0x3396;\n  t.mmcubedsquare = 0x33a3;\n  t.mmonospace = 0xff4d;\n  t.mmsquaredsquare = 0x339f;\n  t.mohiragana = 0x3082;\n  t.mohmsquare = 0x33c1;\n  t.mokatakana = 0x30e2;\n  t.mokatakanahalfwidth = 0xff93;\n  t.molsquare = 0x33d6;\n  t.momathai = 0x0e21;\n  t.moverssquare = 0x33a7;\n  t.moverssquaredsquare = 0x33a8;\n  t.mparen = 0x24a8;\n  t.mpasquare = 0x33ab;\n  t.mssquare = 0x33b3;\n  t.msuperior = 0xf6ef;\n  t.mturned = 0x026f;\n  t.mu = 0x00b5;\n  t.mu1 = 0x00b5;\n  t.muasquare = 0x3382;\n  t.muchgreater = 0x226b;\n  t.muchless = 0x226a;\n  t.mufsquare = 0x338c;\n  t.mugreek = 0x03bc;\n  t.mugsquare = 0x338d;\n  t.muhiragana = 0x3080;\n  t.mukatakana = 0x30e0;\n  t.mukatakanahalfwidth = 0xff91;\n  t.mulsquare = 0x3395;\n  t.multiply = 0x00d7;\n  t.mumsquare = 0x339b;\n  t.munahhebrew = 0x05a3;\n  t.munahlefthebrew = 0x05a3;\n  t.musicalnote = 0x266a;\n  t.musicalnotedbl = 0x266b;\n  t.musicflatsign = 0x266d;\n  t.musicsharpsign = 0x266f;\n  t.mussquare = 0x33b2;\n  t.muvsquare = 0x33b6;\n  t.muwsquare = 0x33bc;\n  t.mvmegasquare = 0x33b9;\n  t.mvsquare = 0x33b7;\n  t.mwmegasquare = 0x33bf;\n  t.mwsquare = 0x33bd;\n  t.n = 0x006e;\n  t.nabengali = 0x09a8;\n  t.nabla = 0x2207;\n  t.nacute = 0x0144;\n  t.nadeva = 0x0928;\n  t.nagujarati = 0x0aa8;\n  t.nagurmukhi = 0x0a28;\n  t.nahiragana = 0x306a;\n  t.nakatakana = 0x30ca;\n  t.nakatakanahalfwidth = 0xff85;\n  t.napostrophe = 0x0149;\n  t.nasquare = 0x3381;\n  t.nbopomofo = 0x310b;\n  t.nbspace = 0x00a0;\n  t.ncaron = 0x0148;\n  t.ncedilla = 0x0146;\n  t.ncircle = 0x24dd;\n  t.ncircumflexbelow = 0x1e4b;\n  t.ncommaaccent = 0x0146;\n  t.ndotaccent = 0x1e45;\n  t.ndotbelow = 0x1e47;\n  t.nehiragana = 0x306d;\n  t.nekatakana = 0x30cd;\n  t.nekatakanahalfwidth = 0xff88;\n  t.newsheqelsign = 0x20aa;\n  t.nfsquare = 0x338b;\n  t.ngabengali = 0x0999;\n  t.ngadeva = 0x0919;\n  t.ngagujarati = 0x0a99;\n  t.ngagurmukhi = 0x0a19;\n  t.ngonguthai = 0x0e07;\n  t.nhiragana = 0x3093;\n  t.nhookleft = 0x0272;\n  t.nhookretroflex = 0x0273;\n  t.nieunacirclekorean = 0x326f;\n  t.nieunaparenkorean = 0x320f;\n  t.nieuncieuckorean = 0x3135;\n  t.nieuncirclekorean = 0x3261;\n  t.nieunhieuhkorean = 0x3136;\n  t.nieunkorean = 0x3134;\n  t.nieunpansioskorean = 0x3168;\n  t.nieunparenkorean = 0x3201;\n  t.nieunsioskorean = 0x3167;\n  t.nieuntikeutkorean = 0x3166;\n  t.nihiragana = 0x306b;\n  t.nikatakana = 0x30cb;\n  t.nikatakanahalfwidth = 0xff86;\n  t.nikhahitleftthai = 0xf899;\n  t.nikhahitthai = 0x0e4d;\n  t.nine = 0x0039;\n  t.ninearabic = 0x0669;\n  t.ninebengali = 0x09ef;\n  t.ninecircle = 0x2468;\n  t.ninecircleinversesansserif = 0x2792;\n  t.ninedeva = 0x096f;\n  t.ninegujarati = 0x0aef;\n  t.ninegurmukhi = 0x0a6f;\n  t.ninehackarabic = 0x0669;\n  t.ninehangzhou = 0x3029;\n  t.nineideographicparen = 0x3228;\n  t.nineinferior = 0x2089;\n  t.ninemonospace = 0xff19;\n  t.nineoldstyle = 0xf739;\n  t.nineparen = 0x247c;\n  t.nineperiod = 0x2490;\n  t.ninepersian = 0x06f9;\n  t.nineroman = 0x2178;\n  t.ninesuperior = 0x2079;\n  t.nineteencircle = 0x2472;\n  t.nineteenparen = 0x2486;\n  t.nineteenperiod = 0x249a;\n  t.ninethai = 0x0e59;\n  t.nj = 0x01cc;\n  t.njecyrillic = 0x045a;\n  t.nkatakana = 0x30f3;\n  t.nkatakanahalfwidth = 0xff9d;\n  t.nlegrightlong = 0x019e;\n  t.nlinebelow = 0x1e49;\n  t.nmonospace = 0xff4e;\n  t.nmsquare = 0x339a;\n  t.nnabengali = 0x09a3;\n  t.nnadeva = 0x0923;\n  t.nnagujarati = 0x0aa3;\n  t.nnagurmukhi = 0x0a23;\n  t.nnnadeva = 0x0929;\n  t.nohiragana = 0x306e;\n  t.nokatakana = 0x30ce;\n  t.nokatakanahalfwidth = 0xff89;\n  t.nonbreakingspace = 0x00a0;\n  t.nonenthai = 0x0e13;\n  t.nonuthai = 0x0e19;\n  t.noonarabic = 0x0646;\n  t.noonfinalarabic = 0xfee6;\n  t.noonghunnaarabic = 0x06ba;\n  t.noonghunnafinalarabic = 0xfb9f;\n  t.nooninitialarabic = 0xfee7;\n  t.noonjeeminitialarabic = 0xfcd2;\n  t.noonjeemisolatedarabic = 0xfc4b;\n  t.noonmedialarabic = 0xfee8;\n  t.noonmeeminitialarabic = 0xfcd5;\n  t.noonmeemisolatedarabic = 0xfc4e;\n  t.noonnoonfinalarabic = 0xfc8d;\n  t.notcontains = 0x220c;\n  t.notelement = 0x2209;\n  t.notelementof = 0x2209;\n  t.notequal = 0x2260;\n  t.notgreater = 0x226f;\n  t.notgreaternorequal = 0x2271;\n  t.notgreaternorless = 0x2279;\n  t.notidentical = 0x2262;\n  t.notless = 0x226e;\n  t.notlessnorequal = 0x2270;\n  t.notparallel = 0x2226;\n  t.notprecedes = 0x2280;\n  t.notsubset = 0x2284;\n  t.notsucceeds = 0x2281;\n  t.notsuperset = 0x2285;\n  t.nowarmenian = 0x0576;\n  t.nparen = 0x24a9;\n  t.nssquare = 0x33b1;\n  t.nsuperior = 0x207f;\n  t.ntilde = 0x00f1;\n  t.nu = 0x03bd;\n  t.nuhiragana = 0x306c;\n  t.nukatakana = 0x30cc;\n  t.nukatakanahalfwidth = 0xff87;\n  t.nuktabengali = 0x09bc;\n  t.nuktadeva = 0x093c;\n  t.nuktagujarati = 0x0abc;\n  t.nuktagurmukhi = 0x0a3c;\n  t.numbersign = 0x0023;\n  t.numbersignmonospace = 0xff03;\n  t.numbersignsmall = 0xfe5f;\n  t.numeralsigngreek = 0x0374;\n  t.numeralsignlowergreek = 0x0375;\n  t.numero = 0x2116;\n  t.nun = 0x05e0;\n  t.nundagesh = 0xfb40;\n  t.nundageshhebrew = 0xfb40;\n  t.nunhebrew = 0x05e0;\n  t.nvsquare = 0x33b5;\n  t.nwsquare = 0x33bb;\n  t.nyabengali = 0x099e;\n  t.nyadeva = 0x091e;\n  t.nyagujarati = 0x0a9e;\n  t.nyagurmukhi = 0x0a1e;\n  t.o = 0x006f;\n  t.oacute = 0x00f3;\n  t.oangthai = 0x0e2d;\n  t.obarred = 0x0275;\n  t.obarredcyrillic = 0x04e9;\n  t.obarreddieresiscyrillic = 0x04eb;\n  t.obengali = 0x0993;\n  t.obopomofo = 0x311b;\n  t.obreve = 0x014f;\n  t.ocandradeva = 0x0911;\n  t.ocandragujarati = 0x0a91;\n  t.ocandravowelsigndeva = 0x0949;\n  t.ocandravowelsigngujarati = 0x0ac9;\n  t.ocaron = 0x01d2;\n  t.ocircle = 0x24de;\n  t.ocircumflex = 0x00f4;\n  t.ocircumflexacute = 0x1ed1;\n  t.ocircumflexdotbelow = 0x1ed9;\n  t.ocircumflexgrave = 0x1ed3;\n  t.ocircumflexhookabove = 0x1ed5;\n  t.ocircumflextilde = 0x1ed7;\n  t.ocyrillic = 0x043e;\n  t.odblacute = 0x0151;\n  t.odblgrave = 0x020d;\n  t.odeva = 0x0913;\n  t.odieresis = 0x00f6;\n  t.odieresiscyrillic = 0x04e7;\n  t.odotbelow = 0x1ecd;\n  t.oe = 0x0153;\n  t.oekorean = 0x315a;\n  t.ogonek = 0x02db;\n  t.ogonekcmb = 0x0328;\n  t.ograve = 0x00f2;\n  t.ogujarati = 0x0a93;\n  t.oharmenian = 0x0585;\n  t.ohiragana = 0x304a;\n  t.ohookabove = 0x1ecf;\n  t.ohorn = 0x01a1;\n  t.ohornacute = 0x1edb;\n  t.ohorndotbelow = 0x1ee3;\n  t.ohorngrave = 0x1edd;\n  t.ohornhookabove = 0x1edf;\n  t.ohorntilde = 0x1ee1;\n  t.ohungarumlaut = 0x0151;\n  t.oi = 0x01a3;\n  t.oinvertedbreve = 0x020f;\n  t.okatakana = 0x30aa;\n  t.okatakanahalfwidth = 0xff75;\n  t.okorean = 0x3157;\n  t.olehebrew = 0x05ab;\n  t.omacron = 0x014d;\n  t.omacronacute = 0x1e53;\n  t.omacrongrave = 0x1e51;\n  t.omdeva = 0x0950;\n  t.omega = 0x03c9;\n  t.omega1 = 0x03d6;\n  t.omegacyrillic = 0x0461;\n  t.omegalatinclosed = 0x0277;\n  t.omegaroundcyrillic = 0x047b;\n  t.omegatitlocyrillic = 0x047d;\n  t.omegatonos = 0x03ce;\n  t.omgujarati = 0x0ad0;\n  t.omicron = 0x03bf;\n  t.omicrontonos = 0x03cc;\n  t.omonospace = 0xff4f;\n  t.one = 0x0031;\n  t.onearabic = 0x0661;\n  t.onebengali = 0x09e7;\n  t.onecircle = 0x2460;\n  t.onecircleinversesansserif = 0x278a;\n  t.onedeva = 0x0967;\n  t.onedotenleader = 0x2024;\n  t.oneeighth = 0x215b;\n  t.onefitted = 0xf6dc;\n  t.onegujarati = 0x0ae7;\n  t.onegurmukhi = 0x0a67;\n  t.onehackarabic = 0x0661;\n  t.onehalf = 0x00bd;\n  t.onehangzhou = 0x3021;\n  t.oneideographicparen = 0x3220;\n  t.oneinferior = 0x2081;\n  t.onemonospace = 0xff11;\n  t.onenumeratorbengali = 0x09f4;\n  t.oneoldstyle = 0xf731;\n  t.oneparen = 0x2474;\n  t.oneperiod = 0x2488;\n  t.onepersian = 0x06f1;\n  t.onequarter = 0x00bc;\n  t.oneroman = 0x2170;\n  t.onesuperior = 0x00b9;\n  t.onethai = 0x0e51;\n  t.onethird = 0x2153;\n  t.oogonek = 0x01eb;\n  t.oogonekmacron = 0x01ed;\n  t.oogurmukhi = 0x0a13;\n  t.oomatragurmukhi = 0x0a4b;\n  t.oopen = 0x0254;\n  t.oparen = 0x24aa;\n  t.openbullet = 0x25e6;\n  t.option = 0x2325;\n  t.ordfeminine = 0x00aa;\n  t.ordmasculine = 0x00ba;\n  t.orthogonal = 0x221f;\n  t.oshortdeva = 0x0912;\n  t.oshortvowelsigndeva = 0x094a;\n  t.oslash = 0x00f8;\n  t.oslashacute = 0x01ff;\n  t.osmallhiragana = 0x3049;\n  t.osmallkatakana = 0x30a9;\n  t.osmallkatakanahalfwidth = 0xff6b;\n  t.ostrokeacute = 0x01ff;\n  t.osuperior = 0xf6f0;\n  t.otcyrillic = 0x047f;\n  t.otilde = 0x00f5;\n  t.otildeacute = 0x1e4d;\n  t.otildedieresis = 0x1e4f;\n  t.oubopomofo = 0x3121;\n  t.overline = 0x203e;\n  t.overlinecenterline = 0xfe4a;\n  t.overlinecmb = 0x0305;\n  t.overlinedashed = 0xfe49;\n  t.overlinedblwavy = 0xfe4c;\n  t.overlinewavy = 0xfe4b;\n  t.overscore = 0x00af;\n  t.ovowelsignbengali = 0x09cb;\n  t.ovowelsigndeva = 0x094b;\n  t.ovowelsigngujarati = 0x0acb;\n  t.p = 0x0070;\n  t.paampssquare = 0x3380;\n  t.paasentosquare = 0x332b;\n  t.pabengali = 0x09aa;\n  t.pacute = 0x1e55;\n  t.padeva = 0x092a;\n  t.pagedown = 0x21df;\n  t.pageup = 0x21de;\n  t.pagujarati = 0x0aaa;\n  t.pagurmukhi = 0x0a2a;\n  t.pahiragana = 0x3071;\n  t.paiyannoithai = 0x0e2f;\n  t.pakatakana = 0x30d1;\n  t.palatalizationcyrilliccmb = 0x0484;\n  t.palochkacyrillic = 0x04c0;\n  t.pansioskorean = 0x317f;\n  t.paragraph = 0x00b6;\n  t.parallel = 0x2225;\n  t.parenleft = 0x0028;\n  t.parenleftaltonearabic = 0xfd3e;\n  t.parenleftbt = 0xf8ed;\n  t.parenleftex = 0xf8ec;\n  t.parenleftinferior = 0x208d;\n  t.parenleftmonospace = 0xff08;\n  t.parenleftsmall = 0xfe59;\n  t.parenleftsuperior = 0x207d;\n  t.parenlefttp = 0xf8eb;\n  t.parenleftvertical = 0xfe35;\n  t.parenright = 0x0029;\n  t.parenrightaltonearabic = 0xfd3f;\n  t.parenrightbt = 0xf8f8;\n  t.parenrightex = 0xf8f7;\n  t.parenrightinferior = 0x208e;\n  t.parenrightmonospace = 0xff09;\n  t.parenrightsmall = 0xfe5a;\n  t.parenrightsuperior = 0x207e;\n  t.parenrighttp = 0xf8f6;\n  t.parenrightvertical = 0xfe36;\n  t.partialdiff = 0x2202;\n  t.paseqhebrew = 0x05c0;\n  t.pashtahebrew = 0x0599;\n  t.pasquare = 0x33a9;\n  t.patah = 0x05b7;\n  t.patah11 = 0x05b7;\n  t.patah1d = 0x05b7;\n  t.patah2a = 0x05b7;\n  t.patahhebrew = 0x05b7;\n  t.patahnarrowhebrew = 0x05b7;\n  t.patahquarterhebrew = 0x05b7;\n  t.patahwidehebrew = 0x05b7;\n  t.pazerhebrew = 0x05a1;\n  t.pbopomofo = 0x3106;\n  t.pcircle = 0x24df;\n  t.pdotaccent = 0x1e57;\n  t.pe = 0x05e4;\n  t.pecyrillic = 0x043f;\n  t.pedagesh = 0xfb44;\n  t.pedageshhebrew = 0xfb44;\n  t.peezisquare = 0x333b;\n  t.pefinaldageshhebrew = 0xfb43;\n  t.peharabic = 0x067e;\n  t.peharmenian = 0x057a;\n  t.pehebrew = 0x05e4;\n  t.pehfinalarabic = 0xfb57;\n  t.pehinitialarabic = 0xfb58;\n  t.pehiragana = 0x307a;\n  t.pehmedialarabic = 0xfb59;\n  t.pekatakana = 0x30da;\n  t.pemiddlehookcyrillic = 0x04a7;\n  t.perafehebrew = 0xfb4e;\n  t.percent = 0x0025;\n  t.percentarabic = 0x066a;\n  t.percentmonospace = 0xff05;\n  t.percentsmall = 0xfe6a;\n  t.period = 0x002e;\n  t.periodarmenian = 0x0589;\n  t.periodcentered = 0x00b7;\n  t.periodhalfwidth = 0xff61;\n  t.periodinferior = 0xf6e7;\n  t.periodmonospace = 0xff0e;\n  t.periodsmall = 0xfe52;\n  t.periodsuperior = 0xf6e8;\n  t.perispomenigreekcmb = 0x0342;\n  t.perpendicular = 0x22a5;\n  t.perthousand = 0x2030;\n  t.peseta = 0x20a7;\n  t.pfsquare = 0x338a;\n  t.phabengali = 0x09ab;\n  t.phadeva = 0x092b;\n  t.phagujarati = 0x0aab;\n  t.phagurmukhi = 0x0a2b;\n  t.phi = 0x03c6;\n  t.phi1 = 0x03d5;\n  t.phieuphacirclekorean = 0x327a;\n  t.phieuphaparenkorean = 0x321a;\n  t.phieuphcirclekorean = 0x326c;\n  t.phieuphkorean = 0x314d;\n  t.phieuphparenkorean = 0x320c;\n  t.philatin = 0x0278;\n  t.phinthuthai = 0x0e3a;\n  t.phisymbolgreek = 0x03d5;\n  t.phook = 0x01a5;\n  t.phophanthai = 0x0e1e;\n  t.phophungthai = 0x0e1c;\n  t.phosamphaothai = 0x0e20;\n  t.pi = 0x03c0;\n  t.pieupacirclekorean = 0x3273;\n  t.pieupaparenkorean = 0x3213;\n  t.pieupcieuckorean = 0x3176;\n  t.pieupcirclekorean = 0x3265;\n  t.pieupkiyeokkorean = 0x3172;\n  t.pieupkorean = 0x3142;\n  t.pieupparenkorean = 0x3205;\n  t.pieupsioskiyeokkorean = 0x3174;\n  t.pieupsioskorean = 0x3144;\n  t.pieupsiostikeutkorean = 0x3175;\n  t.pieupthieuthkorean = 0x3177;\n  t.pieuptikeutkorean = 0x3173;\n  t.pihiragana = 0x3074;\n  t.pikatakana = 0x30d4;\n  t.pisymbolgreek = 0x03d6;\n  t.piwrarmenian = 0x0583;\n  t.planckover2pi = 0x210f;\n  t.planckover2pi1 = 0x210f;\n  t.plus = 0x002b;\n  t.plusbelowcmb = 0x031f;\n  t.pluscircle = 0x2295;\n  t.plusminus = 0x00b1;\n  t.plusmod = 0x02d6;\n  t.plusmonospace = 0xff0b;\n  t.plussmall = 0xfe62;\n  t.plussuperior = 0x207a;\n  t.pmonospace = 0xff50;\n  t.pmsquare = 0x33d8;\n  t.pohiragana = 0x307d;\n  t.pointingindexdownwhite = 0x261f;\n  t.pointingindexleftwhite = 0x261c;\n  t.pointingindexrightwhite = 0x261e;\n  t.pointingindexupwhite = 0x261d;\n  t.pokatakana = 0x30dd;\n  t.poplathai = 0x0e1b;\n  t.postalmark = 0x3012;\n  t.postalmarkface = 0x3020;\n  t.pparen = 0x24ab;\n  t.precedes = 0x227a;\n  t.prescription = 0x211e;\n  t.primemod = 0x02b9;\n  t.primereversed = 0x2035;\n  t.product = 0x220f;\n  t.projective = 0x2305;\n  t.prolongedkana = 0x30fc;\n  t.propellor = 0x2318;\n  t.propersubset = 0x2282;\n  t.propersuperset = 0x2283;\n  t.proportion = 0x2237;\n  t.proportional = 0x221d;\n  t.psi = 0x03c8;\n  t.psicyrillic = 0x0471;\n  t.psilipneumatacyrilliccmb = 0x0486;\n  t.pssquare = 0x33b0;\n  t.puhiragana = 0x3077;\n  t.pukatakana = 0x30d7;\n  t.pvsquare = 0x33b4;\n  t.pwsquare = 0x33ba;\n  t.q = 0x0071;\n  t.qadeva = 0x0958;\n  t.qadmahebrew = 0x05a8;\n  t.qafarabic = 0x0642;\n  t.qaffinalarabic = 0xfed6;\n  t.qafinitialarabic = 0xfed7;\n  t.qafmedialarabic = 0xfed8;\n  t.qamats = 0x05b8;\n  t.qamats10 = 0x05b8;\n  t.qamats1a = 0x05b8;\n  t.qamats1c = 0x05b8;\n  t.qamats27 = 0x05b8;\n  t.qamats29 = 0x05b8;\n  t.qamats33 = 0x05b8;\n  t.qamatsde = 0x05b8;\n  t.qamatshebrew = 0x05b8;\n  t.qamatsnarrowhebrew = 0x05b8;\n  t.qamatsqatanhebrew = 0x05b8;\n  t.qamatsqatannarrowhebrew = 0x05b8;\n  t.qamatsqatanquarterhebrew = 0x05b8;\n  t.qamatsqatanwidehebrew = 0x05b8;\n  t.qamatsquarterhebrew = 0x05b8;\n  t.qamatswidehebrew = 0x05b8;\n  t.qarneyparahebrew = 0x059f;\n  t.qbopomofo = 0x3111;\n  t.qcircle = 0x24e0;\n  t.qhook = 0x02a0;\n  t.qmonospace = 0xff51;\n  t.qof = 0x05e7;\n  t.qofdagesh = 0xfb47;\n  t.qofdageshhebrew = 0xfb47;\n  t.qofhebrew = 0x05e7;\n  t.qparen = 0x24ac;\n  t.quarternote = 0x2669;\n  t.qubuts = 0x05bb;\n  t.qubuts18 = 0x05bb;\n  t.qubuts25 = 0x05bb;\n  t.qubuts31 = 0x05bb;\n  t.qubutshebrew = 0x05bb;\n  t.qubutsnarrowhebrew = 0x05bb;\n  t.qubutsquarterhebrew = 0x05bb;\n  t.qubutswidehebrew = 0x05bb;\n  t.question = 0x003f;\n  t.questionarabic = 0x061f;\n  t.questionarmenian = 0x055e;\n  t.questiondown = 0x00bf;\n  t.questiondownsmall = 0xf7bf;\n  t.questiongreek = 0x037e;\n  t.questionmonospace = 0xff1f;\n  t.questionsmall = 0xf73f;\n  t.quotedbl = 0x0022;\n  t.quotedblbase = 0x201e;\n  t.quotedblleft = 0x201c;\n  t.quotedblmonospace = 0xff02;\n  t.quotedblprime = 0x301e;\n  t.quotedblprimereversed = 0x301d;\n  t.quotedblright = 0x201d;\n  t.quoteleft = 0x2018;\n  t.quoteleftreversed = 0x201b;\n  t.quotereversed = 0x201b;\n  t.quoteright = 0x2019;\n  t.quoterightn = 0x0149;\n  t.quotesinglbase = 0x201a;\n  t.quotesingle = 0x0027;\n  t.quotesinglemonospace = 0xff07;\n  t.r = 0x0072;\n  t.raarmenian = 0x057c;\n  t.rabengali = 0x09b0;\n  t.racute = 0x0155;\n  t.radeva = 0x0930;\n  t.radical = 0x221a;\n  t.radicalex = 0xf8e5;\n  t.radoverssquare = 0x33ae;\n  t.radoverssquaredsquare = 0x33af;\n  t.radsquare = 0x33ad;\n  t.rafe = 0x05bf;\n  t.rafehebrew = 0x05bf;\n  t.ragujarati = 0x0ab0;\n  t.ragurmukhi = 0x0a30;\n  t.rahiragana = 0x3089;\n  t.rakatakana = 0x30e9;\n  t.rakatakanahalfwidth = 0xff97;\n  t.ralowerdiagonalbengali = 0x09f1;\n  t.ramiddlediagonalbengali = 0x09f0;\n  t.ramshorn = 0x0264;\n  t.ratio = 0x2236;\n  t.rbopomofo = 0x3116;\n  t.rcaron = 0x0159;\n  t.rcedilla = 0x0157;\n  t.rcircle = 0x24e1;\n  t.rcommaaccent = 0x0157;\n  t.rdblgrave = 0x0211;\n  t.rdotaccent = 0x1e59;\n  t.rdotbelow = 0x1e5b;\n  t.rdotbelowmacron = 0x1e5d;\n  t.referencemark = 0x203b;\n  t.reflexsubset = 0x2286;\n  t.reflexsuperset = 0x2287;\n  t.registered = 0x00ae;\n  t.registersans = 0xf8e8;\n  t.registerserif = 0xf6da;\n  t.reharabic = 0x0631;\n  t.reharmenian = 0x0580;\n  t.rehfinalarabic = 0xfeae;\n  t.rehiragana = 0x308c;\n  t.rekatakana = 0x30ec;\n  t.rekatakanahalfwidth = 0xff9a;\n  t.resh = 0x05e8;\n  t.reshdageshhebrew = 0xfb48;\n  t.reshhebrew = 0x05e8;\n  t.reversedtilde = 0x223d;\n  t.reviahebrew = 0x0597;\n  t.reviamugrashhebrew = 0x0597;\n  t.revlogicalnot = 0x2310;\n  t.rfishhook = 0x027e;\n  t.rfishhookreversed = 0x027f;\n  t.rhabengali = 0x09dd;\n  t.rhadeva = 0x095d;\n  t.rho = 0x03c1;\n  t.rhook = 0x027d;\n  t.rhookturned = 0x027b;\n  t.rhookturnedsuperior = 0x02b5;\n  t.rhosymbolgreek = 0x03f1;\n  t.rhotichookmod = 0x02de;\n  t.rieulacirclekorean = 0x3271;\n  t.rieulaparenkorean = 0x3211;\n  t.rieulcirclekorean = 0x3263;\n  t.rieulhieuhkorean = 0x3140;\n  t.rieulkiyeokkorean = 0x313a;\n  t.rieulkiyeoksioskorean = 0x3169;\n  t.rieulkorean = 0x3139;\n  t.rieulmieumkorean = 0x313b;\n  t.rieulpansioskorean = 0x316c;\n  t.rieulparenkorean = 0x3203;\n  t.rieulphieuphkorean = 0x313f;\n  t.rieulpieupkorean = 0x313c;\n  t.rieulpieupsioskorean = 0x316b;\n  t.rieulsioskorean = 0x313d;\n  t.rieulthieuthkorean = 0x313e;\n  t.rieultikeutkorean = 0x316a;\n  t.rieulyeorinhieuhkorean = 0x316d;\n  t.rightangle = 0x221f;\n  t.righttackbelowcmb = 0x0319;\n  t.righttriangle = 0x22bf;\n  t.rihiragana = 0x308a;\n  t.rikatakana = 0x30ea;\n  t.rikatakanahalfwidth = 0xff98;\n  t.ring = 0x02da;\n  t.ringbelowcmb = 0x0325;\n  t.ringcmb = 0x030a;\n  t.ringhalfleft = 0x02bf;\n  t.ringhalfleftarmenian = 0x0559;\n  t.ringhalfleftbelowcmb = 0x031c;\n  t.ringhalfleftcentered = 0x02d3;\n  t.ringhalfright = 0x02be;\n  t.ringhalfrightbelowcmb = 0x0339;\n  t.ringhalfrightcentered = 0x02d2;\n  t.rinvertedbreve = 0x0213;\n  t.rittorusquare = 0x3351;\n  t.rlinebelow = 0x1e5f;\n  t.rlongleg = 0x027c;\n  t.rlonglegturned = 0x027a;\n  t.rmonospace = 0xff52;\n  t.rohiragana = 0x308d;\n  t.rokatakana = 0x30ed;\n  t.rokatakanahalfwidth = 0xff9b;\n  t.roruathai = 0x0e23;\n  t.rparen = 0x24ad;\n  t.rrabengali = 0x09dc;\n  t.rradeva = 0x0931;\n  t.rragurmukhi = 0x0a5c;\n  t.rreharabic = 0x0691;\n  t.rrehfinalarabic = 0xfb8d;\n  t.rrvocalicbengali = 0x09e0;\n  t.rrvocalicdeva = 0x0960;\n  t.rrvocalicgujarati = 0x0ae0;\n  t.rrvocalicvowelsignbengali = 0x09c4;\n  t.rrvocalicvowelsigndeva = 0x0944;\n  t.rrvocalicvowelsigngujarati = 0x0ac4;\n  t.rsuperior = 0xf6f1;\n  t.rtblock = 0x2590;\n  t.rturned = 0x0279;\n  t.rturnedsuperior = 0x02b4;\n  t.ruhiragana = 0x308b;\n  t.rukatakana = 0x30eb;\n  t.rukatakanahalfwidth = 0xff99;\n  t.rupeemarkbengali = 0x09f2;\n  t.rupeesignbengali = 0x09f3;\n  t.rupiah = 0xf6dd;\n  t.ruthai = 0x0e24;\n  t.rvocalicbengali = 0x098b;\n  t.rvocalicdeva = 0x090b;\n  t.rvocalicgujarati = 0x0a8b;\n  t.rvocalicvowelsignbengali = 0x09c3;\n  t.rvocalicvowelsigndeva = 0x0943;\n  t.rvocalicvowelsigngujarati = 0x0ac3;\n  t.s = 0x0073;\n  t.sabengali = 0x09b8;\n  t.sacute = 0x015b;\n  t.sacutedotaccent = 0x1e65;\n  t.sadarabic = 0x0635;\n  t.sadeva = 0x0938;\n  t.sadfinalarabic = 0xfeba;\n  t.sadinitialarabic = 0xfebb;\n  t.sadmedialarabic = 0xfebc;\n  t.sagujarati = 0x0ab8;\n  t.sagurmukhi = 0x0a38;\n  t.sahiragana = 0x3055;\n  t.sakatakana = 0x30b5;\n  t.sakatakanahalfwidth = 0xff7b;\n  t.sallallahoualayhewasallamarabic = 0xfdfa;\n  t.samekh = 0x05e1;\n  t.samekhdagesh = 0xfb41;\n  t.samekhdageshhebrew = 0xfb41;\n  t.samekhhebrew = 0x05e1;\n  t.saraaathai = 0x0e32;\n  t.saraaethai = 0x0e41;\n  t.saraaimaimalaithai = 0x0e44;\n  t.saraaimaimuanthai = 0x0e43;\n  t.saraamthai = 0x0e33;\n  t.saraathai = 0x0e30;\n  t.saraethai = 0x0e40;\n  t.saraiileftthai = 0xf886;\n  t.saraiithai = 0x0e35;\n  t.saraileftthai = 0xf885;\n  t.saraithai = 0x0e34;\n  t.saraothai = 0x0e42;\n  t.saraueeleftthai = 0xf888;\n  t.saraueethai = 0x0e37;\n  t.saraueleftthai = 0xf887;\n  t.sarauethai = 0x0e36;\n  t.sarauthai = 0x0e38;\n  t.sarauuthai = 0x0e39;\n  t.sbopomofo = 0x3119;\n  t.scaron = 0x0161;\n  t.scarondotaccent = 0x1e67;\n  t.scedilla = 0x015f;\n  t.schwa = 0x0259;\n  t.schwacyrillic = 0x04d9;\n  t.schwadieresiscyrillic = 0x04db;\n  t.schwahook = 0x025a;\n  t.scircle = 0x24e2;\n  t.scircumflex = 0x015d;\n  t.scommaaccent = 0x0219;\n  t.sdotaccent = 0x1e61;\n  t.sdotbelow = 0x1e63;\n  t.sdotbelowdotaccent = 0x1e69;\n  t.seagullbelowcmb = 0x033c;\n  t.second = 0x2033;\n  t.secondtonechinese = 0x02ca;\n  t.section = 0x00a7;\n  t.seenarabic = 0x0633;\n  t.seenfinalarabic = 0xfeb2;\n  t.seeninitialarabic = 0xfeb3;\n  t.seenmedialarabic = 0xfeb4;\n  t.segol = 0x05b6;\n  t.segol13 = 0x05b6;\n  t.segol1f = 0x05b6;\n  t.segol2c = 0x05b6;\n  t.segolhebrew = 0x05b6;\n  t.segolnarrowhebrew = 0x05b6;\n  t.segolquarterhebrew = 0x05b6;\n  t.segoltahebrew = 0x0592;\n  t.segolwidehebrew = 0x05b6;\n  t.seharmenian = 0x057d;\n  t.sehiragana = 0x305b;\n  t.sekatakana = 0x30bb;\n  t.sekatakanahalfwidth = 0xff7e;\n  t.semicolon = 0x003b;\n  t.semicolonarabic = 0x061b;\n  t.semicolonmonospace = 0xff1b;\n  t.semicolonsmall = 0xfe54;\n  t.semivoicedmarkkana = 0x309c;\n  t.semivoicedmarkkanahalfwidth = 0xff9f;\n  t.sentisquare = 0x3322;\n  t.sentosquare = 0x3323;\n  t.seven = 0x0037;\n  t.sevenarabic = 0x0667;\n  t.sevenbengali = 0x09ed;\n  t.sevencircle = 0x2466;\n  t.sevencircleinversesansserif = 0x2790;\n  t.sevendeva = 0x096d;\n  t.seveneighths = 0x215e;\n  t.sevengujarati = 0x0aed;\n  t.sevengurmukhi = 0x0a6d;\n  t.sevenhackarabic = 0x0667;\n  t.sevenhangzhou = 0x3027;\n  t.sevenideographicparen = 0x3226;\n  t.seveninferior = 0x2087;\n  t.sevenmonospace = 0xff17;\n  t.sevenoldstyle = 0xf737;\n  t.sevenparen = 0x247a;\n  t.sevenperiod = 0x248e;\n  t.sevenpersian = 0x06f7;\n  t.sevenroman = 0x2176;\n  t.sevensuperior = 0x2077;\n  t.seventeencircle = 0x2470;\n  t.seventeenparen = 0x2484;\n  t.seventeenperiod = 0x2498;\n  t.seventhai = 0x0e57;\n  t.sfthyphen = 0x00ad;\n  t.shaarmenian = 0x0577;\n  t.shabengali = 0x09b6;\n  t.shacyrillic = 0x0448;\n  t.shaddaarabic = 0x0651;\n  t.shaddadammaarabic = 0xfc61;\n  t.shaddadammatanarabic = 0xfc5e;\n  t.shaddafathaarabic = 0xfc60;\n  t.shaddakasraarabic = 0xfc62;\n  t.shaddakasratanarabic = 0xfc5f;\n  t.shade = 0x2592;\n  t.shadedark = 0x2593;\n  t.shadelight = 0x2591;\n  t.shademedium = 0x2592;\n  t.shadeva = 0x0936;\n  t.shagujarati = 0x0ab6;\n  t.shagurmukhi = 0x0a36;\n  t.shalshelethebrew = 0x0593;\n  t.shbopomofo = 0x3115;\n  t.shchacyrillic = 0x0449;\n  t.sheenarabic = 0x0634;\n  t.sheenfinalarabic = 0xfeb6;\n  t.sheeninitialarabic = 0xfeb7;\n  t.sheenmedialarabic = 0xfeb8;\n  t.sheicoptic = 0x03e3;\n  t.sheqel = 0x20aa;\n  t.sheqelhebrew = 0x20aa;\n  t.sheva = 0x05b0;\n  t.sheva115 = 0x05b0;\n  t.sheva15 = 0x05b0;\n  t.sheva22 = 0x05b0;\n  t.sheva2e = 0x05b0;\n  t.shevahebrew = 0x05b0;\n  t.shevanarrowhebrew = 0x05b0;\n  t.shevaquarterhebrew = 0x05b0;\n  t.shevawidehebrew = 0x05b0;\n  t.shhacyrillic = 0x04bb;\n  t.shimacoptic = 0x03ed;\n  t.shin = 0x05e9;\n  t.shindagesh = 0xfb49;\n  t.shindageshhebrew = 0xfb49;\n  t.shindageshshindot = 0xfb2c;\n  t.shindageshshindothebrew = 0xfb2c;\n  t.shindageshsindot = 0xfb2d;\n  t.shindageshsindothebrew = 0xfb2d;\n  t.shindothebrew = 0x05c1;\n  t.shinhebrew = 0x05e9;\n  t.shinshindot = 0xfb2a;\n  t.shinshindothebrew = 0xfb2a;\n  t.shinsindot = 0xfb2b;\n  t.shinsindothebrew = 0xfb2b;\n  t.shook = 0x0282;\n  t.sigma = 0x03c3;\n  t.sigma1 = 0x03c2;\n  t.sigmafinal = 0x03c2;\n  t.sigmalunatesymbolgreek = 0x03f2;\n  t.sihiragana = 0x3057;\n  t.sikatakana = 0x30b7;\n  t.sikatakanahalfwidth = 0xff7c;\n  t.siluqhebrew = 0x05bd;\n  t.siluqlefthebrew = 0x05bd;\n  t.similar = 0x223c;\n  t.sindothebrew = 0x05c2;\n  t.siosacirclekorean = 0x3274;\n  t.siosaparenkorean = 0x3214;\n  t.sioscieuckorean = 0x317e;\n  t.sioscirclekorean = 0x3266;\n  t.sioskiyeokkorean = 0x317a;\n  t.sioskorean = 0x3145;\n  t.siosnieunkorean = 0x317b;\n  t.siosparenkorean = 0x3206;\n  t.siospieupkorean = 0x317d;\n  t.siostikeutkorean = 0x317c;\n  t.six = 0x0036;\n  t.sixarabic = 0x0666;\n  t.sixbengali = 0x09ec;\n  t.sixcircle = 0x2465;\n  t.sixcircleinversesansserif = 0x278f;\n  t.sixdeva = 0x096c;\n  t.sixgujarati = 0x0aec;\n  t.sixgurmukhi = 0x0a6c;\n  t.sixhackarabic = 0x0666;\n  t.sixhangzhou = 0x3026;\n  t.sixideographicparen = 0x3225;\n  t.sixinferior = 0x2086;\n  t.sixmonospace = 0xff16;\n  t.sixoldstyle = 0xf736;\n  t.sixparen = 0x2479;\n  t.sixperiod = 0x248d;\n  t.sixpersian = 0x06f6;\n  t.sixroman = 0x2175;\n  t.sixsuperior = 0x2076;\n  t.sixteencircle = 0x246f;\n  t.sixteencurrencydenominatorbengali = 0x09f9;\n  t.sixteenparen = 0x2483;\n  t.sixteenperiod = 0x2497;\n  t.sixthai = 0x0e56;\n  t.slash = 0x002f;\n  t.slashmonospace = 0xff0f;\n  t.slong = 0x017f;\n  t.slongdotaccent = 0x1e9b;\n  t.smileface = 0x263a;\n  t.smonospace = 0xff53;\n  t.sofpasuqhebrew = 0x05c3;\n  t.softhyphen = 0x00ad;\n  t.softsigncyrillic = 0x044c;\n  t.sohiragana = 0x305d;\n  t.sokatakana = 0x30bd;\n  t.sokatakanahalfwidth = 0xff7f;\n  t.soliduslongoverlaycmb = 0x0338;\n  t.solidusshortoverlaycmb = 0x0337;\n  t.sorusithai = 0x0e29;\n  t.sosalathai = 0x0e28;\n  t.sosothai = 0x0e0b;\n  t.sosuathai = 0x0e2a;\n  t.space = 0x0020;\n  t.spacehackarabic = 0x0020;\n  t.spade = 0x2660;\n  t.spadesuitblack = 0x2660;\n  t.spadesuitwhite = 0x2664;\n  t.sparen = 0x24ae;\n  t.squarebelowcmb = 0x033b;\n  t.squarecc = 0x33c4;\n  t.squarecm = 0x339d;\n  t.squarediagonalcrosshatchfill = 0x25a9;\n  t.squarehorizontalfill = 0x25a4;\n  t.squarekg = 0x338f;\n  t.squarekm = 0x339e;\n  t.squarekmcapital = 0x33ce;\n  t.squareln = 0x33d1;\n  t.squarelog = 0x33d2;\n  t.squaremg = 0x338e;\n  t.squaremil = 0x33d5;\n  t.squaremm = 0x339c;\n  t.squaremsquared = 0x33a1;\n  t.squareorthogonalcrosshatchfill = 0x25a6;\n  t.squareupperlefttolowerrightfill = 0x25a7;\n  t.squareupperrighttolowerleftfill = 0x25a8;\n  t.squareverticalfill = 0x25a5;\n  t.squarewhitewithsmallblack = 0x25a3;\n  t.srsquare = 0x33db;\n  t.ssabengali = 0x09b7;\n  t.ssadeva = 0x0937;\n  t.ssagujarati = 0x0ab7;\n  t.ssangcieuckorean = 0x3149;\n  t.ssanghieuhkorean = 0x3185;\n  t.ssangieungkorean = 0x3180;\n  t.ssangkiyeokkorean = 0x3132;\n  t.ssangnieunkorean = 0x3165;\n  t.ssangpieupkorean = 0x3143;\n  t.ssangsioskorean = 0x3146;\n  t.ssangtikeutkorean = 0x3138;\n  t.ssuperior = 0xf6f2;\n  t.sterling = 0x00a3;\n  t.sterlingmonospace = 0xffe1;\n  t.strokelongoverlaycmb = 0x0336;\n  t.strokeshortoverlaycmb = 0x0335;\n  t.subset = 0x2282;\n  t.subsetnotequal = 0x228a;\n  t.subsetorequal = 0x2286;\n  t.succeeds = 0x227b;\n  t.suchthat = 0x220b;\n  t.suhiragana = 0x3059;\n  t.sukatakana = 0x30b9;\n  t.sukatakanahalfwidth = 0xff7d;\n  t.sukunarabic = 0x0652;\n  t.summation = 0x2211;\n  t.sun = 0x263c;\n  t.superset = 0x2283;\n  t.supersetnotequal = 0x228b;\n  t.supersetorequal = 0x2287;\n  t.svsquare = 0x33dc;\n  t.syouwaerasquare = 0x337c;\n  t.t = 0x0074;\n  t.tabengali = 0x09a4;\n  t.tackdown = 0x22a4;\n  t.tackleft = 0x22a3;\n  t.tadeva = 0x0924;\n  t.tagujarati = 0x0aa4;\n  t.tagurmukhi = 0x0a24;\n  t.taharabic = 0x0637;\n  t.tahfinalarabic = 0xfec2;\n  t.tahinitialarabic = 0xfec3;\n  t.tahiragana = 0x305f;\n  t.tahmedialarabic = 0xfec4;\n  t.taisyouerasquare = 0x337d;\n  t.takatakana = 0x30bf;\n  t.takatakanahalfwidth = 0xff80;\n  t.tatweelarabic = 0x0640;\n  t.tau = 0x03c4;\n  t.tav = 0x05ea;\n  t.tavdages = 0xfb4a;\n  t.tavdagesh = 0xfb4a;\n  t.tavdageshhebrew = 0xfb4a;\n  t.tavhebrew = 0x05ea;\n  t.tbar = 0x0167;\n  t.tbopomofo = 0x310a;\n  t.tcaron = 0x0165;\n  t.tccurl = 0x02a8;\n  t.tcedilla = 0x0163;\n  t.tcheharabic = 0x0686;\n  t.tchehfinalarabic = 0xfb7b;\n  t.tchehinitialarabic = 0xfb7c;\n  t.tchehmedialarabic = 0xfb7d;\n  t.tcircle = 0x24e3;\n  t.tcircumflexbelow = 0x1e71;\n  t.tcommaaccent = 0x0163;\n  t.tdieresis = 0x1e97;\n  t.tdotaccent = 0x1e6b;\n  t.tdotbelow = 0x1e6d;\n  t.tecyrillic = 0x0442;\n  t.tedescendercyrillic = 0x04ad;\n  t.teharabic = 0x062a;\n  t.tehfinalarabic = 0xfe96;\n  t.tehhahinitialarabic = 0xfca2;\n  t.tehhahisolatedarabic = 0xfc0c;\n  t.tehinitialarabic = 0xfe97;\n  t.tehiragana = 0x3066;\n  t.tehjeeminitialarabic = 0xfca1;\n  t.tehjeemisolatedarabic = 0xfc0b;\n  t.tehmarbutaarabic = 0x0629;\n  t.tehmarbutafinalarabic = 0xfe94;\n  t.tehmedialarabic = 0xfe98;\n  t.tehmeeminitialarabic = 0xfca4;\n  t.tehmeemisolatedarabic = 0xfc0e;\n  t.tehnoonfinalarabic = 0xfc73;\n  t.tekatakana = 0x30c6;\n  t.tekatakanahalfwidth = 0xff83;\n  t.telephone = 0x2121;\n  t.telephoneblack = 0x260e;\n  t.telishagedolahebrew = 0x05a0;\n  t.telishaqetanahebrew = 0x05a9;\n  t.tencircle = 0x2469;\n  t.tenideographicparen = 0x3229;\n  t.tenparen = 0x247d;\n  t.tenperiod = 0x2491;\n  t.tenroman = 0x2179;\n  t.tesh = 0x02a7;\n  t.tet = 0x05d8;\n  t.tetdagesh = 0xfb38;\n  t.tetdageshhebrew = 0xfb38;\n  t.tethebrew = 0x05d8;\n  t.tetsecyrillic = 0x04b5;\n  t.tevirhebrew = 0x059b;\n  t.tevirlefthebrew = 0x059b;\n  t.thabengali = 0x09a5;\n  t.thadeva = 0x0925;\n  t.thagujarati = 0x0aa5;\n  t.thagurmukhi = 0x0a25;\n  t.thalarabic = 0x0630;\n  t.thalfinalarabic = 0xfeac;\n  t.thanthakhatlowleftthai = 0xf898;\n  t.thanthakhatlowrightthai = 0xf897;\n  t.thanthakhatthai = 0x0e4c;\n  t.thanthakhatupperleftthai = 0xf896;\n  t.theharabic = 0x062b;\n  t.thehfinalarabic = 0xfe9a;\n  t.thehinitialarabic = 0xfe9b;\n  t.thehmedialarabic = 0xfe9c;\n  t.thereexists = 0x2203;\n  t.therefore = 0x2234;\n  t.theta = 0x03b8;\n  t.theta1 = 0x03d1;\n  t.thetasymbolgreek = 0x03d1;\n  t.thieuthacirclekorean = 0x3279;\n  t.thieuthaparenkorean = 0x3219;\n  t.thieuthcirclekorean = 0x326b;\n  t.thieuthkorean = 0x314c;\n  t.thieuthparenkorean = 0x320b;\n  t.thirteencircle = 0x246c;\n  t.thirteenparen = 0x2480;\n  t.thirteenperiod = 0x2494;\n  t.thonangmonthothai = 0x0e11;\n  t.thook = 0x01ad;\n  t.thophuthaothai = 0x0e12;\n  t.thorn = 0x00fe;\n  t.thothahanthai = 0x0e17;\n  t.thothanthai = 0x0e10;\n  t.thothongthai = 0x0e18;\n  t.thothungthai = 0x0e16;\n  t.thousandcyrillic = 0x0482;\n  t.thousandsseparatorarabic = 0x066c;\n  t.thousandsseparatorpersian = 0x066c;\n  t.three = 0x0033;\n  t.threearabic = 0x0663;\n  t.threebengali = 0x09e9;\n  t.threecircle = 0x2462;\n  t.threecircleinversesansserif = 0x278c;\n  t.threedeva = 0x0969;\n  t.threeeighths = 0x215c;\n  t.threegujarati = 0x0ae9;\n  t.threegurmukhi = 0x0a69;\n  t.threehackarabic = 0x0663;\n  t.threehangzhou = 0x3023;\n  t.threeideographicparen = 0x3222;\n  t.threeinferior = 0x2083;\n  t.threemonospace = 0xff13;\n  t.threenumeratorbengali = 0x09f6;\n  t.threeoldstyle = 0xf733;\n  t.threeparen = 0x2476;\n  t.threeperiod = 0x248a;\n  t.threepersian = 0x06f3;\n  t.threequarters = 0x00be;\n  t.threequartersemdash = 0xf6de;\n  t.threeroman = 0x2172;\n  t.threesuperior = 0x00b3;\n  t.threethai = 0x0e53;\n  t.thzsquare = 0x3394;\n  t.tihiragana = 0x3061;\n  t.tikatakana = 0x30c1;\n  t.tikatakanahalfwidth = 0xff81;\n  t.tikeutacirclekorean = 0x3270;\n  t.tikeutaparenkorean = 0x3210;\n  t.tikeutcirclekorean = 0x3262;\n  t.tikeutkorean = 0x3137;\n  t.tikeutparenkorean = 0x3202;\n  t.tilde = 0x02dc;\n  t.tildebelowcmb = 0x0330;\n  t.tildecmb = 0x0303;\n  t.tildecomb = 0x0303;\n  t.tildedoublecmb = 0x0360;\n  t.tildeoperator = 0x223c;\n  t.tildeoverlaycmb = 0x0334;\n  t.tildeverticalcmb = 0x033e;\n  t.timescircle = 0x2297;\n  t.tipehahebrew = 0x0596;\n  t.tipehalefthebrew = 0x0596;\n  t.tippigurmukhi = 0x0a70;\n  t.titlocyrilliccmb = 0x0483;\n  t.tiwnarmenian = 0x057f;\n  t.tlinebelow = 0x1e6f;\n  t.tmonospace = 0xff54;\n  t.toarmenian = 0x0569;\n  t.tohiragana = 0x3068;\n  t.tokatakana = 0x30c8;\n  t.tokatakanahalfwidth = 0xff84;\n  t.tonebarextrahighmod = 0x02e5;\n  t.tonebarextralowmod = 0x02e9;\n  t.tonebarhighmod = 0x02e6;\n  t.tonebarlowmod = 0x02e8;\n  t.tonebarmidmod = 0x02e7;\n  t.tonefive = 0x01bd;\n  t.tonesix = 0x0185;\n  t.tonetwo = 0x01a8;\n  t.tonos = 0x0384;\n  t.tonsquare = 0x3327;\n  t.topatakthai = 0x0e0f;\n  t.tortoiseshellbracketleft = 0x3014;\n  t.tortoiseshellbracketleftsmall = 0xfe5d;\n  t.tortoiseshellbracketleftvertical = 0xfe39;\n  t.tortoiseshellbracketright = 0x3015;\n  t.tortoiseshellbracketrightsmall = 0xfe5e;\n  t.tortoiseshellbracketrightvertical = 0xfe3a;\n  t.totaothai = 0x0e15;\n  t.tpalatalhook = 0x01ab;\n  t.tparen = 0x24af;\n  t.trademark = 0x2122;\n  t.trademarksans = 0xf8ea;\n  t.trademarkserif = 0xf6db;\n  t.tretroflexhook = 0x0288;\n  t.triagdn = 0x25bc;\n  t.triaglf = 0x25c4;\n  t.triagrt = 0x25ba;\n  t.triagup = 0x25b2;\n  t.ts = 0x02a6;\n  t.tsadi = 0x05e6;\n  t.tsadidagesh = 0xfb46;\n  t.tsadidageshhebrew = 0xfb46;\n  t.tsadihebrew = 0x05e6;\n  t.tsecyrillic = 0x0446;\n  t.tsere = 0x05b5;\n  t.tsere12 = 0x05b5;\n  t.tsere1e = 0x05b5;\n  t.tsere2b = 0x05b5;\n  t.tserehebrew = 0x05b5;\n  t.tserenarrowhebrew = 0x05b5;\n  t.tserequarterhebrew = 0x05b5;\n  t.tserewidehebrew = 0x05b5;\n  t.tshecyrillic = 0x045b;\n  t.tsuperior = 0xf6f3;\n  t.ttabengali = 0x099f;\n  t.ttadeva = 0x091f;\n  t.ttagujarati = 0x0a9f;\n  t.ttagurmukhi = 0x0a1f;\n  t.tteharabic = 0x0679;\n  t.ttehfinalarabic = 0xfb67;\n  t.ttehinitialarabic = 0xfb68;\n  t.ttehmedialarabic = 0xfb69;\n  t.tthabengali = 0x09a0;\n  t.tthadeva = 0x0920;\n  t.tthagujarati = 0x0aa0;\n  t.tthagurmukhi = 0x0a20;\n  t.tturned = 0x0287;\n  t.tuhiragana = 0x3064;\n  t.tukatakana = 0x30c4;\n  t.tukatakanahalfwidth = 0xff82;\n  t.tusmallhiragana = 0x3063;\n  t.tusmallkatakana = 0x30c3;\n  t.tusmallkatakanahalfwidth = 0xff6f;\n  t.twelvecircle = 0x246b;\n  t.twelveparen = 0x247f;\n  t.twelveperiod = 0x2493;\n  t.twelveroman = 0x217b;\n  t.twentycircle = 0x2473;\n  t.twentyhangzhou = 0x5344;\n  t.twentyparen = 0x2487;\n  t.twentyperiod = 0x249b;\n  t.two = 0x0032;\n  t.twoarabic = 0x0662;\n  t.twobengali = 0x09e8;\n  t.twocircle = 0x2461;\n  t.twocircleinversesansserif = 0x278b;\n  t.twodeva = 0x0968;\n  t.twodotenleader = 0x2025;\n  t.twodotleader = 0x2025;\n  t.twodotleadervertical = 0xfe30;\n  t.twogujarati = 0x0ae8;\n  t.twogurmukhi = 0x0a68;\n  t.twohackarabic = 0x0662;\n  t.twohangzhou = 0x3022;\n  t.twoideographicparen = 0x3221;\n  t.twoinferior = 0x2082;\n  t.twomonospace = 0xff12;\n  t.twonumeratorbengali = 0x09f5;\n  t.twooldstyle = 0xf732;\n  t.twoparen = 0x2475;\n  t.twoperiod = 0x2489;\n  t.twopersian = 0x06f2;\n  t.tworoman = 0x2171;\n  t.twostroke = 0x01bb;\n  t.twosuperior = 0x00b2;\n  t.twothai = 0x0e52;\n  t.twothirds = 0x2154;\n  t.u = 0x0075;\n  t.uacute = 0x00fa;\n  t.ubar = 0x0289;\n  t.ubengali = 0x0989;\n  t.ubopomofo = 0x3128;\n  t.ubreve = 0x016d;\n  t.ucaron = 0x01d4;\n  t.ucircle = 0x24e4;\n  t.ucircumflex = 0x00fb;\n  t.ucircumflexbelow = 0x1e77;\n  t.ucyrillic = 0x0443;\n  t.udattadeva = 0x0951;\n  t.udblacute = 0x0171;\n  t.udblgrave = 0x0215;\n  t.udeva = 0x0909;\n  t.udieresis = 0x00fc;\n  t.udieresisacute = 0x01d8;\n  t.udieresisbelow = 0x1e73;\n  t.udieresiscaron = 0x01da;\n  t.udieresiscyrillic = 0x04f1;\n  t.udieresisgrave = 0x01dc;\n  t.udieresismacron = 0x01d6;\n  t.udotbelow = 0x1ee5;\n  t.ugrave = 0x00f9;\n  t.ugujarati = 0x0a89;\n  t.ugurmukhi = 0x0a09;\n  t.uhiragana = 0x3046;\n  t.uhookabove = 0x1ee7;\n  t.uhorn = 0x01b0;\n  t.uhornacute = 0x1ee9;\n  t.uhorndotbelow = 0x1ef1;\n  t.uhorngrave = 0x1eeb;\n  t.uhornhookabove = 0x1eed;\n  t.uhorntilde = 0x1eef;\n  t.uhungarumlaut = 0x0171;\n  t.uhungarumlautcyrillic = 0x04f3;\n  t.uinvertedbreve = 0x0217;\n  t.ukatakana = 0x30a6;\n  t.ukatakanahalfwidth = 0xff73;\n  t.ukcyrillic = 0x0479;\n  t.ukorean = 0x315c;\n  t.umacron = 0x016b;\n  t.umacroncyrillic = 0x04ef;\n  t.umacrondieresis = 0x1e7b;\n  t.umatragurmukhi = 0x0a41;\n  t.umonospace = 0xff55;\n  t.underscore = 0x005f;\n  t.underscoredbl = 0x2017;\n  t.underscoremonospace = 0xff3f;\n  t.underscorevertical = 0xfe33;\n  t.underscorewavy = 0xfe4f;\n  t.union = 0x222a;\n  t.universal = 0x2200;\n  t.uogonek = 0x0173;\n  t.uparen = 0x24b0;\n  t.upblock = 0x2580;\n  t.upperdothebrew = 0x05c4;\n  t.upsilon = 0x03c5;\n  t.upsilondieresis = 0x03cb;\n  t.upsilondieresistonos = 0x03b0;\n  t.upsilonlatin = 0x028a;\n  t.upsilontonos = 0x03cd;\n  t.uptackbelowcmb = 0x031d;\n  t.uptackmod = 0x02d4;\n  t.uragurmukhi = 0x0a73;\n  t.uring = 0x016f;\n  t.ushortcyrillic = 0x045e;\n  t.usmallhiragana = 0x3045;\n  t.usmallkatakana = 0x30a5;\n  t.usmallkatakanahalfwidth = 0xff69;\n  t.ustraightcyrillic = 0x04af;\n  t.ustraightstrokecyrillic = 0x04b1;\n  t.utilde = 0x0169;\n  t.utildeacute = 0x1e79;\n  t.utildebelow = 0x1e75;\n  t.uubengali = 0x098a;\n  t.uudeva = 0x090a;\n  t.uugujarati = 0x0a8a;\n  t.uugurmukhi = 0x0a0a;\n  t.uumatragurmukhi = 0x0a42;\n  t.uuvowelsignbengali = 0x09c2;\n  t.uuvowelsigndeva = 0x0942;\n  t.uuvowelsigngujarati = 0x0ac2;\n  t.uvowelsignbengali = 0x09c1;\n  t.uvowelsigndeva = 0x0941;\n  t.uvowelsigngujarati = 0x0ac1;\n  t.v = 0x0076;\n  t.vadeva = 0x0935;\n  t.vagujarati = 0x0ab5;\n  t.vagurmukhi = 0x0a35;\n  t.vakatakana = 0x30f7;\n  t.vav = 0x05d5;\n  t.vavdagesh = 0xfb35;\n  t.vavdagesh65 = 0xfb35;\n  t.vavdageshhebrew = 0xfb35;\n  t.vavhebrew = 0x05d5;\n  t.vavholam = 0xfb4b;\n  t.vavholamhebrew = 0xfb4b;\n  t.vavvavhebrew = 0x05f0;\n  t.vavyodhebrew = 0x05f1;\n  t.vcircle = 0x24e5;\n  t.vdotbelow = 0x1e7f;\n  t.vecyrillic = 0x0432;\n  t.veharabic = 0x06a4;\n  t.vehfinalarabic = 0xfb6b;\n  t.vehinitialarabic = 0xfb6c;\n  t.vehmedialarabic = 0xfb6d;\n  t.vekatakana = 0x30f9;\n  t.venus = 0x2640;\n  t.verticalbar = 0x007c;\n  t.verticallineabovecmb = 0x030d;\n  t.verticallinebelowcmb = 0x0329;\n  t.verticallinelowmod = 0x02cc;\n  t.verticallinemod = 0x02c8;\n  t.vewarmenian = 0x057e;\n  t.vhook = 0x028b;\n  t.vikatakana = 0x30f8;\n  t.viramabengali = 0x09cd;\n  t.viramadeva = 0x094d;\n  t.viramagujarati = 0x0acd;\n  t.visargabengali = 0x0983;\n  t.visargadeva = 0x0903;\n  t.visargagujarati = 0x0a83;\n  t.vmonospace = 0xff56;\n  t.voarmenian = 0x0578;\n  t.voicediterationhiragana = 0x309e;\n  t.voicediterationkatakana = 0x30fe;\n  t.voicedmarkkana = 0x309b;\n  t.voicedmarkkanahalfwidth = 0xff9e;\n  t.vokatakana = 0x30fa;\n  t.vparen = 0x24b1;\n  t.vtilde = 0x1e7d;\n  t.vturned = 0x028c;\n  t.vuhiragana = 0x3094;\n  t.vukatakana = 0x30f4;\n  t.w = 0x0077;\n  t.wacute = 0x1e83;\n  t.waekorean = 0x3159;\n  t.wahiragana = 0x308f;\n  t.wakatakana = 0x30ef;\n  t.wakatakanahalfwidth = 0xff9c;\n  t.wakorean = 0x3158;\n  t.wasmallhiragana = 0x308e;\n  t.wasmallkatakana = 0x30ee;\n  t.wattosquare = 0x3357;\n  t.wavedash = 0x301c;\n  t.wavyunderscorevertical = 0xfe34;\n  t.wawarabic = 0x0648;\n  t.wawfinalarabic = 0xfeee;\n  t.wawhamzaabovearabic = 0x0624;\n  t.wawhamzaabovefinalarabic = 0xfe86;\n  t.wbsquare = 0x33dd;\n  t.wcircle = 0x24e6;\n  t.wcircumflex = 0x0175;\n  t.wdieresis = 0x1e85;\n  t.wdotaccent = 0x1e87;\n  t.wdotbelow = 0x1e89;\n  t.wehiragana = 0x3091;\n  t.weierstrass = 0x2118;\n  t.wekatakana = 0x30f1;\n  t.wekorean = 0x315e;\n  t.weokorean = 0x315d;\n  t.wgrave = 0x1e81;\n  t.whitebullet = 0x25e6;\n  t.whitecircle = 0x25cb;\n  t.whitecircleinverse = 0x25d9;\n  t.whitecornerbracketleft = 0x300e;\n  t.whitecornerbracketleftvertical = 0xfe43;\n  t.whitecornerbracketright = 0x300f;\n  t.whitecornerbracketrightvertical = 0xfe44;\n  t.whitediamond = 0x25c7;\n  t.whitediamondcontainingblacksmalldiamond = 0x25c8;\n  t.whitedownpointingsmalltriangle = 0x25bf;\n  t.whitedownpointingtriangle = 0x25bd;\n  t.whiteleftpointingsmalltriangle = 0x25c3;\n  t.whiteleftpointingtriangle = 0x25c1;\n  t.whitelenticularbracketleft = 0x3016;\n  t.whitelenticularbracketright = 0x3017;\n  t.whiterightpointingsmalltriangle = 0x25b9;\n  t.whiterightpointingtriangle = 0x25b7;\n  t.whitesmallsquare = 0x25ab;\n  t.whitesmilingface = 0x263a;\n  t.whitesquare = 0x25a1;\n  t.whitestar = 0x2606;\n  t.whitetelephone = 0x260f;\n  t.whitetortoiseshellbracketleft = 0x3018;\n  t.whitetortoiseshellbracketright = 0x3019;\n  t.whiteuppointingsmalltriangle = 0x25b5;\n  t.whiteuppointingtriangle = 0x25b3;\n  t.wihiragana = 0x3090;\n  t.wikatakana = 0x30f0;\n  t.wikorean = 0x315f;\n  t.wmonospace = 0xff57;\n  t.wohiragana = 0x3092;\n  t.wokatakana = 0x30f2;\n  t.wokatakanahalfwidth = 0xff66;\n  t.won = 0x20a9;\n  t.wonmonospace = 0xffe6;\n  t.wowaenthai = 0x0e27;\n  t.wparen = 0x24b2;\n  t.wring = 0x1e98;\n  t.wsuperior = 0x02b7;\n  t.wturned = 0x028d;\n  t.wynn = 0x01bf;\n  t.x = 0x0078;\n  t.xabovecmb = 0x033d;\n  t.xbopomofo = 0x3112;\n  t.xcircle = 0x24e7;\n  t.xdieresis = 0x1e8d;\n  t.xdotaccent = 0x1e8b;\n  t.xeharmenian = 0x056d;\n  t.xi = 0x03be;\n  t.xmonospace = 0xff58;\n  t.xparen = 0x24b3;\n  t.xsuperior = 0x02e3;\n  t.y = 0x0079;\n  t.yaadosquare = 0x334e;\n  t.yabengali = 0x09af;\n  t.yacute = 0x00fd;\n  t.yadeva = 0x092f;\n  t.yaekorean = 0x3152;\n  t.yagujarati = 0x0aaf;\n  t.yagurmukhi = 0x0a2f;\n  t.yahiragana = 0x3084;\n  t.yakatakana = 0x30e4;\n  t.yakatakanahalfwidth = 0xff94;\n  t.yakorean = 0x3151;\n  t.yamakkanthai = 0x0e4e;\n  t.yasmallhiragana = 0x3083;\n  t.yasmallkatakana = 0x30e3;\n  t.yasmallkatakanahalfwidth = 0xff6c;\n  t.yatcyrillic = 0x0463;\n  t.ycircle = 0x24e8;\n  t.ycircumflex = 0x0177;\n  t.ydieresis = 0x00ff;\n  t.ydotaccent = 0x1e8f;\n  t.ydotbelow = 0x1ef5;\n  t.yeharabic = 0x064a;\n  t.yehbarreearabic = 0x06d2;\n  t.yehbarreefinalarabic = 0xfbaf;\n  t.yehfinalarabic = 0xfef2;\n  t.yehhamzaabovearabic = 0x0626;\n  t.yehhamzaabovefinalarabic = 0xfe8a;\n  t.yehhamzaaboveinitialarabic = 0xfe8b;\n  t.yehhamzaabovemedialarabic = 0xfe8c;\n  t.yehinitialarabic = 0xfef3;\n  t.yehmedialarabic = 0xfef4;\n  t.yehmeeminitialarabic = 0xfcdd;\n  t.yehmeemisolatedarabic = 0xfc58;\n  t.yehnoonfinalarabic = 0xfc94;\n  t.yehthreedotsbelowarabic = 0x06d1;\n  t.yekorean = 0x3156;\n  t.yen = 0x00a5;\n  t.yenmonospace = 0xffe5;\n  t.yeokorean = 0x3155;\n  t.yeorinhieuhkorean = 0x3186;\n  t.yerahbenyomohebrew = 0x05aa;\n  t.yerahbenyomolefthebrew = 0x05aa;\n  t.yericyrillic = 0x044b;\n  t.yerudieresiscyrillic = 0x04f9;\n  t.yesieungkorean = 0x3181;\n  t.yesieungpansioskorean = 0x3183;\n  t.yesieungsioskorean = 0x3182;\n  t.yetivhebrew = 0x059a;\n  t.ygrave = 0x1ef3;\n  t.yhook = 0x01b4;\n  t.yhookabove = 0x1ef7;\n  t.yiarmenian = 0x0575;\n  t.yicyrillic = 0x0457;\n  t.yikorean = 0x3162;\n  t.yinyang = 0x262f;\n  t.yiwnarmenian = 0x0582;\n  t.ymonospace = 0xff59;\n  t.yod = 0x05d9;\n  t.yoddagesh = 0xfb39;\n  t.yoddageshhebrew = 0xfb39;\n  t.yodhebrew = 0x05d9;\n  t.yodyodhebrew = 0x05f2;\n  t.yodyodpatahhebrew = 0xfb1f;\n  t.yohiragana = 0x3088;\n  t.yoikorean = 0x3189;\n  t.yokatakana = 0x30e8;\n  t.yokatakanahalfwidth = 0xff96;\n  t.yokorean = 0x315b;\n  t.yosmallhiragana = 0x3087;\n  t.yosmallkatakana = 0x30e7;\n  t.yosmallkatakanahalfwidth = 0xff6e;\n  t.yotgreek = 0x03f3;\n  t.yoyaekorean = 0x3188;\n  t.yoyakorean = 0x3187;\n  t.yoyakthai = 0x0e22;\n  t.yoyingthai = 0x0e0d;\n  t.yparen = 0x24b4;\n  t.ypogegrammeni = 0x037a;\n  t.ypogegrammenigreekcmb = 0x0345;\n  t.yr = 0x01a6;\n  t.yring = 0x1e99;\n  t.ysuperior = 0x02b8;\n  t.ytilde = 0x1ef9;\n  t.yturned = 0x028e;\n  t.yuhiragana = 0x3086;\n  t.yuikorean = 0x318c;\n  t.yukatakana = 0x30e6;\n  t.yukatakanahalfwidth = 0xff95;\n  t.yukorean = 0x3160;\n  t.yusbigcyrillic = 0x046b;\n  t.yusbigiotifiedcyrillic = 0x046d;\n  t.yuslittlecyrillic = 0x0467;\n  t.yuslittleiotifiedcyrillic = 0x0469;\n  t.yusmallhiragana = 0x3085;\n  t.yusmallkatakana = 0x30e5;\n  t.yusmallkatakanahalfwidth = 0xff6d;\n  t.yuyekorean = 0x318b;\n  t.yuyeokorean = 0x318a;\n  t.yyabengali = 0x09df;\n  t.yyadeva = 0x095f;\n  t.z = 0x007a;\n  t.zaarmenian = 0x0566;\n  t.zacute = 0x017a;\n  t.zadeva = 0x095b;\n  t.zagurmukhi = 0x0a5b;\n  t.zaharabic = 0x0638;\n  t.zahfinalarabic = 0xfec6;\n  t.zahinitialarabic = 0xfec7;\n  t.zahiragana = 0x3056;\n  t.zahmedialarabic = 0xfec8;\n  t.zainarabic = 0x0632;\n  t.zainfinalarabic = 0xfeb0;\n  t.zakatakana = 0x30b6;\n  t.zaqefgadolhebrew = 0x0595;\n  t.zaqefqatanhebrew = 0x0594;\n  t.zarqahebrew = 0x0598;\n  t.zayin = 0x05d6;\n  t.zayindagesh = 0xfb36;\n  t.zayindageshhebrew = 0xfb36;\n  t.zayinhebrew = 0x05d6;\n  t.zbopomofo = 0x3117;\n  t.zcaron = 0x017e;\n  t.zcircle = 0x24e9;\n  t.zcircumflex = 0x1e91;\n  t.zcurl = 0x0291;\n  t.zdot = 0x017c;\n  t.zdotaccent = 0x017c;\n  t.zdotbelow = 0x1e93;\n  t.zecyrillic = 0x0437;\n  t.zedescendercyrillic = 0x0499;\n  t.zedieresiscyrillic = 0x04df;\n  t.zehiragana = 0x305c;\n  t.zekatakana = 0x30bc;\n  t.zero = 0x0030;\n  t.zeroarabic = 0x0660;\n  t.zerobengali = 0x09e6;\n  t.zerodeva = 0x0966;\n  t.zerogujarati = 0x0ae6;\n  t.zerogurmukhi = 0x0a66;\n  t.zerohackarabic = 0x0660;\n  t.zeroinferior = 0x2080;\n  t.zeromonospace = 0xff10;\n  t.zerooldstyle = 0xf730;\n  t.zeropersian = 0x06f0;\n  t.zerosuperior = 0x2070;\n  t.zerothai = 0x0e50;\n  t.zerowidthjoiner = 0xfeff;\n  t.zerowidthnonjoiner = 0x200c;\n  t.zerowidthspace = 0x200b;\n  t.zeta = 0x03b6;\n  t.zhbopomofo = 0x3113;\n  t.zhearmenian = 0x056a;\n  t.zhebrevecyrillic = 0x04c2;\n  t.zhecyrillic = 0x0436;\n  t.zhedescendercyrillic = 0x0497;\n  t.zhedieresiscyrillic = 0x04dd;\n  t.zihiragana = 0x3058;\n  t.zikatakana = 0x30b8;\n  t.zinorhebrew = 0x05ae;\n  t.zlinebelow = 0x1e95;\n  t.zmonospace = 0xff5a;\n  t.zohiragana = 0x305e;\n  t.zokatakana = 0x30be;\n  t.zparen = 0x24b5;\n  t.zretroflexhook = 0x0290;\n  t.zstroke = 0x01b6;\n  t.zuhiragana = 0x305a;\n  t.zukatakana = 0x30ba;\n  t[\".notdef\"] = 0x0000;\n  t.angbracketleftbig = 0x2329;\n  t.angbracketleftBig = 0x2329;\n  t.angbracketleftbigg = 0x2329;\n  t.angbracketleftBigg = 0x2329;\n  t.angbracketrightBig = 0x232a;\n  t.angbracketrightbig = 0x232a;\n  t.angbracketrightBigg = 0x232a;\n  t.angbracketrightbigg = 0x232a;\n  t.arrowhookleft = 0x21aa;\n  t.arrowhookright = 0x21a9;\n  t.arrowlefttophalf = 0x21bc;\n  t.arrowleftbothalf = 0x21bd;\n  t.arrownortheast = 0x2197;\n  t.arrownorthwest = 0x2196;\n  t.arrowrighttophalf = 0x21c0;\n  t.arrowrightbothalf = 0x21c1;\n  t.arrowsoutheast = 0x2198;\n  t.arrowsouthwest = 0x2199;\n  t.backslashbig = 0x2216;\n  t.backslashBig = 0x2216;\n  t.backslashBigg = 0x2216;\n  t.backslashbigg = 0x2216;\n  t.bardbl = 0x2016;\n  t.bracehtipdownleft = 0xfe37;\n  t.bracehtipdownright = 0xfe37;\n  t.bracehtipupleft = 0xfe38;\n  t.bracehtipupright = 0xfe38;\n  t.braceleftBig = 0x007b;\n  t.braceleftbig = 0x007b;\n  t.braceleftbigg = 0x007b;\n  t.braceleftBigg = 0x007b;\n  t.bracerightBig = 0x007d;\n  t.bracerightbig = 0x007d;\n  t.bracerightbigg = 0x007d;\n  t.bracerightBigg = 0x007d;\n  t.bracketleftbig = 0x005b;\n  t.bracketleftBig = 0x005b;\n  t.bracketleftbigg = 0x005b;\n  t.bracketleftBigg = 0x005b;\n  t.bracketrightBig = 0x005d;\n  t.bracketrightbig = 0x005d;\n  t.bracketrightbigg = 0x005d;\n  t.bracketrightBigg = 0x005d;\n  t.ceilingleftbig = 0x2308;\n  t.ceilingleftBig = 0x2308;\n  t.ceilingleftBigg = 0x2308;\n  t.ceilingleftbigg = 0x2308;\n  t.ceilingrightbig = 0x2309;\n  t.ceilingrightBig = 0x2309;\n  t.ceilingrightbigg = 0x2309;\n  t.ceilingrightBigg = 0x2309;\n  t.circledotdisplay = 0x2299;\n  t.circledottext = 0x2299;\n  t.circlemultiplydisplay = 0x2297;\n  t.circlemultiplytext = 0x2297;\n  t.circleplusdisplay = 0x2295;\n  t.circleplustext = 0x2295;\n  t.contintegraldisplay = 0x222e;\n  t.contintegraltext = 0x222e;\n  t.coproductdisplay = 0x2210;\n  t.coproducttext = 0x2210;\n  t.floorleftBig = 0x230a;\n  t.floorleftbig = 0x230a;\n  t.floorleftbigg = 0x230a;\n  t.floorleftBigg = 0x230a;\n  t.floorrightbig = 0x230b;\n  t.floorrightBig = 0x230b;\n  t.floorrightBigg = 0x230b;\n  t.floorrightbigg = 0x230b;\n  t.hatwide = 0x0302;\n  t.hatwider = 0x0302;\n  t.hatwidest = 0x0302;\n  t.intercal = 0x1d40;\n  t.integraldisplay = 0x222b;\n  t.integraltext = 0x222b;\n  t.intersectiondisplay = 0x22c2;\n  t.intersectiontext = 0x22c2;\n  t.logicalanddisplay = 0x2227;\n  t.logicalandtext = 0x2227;\n  t.logicalordisplay = 0x2228;\n  t.logicalortext = 0x2228;\n  t.parenleftBig = 0x0028;\n  t.parenleftbig = 0x0028;\n  t.parenleftBigg = 0x0028;\n  t.parenleftbigg = 0x0028;\n  t.parenrightBig = 0x0029;\n  t.parenrightbig = 0x0029;\n  t.parenrightBigg = 0x0029;\n  t.parenrightbigg = 0x0029;\n  t.prime = 0x2032;\n  t.productdisplay = 0x220f;\n  t.producttext = 0x220f;\n  t.radicalbig = 0x221a;\n  t.radicalBig = 0x221a;\n  t.radicalBigg = 0x221a;\n  t.radicalbigg = 0x221a;\n  t.radicalbt = 0x221a;\n  t.radicaltp = 0x221a;\n  t.radicalvertex = 0x221a;\n  t.slashbig = 0x002f;\n  t.slashBig = 0x002f;\n  t.slashBigg = 0x002f;\n  t.slashbigg = 0x002f;\n  t.summationdisplay = 0x2211;\n  t.summationtext = 0x2211;\n  t.tildewide = 0x02dc;\n  t.tildewider = 0x02dc;\n  t.tildewidest = 0x02dc;\n  t.uniondisplay = 0x22c3;\n  t.unionmultidisplay = 0x228e;\n  t.unionmultitext = 0x228e;\n  t.unionsqdisplay = 0x2294;\n  t.unionsqtext = 0x2294;\n  t.uniontext = 0x22c3;\n  t.vextenddouble = 0x2225;\n  t.vextendsingle = 0x2223;\n});\nconst getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n  t.space = 0x0020;\n  t.a1 = 0x2701;\n  t.a2 = 0x2702;\n  t.a202 = 0x2703;\n  t.a3 = 0x2704;\n  t.a4 = 0x260e;\n  t.a5 = 0x2706;\n  t.a119 = 0x2707;\n  t.a118 = 0x2708;\n  t.a117 = 0x2709;\n  t.a11 = 0x261b;\n  t.a12 = 0x261e;\n  t.a13 = 0x270c;\n  t.a14 = 0x270d;\n  t.a15 = 0x270e;\n  t.a16 = 0x270f;\n  t.a105 = 0x2710;\n  t.a17 = 0x2711;\n  t.a18 = 0x2712;\n  t.a19 = 0x2713;\n  t.a20 = 0x2714;\n  t.a21 = 0x2715;\n  t.a22 = 0x2716;\n  t.a23 = 0x2717;\n  t.a24 = 0x2718;\n  t.a25 = 0x2719;\n  t.a26 = 0x271a;\n  t.a27 = 0x271b;\n  t.a28 = 0x271c;\n  t.a6 = 0x271d;\n  t.a7 = 0x271e;\n  t.a8 = 0x271f;\n  t.a9 = 0x2720;\n  t.a10 = 0x2721;\n  t.a29 = 0x2722;\n  t.a30 = 0x2723;\n  t.a31 = 0x2724;\n  t.a32 = 0x2725;\n  t.a33 = 0x2726;\n  t.a34 = 0x2727;\n  t.a35 = 0x2605;\n  t.a36 = 0x2729;\n  t.a37 = 0x272a;\n  t.a38 = 0x272b;\n  t.a39 = 0x272c;\n  t.a40 = 0x272d;\n  t.a41 = 0x272e;\n  t.a42 = 0x272f;\n  t.a43 = 0x2730;\n  t.a44 = 0x2731;\n  t.a45 = 0x2732;\n  t.a46 = 0x2733;\n  t.a47 = 0x2734;\n  t.a48 = 0x2735;\n  t.a49 = 0x2736;\n  t.a50 = 0x2737;\n  t.a51 = 0x2738;\n  t.a52 = 0x2739;\n  t.a53 = 0x273a;\n  t.a54 = 0x273b;\n  t.a55 = 0x273c;\n  t.a56 = 0x273d;\n  t.a57 = 0x273e;\n  t.a58 = 0x273f;\n  t.a59 = 0x2740;\n  t.a60 = 0x2741;\n  t.a61 = 0x2742;\n  t.a62 = 0x2743;\n  t.a63 = 0x2744;\n  t.a64 = 0x2745;\n  t.a65 = 0x2746;\n  t.a66 = 0x2747;\n  t.a67 = 0x2748;\n  t.a68 = 0x2749;\n  t.a69 = 0x274a;\n  t.a70 = 0x274b;\n  t.a71 = 0x25cf;\n  t.a72 = 0x274d;\n  t.a73 = 0x25a0;\n  t.a74 = 0x274f;\n  t.a203 = 0x2750;\n  t.a75 = 0x2751;\n  t.a204 = 0x2752;\n  t.a76 = 0x25b2;\n  t.a77 = 0x25bc;\n  t.a78 = 0x25c6;\n  t.a79 = 0x2756;\n  t.a81 = 0x25d7;\n  t.a82 = 0x2758;\n  t.a83 = 0x2759;\n  t.a84 = 0x275a;\n  t.a97 = 0x275b;\n  t.a98 = 0x275c;\n  t.a99 = 0x275d;\n  t.a100 = 0x275e;\n  t.a101 = 0x2761;\n  t.a102 = 0x2762;\n  t.a103 = 0x2763;\n  t.a104 = 0x2764;\n  t.a106 = 0x2765;\n  t.a107 = 0x2766;\n  t.a108 = 0x2767;\n  t.a112 = 0x2663;\n  t.a111 = 0x2666;\n  t.a110 = 0x2665;\n  t.a109 = 0x2660;\n  t.a120 = 0x2460;\n  t.a121 = 0x2461;\n  t.a122 = 0x2462;\n  t.a123 = 0x2463;\n  t.a124 = 0x2464;\n  t.a125 = 0x2465;\n  t.a126 = 0x2466;\n  t.a127 = 0x2467;\n  t.a128 = 0x2468;\n  t.a129 = 0x2469;\n  t.a130 = 0x2776;\n  t.a131 = 0x2777;\n  t.a132 = 0x2778;\n  t.a133 = 0x2779;\n  t.a134 = 0x277a;\n  t.a135 = 0x277b;\n  t.a136 = 0x277c;\n  t.a137 = 0x277d;\n  t.a138 = 0x277e;\n  t.a139 = 0x277f;\n  t.a140 = 0x2780;\n  t.a141 = 0x2781;\n  t.a142 = 0x2782;\n  t.a143 = 0x2783;\n  t.a144 = 0x2784;\n  t.a145 = 0x2785;\n  t.a146 = 0x2786;\n  t.a147 = 0x2787;\n  t.a148 = 0x2788;\n  t.a149 = 0x2789;\n  t.a150 = 0x278a;\n  t.a151 = 0x278b;\n  t.a152 = 0x278c;\n  t.a153 = 0x278d;\n  t.a154 = 0x278e;\n  t.a155 = 0x278f;\n  t.a156 = 0x2790;\n  t.a157 = 0x2791;\n  t.a158 = 0x2792;\n  t.a159 = 0x2793;\n  t.a160 = 0x2794;\n  t.a161 = 0x2192;\n  t.a163 = 0x2194;\n  t.a164 = 0x2195;\n  t.a196 = 0x2798;\n  t.a165 = 0x2799;\n  t.a192 = 0x279a;\n  t.a166 = 0x279b;\n  t.a167 = 0x279c;\n  t.a168 = 0x279d;\n  t.a169 = 0x279e;\n  t.a170 = 0x279f;\n  t.a171 = 0x27a0;\n  t.a172 = 0x27a1;\n  t.a173 = 0x27a2;\n  t.a162 = 0x27a3;\n  t.a174 = 0x27a4;\n  t.a175 = 0x27a5;\n  t.a176 = 0x27a6;\n  t.a177 = 0x27a7;\n  t.a178 = 0x27a8;\n  t.a179 = 0x27a9;\n  t.a193 = 0x27aa;\n  t.a180 = 0x27ab;\n  t.a199 = 0x27ac;\n  t.a181 = 0x27ad;\n  t.a200 = 0x27ae;\n  t.a182 = 0x27af;\n  t.a201 = 0x27b1;\n  t.a183 = 0x27b2;\n  t.a184 = 0x27b3;\n  t.a197 = 0x27b4;\n  t.a185 = 0x27b5;\n  t.a194 = 0x27b6;\n  t.a198 = 0x27b7;\n  t.a186 = 0x27b8;\n  t.a195 = 0x27b9;\n  t.a187 = 0x27ba;\n  t.a188 = 0x27bb;\n  t.a189 = 0x27bc;\n  t.a190 = 0x27bd;\n  t.a191 = 0x27be;\n  t.a89 = 0x2768;\n  t.a90 = 0x2769;\n  t.a93 = 0x276a;\n  t.a94 = 0x276b;\n  t.a91 = 0x276c;\n  t.a92 = 0x276d;\n  t.a205 = 0x276e;\n  t.a85 = 0x276f;\n  t.a206 = 0x2770;\n  t.a86 = 0x2771;\n  t.a87 = 0x2772;\n  t.a88 = 0x2773;\n  t.a95 = 0x2774;\n  t.a96 = 0x2775;\n  t[\".notdef\"] = 0x0000;\n});\n\n;// ./src/core/unicode.js\n\n\n\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n  t[63721] = 0x00a9;\n  t[63193] = 0x00a9;\n  t[63720] = 0x00ae;\n  t[63194] = 0x00ae;\n  t[63722] = 0x2122;\n  t[63195] = 0x2122;\n  t[63729] = 0x23a7;\n  t[63730] = 0x23a8;\n  t[63731] = 0x23a9;\n  t[63740] = 0x23ab;\n  t[63741] = 0x23ac;\n  t[63742] = 0x23ad;\n  t[63726] = 0x23a1;\n  t[63727] = 0x23a2;\n  t[63728] = 0x23a3;\n  t[63737] = 0x23a4;\n  t[63738] = 0x23a5;\n  t[63739] = 0x23a6;\n  t[63723] = 0x239b;\n  t[63724] = 0x239c;\n  t[63725] = 0x239d;\n  t[63734] = 0x239e;\n  t[63735] = 0x239f;\n  t[63736] = 0x23a0;\n});\nfunction mapSpecialUnicodeValues(code) {\n  if (code >= 0xfff0 && code <= 0xffff) {\n    return 0;\n  } else if (code >= 0xf600 && code <= 0xf8ff) {\n    return getSpecialPUASymbols()[code] || code;\n  } else if (code === 0x00ad) {\n    return 0x002d;\n  }\n  return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n  let unicode = glyphsUnicodeMap[name];\n  if (unicode !== undefined) {\n    return unicode;\n  }\n  if (!name) {\n    return -1;\n  }\n  if (name[0] === \"u\") {\n    const nameLen = name.length;\n    let hexStr;\n    if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n      hexStr = name.substring(3);\n    } else if (nameLen >= 5 && nameLen <= 7) {\n      hexStr = name.substring(1);\n    } else {\n      return -1;\n    }\n    if (hexStr === hexStr.toUpperCase()) {\n      unicode = parseInt(hexStr, 16);\n      if (unicode >= 0) {\n        return unicode;\n      }\n    }\n  }\n  return -1;\n}\nconst UnicodeRanges = [[0x0000, 0x007f], [0x0080, 0x00ff], [0x0100, 0x017f], [0x0180, 0x024f], [0x0250, 0x02af, 0x1d00, 0x1d7f, 0x1d80, 0x1dbf], [0x02b0, 0x02ff, 0xa700, 0xa71f], [0x0300, 0x036f, 0x1dc0, 0x1dff], [0x0370, 0x03ff], [0x2c80, 0x2cff], [0x0400, 0x04ff, 0x0500, 0x052f, 0x2de0, 0x2dff, 0xa640, 0xa69f], [0x0530, 0x058f], [0x0590, 0x05ff], [0xa500, 0xa63f], [0x0600, 0x06ff, 0x0750, 0x077f], [0x07c0, 0x07ff], [0x0900, 0x097f], [0x0980, 0x09ff], [0x0a00, 0x0a7f], [0x0a80, 0x0aff], [0x0b00, 0x0b7f], [0x0b80, 0x0bff], [0x0c00, 0x0c7f], [0x0c80, 0x0cff], [0x0d00, 0x0d7f], [0x0e00, 0x0e7f], [0x0e80, 0x0eff], [0x10a0, 0x10ff, 0x2d00, 0x2d2f], [0x1b00, 0x1b7f], [0x1100, 0x11ff], [0x1e00, 0x1eff, 0x2c60, 0x2c7f, 0xa720, 0xa7ff], [0x1f00, 0x1fff], [0x2000, 0x206f, 0x2e00, 0x2e7f], [0x2070, 0x209f], [0x20a0, 0x20cf], [0x20d0, 0x20ff], [0x2100, 0x214f], [0x2150, 0x218f], [0x2190, 0x21ff, 0x27f0, 0x27ff, 0x2900, 0x297f, 0x2b00, 0x2bff], [0x2200, 0x22ff, 0x2a00, 0x2aff, 0x27c0, 0x27ef, 0x2980, 0x29ff], [0x2300, 0x23ff], [0x2400, 0x243f], [0x2440, 0x245f], [0x2460, 0x24ff], [0x2500, 0x257f], [0x2580, 0x259f], [0x25a0, 0x25ff], [0x2600, 0x26ff], [0x2700, 0x27bf], [0x3000, 0x303f], [0x3040, 0x309f], [0x30a0, 0x30ff, 0x31f0, 0x31ff], [0x3100, 0x312f, 0x31a0, 0x31bf], [0x3130, 0x318f], [0xa840, 0xa87f], [0x3200, 0x32ff], [0x3300, 0x33ff], [0xac00, 0xd7af], [0xd800, 0xdfff], [0x10900, 0x1091f], [0x4e00, 0x9fff, 0x2e80, 0x2eff, 0x2f00, 0x2fdf, 0x2ff0, 0x2fff, 0x3400, 0x4dbf, 0x20000, 0x2a6df, 0x3190, 0x319f], [0xe000, 0xf8ff], [0x31c0, 0x31ef, 0xf900, 0xfaff, 0x2f800, 0x2fa1f], [0xfb00, 0xfb4f], [0xfb50, 0xfdff], [0xfe20, 0xfe2f], [0xfe10, 0xfe1f], [0xfe50, 0xfe6f], [0xfe70, 0xfeff], [0xff00, 0xffef], [0xfff0, 0xffff], [0x0f00, 0x0fff], [0x0700, 0x074f], [0x0780, 0x07bf], [0x0d80, 0x0dff], [0x1000, 0x109f], [0x1200, 0x137f, 0x1380, 0x139f, 0x2d80, 0x2ddf], [0x13a0, 0x13ff], [0x1400, 0x167f], [0x1680, 0x169f], [0x16a0, 0x16ff], [0x1780, 0x17ff], [0x1800, 0x18af], [0x2800, 0x28ff], [0xa000, 0xa48f], [0x1700, 0x171f, 0x1720, 0x173f, 0x1740, 0x175f, 0x1760, 0x177f], [0x10300, 0x1032f], [0x10330, 0x1034f], [0x10400, 0x1044f], [0x1d000, 0x1d0ff, 0x1d100, 0x1d1ff, 0x1d200, 0x1d24f], [0x1d400, 0x1d7ff], [0xff000, 0xffffd], [0xfe00, 0xfe0f, 0xe0100, 0xe01ef], [0xe0000, 0xe007f], [0x1900, 0x194f], [0x1950, 0x197f], [0x1980, 0x19df], [0x1a00, 0x1a1f], [0x2c00, 0x2c5f], [0x2d30, 0x2d7f], [0x4dc0, 0x4dff], [0xa800, 0xa82f], [0x10000, 0x1007f, 0x10080, 0x100ff, 0x10100, 0x1013f], [0x10140, 0x1018f], [0x10380, 0x1039f], [0x103a0, 0x103df], [0x10450, 0x1047f], [0x10480, 0x104af], [0x10800, 0x1083f], [0x10a00, 0x10a5f], [0x1d300, 0x1d35f], [0x12000, 0x123ff, 0x12400, 0x1247f], [0x1d360, 0x1d37f], [0x1b80, 0x1bbf], [0x1c00, 0x1c4f], [0x1c50, 0x1c7f], [0xa880, 0xa8df], [0xa900, 0xa92f], [0xa930, 0xa95f], [0xaa00, 0xaa5f], [0x10190, 0x101cf], [0x101d0, 0x101ff], [0x102a0, 0x102df, 0x10280, 0x1029f, 0x10920, 0x1093f], [0x1f030, 0x1f09f, 0x1f000, 0x1f02f]];\nfunction getUnicodeRangeFor(value, lastPosition = -1) {\n  if (lastPosition !== -1) {\n    const range = UnicodeRanges[lastPosition];\n    for (let i = 0, ii = range.length; i < ii; i += 2) {\n      if (value >= range[i] && value <= range[i + 1]) {\n        return lastPosition;\n      }\n    }\n  }\n  for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n    const range = UnicodeRanges[i];\n    for (let j = 0, jj = range.length; j < jj; j += 2) {\n      if (value >= range[j] && value <= range[j + 1]) {\n        return i;\n      }\n    }\n  }\n  return -1;\n}\nconst SpecialCharRegExp = /^(\\s)|(\\p{Mn})|(\\p{Cf})$/u;\nconst CategoryCache = new Map();\nfunction getCharUnicodeCategory(char) {\n  const cachedCategory = CategoryCache.get(char);\n  if (cachedCategory) {\n    return cachedCategory;\n  }\n  const groups = char.match(SpecialCharRegExp);\n  const category = {\n    isWhitespace: !!groups?.[1],\n    isZeroWidthDiacritic: !!groups?.[2],\n    isInvisibleFormatMark: !!groups?.[3]\n  };\n  CategoryCache.set(char, category);\n  return category;\n}\nfunction clearUnicodeCaches() {\n  CategoryCache.clear();\n}\n\n;// ./src/core/fonts_utils.js\n\n\n\n\n\n\n\n\n\n\n\nconst SEAC_ANALYSIS_ENABLED = true;\nconst FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144\n};\nconst MacStandardGlyphOrdering = [\".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\", \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\", \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\", \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n  const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n  if (unicode !== -1) {\n    for (const key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n  info(\"Unable to recover a standard glyph name for: \" + name);\n  return name;\n}\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  const charCodeToGlyphId = Object.create(null);\n  let glyphId, charCode, baseEncoding;\n  const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n  if (properties.isInternalFont) {\n    baseEncoding = builtInEncoding;\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0;\n    }\n  } else if (properties.baseEncodingName) {\n    baseEncoding = getEncoding(properties.baseEncodingName);\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0;\n    }\n  } else if (isSymbolicFont) {\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    baseEncoding = StandardEncoding;\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0;\n    }\n  }\n  const differences = properties.differences;\n  let glyphsUnicodeMap;\n  if (differences) {\n    for (charCode in differences) {\n      const glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = getGlyphsUnicode();\n        }\n        const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0;\n    }\n  }\n  return charCodeToGlyphId;\n}\nfunction normalizeFontName(name) {\n  return name.replaceAll(/[,_]/g, \"-\").replaceAll(/\\s/g, \"\");\n}\nconst getVerticalPresentationForm = getLookupTableFactory(t => {\n  t[0x2013] = 0xfe32;\n  t[0x2014] = 0xfe31;\n  t[0x2025] = 0xfe30;\n  t[0x2026] = 0xfe19;\n  t[0x3001] = 0xfe11;\n  t[0x3002] = 0xfe12;\n  t[0x3008] = 0xfe3f;\n  t[0x3009] = 0xfe40;\n  t[0x300a] = 0xfe3d;\n  t[0x300b] = 0xfe3e;\n  t[0x300c] = 0xfe41;\n  t[0x300d] = 0xfe42;\n  t[0x300e] = 0xfe43;\n  t[0x300f] = 0xfe44;\n  t[0x3010] = 0xfe3b;\n  t[0x3011] = 0xfe3c;\n  t[0x3014] = 0xfe39;\n  t[0x3015] = 0xfe3a;\n  t[0x3016] = 0xfe17;\n  t[0x3017] = 0xfe18;\n  t[0xfe4f] = 0xfe34;\n  t[0xff01] = 0xfe15;\n  t[0xff08] = 0xfe35;\n  t[0xff09] = 0xfe36;\n  t[0xff0c] = 0xfe10;\n  t[0xff1a] = 0xfe13;\n  t[0xff1b] = 0xfe14;\n  t[0xff1f] = 0xfe16;\n  t[0xff3b] = 0xfe47;\n  t[0xff3d] = 0xfe48;\n  t[0xff3f] = 0xfe33;\n  t[0xff5b] = 0xfe37;\n  t[0xff5d] = 0xfe38;\n});\nconst MAX_SIZE_TO_COMPILE = 1000;\nfunction compileType3Glyph({\n  data: img,\n  width,\n  height\n}) {\n  if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n    return null;\n  }\n  const POINT_TO_PROCESS_LIMIT = 1000;\n  const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n  const width1 = width + 1;\n  const points = new Uint8Array(width1 * (height + 1));\n  let i, j, j0;\n  const lineSize = width + 7 & ~7;\n  const data = new Uint8Array(lineSize * height);\n  let pos = 0;\n  for (const elem of img) {\n    let mask = 128;\n    while (mask > 0) {\n      data[pos++] = elem & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n  let count = 0;\n  pos = 0;\n  if (data[pos] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n  for (i = 1; i < height; i++) {\n    pos = i * lineSize;\n    j0 = i * width1;\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n    let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n    for (j = 1; j < width; j++) {\n      sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n      pos++;\n    }\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n  pos = lineSize * (height - 1);\n  j0 = i * width1;\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n  const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  const pathBuf = [];\n  const {\n    a,\n    b,\n    c,\n    d,\n    e,\n    f\n  } = new DOMMatrix().scaleSelf(1 / width, -1 / height).translateSelf(0, -height);\n  for (i = 0; count && i <= height; i++) {\n    let p = i * width1;\n    const end = p + width;\n    while (p < end && !points[p]) {\n      p++;\n    }\n    if (p === end) {\n      continue;\n    }\n    let x = p % width1;\n    let y = i;\n    pathBuf.push(DrawOPS.moveTo, a * x + c * y + e, b * x + d * y + f);\n    const p0 = p;\n    let type = points[p];\n    do {\n      const step = steps[type];\n      do {\n        p += step;\n      } while (!points[p]);\n      const pp = points[p];\n      if (pp !== 5 && pp !== 10) {\n        type = pp;\n        points[p] = 0;\n      } else {\n        type = pp & 0x33 * type >> 4;\n        points[p] &= type >> 2 | type << 2;\n      }\n      x = p % width1;\n      y = p / width1 | 0;\n      pathBuf.push(DrawOPS.lineTo, a * x + c * y + e, b * x + d * y + f);\n      if (!points[p]) {\n        --count;\n      }\n    } while (p0 !== p);\n    --i;\n  }\n  return [OPS.rawFillPath, [new Float32Array(pathBuf)], new Float32Array([0, 0, width, height])];\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.to-array.js\nvar es_iterator_to_array = __webpack_require__(1806);\n;// ./src/core/charsets.js\nconst ISOAdobeCharset = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"];\nconst ExpertCharset = [\".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nconst ExpertSubsetCharset = [\".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\"];\n\n;// ./src/core/data_builder.js\n\n\n\n\n\n\n\nclass DataBuilder {\n  #buf;\n  #bufLength = 1024;\n  #hasExactLength = false;\n  #pos = 0;\n  #view;\n  constructor({\n    exactLength = 0,\n    minLength = 0\n  }) {\n    this.#hasExactLength = !!exactLength;\n    this.#initBuf(exactLength || minLength);\n  }\n  #initBuf(minLength) {\n    if (this.#hasExactLength) {\n      this.#bufLength = minLength;\n    } else {\n      while (this.#bufLength < minLength) {\n        this.#bufLength *= 2;\n      }\n    }\n    const newBuf = new Uint8Array(this.#bufLength);\n    if (this.#buf) {\n      newBuf.set(this.#buf, 0);\n    }\n    this.#buf = newBuf;\n    this.#view = new DataView(newBuf.buffer);\n  }\n  get data() {\n    return this.#buf.subarray(0, this.#pos);\n  }\n  get length() {\n    return this.#pos;\n  }\n  skip(n) {\n    this.#pos += n;\n  }\n  setArray(arr) {\n    const newPos = this.#pos + arr.length;\n    if (!this.#hasExactLength && newPos > this.#bufLength) {\n      this.#initBuf(newPos);\n    }\n    this.#buf.set(arr, this.#pos);\n    this.#pos = newPos;\n  }\n  setInt16(val) {\n    const newPos = this.#pos + 2;\n    if (!this.#hasExactLength && newPos > this.#bufLength) {\n      this.#initBuf(newPos);\n    }\n    this.#view.setInt16(this.#pos, val);\n    this.#pos = newPos;\n  }\n  setSafeInt16(val) {\n    const newPos = this.#pos + 2;\n    if (!this.#hasExactLength && newPos > this.#bufLength) {\n      this.#initBuf(newPos);\n    }\n    this.#view.setInt16(this.#pos, MathClamp(val, -0x8000, 0x7fff));\n    this.#pos = newPos;\n  }\n  setInt32(val) {\n    const newPos = this.#pos + 4;\n    if (!this.#hasExactLength && newPos > this.#bufLength) {\n      this.#initBuf(newPos);\n    }\n    this.#view.setInt32(this.#pos, val);\n    this.#pos = newPos;\n  }\n}\n\n;// ./src/core/cff_parser.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MAX_SUBR_NESTING = 10;\nfunction looksLikeUnsigned16BitNegative(coord) {\n  return coord > 0x7fff && coord <= 0xffff;\n}\nfunction recoverSigned16BitBBox(bbox, onlyLowerLeft = false) {\n  return Util.normalizeRect(bbox.map((coord, i) => (!onlyLowerLeft || i < 2) && looksLikeUnsigned16BitNegative(coord) ? coord - 0x10000 : coord));\n}\nconst CFFStandardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\nconst NUM_STANDARD_CFF_STRINGS = 391;\nconst DEFAULT_BLUE_SCALE = 0.039625;\nconst DEFAULT_BLUE_SHIFT = 7;\nconst DEFAULT_BLUE_FUZZ = 1;\nconst DEFAULT_EXPANSION_FACTOR = 0.06;\nconst CharstringValidationData = [null, {\n  id: \"hstem\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, null, {\n  id: \"vstem\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"vmoveto\",\n  min: 1,\n  stackClearing: true\n}, {\n  id: \"rlineto\",\n  min: 2,\n  resetStack: true\n}, {\n  id: \"hlineto\",\n  min: 1,\n  resetStack: true\n}, {\n  id: \"vlineto\",\n  min: 1,\n  resetStack: true\n}, {\n  id: \"rrcurveto\",\n  min: 6,\n  resetStack: true\n}, null, {\n  id: \"callsubr\",\n  min: 1\n}, {\n  id: \"return\",\n  min: 0\n}, null, null, {\n  id: \"endchar\",\n  min: 0,\n  stackClearing: true\n}, null, null, null, {\n  id: \"hstemhm\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"hintmask\",\n  min: 0,\n  stackClearing: true\n}, {\n  id: \"cntrmask\",\n  min: 0,\n  stackClearing: true\n}, {\n  id: \"rmoveto\",\n  min: 2,\n  stackClearing: true\n}, {\n  id: \"hmoveto\",\n  min: 1,\n  stackClearing: true\n}, {\n  id: \"vstemhm\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"rcurveline\",\n  min: 8,\n  resetStack: true\n}, {\n  id: \"rlinecurve\",\n  min: 8,\n  resetStack: true\n}, {\n  id: \"vvcurveto\",\n  min: 4,\n  resetStack: true\n}, {\n  id: \"hhcurveto\",\n  min: 4,\n  resetStack: true\n}, null, {\n  id: \"callgsubr\",\n  min: 1\n}, {\n  id: \"vhcurveto\",\n  min: 4,\n  resetStack: true\n}, {\n  id: \"hvcurveto\",\n  min: 4,\n  resetStack: true\n}];\nconst CharstringValidationData12 = [null, null, null, {\n  id: \"and\",\n  min: 2,\n  stackDelta: -1\n}, {\n  id: \"or\",\n  min: 2,\n  stackDelta: -1\n}, {\n  id: \"not\",\n  min: 1,\n  stackDelta: 0\n}, null, null, null, {\n  id: \"abs\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"add\",\n  min: 2,\n  stackDelta: -1,\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] + stack[index - 1];\n  }\n}, {\n  id: \"sub\",\n  min: 2,\n  stackDelta: -1,\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] - stack[index - 1];\n  }\n}, {\n  id: \"div\",\n  min: 2,\n  stackDelta: -1,\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] / stack[index - 1];\n  }\n}, null, {\n  id: \"neg\",\n  min: 1,\n  stackDelta: 0,\n  stackFn(stack, index) {\n    stack[index - 1] = -stack[index - 1];\n  }\n}, {\n  id: \"eq\",\n  min: 2,\n  stackDelta: -1\n}, null, null, {\n  id: \"drop\",\n  min: 1,\n  stackDelta: -1\n}, null, {\n  id: \"put\",\n  min: 2,\n  stackDelta: -2\n}, {\n  id: \"get\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"ifelse\",\n  min: 4,\n  stackDelta: -3\n}, {\n  id: \"random\",\n  min: 0,\n  stackDelta: 1\n}, {\n  id: \"mul\",\n  min: 2,\n  stackDelta: -1,\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] * stack[index - 1];\n  }\n}, null, {\n  id: \"sqrt\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"dup\",\n  min: 1,\n  stackDelta: 1\n}, {\n  id: \"exch\",\n  min: 2,\n  stackDelta: 0\n}, {\n  id: \"index\",\n  min: 2,\n  stackDelta: 0\n}, {\n  id: \"roll\",\n  min: 3,\n  stackDelta: -2\n}, null, null, null, {\n  id: \"hflex\",\n  min: 7,\n  resetStack: true\n}, {\n  id: \"flex\",\n  min: 13,\n  resetStack: true\n}, {\n  id: \"hflex1\",\n  min: 9,\n  resetStack: true\n}, {\n  id: \"flex1\",\n  min: 11,\n  resetStack: true\n}];\nclass CFFParser {\n  constructor(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n  parse() {\n    const properties = this.properties;\n    const cff = new CFF(this.bytes.length);\n    this.cff = cff;\n    const header = this.parseHeader();\n    const nameIndex = this.parseIndex(header.endPos);\n    const topDictIndex = this.parseIndex(nameIndex.endPos);\n    const stringIndex = this.parseIndex(topDictIndex.endPos);\n    const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n    const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n    const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n    cff.header = header.obj;\n    cff.names = this.parseNameIndex(nameIndex.obj);\n    cff.strings = this.parseStringIndex(stringIndex.obj);\n    cff.topDict = topDict;\n    cff.globalSubrIndex = globalSubrIndex.obj;\n    this.parsePrivateDict(cff.topDict);\n    cff.isCIDFont = topDict.hasName(\"ROS\");\n    const charStringOffset = topDict.getByName(\"CharStrings\");\n    const charStringIndex = this.parseIndex(charStringOffset).obj;\n    cff.charStringCount = charStringIndex.count;\n    const fontMatrix = topDict.getByName(\"FontMatrix\");\n    if (fontMatrix) {\n      properties.fontMatrix = fontMatrix;\n    }\n    let fontBBox = topDict.getByName(\"FontBBox\");\n    const descriptorBBox = properties.bbox?.some(coord => coord !== 0) ? recoverSigned16BitBBox(properties.bbox) : null;\n    const cffBBoxHasUnsignedLowerLeft = fontBBox?.slice(0, 2).some(looksLikeUnsigned16BitNegative);\n    const cffBBoxHasUnsignedCoords = fontBBox?.some(looksLikeUnsigned16BitNegative);\n    if (fontBBox?.every(coord => coord === 0) && descriptorBBox) {\n      fontBBox = descriptorBBox;\n      topDict.setByName(\"FontBBox\", fontBBox);\n    } else if (cffBBoxHasUnsignedCoords) {\n      const recoveredFontBBox = recoverSigned16BitBBox(fontBBox);\n      const descriptorCorroborates = descriptorBBox && properties.bbox.some(coord => coord < 0) && !properties.bbox.some(looksLikeUnsigned16BitNegative) && isArrayEqual(recoveredFontBBox, descriptorBBox);\n      if (descriptorCorroborates || cffBBoxHasUnsignedLowerLeft) {\n        fontBBox = descriptorCorroborates ? recoveredFontBBox : recoverSigned16BitBBox(fontBBox, true);\n        topDict.setByName(\"FontBBox\", fontBBox);\n      }\n    }\n    if (fontBBox?.some(coord => coord !== 0)) {\n      properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n      properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n      properties.ascentScaled = true;\n    }\n    let charset, encoding;\n    if (cff.isCIDFont) {\n      const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n      for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n        const dictRaw = fdArrayIndex.get(i);\n        const fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n        this.parsePrivateDict(fontDict);\n        cff.fdArray.push(fontDict);\n      }\n      encoding = null;\n      charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, true);\n      cff.fdSelect = this.parseFDSelect(topDict.getByName(\"FDSelect\"), charStringIndex.count);\n    } else {\n      charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, false);\n      encoding = this.parseEncoding(topDict.getByName(\"Encoding\"), properties, cff.strings, charset.charset);\n    }\n    cff.charset = charset;\n    cff.encoding = encoding;\n    const charStringsAndSeacs = this.parseCharStrings({\n      charStrings: charStringIndex,\n      localSubrIndex: topDict.privateDict.subrsIndex,\n      globalSubrIndex: globalSubrIndex.obj,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray,\n      privateDict: topDict.privateDict\n    });\n    cff.charStrings = charStringsAndSeacs.charStrings;\n    cff.seacs = charStringsAndSeacs.seacs;\n    cff.widths = charStringsAndSeacs.widths;\n    return cff;\n  }\n  parseHeader() {\n    let bytes = this.bytes;\n    const bytesLength = bytes.length;\n    let offset = 0;\n    while (offset < bytesLength && bytes[offset] !== 1) {\n      ++offset;\n    }\n    if (offset >= bytesLength) {\n      throw new FormatError(\"Invalid CFF header\");\n    }\n    if (offset !== 0) {\n      info(\"cff data is shifted\");\n      bytes = bytes.subarray(offset);\n      this.bytes = bytes;\n    }\n    const major = bytes[0];\n    const minor = bytes[1];\n    const hdrSize = bytes[2];\n    const offSize = bytes[3];\n    const header = new CFFHeader(major, minor, hdrSize, offSize);\n    return {\n      obj: header,\n      endPos: hdrSize\n    };\n  }\n  parseDict(dict) {\n    const view = new DataView(dict.buffer, dict.byteOffset, dict.bytesLength);\n    let pos = 0;\n    function parseOperand() {\n      let value = dict[pos++];\n      if (value === 30) {\n        return parseFloatOperand();\n      } else if (value === 28) {\n        value = view.getInt16(pos);\n        pos += 2;\n        return value;\n      } else if (value === 29) {\n        value = view.getInt32(pos);\n        pos += 4;\n        return value;\n      } else if (value >= 32 && value <= 246) {\n        return value - 139;\n      } else if (value >= 247 && value <= 250) {\n        return (value - 247) * 256 + dict[pos++] + 108;\n      } else if (value >= 251 && value <= 254) {\n        return -((value - 251) * 256) - dict[pos++] - 108;\n      }\n      warn(`CFFParser.parseDict: \"${value}\" is a reserved command.`);\n      return NaN;\n    }\n    function parseFloatOperand() {\n      let str = \"\";\n      const eof = 15;\n      const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n      const length = dict.length;\n      while (pos < length) {\n        const b = dict[pos++];\n        const b1 = b >> 4;\n        const b2 = b & 15;\n        if (b1 === eof) {\n          break;\n        }\n        str += lookup[b1];\n        if (b2 === eof) {\n          break;\n        }\n        str += lookup[b2];\n      }\n      return parseFloat(str);\n    }\n    let operands = [];\n    const entries = [];\n    pos = 0;\n    const end = dict.length;\n    while (pos < end) {\n      let b = dict[pos];\n      if (b <= 21) {\n        if (b === 12) {\n          b = b << 8 | dict[++pos];\n        }\n        entries.push([b, operands]);\n        operands = [];\n        ++pos;\n      } else {\n        operands.push(parseOperand());\n      }\n    }\n    return entries;\n  }\n  parseIndex(pos) {\n    const cffIndex = new CFFIndex();\n    const bytes = this.bytes;\n    const count = bytes[pos++] << 8 | bytes[pos++];\n    const offsets = [];\n    let end = pos;\n    let i, ii;\n    if (count !== 0) {\n      const offsetSize = bytes[pos++];\n      const startPos = pos + (count + 1) * offsetSize - 1;\n      for (i = 0, ii = count + 1; i < ii; ++i) {\n        let offset = 0;\n        for (let j = 0; j < offsetSize; ++j) {\n          offset <<= 8;\n          offset += bytes[pos++];\n        }\n        offsets.push(startPos + offset);\n      }\n      end = offsets[count];\n    }\n    for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n      const offsetStart = offsets[i];\n      const offsetEnd = offsets[i + 1];\n      cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n    }\n    return {\n      obj: cffIndex,\n      endPos: end\n    };\n  }\n  parseNameIndex(index) {\n    const names = [];\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const name = index.get(i);\n      names.push(bytesToString(name));\n    }\n    return names;\n  }\n  parseStringIndex(index) {\n    const strings = new CFFStrings();\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const data = index.get(i);\n      strings.add(bytesToString(data));\n    }\n    return strings;\n  }\n  createDict(Type, dict, strings) {\n    const cffDict = new Type(strings);\n    for (const [key, value] of dict) {\n      cffDict.setByKey(key, value);\n    }\n    return cffDict;\n  }\n  parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n    if (!data || state.callDepth > MAX_SUBR_NESTING) {\n      return false;\n    }\n    const view = new DataView(data.buffer, data.byteOffset, data.bytesLength);\n    let stackSize = state.stackSize;\n    const stack = state.stack;\n    let length = data.length;\n    for (let j = 0; j < length;) {\n      const value = data[j++];\n      let validationCommand = null;\n      if (value === 12) {\n        const q = data[j++];\n        if (q === 0) {\n          data[j - 2] = 139;\n          data[j - 1] = 22;\n          stackSize = 0;\n        } else {\n          validationCommand = CharstringValidationData12[q];\n        }\n      } else if (value === 28) {\n        stack[stackSize] = view.getInt16(j);\n        j += 2;\n        stackSize++;\n      } else if (value === 14) {\n        if (stackSize >= 4) {\n          stackSize -= 4;\n          if (this.seacAnalysisEnabled) {\n            state.seac = stack.slice(stackSize, stackSize + 4);\n            return false;\n          }\n        }\n        validationCommand = CharstringValidationData[value];\n      } else if (value >= 32 && value <= 246) {\n        stack[stackSize] = value - 139;\n        stackSize++;\n      } else if (value >= 247 && value <= 254) {\n        stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n        j++;\n        stackSize++;\n      } else if (value === 255) {\n        stack[stackSize] = view.getInt32(j) / 65536;\n        j += 4;\n        stackSize++;\n      } else if (value === 19 || value === 20) {\n        state.hints += stackSize >> 1;\n        if (state.hints === 0) {\n          data.copyWithin(j - 1, j, -1);\n          j -= 1;\n          length -= 1;\n          continue;\n        }\n        j += state.hints + 7 >> 3;\n        stackSize %= 2;\n        validationCommand = CharstringValidationData[value];\n      } else if (value === 10 || value === 29) {\n        const subrsIndex = value === 10 ? localSubrIndex : globalSubrIndex;\n        if (!subrsIndex) {\n          validationCommand = CharstringValidationData[value];\n          warn(\"Missing subrsIndex for \" + validationCommand.id);\n          return false;\n        }\n        let bias = 32768;\n        if (subrsIndex.count < 1240) {\n          bias = 107;\n        } else if (subrsIndex.count < 33900) {\n          bias = 1131;\n        }\n        const subrNumber = stack[--stackSize] + bias;\n        if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n          validationCommand = CharstringValidationData[value];\n          warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n          return false;\n        }\n        state.stackSize = stackSize;\n        state.callDepth++;\n        const valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n        if (!valid) {\n          return false;\n        }\n        state.callDepth--;\n        stackSize = state.stackSize;\n        continue;\n      } else if (value === 11) {\n        state.stackSize = stackSize;\n        return true;\n      } else if (value === 0 && j === data.length) {\n        data[j - 1] = 14;\n        validationCommand = CharstringValidationData[14];\n      } else if (value === 9) {\n        data.copyWithin(j - 1, j, -1);\n        j -= 1;\n        length -= 1;\n        continue;\n      } else {\n        validationCommand = CharstringValidationData[value];\n      }\n      if (validationCommand) {\n        if (validationCommand.stem) {\n          state.hints += stackSize >> 1;\n          if (value === 3 || value === 23) {\n            state.hasVStems = true;\n          } else if (state.hasVStems && (value === 1 || value === 18)) {\n            warn(\"CFF stem hints are in wrong order\");\n            data[j - 1] = value === 1 ? 3 : 23;\n          }\n        }\n        if (stackSize < validationCommand.min) {\n          warn(\"Not enough parameters for \" + validationCommand.id + \"; actual: \" + stackSize + \", expected: \" + validationCommand.min);\n          if (stackSize === 0) {\n            data[j - 1] = 14;\n            return true;\n          }\n          return false;\n        }\n        if (state.firstStackClearing && validationCommand.stackClearing) {\n          state.firstStackClearing = false;\n          stackSize -= validationCommand.min;\n          if (stackSize >= 2 && validationCommand.stem) {\n            stackSize %= 2;\n          } else if (stackSize > 1) {\n            warn(\"Found too many parameters for stack-clearing command\");\n          }\n          if (stackSize > 0) {\n            state.width = stack[stackSize - 1];\n          }\n        }\n        if (\"stackDelta\" in validationCommand) {\n          if (\"stackFn\" in validationCommand) {\n            validationCommand.stackFn(stack, stackSize);\n          }\n          stackSize += validationCommand.stackDelta;\n        } else if (validationCommand.stackClearing || validationCommand.resetStack) {\n          stackSize = 0;\n        }\n      }\n    }\n    if (length < data.length) {\n      data.fill(14, length);\n    }\n    state.stackSize = stackSize;\n    return true;\n  }\n  parseCharStrings({\n    charStrings,\n    localSubrIndex,\n    globalSubrIndex,\n    fdSelect,\n    fdArray,\n    privateDict\n  }) {\n    const seacs = [];\n    const widths = [];\n    const count = charStrings.count;\n    for (let i = 0; i < count; i++) {\n      const charstring = charStrings.get(i);\n      const state = {\n        callDepth: 0,\n        stackSize: 0,\n        stack: [],\n        hints: 0,\n        firstStackClearing: true,\n        seac: null,\n        width: null,\n        hasVStems: false\n      };\n      let valid = true;\n      let localSubrToUse = null;\n      let privateDictToUse = privateDict;\n      if (fdSelect && fdArray.length) {\n        const fdIndex = fdSelect.getFDIndex(i);\n        if (fdIndex === -1) {\n          warn(\"Glyph index is not in fd select.\");\n          valid = false;\n        }\n        if (fdIndex >= fdArray.length) {\n          warn(\"Invalid fd index for glyph index.\");\n          valid = false;\n        }\n        if (valid) {\n          privateDictToUse = fdArray[fdIndex].privateDict;\n          localSubrToUse = privateDictToUse.subrsIndex;\n        }\n      } else if (localSubrIndex) {\n        localSubrToUse = localSubrIndex;\n      }\n      if (valid) {\n        valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n      }\n      if (state.width !== null) {\n        const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n        widths[i] = nominalWidth + state.width;\n      } else {\n        const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n        widths[i] = defaultWidth;\n      }\n      if (state.seac !== null) {\n        seacs[i] = state.seac;\n      }\n      if (!valid) {\n        charStrings.set(i, new Uint8Array([14]));\n      }\n    }\n    return {\n      charStrings,\n      seacs,\n      widths\n    };\n  }\n  emptyPrivateDictionary(parentDict) {\n    const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n    parentDict.setByKey(18, [0, 0]);\n    parentDict.privateDict = privateDict;\n  }\n  parsePrivateDict(parentDict) {\n    if (!parentDict.hasName(\"Private\")) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n    const privateOffset = parentDict.getByName(\"Private\");\n    if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n      parentDict.removeByName(\"Private\");\n      return;\n    }\n    const size = privateOffset[0];\n    const offset = privateOffset[1];\n    if (size === 0 || offset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n    if (offset + size > this.bytes.length) {\n      throw new FormatError(\"CFF Private DICT extends past end of font\");\n    }\n    const privateDictEnd = offset + size;\n    const dictData = this.bytes.subarray(offset, privateDictEnd);\n    const dict = this.parseDict(dictData);\n    const privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n    parentDict.privateDict = privateDict;\n    const blueScale = privateDict.getByName(\"BlueScale\");\n    const blueShift = privateDict.getByName(\"BlueShift\");\n    const blueFuzz = privateDict.getByName(\"BlueFuzz\");\n    const expansionFactor = privateDict.getByName(\"ExpansionFactor\");\n    if (blueScale === 0 && blueShift === 0 && blueFuzz === 0 && expansionFactor === 0) {\n      privateDict.setByName(\"BlueScale\", DEFAULT_BLUE_SCALE);\n      privateDict.setByName(\"BlueShift\", DEFAULT_BLUE_SHIFT);\n      privateDict.setByName(\"BlueFuzz\", DEFAULT_BLUE_FUZZ);\n    }\n    if (expansionFactor === 0) {\n      privateDict.setByName(\"ExpansionFactor\", DEFAULT_EXPANSION_FACTOR);\n    }\n    if (blueScale > 0) {\n      let maxZoneHeight = 0;\n      for (const zones of [privateDict.getByName(\"BlueValues\"), privateDict.getByName(\"OtherBlues\")]) {\n        if (!zones) {\n          continue;\n        }\n        for (let i = 1; i < zones.length; i += 2) {\n          if (zones[i] > maxZoneHeight) {\n            maxZoneHeight = zones[i];\n          }\n        }\n      }\n      if (maxZoneHeight > 0) {\n        const PRECISION = 1e5;\n        const lowerBound = 0.5 / maxZoneHeight;\n        const minBlueScale = lowerBound <= DEFAULT_BLUE_SCALE ? Math.ceil(lowerBound * PRECISION) / PRECISION : -Infinity;\n        const maxBlueScale = Math.floor(PRECISION / maxZoneHeight) / PRECISION;\n        const clamped = MathClamp(blueScale, minBlueScale, maxBlueScale);\n        if (clamped !== blueScale) {\n          privateDict.setByName(\"BlueScale\", clamped);\n        }\n      }\n    }\n    if (!privateDict.getByName(\"Subrs\")) {\n      return;\n    }\n    const subrsOffset = privateDict.getByName(\"Subrs\");\n    const relativeOffset = offset + subrsOffset;\n    if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n    const subrsIndex = this.parseIndex(relativeOffset);\n    privateDict.subrsIndex = subrsIndex.obj;\n  }\n  parseCharsets(pos, length, strings, cid) {\n    if (pos === 0) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, ISOAdobeCharset);\n    } else if (pos === 1) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, ExpertCharset);\n    } else if (pos === 2) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, ExpertSubsetCharset);\n    }\n    const {\n      bytes\n    } = this;\n    const format = bytes[pos++];\n    const charset = [cid ? 0 : \".notdef\"];\n    let id, count, i;\n    length -= 1;\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; i++) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          charset.push(cid ? id : strings.get(id));\n        }\n        break;\n      case 1:\n        while (charset.length <= length) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          count = bytes[pos++];\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n        break;\n      case 2:\n        while (charset.length <= length) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          count = bytes[pos++] << 8 | bytes[pos++];\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n        break;\n      default:\n        throw new FormatError(\"Unknown charset format\");\n    }\n    return new CFFCharset(false, format, charset);\n  }\n  parseEncoding(pos, properties, strings, charset) {\n    const encoding = Object.create(null);\n    const bytes = this.bytes;\n    let predefined = false;\n    let format, i, ii;\n    let raw = null;\n    function readSupplement() {\n      const supplementsCount = bytes[pos++];\n      for (i = 0; i < supplementsCount; i++) {\n        const code = bytes[pos++];\n        const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n        encoding[code] = charset.indexOf(strings.get(sid));\n      }\n    }\n    if (pos === 0 || pos === 1) {\n      predefined = true;\n      format = pos;\n      const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n      for (i = 0, ii = charset.length; i < ii; i++) {\n        const index = baseEncoding.indexOf(charset[i]);\n        if (index !== -1) {\n          encoding[index] = i;\n        }\n      }\n    } else {\n      const dataStart = pos;\n      format = bytes[pos++];\n      switch (format & 0x7f) {\n        case 0:\n          const glyphsCount = bytes[pos++];\n          for (i = 1; i <= glyphsCount; i++) {\n            encoding[bytes[pos++]] = i;\n          }\n          break;\n        case 1:\n          const rangesCount = bytes[pos++];\n          let gid = 1;\n          for (i = 0; i < rangesCount; i++) {\n            const start = bytes[pos++];\n            const left = bytes[pos++];\n            for (let j = start; j <= start + left; j++) {\n              encoding[j] = gid++;\n            }\n          }\n          break;\n        default:\n          throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n      }\n      const dataEnd = pos;\n      if (format & 0x80) {\n        bytes[dataStart] &= 0x7f;\n        readSupplement();\n      }\n      raw = bytes.subarray(dataStart, dataEnd);\n    }\n    format &= 0x7f;\n    return new CFFEncoding(predefined, format, encoding, raw);\n  }\n  parseFDSelect(pos, length) {\n    const bytes = this.bytes;\n    const format = bytes[pos++];\n    const fdSelect = [];\n    let i;\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; ++i) {\n          const id = bytes[pos++];\n          fdSelect.push(id);\n        }\n        break;\n      case 3:\n        const rangesCount = bytes[pos++] << 8 | bytes[pos++];\n        for (i = 0; i < rangesCount; ++i) {\n          let first = bytes[pos++] << 8 | bytes[pos++];\n          if (i === 0 && first !== 0) {\n            warn(\"parseFDSelect: The first range must have a first GID of 0\" + \" -- trying to recover.\");\n            first = 0;\n          }\n          const fdIndex = bytes[pos++];\n          const next = bytes[pos] << 8 | bytes[pos + 1];\n          for (let j = first; j < next; ++j) {\n            fdSelect.push(fdIndex);\n          }\n        }\n        pos += 2;\n        break;\n      default:\n        throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n    }\n    if (fdSelect.length !== length) {\n      throw new FormatError(\"parseFDSelect: Invalid font data.\");\n    }\n    return new CFFFDSelect(format, fdSelect);\n  }\n}\nclass CFF {\n  header = null;\n  names = [];\n  topDict = null;\n  strings = new CFFStrings();\n  globalSubrIndex = null;\n  encoding = null;\n  charset = null;\n  charStrings = null;\n  fdArray = [];\n  fdSelect = null;\n  isCIDFont = false;\n  charStringCount = 0;\n  constructor(rawFileLength = 0) {\n    this.rawFileLength = rawFileLength;\n  }\n  duplicateFirstGlyph() {\n    if (this.charStrings.count >= 65535) {\n      warn(\"Not enough space in charstrings to duplicate first glyph.\");\n      return;\n    }\n    const glyphZero = this.charStrings.get(0);\n    this.charStrings.add(glyphZero);\n    if (this.isCIDFont) {\n      this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n    }\n  }\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.charStrings.count) {\n      return false;\n    }\n    const glyph = this.charStrings.get(id);\n    return glyph.length > 0;\n  }\n}\nclass CFFHeader {\n  constructor(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n}\nclass CFFStrings {\n  strings = [];\n  get(index) {\n    if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n      return CFFStandardStrings[index];\n    }\n    if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n      return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n    }\n    return CFFStandardStrings[0];\n  }\n  getSID(str) {\n    let index = CFFStandardStrings.indexOf(str);\n    if (index !== -1) {\n      return index;\n    }\n    index = this.strings.indexOf(str);\n    if (index !== -1) {\n      return index + NUM_STANDARD_CFF_STRINGS;\n    }\n    return -1;\n  }\n  add(value) {\n    this.strings.push(value);\n  }\n  get count() {\n    return this.strings.length;\n  }\n}\nclass CFFIndex {\n  objects = [];\n  length = 0;\n  add(data) {\n    this.length += data.length;\n    this.objects.push(data);\n  }\n  set(index, data) {\n    this.length += data.length - this.objects[index].length;\n    this.objects[index] = data;\n  }\n  get(index) {\n    return this.objects[index];\n  }\n  get count() {\n    return this.objects.length;\n  }\n}\nclass CFFDict {\n  constructor(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n  setByKey(key, value) {\n    if (!(key in this.keyToNameMap)) {\n      return false;\n    }\n    if (value.length === 0) {\n      return true;\n    }\n    for (const val of value) {\n      if (isNaN(val)) {\n        warn(`Invalid CFFDict value: \"${value}\" for key \"${key}\".`);\n        return true;\n      }\n    }\n    const type = this.types[key];\n    if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n      value = value[0];\n    }\n    this.values[key] = value;\n    return true;\n  }\n  setByName(name, value) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new FormatError(`Invalid dictionary name \"${name}\"`);\n    }\n    this.values[this.nameToKeyMap[name]] = value;\n  }\n  hasName(name) {\n    return this.nameToKeyMap[name] in this.values;\n  }\n  getByName(name) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new FormatError(`Invalid dictionary name ${name}\"`);\n    }\n    const key = this.nameToKeyMap[name];\n    if (!(key in this.values)) {\n      return this.defaults[key];\n    }\n    return this.values[key];\n  }\n  removeByName(name) {\n    delete this.values[this.nameToKeyMap[name]];\n  }\n  static createTables(layout) {\n    const tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: []\n    };\n    for (const entry of layout) {\n      const key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n    return tables;\n  }\n}\nconst CFFTopDictLayout = [[[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null], [[12, 20], \"SyntheticBase\", \"num\", null], [0, \"version\", \"sid\", null], [1, \"Notice\", \"sid\", null], [[12, 0], \"Copyright\", \"sid\", null], [2, \"FullName\", \"sid\", null], [3, \"FamilyName\", \"sid\", null], [4, \"Weight\", \"sid\", null], [[12, 1], \"isFixedPitch\", \"num\", 0], [[12, 2], \"ItalicAngle\", \"num\", 0], [[12, 3], \"UnderlinePosition\", \"num\", -100], [[12, 4], \"UnderlineThickness\", \"num\", 50], [[12, 5], \"PaintType\", \"num\", 0], [[12, 6], \"CharstringType\", \"num\", 2], [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"], [0.001, 0, 0, 0.001, 0, 0]], [13, \"UniqueID\", \"num\", null], [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]], [[12, 8], \"StrokeWidth\", \"num\", 0], [14, \"XUID\", \"array\", null], [15, \"charset\", \"offset\", 0], [16, \"Encoding\", \"offset\", 0], [17, \"CharStrings\", \"offset\", 0], [18, \"Private\", [\"offset\", \"offset\"], null], [[12, 21], \"PostScript\", \"sid\", null], [[12, 22], \"BaseFontName\", \"sid\", null], [[12, 23], \"BaseFontBlend\", \"delta\", null], [[12, 31], \"CIDFontVersion\", \"num\", 0], [[12, 32], \"CIDFontRevision\", \"num\", 0], [[12, 33], \"CIDFontType\", \"num\", 0], [[12, 34], \"CIDCount\", \"num\", 8720], [[12, 35], \"UIDBase\", \"num\", null], [[12, 37], \"FDSelect\", \"offset\", null], [[12, 36], \"FDArray\", \"offset\", null], [[12, 38], \"FontName\", \"sid\", null]];\nclass CFFTopDict extends CFFDict {\n  static get tables() {\n    return shadow(this, \"tables\", this.createTables(CFFTopDictLayout));\n  }\n  constructor(strings) {\n    super(CFFTopDict.tables, strings);\n    this.privateDict = null;\n  }\n}\nconst CFFPrivateDictLayout = [[6, \"BlueValues\", \"delta\", null], [7, \"OtherBlues\", \"delta\", null], [8, \"FamilyBlues\", \"delta\", null], [9, \"FamilyOtherBlues\", \"delta\", null], [[12, 9], \"BlueScale\", \"num\", DEFAULT_BLUE_SCALE], [[12, 10], \"BlueShift\", \"num\", DEFAULT_BLUE_SHIFT], [[12, 11], \"BlueFuzz\", \"num\", DEFAULT_BLUE_FUZZ], [10, \"StdHW\", \"num\", null], [11, \"StdVW\", \"num\", null], [[12, 12], \"StemSnapH\", \"delta\", null], [[12, 13], \"StemSnapV\", \"delta\", null], [[12, 14], \"ForceBold\", \"num\", 0], [[12, 17], \"LanguageGroup\", \"num\", 0], [[12, 18], \"ExpansionFactor\", \"num\", DEFAULT_EXPANSION_FACTOR], [[12, 19], \"initialRandomSeed\", \"num\", 0], [20, \"defaultWidthX\", \"num\", 0], [21, \"nominalWidthX\", \"num\", 0], [19, \"Subrs\", \"offset\", null]];\nclass CFFPrivateDict extends CFFDict {\n  static get tables() {\n    return shadow(this, \"tables\", this.createTables(CFFPrivateDictLayout));\n  }\n  constructor(strings) {\n    super(CFFPrivateDict.tables, strings);\n    this.subrsIndex = null;\n  }\n}\nconst CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2\n};\nclass CFFCharset {\n  constructor(predefined, format, charset) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n  }\n}\nclass CFFEncoding {\n  constructor(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n}\nclass CFFFDSelect {\n  constructor(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n  getFDIndex(glyphIndex) {\n    if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n      return -1;\n    }\n    return this.fdSelect[glyphIndex];\n  }\n}\nclass CFFOffsetTracker {\n  offsets = Object.create(null);\n  isTracking(key) {\n    return key in this.offsets;\n  }\n  track(key, location) {\n    if (key in this.offsets) {\n      throw new FormatError(`Already tracking location of ${key}`);\n    }\n    this.offsets[key] = location;\n  }\n  offset(value) {\n    for (const key in this.offsets) {\n      this.offsets[key] += value;\n    }\n  }\n  setEntryLocation(key, values, output) {\n    if (!(key in this.offsets)) {\n      throw new FormatError(`Not tracking location of ${key}`);\n    }\n    const data = output.data;\n    const dataOffset = this.offsets[key];\n    const size = 5;\n    for (let i = 0, ii = values.length; i < ii; ++i) {\n      const offset0 = i * size + dataOffset;\n      const offset1 = offset0 + 1;\n      const offset2 = offset0 + 2;\n      const offset3 = offset0 + 3;\n      const offset4 = offset0 + 4;\n      if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n        throw new FormatError(\"writing to an offset that is not empty\");\n      }\n      const value = values[i];\n      data[offset0] = 0x1d;\n      data[offset1] = value >> 24 & 0xff;\n      data[offset2] = value >> 16 & 0xff;\n      data[offset3] = value >> 8 & 0xff;\n      data[offset4] = value & 0xff;\n    }\n  }\n}\nclass CFFCompiler {\n  constructor(cff) {\n    this.cff = cff;\n  }\n  compile() {\n    const cff = this.cff;\n    const output = new DataBuilder({\n      minLength: cff.rawFileLength\n    });\n    const header = this.compileHeader(cff.header);\n    output.setArray(header);\n    const nameIndex = this.compileNameIndex(cff.names);\n    output.setArray(nameIndex);\n    if (cff.isCIDFont) {\n      if (cff.topDict.hasName(\"FontMatrix\")) {\n        const base = cff.topDict.getByName(\"FontMatrix\");\n        cff.topDict.removeByName(\"FontMatrix\");\n        for (const subDict of cff.fdArray) {\n          let matrix = base.slice(0);\n          if (subDict.hasName(\"FontMatrix\")) {\n            matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n          }\n          subDict.setByName(\"FontMatrix\", matrix);\n        }\n      }\n    }\n    const xuid = cff.topDict.getByName(\"XUID\");\n    if (xuid?.length > 16) {\n      cff.topDict.removeByName(\"XUID\");\n    }\n    cff.topDict.setByName(\"charset\", 0);\n    let compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n    output.setArray(compiled.output);\n    const topDictTracker = compiled.trackers[0];\n    const stringIndex = this.compileStringIndex(cff.strings.strings);\n    output.setArray(stringIndex);\n    const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n    output.setArray(globalSubrIndex);\n    if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n      if (cff.encoding.predefined) {\n        topDictTracker.setEntryLocation(\"Encoding\", [cff.encoding.format], output);\n      } else {\n        const encoding = this.compileEncoding(cff.encoding);\n        topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n        output.setArray(encoding);\n      }\n    }\n    const charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n    topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n    output.setArray(charset);\n    const charStrings = this.compileCharStrings(cff.charStrings);\n    topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n    output.setArray(charStrings);\n    if (cff.isCIDFont) {\n      topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n      const fdSelect = this.compileFDSelect(cff.fdSelect);\n      output.setArray(fdSelect);\n      compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n      topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n      output.setArray(compiled.output);\n      const fontDictTrackers = compiled.trackers;\n      this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n    }\n    this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n    output.setArray([0]);\n    return output.data;\n  }\n  encodeNumber(value) {\n    if (Number.isInteger(value)) {\n      return this.encodeInteger(value);\n    }\n    return this.encodeFloat(value);\n  }\n  static get EncodeFloatRegExp() {\n    return shadow(this, \"EncodeFloatRegExp\", /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/);\n  }\n  encodeFloat(num) {\n    let value = num.toString();\n    const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n    if (m) {\n      const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n      value = (Math.round(num * epsilon) / epsilon).toString();\n    }\n    let nibbles = \"\";\n    let i, ii;\n    for (i = 0, ii = value.length; i < ii; ++i) {\n      const a = value[i];\n      if (a === \"e\") {\n        nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n      } else if (a === \".\") {\n        nibbles += \"a\";\n      } else if (a === \"-\") {\n        nibbles += \"e\";\n      } else {\n        nibbles += a;\n      }\n    }\n    nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n    const out = [30];\n    for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n      out.push(parseInt(nibbles.substring(i, i + 2), 16));\n    }\n    return out;\n  }\n  encodeInteger(value) {\n    let code;\n    if (value >= -107 && value <= 107) {\n      code = [value + 139];\n    } else if (value >= 108 && value <= 1131) {\n      value -= 108;\n      code = [(value >> 8) + 247, value & 0xff];\n    } else if (value >= -1131 && value <= -108) {\n      value = -value - 108;\n      code = [(value >> 8) + 251, value & 0xff];\n    } else if (value >= -32768 && value <= 32767) {\n      code = [0x1c, value >> 8 & 0xff, value & 0xff];\n    } else {\n      code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff];\n    }\n    return code;\n  }\n  compileHeader(header) {\n    return [header.major, header.minor, 4, header.offSize];\n  }\n  compileNameIndex(names) {\n    const nameIndex = new CFFIndex();\n    for (const name of names) {\n      const length = Math.min(name.length, 127);\n      let sanitizedName = new Array(length);\n      for (let j = 0; j < length; j++) {\n        let char = name[j];\n        if (char < \"!\" || char > \"~\" || char === \"[\" || char === \"]\" || char === \"(\" || char === \")\" || char === \"{\" || char === \"}\" || char === \"<\" || char === \">\" || char === \"/\" || char === \"%\") {\n          char = \"_\";\n        }\n        sanitizedName[j] = char;\n      }\n      sanitizedName = sanitizedName.join(\"\");\n      if (sanitizedName === \"\") {\n        sanitizedName = \"Bad_Font_Name\";\n      }\n      nameIndex.add(stringToBytes(sanitizedName));\n    }\n    return this.compileIndex(nameIndex);\n  }\n  compileTopDicts(dicts, length, removeCidKeys) {\n    const fontDictTrackers = [];\n    let fdArrayIndex = new CFFIndex();\n    for (const fontDict of dicts) {\n      if (removeCidKeys) {\n        fontDict.removeByName(\"CIDFontVersion\");\n        fontDict.removeByName(\"CIDFontRevision\");\n        fontDict.removeByName(\"CIDFontType\");\n        fontDict.removeByName(\"CIDCount\");\n        fontDict.removeByName(\"UIDBase\");\n      }\n      const fontDictTracker = new CFFOffsetTracker();\n      const fontDictData = this.compileDict(fontDict, fontDictTracker);\n      fontDictTrackers.push(fontDictTracker);\n      fdArrayIndex.add(fontDictData);\n      fontDictTracker.offset(length);\n    }\n    fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n    return {\n      trackers: fontDictTrackers,\n      output: fdArrayIndex\n    };\n  }\n  compilePrivateDicts(dicts, trackers, output) {\n    for (let i = 0, ii = dicts.length; i < ii; ++i) {\n      const fontDict = dicts[i];\n      const privateDict = fontDict.privateDict;\n      if (!privateDict || !fontDict.hasName(\"Private\")) {\n        throw new FormatError(\"There must be a private dictionary.\");\n      }\n      const privateDictTracker = new CFFOffsetTracker();\n      const privateDictData = this.compileDict(privateDict, privateDictTracker);\n      let outputLength = output.length;\n      privateDictTracker.offset(outputLength);\n      if (!privateDictData.length) {\n        outputLength = 0;\n      }\n      trackers[i].setEntryLocation(\"Private\", [privateDictData.length, outputLength], output);\n      output.setArray(privateDictData);\n      if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n        const subrs = this.compileIndex(privateDict.subrsIndex);\n        privateDictTracker.setEntryLocation(\"Subrs\", [privateDictData.length], output);\n        output.setArray(subrs);\n      }\n    }\n  }\n  compileDict(dict, offsetTracker) {\n    const out = [];\n    for (const key of dict.order) {\n      if (!(key in dict.values)) {\n        continue;\n      }\n      let values = dict.values[key];\n      let types = dict.types[key];\n      if (!Array.isArray(types)) {\n        types = [types];\n      }\n      if (!Array.isArray(values)) {\n        values = [values];\n      }\n      if (values.length === 0) {\n        continue;\n      }\n      for (let j = 0, jj = types.length; j < jj; ++j) {\n        const type = types[j];\n        const value = values[j];\n        switch (type) {\n          case \"num\":\n          case \"sid\":\n            out.push(...this.encodeNumber(value));\n            break;\n          case \"offset\":\n            const name = dict.keyToNameMap[key];\n            if (!offsetTracker.isTracking(name)) {\n              offsetTracker.track(name, out.length);\n            }\n            out.push(0x1d, 0, 0, 0, 0);\n            break;\n          case \"array\":\n          case \"delta\":\n            out.push(...this.encodeNumber(value));\n            for (let k = 1, kk = values.length; k < kk; ++k) {\n              out.push(...this.encodeNumber(values[k]));\n            }\n            break;\n          default:\n            throw new FormatError(`Unknown data type of ${type}`);\n        }\n      }\n      out.push(...dict.opcodes[key]);\n    }\n    return out;\n  }\n  compileStringIndex(strings) {\n    const stringIndex = new CFFIndex();\n    for (const string of strings) {\n      stringIndex.add(stringToBytes(string));\n    }\n    return this.compileIndex(stringIndex);\n  }\n  compileCharStrings(charStrings) {\n    const charStringsIndex = new CFFIndex();\n    for (let i = 0; i < charStrings.count; i++) {\n      const glyph = charStrings.get(i);\n      if (glyph.length === 0) {\n        charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n        continue;\n      }\n      charStringsIndex.add(glyph);\n    }\n    return this.compileIndex(charStringsIndex);\n  }\n  compileCharset(charset, numGlyphs, strings, isCIDFont) {\n    let out;\n    const numGlyphsLessNotDef = numGlyphs - 1;\n    if (isCIDFont) {\n      const nLeft = numGlyphsLessNotDef - 1;\n      out = new Uint8Array([2, 0, 1, nLeft >> 8 & 0xff, nLeft & 0xff]);\n    } else {\n      const length = 1 + numGlyphsLessNotDef * 2;\n      out = new Uint8Array(length);\n      let charsetIndex = 0;\n      const numCharsets = charset.charset.length;\n      let warned = false;\n      for (let i = 1; i < out.length; i += 2) {\n        let sid = 0;\n        if (charsetIndex < numCharsets) {\n          const name = charset.charset[charsetIndex++];\n          sid = strings.getSID(name);\n          if (sid === -1) {\n            sid = 0;\n            if (!warned) {\n              warned = true;\n              warn(`Couldn't find ${name} in CFF strings`);\n            }\n          }\n        }\n        out[i] = sid >> 8 & 0xff;\n        out[i + 1] = sid & 0xff;\n      }\n    }\n    return out;\n  }\n  compileEncoding(encoding) {\n    return encoding.raw;\n  }\n  compileFDSelect(fdSelect) {\n    const format = fdSelect.format;\n    let out, i;\n    switch (format) {\n      case 0:\n        out = new Uint8Array(1 + fdSelect.fdSelect.length);\n        out[0] = format;\n        out.set(fdSelect.fdSelect, 1);\n        break;\n      case 3:\n        const start = 0;\n        let lastFD = fdSelect.fdSelect[0];\n        const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD];\n        for (i = 1; i < fdSelect.fdSelect.length; i++) {\n          const currentFD = fdSelect.fdSelect[i];\n          if (currentFD !== lastFD) {\n            ranges.push(i >> 8 & 0xff, i & 0xff, currentFD);\n            lastFD = currentFD;\n          }\n        }\n        const numRanges = (ranges.length - 3) / 3;\n        ranges[1] = numRanges >> 8 & 0xff;\n        ranges[2] = numRanges & 0xff;\n        ranges.push(i >> 8 & 0xff, i & 0xff);\n        out = new Uint8Array(ranges);\n        break;\n    }\n    return out;\n  }\n  compileIndex(index, trackers = []) {\n    const objects = index.objects;\n    const count = objects.length;\n    if (count === 0) {\n      return new Uint8Array(2);\n    }\n    let lastOffset = 1,\n      i;\n    for (i = 0; i < count; ++i) {\n      lastOffset += objects[i].length;\n    }\n    let offsetSize;\n    if (lastOffset < 0x100) {\n      offsetSize = 1;\n    } else if (lastOffset < 0x10000) {\n      offsetSize = 2;\n    } else if (lastOffset < 0x1000000) {\n      offsetSize = 3;\n    } else {\n      offsetSize = 4;\n    }\n    const data = new Uint8Array(2 + offsetSize * (count + 1) + lastOffset);\n    let pos = 0;\n    data[pos++] = count >> 8 & 0xff;\n    data[pos++] = count & 0xff;\n    data[pos++] = offsetSize;\n    let relativeOffset = 1;\n    for (i = 0; i < count + 1; i++) {\n      if (offsetSize === 1) {\n        data[pos++] = relativeOffset & 0xff;\n      } else if (offsetSize === 2) {\n        data[pos++] = relativeOffset >> 8 & 0xff;\n        data[pos++] = relativeOffset & 0xff;\n      } else if (offsetSize === 3) {\n        data[pos++] = relativeOffset >> 16 & 0xff;\n        data[pos++] = relativeOffset >> 8 & 0xff;\n        data[pos++] = relativeOffset & 0xff;\n      } else {\n        data[pos++] = relativeOffset >>> 24 & 0xff;\n        data[pos++] = relativeOffset >> 16 & 0xff;\n        data[pos++] = relativeOffset >> 8 & 0xff;\n        data[pos++] = relativeOffset & 0xff;\n      }\n      if (objects[i]) {\n        relativeOffset += objects[i].length;\n      }\n    }\n    for (i = 0; i < count; i++) {\n      trackers[i]?.offset(pos);\n      data.set(objects[i], pos);\n      pos += objects[i].length;\n    }\n    return data;\n  }\n}\n\n;// ./src/core/standard_fonts.js\n\n\nconst getStdFontMap = getLookupTableFactory(function (t) {\n  t[\"Times-Roman\"] = \"Times-Roman\";\n  t.Helvetica = \"Helvetica\";\n  t.Courier = \"Courier\";\n  t.Symbol = \"Symbol\";\n  t[\"Times-Bold\"] = \"Times-Bold\";\n  t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n  t[\"Courier-Bold\"] = \"Courier-Bold\";\n  t.ZapfDingbats = \"ZapfDingbats\";\n  t[\"Times-Italic\"] = \"Times-Italic\";\n  t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n  t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n  t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n  t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n  t.ArialNarrow = \"Helvetica\";\n  t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialBlack = \"Helvetica\";\n  t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Arial-Black\"] = \"Helvetica\";\n  t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n  t.Arial = \"Helvetica\";\n  t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialMT = \"Helvetica\";\n  t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n  t[\"Arial-BoldItalicMT-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialUnicodeMS = \"Helvetica\";\n  t[\"ArialUnicodeMS-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialUnicodeMS-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialUnicodeMS-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"Courier-Italic\"] = \"Courier-Oblique\";\n  t.CourierNew = \"Courier\";\n  t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n  t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n  t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n  t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n  t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n  t.CourierNewPSMT = \"Courier\";\n  t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n  t[\"HelveticaLTStd-Bold\"] = \"Helvetica-Bold\";\n  t[\"Symbol-Bold\"] = \"Symbol\";\n  t[\"Symbol-BoldItalic\"] = \"Symbol\";\n  t[\"Symbol-Italic\"] = \"Symbol\";\n  t.TimesNewRoman = \"Times-Roman\";\n  t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n  t.TimesNewRomanPS = \"Times-Roman\";\n  t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n  t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n  t.TimesNewRomanPSMT = \"Times-Roman\";\n  t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n  t.Courier = \"FoxitFixed.pfb\";\n  t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n  t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n  t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n  t.Helvetica = \"LiberationSans-Regular.ttf\";\n  t[\"Helvetica-Bold\"] = \"LiberationSans-Bold.ttf\";\n  t[\"Helvetica-BoldOblique\"] = \"LiberationSans-BoldItalic.ttf\";\n  t[\"Helvetica-Oblique\"] = \"LiberationSans-Italic.ttf\";\n  t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n  t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n  t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n  t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n  t.Symbol = \"FoxitSymbol.pfb\";\n  t.ZapfDingbats = \"FoxitDingbats.pfb\";\n  t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n  t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n  t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n  t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n  t.Calibri = \"Helvetica\";\n  t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n  t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n  t.CenturyGothic = \"Helvetica\";\n  t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n  t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n  t.ComicSansMS = \"Comic Sans MS\";\n  t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n  t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n  t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n  t.GillSansMT = \"Helvetica\";\n  t[\"GillSansMT-Bold\"] = \"Helvetica-Bold\";\n  t[\"GillSansMT-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"GillSansMT-Italic\"] = \"Helvetica-Oblique\";\n  t.Impact = \"Helvetica\";\n  t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n  t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ItcSymbol-Book\"] = \"Helvetica\";\n  t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n  t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n  t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n  t.LucidaConsole = \"Courier\";\n  t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n  t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n  t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n  t[\"MS-Gothic\"] = \"MS Gothic\";\n  t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n  t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n  t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n  t[\"MS-Mincho\"] = \"MS Mincho\";\n  t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n  t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n  t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n  t[\"MS-PGothic\"] = \"MS PGothic\";\n  t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n  t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n  t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n  t[\"MS-PMincho\"] = \"MS PMincho\";\n  t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n  t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n  t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n  t.NuptialScript = \"Times-Italic\";\n  t.SegoeUISymbol = \"Helvetica\";\n});\nconst getSerifFonts = getLookupTableFactory(function (t) {\n  t[\"Adobe Jenson\"] = true;\n  t[\"Adobe Text\"] = true;\n  t.Albertus = true;\n  t.Aldus = true;\n  t.Alexandria = true;\n  t.Algerian = true;\n  t[\"American Typewriter\"] = true;\n  t.Antiqua = true;\n  t.Apex = true;\n  t.Arno = true;\n  t.Aster = true;\n  t.Aurora = true;\n  t.Baskerville = true;\n  t.Bell = true;\n  t.Bembo = true;\n  t[\"Bembo Schoolbook\"] = true;\n  t.Benguiat = true;\n  t[\"Berkeley Old Style\"] = true;\n  t[\"Bernhard Modern\"] = true;\n  t[\"Berthold City\"] = true;\n  t.Bodoni = true;\n  t[\"Bauer Bodoni\"] = true;\n  t[\"Book Antiqua\"] = true;\n  t.Bookman = true;\n  t[\"Bordeaux Roman\"] = true;\n  t[\"Californian FB\"] = true;\n  t.Calisto = true;\n  t.Calvert = true;\n  t.Capitals = true;\n  t.Cambria = true;\n  t.Cartier = true;\n  t.Caslon = true;\n  t.Catull = true;\n  t.Centaur = true;\n  t[\"Century Old Style\"] = true;\n  t[\"Century Schoolbook\"] = true;\n  t.Chaparral = true;\n  t[\"Charis SIL\"] = true;\n  t.Cheltenham = true;\n  t[\"Cholla Slab\"] = true;\n  t.Clarendon = true;\n  t.Clearface = true;\n  t.Cochin = true;\n  t.Colonna = true;\n  t[\"Computer Modern\"] = true;\n  t[\"Concrete Roman\"] = true;\n  t.Constantia = true;\n  t[\"Cooper Black\"] = true;\n  t.Corona = true;\n  t.Ecotype = true;\n  t.Egyptienne = true;\n  t.Elephant = true;\n  t.Excelsior = true;\n  t.Fairfield = true;\n  t[\"FF Scala\"] = true;\n  t.Folkard = true;\n  t.Footlight = true;\n  t.FreeSerif = true;\n  t[\"Friz Quadrata\"] = true;\n  t.Garamond = true;\n  t.Gentium = true;\n  t.Georgia = true;\n  t.Gloucester = true;\n  t[\"Goudy Old Style\"] = true;\n  t[\"Goudy Schoolbook\"] = true;\n  t[\"Goudy Pro Font\"] = true;\n  t.Granjon = true;\n  t[\"Guardian Egyptian\"] = true;\n  t.Heather = true;\n  t.Hercules = true;\n  t[\"High Tower Text\"] = true;\n  t.Hiroshige = true;\n  t[\"Hoefler Text\"] = true;\n  t[\"Humana Serif\"] = true;\n  t.Imprint = true;\n  t[\"Ionic No. 5\"] = true;\n  t.Janson = true;\n  t.Joanna = true;\n  t.Korinna = true;\n  t.Lexicon = true;\n  t.LiberationSerif = true;\n  t[\"Liberation Serif\"] = true;\n  t[\"Linux Libertine\"] = true;\n  t.Literaturnaya = true;\n  t.Lucida = true;\n  t[\"Lucida Bright\"] = true;\n  t.Melior = true;\n  t.Memphis = true;\n  t.Miller = true;\n  t.Minion = true;\n  t.Modern = true;\n  t[\"Mona Lisa\"] = true;\n  t[\"Mrs Eaves\"] = true;\n  t[\"MS Serif\"] = true;\n  t[\"Museo Slab\"] = true;\n  t[\"New York\"] = true;\n  t[\"Nimbus Roman\"] = true;\n  t[\"NPS Rawlinson Roadway\"] = true;\n  t.NuptialScript = true;\n  t.Palatino = true;\n  t.Perpetua = true;\n  t.Plantin = true;\n  t[\"Plantin Schoolbook\"] = true;\n  t.Playbill = true;\n  t[\"Poor Richard\"] = true;\n  t[\"Rawlinson Roadway\"] = true;\n  t.Renault = true;\n  t.Requiem = true;\n  t.Rockwell = true;\n  t.Roman = true;\n  t[\"Rotis Serif\"] = true;\n  t.Sabon = true;\n  t.Scala = true;\n  t.Seagull = true;\n  t.Sistina = true;\n  t.Souvenir = true;\n  t.STIX = true;\n  t[\"Stone Informal\"] = true;\n  t[\"Stone Serif\"] = true;\n  t.Sylfaen = true;\n  t.Times = true;\n  t.Trajan = true;\n  t[\"Trinité\"] = true;\n  t[\"Trump Mediaeval\"] = true;\n  t.Utopia = true;\n  t[\"Vale Type\"] = true;\n  t[\"Bitstream Vera\"] = true;\n  t[\"Vera Serif\"] = true;\n  t.Versailles = true;\n  t.Wanted = true;\n  t.Weiss = true;\n  t[\"Wide Latin\"] = true;\n  t.Windsor = true;\n  t.XITS = true;\n});\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n  t.Dingbats = true;\n  t.Symbol = true;\n  t.ZapfDingbats = true;\n  t.Wingdings = true;\n  t[\"Wingdings-Bold\"] = true;\n  t[\"Wingdings-Regular\"] = true;\n});\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[179] = 8220;\n  t[180] = 8221;\n  t[181] = 8216;\n  t[182] = 8217;\n  t[200] = 193;\n  t[203] = 205;\n  t[207] = 211;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[226] = 352;\n  t[227] = 353;\n  t[228] = 381;\n  t[229] = 382;\n  t[233] = 221;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[267] = 282;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[283] = 344;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[570] = 1040;\n  t[571] = 1041;\n  t[572] = 1042;\n  t[573] = 1043;\n  t[574] = 1044;\n  t[575] = 1045;\n  t[576] = 1046;\n  t[577] = 1047;\n  t[578] = 1048;\n  t[579] = 1049;\n  t[580] = 1050;\n  t[581] = 1051;\n  t[582] = 1052;\n  t[583] = 1053;\n  t[584] = 1054;\n  t[585] = 1055;\n  t[586] = 1056;\n  t[587] = 1057;\n  t[588] = 1058;\n  t[589] = 1059;\n  t[590] = 1060;\n  t[591] = 1061;\n  t[592] = 1062;\n  t[593] = 1063;\n  t[594] = 1064;\n  t[595] = 1065;\n  t[596] = 1066;\n  t[597] = 1067;\n  t[598] = 1068;\n  t[599] = 1069;\n  t[600] = 1070;\n  t[601] = 1071;\n  t[602] = 1072;\n  t[603] = 1073;\n  t[604] = 1074;\n  t[605] = 1075;\n  t[606] = 1076;\n  t[607] = 1077;\n  t[608] = 1078;\n  t[609] = 1079;\n  t[610] = 1080;\n  t[611] = 1081;\n  t[612] = 1082;\n  t[613] = 1083;\n  t[614] = 1084;\n  t[615] = 1085;\n  t[616] = 1086;\n  t[617] = 1087;\n  t[618] = 1088;\n  t[619] = 1089;\n  t[620] = 1090;\n  t[621] = 1091;\n  t[622] = 1092;\n  t[623] = 1093;\n  t[624] = 1094;\n  t[625] = 1095;\n  t[626] = 1096;\n  t[627] = 1097;\n  t[628] = 1098;\n  t[629] = 1099;\n  t[630] = 1100;\n  t[631] = 1101;\n  t[632] = 1102;\n  t[633] = 1103;\n  t[672] = 1488;\n  t[673] = 1489;\n  t[674] = 1490;\n  t[675] = 1491;\n  t[676] = 1492;\n  t[677] = 1493;\n  t[678] = 1494;\n  t[679] = 1495;\n  t[680] = 1496;\n  t[681] = 1497;\n  t[682] = 1498;\n  t[683] = 1499;\n  t[684] = 1500;\n  t[685] = 1501;\n  t[686] = 1502;\n  t[687] = 1503;\n  t[688] = 1504;\n  t[689] = 1505;\n  t[690] = 1506;\n  t[691] = 1507;\n  t[692] = 1508;\n  t[693] = 1509;\n  t[694] = 1510;\n  t[695] = 1511;\n  t[696] = 1512;\n  t[697] = 1513;\n  t[698] = 1514;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (t) {\n  t[227] = 322;\n  t[264] = 261;\n  t[291] = 346;\n});\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[5] = 192;\n  t[6] = 193;\n  t[9] = 196;\n  t[17] = 66;\n  t[18] = 67;\n  t[21] = 268;\n  t[24] = 68;\n  t[28] = 69;\n  t[29] = 200;\n  t[30] = 201;\n  t[32] = 282;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[48] = 204;\n  t[49] = 205;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[76] = 210;\n  t[80] = 214;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[92] = 344;\n  t[94] = 83;\n  t[97] = 352;\n  t[100] = 84;\n  t[104] = 85;\n  t[109] = 220;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[124] = 221;\n  t[127] = 90;\n  t[129] = 381;\n  t[258] = 97;\n  t[259] = 224;\n  t[260] = 225;\n  t[263] = 228;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[275] = 269;\n  t[282] = 100;\n  t[286] = 101;\n  t[287] = 232;\n  t[288] = 233;\n  t[290] = 283;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[350] = 236;\n  t[351] = 237;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[382] = 242;\n  t[383] = 243;\n  t[386] = 246;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[398] = 345;\n  t[400] = 115;\n  t[401] = 347;\n  t[403] = 353;\n  t[410] = 116;\n  t[437] = 117;\n  t[442] = 252;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[457] = 253;\n  t[460] = 122;\n  t[462] = 382;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[940] = 163;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\nfunction getStandardFontName(name) {\n  const fontName = normalizeFontName(name);\n  const stdFontMap = getStdFontMap();\n  return stdFontMap[fontName];\n}\nfunction isKnownFontName(name) {\n  const fontName = normalizeFontName(name);\n  return !!(getStdFontMap()[fontName] || getNonStdFontMap()[fontName] || getSerifFonts()[fontName] || getSymbolsFonts()[fontName]);\n}\n\n;// ./src/core/glyf.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\nconst GLYPH_HEADER_SIZE = 10;\nclass GlyfTable {\n  constructor({\n    glyfTable,\n    isGlyphLocationsLong,\n    locaTable,\n    numGlyphs\n  }) {\n    this.glyphs = [];\n    const loca = new DataView(locaTable.buffer, locaTable.byteOffset, locaTable.byteLength);\n    const glyf = new DataView(glyfTable.buffer, glyfTable.byteOffset, glyfTable.byteLength);\n    const offsetSize = isGlyphLocationsLong ? 4 : 2;\n    let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n    let pos = 0;\n    for (let i = 0; i < numGlyphs; i++) {\n      pos += offsetSize;\n      const next = isGlyphLocationsLong ? loca.getUint32(pos) : 2 * loca.getUint16(pos);\n      if (next === prev) {\n        this.glyphs.push(new Glyph({}));\n        continue;\n      }\n      const glyph = Glyph.parse(prev, glyf);\n      this.glyphs.push(glyph);\n      prev = next;\n    }\n  }\n  getSize() {\n    return Math.sumPrecise(this.glyphs.map(g => g.getSize() + 3 & ~3));\n  }\n  write() {\n    const totalSize = this.getSize();\n    const glyfTable = new DataView(new ArrayBuffer(totalSize));\n    const isLocationLong = totalSize > 0x1fffe;\n    const offsetSize = isLocationLong ? 4 : 2;\n    const locaTable = new DataView(new ArrayBuffer((this.glyphs.length + 1) * offsetSize));\n    if (isLocationLong) {\n      locaTable.setUint32(0, 0);\n    } else {\n      locaTable.setUint16(0, 0);\n    }\n    let pos = 0;\n    let locaIndex = 0;\n    for (const glyph of this.glyphs) {\n      pos += glyph.write(pos, glyfTable);\n      pos = pos + 3 & ~3;\n      locaIndex += offsetSize;\n      if (isLocationLong) {\n        locaTable.setUint32(locaIndex, pos);\n      } else {\n        locaTable.setUint16(locaIndex, pos >> 1);\n      }\n    }\n    return {\n      isLocationLong,\n      loca: new Uint8Array(locaTable.buffer),\n      glyf: new Uint8Array(glyfTable.buffer)\n    };\n  }\n  scale(factors) {\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      this.glyphs[i].scale(factors[i]);\n    }\n  }\n}\nclass Glyph {\n  constructor({\n    header = null,\n    simple = null,\n    composites = null\n  }) {\n    this.header = header;\n    this.simple = simple;\n    this.composites = composites;\n  }\n  static parse(pos, glyf) {\n    const [read, header] = GlyphHeader.parse(pos, glyf);\n    pos += read;\n    if (header.numberOfContours < 0) {\n      const composites = [];\n      while (true) {\n        const [n, composite] = CompositeGlyph.parse(pos, glyf);\n        pos += n;\n        composites.push(composite);\n        if (!(composite.flags & MORE_COMPONENTS)) {\n          break;\n        }\n      }\n      return new Glyph({\n        header,\n        composites\n      });\n    }\n    const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n    return new Glyph({\n      header,\n      simple\n    });\n  }\n  getSize() {\n    if (!this.header) {\n      return 0;\n    }\n    const size = this.simple ? this.simple.getSize() : Math.sumPrecise(this.composites.map(c => c.getSize()));\n    return this.header.getSize() + size;\n  }\n  write(pos, buf) {\n    if (!this.header) {\n      return 0;\n    }\n    const spos = pos;\n    pos += this.header.write(pos, buf);\n    if (this.simple) {\n      pos += this.simple.write(pos, buf);\n    } else {\n      for (const composite of this.composites) {\n        pos += composite.write(pos, buf);\n      }\n    }\n    return pos - spos;\n  }\n  scale(factor) {\n    if (!this.header) {\n      return;\n    }\n    const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n    this.header.scale(xMiddle, factor);\n    if (this.simple) {\n      this.simple.scale(xMiddle, factor);\n    } else {\n      for (const composite of this.composites) {\n        composite.scale(xMiddle, factor);\n      }\n    }\n  }\n}\nclass GlyphHeader {\n  constructor({\n    numberOfContours,\n    xMin,\n    yMin,\n    xMax,\n    yMax\n  }) {\n    this.numberOfContours = numberOfContours;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n  }\n  static parse(pos, glyf) {\n    return [GLYPH_HEADER_SIZE, new GlyphHeader({\n      numberOfContours: glyf.getInt16(pos),\n      xMin: glyf.getInt16(pos + 2),\n      yMin: glyf.getInt16(pos + 4),\n      xMax: glyf.getInt16(pos + 6),\n      yMax: glyf.getInt16(pos + 8)\n    })];\n  }\n  getSize() {\n    return GLYPH_HEADER_SIZE;\n  }\n  write(pos, buf) {\n    buf.setInt16(pos, this.numberOfContours);\n    buf.setInt16(pos + 2, this.xMin);\n    buf.setInt16(pos + 4, this.yMin);\n    buf.setInt16(pos + 6, this.xMax);\n    buf.setInt16(pos + 8, this.yMax);\n    return GLYPH_HEADER_SIZE;\n  }\n  scale(x, factor) {\n    this.xMin = Math.round(x + (this.xMin - x) * factor);\n    this.xMax = Math.round(x + (this.xMax - x) * factor);\n  }\n}\nclass Contour {\n  constructor({\n    flags,\n    xCoordinates,\n    yCoordinates\n  }) {\n    this.xCoordinates = xCoordinates;\n    this.yCoordinates = yCoordinates;\n    this.flags = flags;\n  }\n}\nclass SimpleGlyph {\n  constructor({\n    contours,\n    instructions\n  }) {\n    this.contours = contours;\n    this.instructions = instructions;\n  }\n  static parse(pos, glyf, numberOfContours) {\n    const endPtsOfContours = [];\n    for (let i = 0; i < numberOfContours; i++) {\n      const endPt = glyf.getUint16(pos);\n      pos += 2;\n      endPtsOfContours.push(endPt);\n    }\n    const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n    const instructionLength = glyf.getUint16(pos);\n    pos += 2;\n    const instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n    pos += instructionLength;\n    const flags = [];\n    for (let i = 0; i < numberOfPt; pos++, i++) {\n      let flag = glyf.getUint8(pos);\n      flags.push(flag);\n      if (flag & REPEAT_FLAG) {\n        const count = glyf.getUint8(++pos);\n        flag ^= REPEAT_FLAG;\n        for (let m = 0; m < count; m++) {\n          flags.push(flag);\n        }\n        i += count;\n      }\n    }\n    const allXCoordinates = [];\n    let xCoordinates = [];\n    let yCoordinates = [];\n    let pointFlags = [];\n    const contours = [];\n    let endPtsOfContoursIndex = 0;\n    let lastCoordinate = 0;\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n      if (flag & X_SHORT_VECTOR) {\n        const x = glyf.getUint8(pos++);\n        lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n        xCoordinates.push(lastCoordinate);\n      } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n        xCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        xCoordinates.push(lastCoordinate);\n      }\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        endPtsOfContoursIndex++;\n        allXCoordinates.push(xCoordinates);\n        xCoordinates = [];\n      }\n    }\n    lastCoordinate = 0;\n    endPtsOfContoursIndex = 0;\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n      if (flag & Y_SHORT_VECTOR) {\n        const y = glyf.getUint8(pos++);\n        lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n        yCoordinates.push(lastCoordinate);\n      } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n        yCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        yCoordinates.push(lastCoordinate);\n      }\n      pointFlags.push(flag & ON_CURVE_POINT | flag & OVERLAP_SIMPLE);\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n        endPtsOfContoursIndex++;\n        contours.push(new Contour({\n          flags: pointFlags,\n          xCoordinates,\n          yCoordinates\n        }));\n        yCoordinates = [];\n        pointFlags = [];\n      }\n    }\n    return new SimpleGlyph({\n      contours,\n      instructions\n    });\n  }\n  getSize() {\n    let size = this.contours.length * 2 + 2 + this.instructions.length;\n    let lastX = 0;\n    let lastY = 0;\n    for (const contour of this.contours) {\n      size += contour.flags.length;\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        const x = contour.xCoordinates[i];\n        const y = contour.yCoordinates[i];\n        let abs = Math.abs(x - lastX);\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n        lastX = x;\n        abs = Math.abs(y - lastY);\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n        lastY = y;\n      }\n    }\n    return size;\n  }\n  write(pos, buf) {\n    const spos = pos;\n    const xCoordinates = [];\n    const yCoordinates = [];\n    const flags = [];\n    let lastX = 0;\n    let lastY = 0;\n    for (const contour of this.contours) {\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        let flag = contour.flags[i];\n        const x = contour.xCoordinates[i];\n        let delta = x - lastX;\n        if (delta === 0) {\n          flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n          xCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n          if (abs <= 255) {\n            flag |= delta >= 0 ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR : X_SHORT_VECTOR;\n            xCoordinates.push(abs);\n          } else {\n            xCoordinates.push(delta);\n          }\n        }\n        lastX = x;\n        const y = contour.yCoordinates[i];\n        delta = y - lastY;\n        if (delta === 0) {\n          flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n          yCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n          if (abs <= 255) {\n            flag |= delta >= 0 ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR : Y_SHORT_VECTOR;\n            yCoordinates.push(abs);\n          } else {\n            yCoordinates.push(delta);\n          }\n        }\n        lastY = y;\n        flags.push(flag);\n      }\n      buf.setUint16(pos, xCoordinates.length - 1);\n      pos += 2;\n    }\n    buf.setUint16(pos, this.instructions.length);\n    pos += 2;\n    if (this.instructions.length) {\n      new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);\n      pos += this.instructions.length;\n    }\n    for (const flag of flags) {\n      buf.setUint8(pos++, flag);\n    }\n    for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n      const x = xCoordinates[i];\n      const flag = flags[i];\n      if (flag & X_SHORT_VECTOR) {\n        buf.setUint8(pos++, x);\n      } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n        buf.setInt16(pos, x);\n        pos += 2;\n      }\n    }\n    for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n      const y = yCoordinates[i];\n      const flag = flags[i];\n      if (flag & Y_SHORT_VECTOR) {\n        buf.setUint8(pos++, y);\n      } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n        buf.setInt16(pos, y);\n        pos += 2;\n      }\n    }\n    return pos - spos;\n  }\n  scale(x, factor) {\n    for (const contour of this.contours) {\n      if (contour.xCoordinates.length === 0) {\n        continue;\n      }\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        contour.xCoordinates[i] = Math.round(x + (contour.xCoordinates[i] - x) * factor);\n      }\n    }\n  }\n}\nclass CompositeGlyph {\n  constructor({\n    flags,\n    glyphIndex,\n    argument1,\n    argument2,\n    transf,\n    instructions\n  }) {\n    this.flags = flags;\n    this.glyphIndex = glyphIndex;\n    this.argument1 = argument1;\n    this.argument2 = argument2;\n    this.transf = transf;\n    this.instructions = instructions;\n  }\n  static parse(pos, glyf) {\n    const spos = pos;\n    const transf = [];\n    let flags = glyf.getUint16(pos);\n    const glyphIndex = glyf.getUint16(pos + 2);\n    pos += 4;\n    let argument1, argument2;\n    if (flags & ARG_1_AND_2_ARE_WORDS) {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt16(pos);\n        argument2 = glyf.getInt16(pos + 2);\n      } else {\n        argument1 = glyf.getUint16(pos);\n        argument2 = glyf.getUint16(pos + 2);\n      }\n      pos += 4;\n      flags ^= ARG_1_AND_2_ARE_WORDS;\n    } else {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt8(pos);\n        argument2 = glyf.getInt8(pos + 1);\n      } else {\n        argument1 = glyf.getUint8(pos);\n        argument2 = glyf.getUint8(pos + 1);\n      }\n      pos += 2;\n    }\n    if (flags & WE_HAVE_A_SCALE) {\n      transf.push(glyf.getUint16(pos));\n      pos += 2;\n    } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n      pos += 4;\n    } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2), glyf.getUint16(pos + 4), glyf.getUint16(pos + 6));\n      pos += 8;\n    }\n    let instructions = null;\n    if (flags & WE_HAVE_INSTRUCTIONS) {\n      const instructionLength = glyf.getUint16(pos);\n      pos += 2;\n      instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n      pos += instructionLength;\n    }\n    return [pos - spos, new CompositeGlyph({\n      flags,\n      glyphIndex,\n      argument1,\n      argument2,\n      transf,\n      instructions\n    })];\n  }\n  getSize() {\n    let size = 2 + 2 + this.transf.length * 2;\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      size += 2 + this.instructions.length;\n    }\n    size += 2;\n    if (this.flags & 2) {\n      if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {\n        size += 2;\n      }\n    } else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {\n      size += 2;\n    }\n    return size;\n  }\n  write(pos, buf) {\n    const spos = pos;\n    if (this.flags & ARGS_ARE_XY_VALUES) {\n      if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {\n        this.flags |= ARG_1_AND_2_ARE_WORDS;\n      }\n    } else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {\n      this.flags |= ARG_1_AND_2_ARE_WORDS;\n    }\n    buf.setUint16(pos, this.flags);\n    buf.setUint16(pos + 2, this.glyphIndex);\n    pos += 4;\n    if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n      if (this.flags & ARGS_ARE_XY_VALUES) {\n        buf.setInt16(pos, this.argument1);\n        buf.setInt16(pos + 2, this.argument2);\n      } else {\n        buf.setUint16(pos, this.argument1);\n        buf.setUint16(pos + 2, this.argument2);\n      }\n      pos += 4;\n    } else {\n      buf.setUint8(pos, this.argument1);\n      buf.setUint8(pos + 1, this.argument2);\n      pos += 2;\n    }\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      buf.setUint16(pos, this.instructions.length);\n      pos += 2;\n      if (this.instructions.length) {\n        new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);\n        pos += this.instructions.length;\n      }\n    }\n    return pos - spos;\n  }\n  scale(x, factor) {}\n}\nfunction pruneCompositeGlyphCycles(glyfTable, locaEntries, numGlyphs) {\n  const glyf = new DataView(glyfTable.buffer, glyfTable.byteOffset, glyfTable.byteLength);\n  const components = new Array(numGlyphs);\n  for (let i = 0; i < numGlyphs; i++) {\n    const offset = locaEntries[i].offset;\n    const endOffset = Math.min(locaEntries[i].endOffset, glyf.byteLength);\n    if (endOffset - offset <= GLYPH_HEADER_SIZE || glyf.getInt16(offset) >= 0) {\n      continue;\n    }\n    const comps = [];\n    let p = offset + GLYPH_HEADER_SIZE;\n    while (p + 4 <= endOffset) {\n      const flags = glyf.getUint16(p);\n      const gid = glyf.getUint16(p + 2);\n      let size = 4 + (flags & ARG_1_AND_2_ARE_WORDS ? 4 : 2);\n      if (flags & WE_HAVE_A_SCALE) {\n        size += 2;\n      } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n        size += 4;\n      } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n        size += 8;\n      }\n      comps.push({\n        gid,\n        offset: p,\n        size,\n        flags\n      });\n      p += size;\n      if (!(flags & MORE_COMPONENTS)) {\n        break;\n      }\n    }\n    if (comps.length) {\n      components[i] = comps;\n    }\n  }\n  const WHITE = 0,\n    GRAY = 1,\n    BLACK = 2;\n  const state = new Uint8Array(numGlyphs);\n  const backEdges = new Map();\n  for (let start = 0; start < numGlyphs; start++) {\n    if (state[start] !== WHITE || !components[start]) {\n      continue;\n    }\n    const stack = [{\n      node: start,\n      idx: 0\n    }];\n    state[start] = GRAY;\n    while (stack.length > 0) {\n      const top = stack.at(-1);\n      const comps = components[top.node];\n      if (!comps || top.idx >= comps.length) {\n        state[top.node] = BLACK;\n        stack.pop();\n        continue;\n      }\n      const compIdx = top.idx++;\n      const next = comps[compIdx].gid;\n      if (next >= numGlyphs || state[next] === BLACK) {\n        continue;\n      }\n      if (state[next] === WHITE) {\n        state[next] = GRAY;\n        stack.push({\n          node: next,\n          idx: 0\n        });\n        continue;\n      }\n      let removeSet = backEdges.get(top.node);\n      if (!removeSet) {\n        removeSet = new Set();\n        backEdges.set(top.node, removeSet);\n      }\n      removeSet.add(compIdx);\n    }\n  }\n  const droppedGlyphs = new Set();\n  for (const [gIdx, removeSet] of backEdges) {\n    const comps = components[gIdx];\n    const remaining = [];\n    for (let ci = 0; ci < comps.length; ci++) {\n      if (!removeSet.has(ci)) {\n        remaining.push(comps[ci]);\n      }\n    }\n    if (remaining.length === 0) {\n      droppedGlyphs.add(gIdx);\n      continue;\n    }\n    const start = locaEntries[gIdx].offset;\n    const endOffset = Math.min(locaEntries[gIdx].endOffset, glyf.byteLength);\n    let writePos = start + GLYPH_HEADER_SIZE;\n    for (let ci = 0; ci < remaining.length; ci++) {\n      const c = remaining[ci];\n      const isLast = ci === remaining.length - 1;\n      let newFlags = c.flags & ~WE_HAVE_INSTRUCTIONS;\n      newFlags = isLast ? newFlags & ~MORE_COMPONENTS : newFlags | MORE_COMPONENTS;\n      if (writePos !== c.offset) {\n        glyfTable.copyWithin(writePos, c.offset, c.offset + c.size);\n      }\n      glyf.setUint16(writePos, newFlags);\n      writePos += c.size;\n    }\n    if (writePos < endOffset) {\n      glyfTable.fill(0, writePos, endOffset);\n    }\n  }\n  return droppedGlyphs;\n}\n\n;// ./src/core/to_unicode_map.js\n\nclass ToUnicodeMap {\n  constructor(cmap = []) {\n    this._map = cmap;\n  }\n  get length() {\n    return this._map.length;\n  }\n  forEach(callback) {\n    for (const charCode in this._map) {\n      callback(charCode, this._map[charCode].codePointAt(0));\n    }\n  }\n  has(i) {\n    return this._map[i] !== undefined;\n  }\n  get(i) {\n    return this._map[i];\n  }\n  charCodeOf(value) {\n    const map = this._map;\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n    return -1;\n  }\n  amend(map) {\n    for (const charCode in map) {\n      this._map[charCode] = map[charCode];\n    }\n  }\n}\nclass IdentityToUnicodeMap {\n  constructor(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n  get length() {\n    return this.lastChar + 1 - this.firstChar;\n  }\n  forEach(callback) {\n    for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n      callback(i, i);\n    }\n  }\n  has(i) {\n    return this.firstChar <= i && i <= this.lastChar;\n  }\n  get(i) {\n    if (this.firstChar <= i && i <= this.lastChar) {\n      return String.fromCharCode(i);\n    }\n    return undefined;\n  }\n  charCodeOf(v) {\n    return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n  }\n  amend(map) {\n    unreachable(\"Should not call amend()\");\n  }\n}\n\n;// ./src/core/cff_font.js\n\n\n\nclass CFFFont {\n  constructor(file, properties) {\n    this.properties = properties;\n    const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    const compiler = new CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n    try {\n      this.data = compiler.compile();\n    } catch (ex) {\n      warn(`Failed to compile font \"${properties.loadedName}\": \"${ex}\".`);\n      file.reset();\n      this.data = file.getBytes();\n    }\n    this._createBuiltInEncoding();\n  }\n  get numGlyphs() {\n    return this.cff.charStrings.count;\n  }\n  getCharset() {\n    return this.cff.charset.charset;\n  }\n  getGlyphMapping() {\n    const cff = this.cff;\n    const properties = this.properties;\n    const {\n      cidToGidMap,\n      cMap\n    } = properties;\n    const charsets = cff.charset.charset;\n    let charCodeToGlyphId;\n    let glyphId;\n    if (properties.composite) {\n      let invCidToGidMap;\n      if (cidToGidMap?.length > 0) {\n        invCidToGidMap = Object.create(null);\n        for (let i = 0, ii = cidToGidMap.length; i < ii; i++) {\n          const gid = cidToGidMap[i];\n          if (gid !== undefined) {\n            invCidToGidMap[gid] = i;\n          }\n        }\n      }\n      charCodeToGlyphId = Object.create(null);\n      let charCode;\n      if (cff.isCIDFont) {\n        for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n          const cid = charsets[glyphId];\n          charCode = cMap.charCodeOf(cid);\n          if (invCidToGidMap?.[charCode] !== undefined) {\n            charCode = invCidToGidMap[charCode];\n          }\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      } else {\n        for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n          charCode = cMap.charCodeOf(glyphId);\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      }\n      return charCodeToGlyphId;\n    }\n    let encoding = cff.encoding ? cff.encoding.encoding : null;\n    if (properties.isInternalFont) {\n      encoding = properties.defaultEncoding;\n    }\n    charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n    return charCodeToGlyphId;\n  }\n  hasGlyphId(id) {\n    return this.cff.hasGlyphId(id);\n  }\n  _createBuiltInEncoding() {\n    const {\n      charset,\n      encoding\n    } = this.cff;\n    if (!charset || !encoding) {\n      return;\n    }\n    const charsets = charset.charset,\n      encodings = encoding.encoding;\n    const map = [];\n    for (const charCode in encodings) {\n      const glyphId = encodings[charCode];\n      if (glyphId >= 0) {\n        const glyphName = charsets[glyphId];\n        if (glyphName) {\n          map[charCode] = glyphName;\n        }\n      }\n    }\n    if (map.length > 0) {\n      this.properties.builtInEncoding = map;\n    }\n  }\n}\n\n;// ./src/core/font_renderer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getFloat214(view, offset) {\n  return view.getInt16(offset) / 16384;\n}\nfunction getSubroutineBias(subrs) {\n  const numSubrs = subrs.length;\n  if (numSubrs >= 33900) {\n    return 32768;\n  }\n  return numSubrs < 1240 ? 107 : 1131;\n}\nfunction parseCmap(data, start, end) {\n  const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n  const offset = view.getUint16(start + 2) === 1 ? view.getUint32(start + 8) : view.getUint32(start + 16);\n  const format = view.getUint16(start + offset);\n  let ranges, p, i;\n  if (format === 4) {\n    const segCount = view.getUint16(start + offset + 6) >> 1;\n    p = start + offset + 14;\n    ranges = [];\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i] = {\n        end: view.getUint16(p)\n      };\n    }\n    p += 2;\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].start = view.getUint16(p);\n    }\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].idDelta = view.getUint16(p);\n    }\n    for (i = 0; i < segCount; i++, p += 2) {\n      let idOffset = view.getUint16(p);\n      if (idOffset === 0) {\n        continue;\n      }\n      ranges[i].ids = [];\n      for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n        ranges[i].ids[j] = view.getUint16(p + idOffset);\n        idOffset += 2;\n      }\n    }\n    return ranges;\n  } else if (format === 12) {\n    const groups = view.getUint32(start + offset + 12);\n    p = start + offset + 16;\n    ranges = [];\n    for (i = 0; i < groups; i++) {\n      start = view.getUint32(p);\n      ranges.push({\n        start,\n        end: view.getUint32(p + 4),\n        idDelta: view.getUint32(p + 8) - start\n      });\n      p += 12;\n    }\n    return ranges;\n  }\n  throw new FormatError(`unsupported cmap: ${format}`);\n}\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n  const properties = {};\n  const parser = new CFFParser(new Stream(data, start, end - start), properties, seacAnalysisEnabled);\n  const cff = parser.parse();\n  return {\n    glyphs: cff.charStrings.objects,\n    subrs: cff.topDict.privateDict?.subrsIndex?.objects,\n    gsubrs: cff.globalSubrIndex?.objects,\n    isCFFCIDFont: cff.isCIDFont,\n    fdSelect: cff.fdSelect,\n    fdArray: cff.fdArray\n  };\n}\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n  const view = new DataView(loca.buffer, loca.byteOffset, loca.byteLength);\n  let itemSize, itemDecode;\n  if (isGlyphLocationsLong) {\n    itemSize = 4;\n    itemDecode = (dv, offset) => dv.getUint32(offset);\n  } else {\n    itemSize = 2;\n    itemDecode = (dv, offset) => 2 * dv.getUint16(offset);\n  }\n  const glyphs = [];\n  let startOffset = itemDecode(view, 0);\n  for (let j = itemSize; j < loca.length; j += itemSize) {\n    const endOffset = itemDecode(view, j);\n    glyphs.push(glyf.subarray(startOffset, endOffset));\n    startOffset = endOffset;\n  }\n  return glyphs;\n}\nfunction lookupCmap(ranges, unicode) {\n  const code = unicode.codePointAt(0);\n  let gid = 0,\n    l = 0,\n    r = ranges.length - 1;\n  while (l < r) {\n    const c = l + r + 1 >> 1;\n    if (code < ranges[c].start) {\n      r = c - 1;\n    } else {\n      l = c;\n    }\n  }\n  if (ranges[l].start <= code && code <= ranges[l].end) {\n    gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;\n  }\n  return {\n    charCode: code,\n    glyphId: gid\n  };\n}\nfunction compileGlyf(code, cmds, font, visitedGlyphs = new Set()) {\n  if (!code?.length) {\n    return;\n  }\n  if (visitedGlyphs.has(code)) {\n    warn(\"compileGlyf: skipping recursive composite glyph reference.\");\n    return;\n  }\n  visitedGlyphs.add(code);\n  function moveTo(x, y) {\n    if (firstPoint) {\n      cmds.add(DrawOPS.lineTo, firstPoint);\n    }\n    firstPoint = [x, y];\n    cmds.add(DrawOPS.moveTo, [x, y]);\n  }\n  function lineTo(x, y) {\n    cmds.add(DrawOPS.lineTo, [x, y]);\n  }\n  function quadraticCurveTo(xa, ya, x, y) {\n    cmds.add(DrawOPS.quadraticCurveTo, [xa, ya, x, y]);\n  }\n  const view = new DataView(code.buffer, code.byteOffset, code.byteLength);\n  let i = 0;\n  const numberOfContours = view.getInt16(i);\n  let flags;\n  let firstPoint = null;\n  let x = 0,\n    y = 0;\n  i += 10;\n  if (numberOfContours < 0) {\n    do {\n      flags = view.getUint16(i);\n      const glyphIndex = view.getUint16(i + 2);\n      i += 4;\n      let arg1, arg2;\n      if (flags & 0x01) {\n        if (flags & 0x02) {\n          arg1 = view.getInt16(i);\n          arg2 = view.getInt16(i + 2);\n        } else {\n          arg1 = view.getUint16(i);\n          arg2 = view.getUint16(i + 2);\n        }\n        i += 4;\n      } else if (flags & 0x02) {\n        arg1 = view.getInt8(i++);\n        arg2 = view.getInt8(i++);\n      } else {\n        arg1 = code[i++];\n        arg2 = code[i++];\n      }\n      if (flags & 0x02) {\n        x = arg1;\n        y = arg2;\n      } else {\n        x = 0;\n        y = 0;\n      }\n      let scaleX = 1,\n        scaleY = 1,\n        scale01 = 0,\n        scale10 = 0;\n      if (flags & 0x08) {\n        scaleX = scaleY = getFloat214(view, i);\n        i += 2;\n      } else if (flags & 0x40) {\n        scaleX = getFloat214(view, i);\n        scaleY = getFloat214(view, i + 2);\n        i += 4;\n      } else if (flags & 0x80) {\n        scaleX = getFloat214(view, i);\n        scale01 = getFloat214(view, i + 2);\n        scale10 = getFloat214(view, i + 4);\n        scaleY = getFloat214(view, i + 6);\n        i += 8;\n      }\n      const subglyph = font.glyphs[glyphIndex];\n      if (subglyph) {\n        cmds.save();\n        cmds.transform([scaleX, scale01, scale10, scaleY, x, y]);\n        if (!(flags & 0x02)) {}\n        compileGlyf(subglyph, cmds, font, visitedGlyphs);\n        cmds.restore();\n      }\n    } while (flags & 0x20);\n  } else {\n    const endPtsOfContours = [];\n    let j, jj;\n    for (j = 0; j < numberOfContours; j++) {\n      endPtsOfContours.push(view.getUint16(i));\n      i += 2;\n    }\n    const instructionLength = view.getUint16(i);\n    i += 2 + instructionLength;\n    const numberOfPoints = endPtsOfContours.at(-1) + 1;\n    const points = [];\n    while (points.length < numberOfPoints) {\n      flags = code[i++];\n      let repeat = 1;\n      if (flags & 0x08) {\n        repeat += code[i++];\n      }\n      while (repeat-- > 0) {\n        points.push({\n          flags\n        });\n      }\n    }\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x12) {\n        case 0x00:\n          x += view.getInt16(i);\n          i += 2;\n          break;\n        case 0x02:\n          x -= code[i++];\n          break;\n        case 0x12:\n          x += code[i++];\n          break;\n      }\n      points[j].x = x;\n    }\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x24) {\n        case 0x00:\n          y += view.getInt16(i);\n          i += 2;\n          break;\n        case 0x04:\n          y -= code[i++];\n          break;\n        case 0x24:\n          y += code[i++];\n          break;\n      }\n      points[j].y = y;\n    }\n    let startPoint = 0;\n    for (i = 0; i < numberOfContours; i++) {\n      const endPoint = endPtsOfContours[i];\n      const contour = points.slice(startPoint, endPoint + 1);\n      if (contour[0].flags & 1) {\n        contour.push(contour[0]);\n      } else if (contour.at(-1).flags & 1) {\n        contour.unshift(contour.at(-1));\n      } else {\n        const p = {\n          flags: 1,\n          x: (contour[0].x + contour.at(-1).x) / 2,\n          y: (contour[0].y + contour.at(-1).y) / 2\n        };\n        contour.unshift(p);\n        contour.push(p);\n      }\n      moveTo(contour[0].x, contour[0].y);\n      for (j = 1, jj = contour.length; j < jj; j++) {\n        if (contour[j].flags & 1) {\n          lineTo(contour[j].x, contour[j].y);\n        } else if (contour[j + 1].flags & 1) {\n          quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n          j++;\n        } else {\n          quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n        }\n      }\n      startPoint = endPoint + 1;\n    }\n  }\n  visitedGlyphs.delete(code);\n}\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n  function moveTo(x, y) {\n    if (firstPoint) {\n      cmds.add(DrawOPS.lineTo, firstPoint);\n    }\n    firstPoint = [x, y];\n    cmds.add(DrawOPS.moveTo, [x, y]);\n  }\n  function lineTo(x, y) {\n    cmds.add(DrawOPS.lineTo, [x, y]);\n  }\n  function bezierCurveTo(x1, y1, x2, y2, x, y) {\n    cmds.add(DrawOPS.curveTo, [x1, y1, x2, y2, x, y]);\n  }\n  const stack = [];\n  let x = 0,\n    y = 0;\n  let stems = 0;\n  let firstPoint = null;\n  function parse(code) {\n    const view = new DataView(code.buffer, code.byteOffset, code.byteLength);\n    let i = 0;\n    while (i < code.length) {\n      let stackClean = false;\n      let v = code[i++];\n      let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n      switch (v) {\n        case 1:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 3:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 4:\n          y += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n        case 5:\n          while (stack.length > 0) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n          break;\n        case 6:\n          while (stack.length > 0) {\n            x += stack.shift();\n            lineTo(x, y);\n            if (stack.length === 0) {\n              break;\n            }\n            y += stack.shift();\n            lineTo(x, y);\n          }\n          break;\n        case 7:\n          while (stack.length > 0) {\n            y += stack.shift();\n            lineTo(x, y);\n            if (stack.length === 0) {\n              break;\n            }\n            x += stack.shift();\n            lineTo(x, y);\n          }\n          break;\n        case 8:\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 10:\n          n = stack.pop();\n          subrCode = null;\n          if (font.isCFFCIDFont) {\n            const fdIndex = font.fdSelect.getFDIndex(glyphId);\n            if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n              const fontDict = font.fdArray[fdIndex];\n              let subrs;\n              if (fontDict.privateDict?.subrsIndex) {\n                subrs = fontDict.privateDict.subrsIndex.objects;\n              }\n              if (subrs) {\n                n += getSubroutineBias(subrs);\n                subrCode = subrs[n];\n              }\n            } else {\n              warn(\"Invalid fd index for glyph index.\");\n            }\n          } else {\n            subrCode = font.subrs[n + font.subrsBias];\n          }\n          if (subrCode) {\n            parse(subrCode);\n          }\n          break;\n        case 11:\n          return;\n        case 12:\n          v = code[i++];\n          switch (v) {\n            case 34:\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y1 = y + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y, xb, y1, x, y1);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y, x, y);\n              break;\n            case 35:\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              stack.pop();\n              break;\n            case 36:\n              xa = x + stack.shift();\n              y1 = y + stack.shift();\n              xb = xa + stack.shift();\n              y2 = y1 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y2, x, y2);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y3 = y2 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y2, xb, y3, x, y);\n              break;\n            case 37:\n              const x0 = x,\n                y0 = y;\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb;\n              if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                x += stack.shift();\n              } else {\n                y += stack.shift();\n              }\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              break;\n            default:\n              throw new FormatError(`unknown operator: 12 ${v}`);\n          }\n          break;\n        case 14:\n          if (stack.length >= 4) {\n            const achar = stack.pop();\n            const bchar = stack.pop();\n            y = stack.pop();\n            x = stack.pop();\n            cmds.save();\n            cmds.translate(x, y);\n            let cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]]));\n            compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n            cmds.restore();\n            cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]]));\n            compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n          }\n          return;\n        case 18:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 19:\n          stems += stack.length >> 1;\n          i += stems + 7 >> 3;\n          stackClean = true;\n          break;\n        case 20:\n          stems += stack.length >> 1;\n          i += stems + 7 >> 3;\n          stackClean = true;\n          break;\n        case 21:\n          y += stack.pop();\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n        case 22:\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n        case 23:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 24:\n          while (stack.length > 2) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          x += stack.shift();\n          y += stack.shift();\n          lineTo(x, y);\n          break;\n        case 25:\n          while (stack.length > 6) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n          xa = x + stack.shift();\n          ya = y + stack.shift();\n          xb = xa + stack.shift();\n          yb = ya + stack.shift();\n          x = xb + stack.shift();\n          y = yb + stack.shift();\n          bezierCurveTo(xa, ya, xb, yb, x, y);\n          break;\n        case 26:\n          if (stack.length % 2) {\n            x += stack.shift();\n          }\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb;\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 27:\n          if (stack.length % 2) {\n            y += stack.shift();\n          }\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb;\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 28:\n          stack.push(view.getInt16(i));\n          i += 2;\n          break;\n        case 29:\n          n = stack.pop() + font.gsubrsBias;\n          subrCode = font.gsubrs[n];\n          if (subrCode) {\n            parse(subrCode);\n          }\n          break;\n        case 30:\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            if (stack.length === 0) {\n              break;\n            }\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 31:\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            if (stack.length === 0) {\n              break;\n            }\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        default:\n          if (v < 32) {\n            throw new FormatError(`unknown operator: ${v}`);\n          }\n          if (v < 247) {\n            stack.push(v - 139);\n          } else if (v < 251) {\n            stack.push((v - 247) * 256 + code[i++] + 108);\n          } else if (v < 255) {\n            stack.push(-(v - 251) * 256 - code[i++] - 108);\n          } else {\n            stack.push(view.getInt32(i) / 65536);\n            i += 4;\n          }\n          break;\n      }\n      if (stackClean) {\n        stack.length = 0;\n      }\n    }\n  }\n  parse(charStringCode);\n}\nclass Commands {\n  cmds = [];\n  transformStack = [];\n  currentTransform = [1, 0, 0, 1, 0, 0];\n  add(cmd, args) {\n    if (args) {\n      const {\n        currentTransform\n      } = this;\n      for (let i = 0, ii = args.length; i < ii; i += 2) {\n        Util.applyTransform(args, currentTransform, i);\n      }\n      this.cmds.push(cmd, ...args);\n    } else {\n      this.cmds.push(cmd);\n    }\n  }\n  transform(transf) {\n    this.currentTransform = Util.transform(this.currentTransform, transf);\n  }\n  translate(x, y) {\n    this.transform([1, 0, 0, 1, x, y]);\n  }\n  save() {\n    this.transformStack.push(this.currentTransform.slice());\n  }\n  restore() {\n    this.currentTransform = this.transformStack.pop() || [1, 0, 0, 1, 0, 0];\n  }\n  getPath() {\n    if (FeatureTest.isFloat16ArraySupported) {\n      return new Float16Array(this.cmds);\n    }\n    return new Float32Array(this.cmds);\n  }\n}\nclass CompiledFont {\n  constructor(fontMatrix) {\n    this.fontMatrix = fontMatrix;\n    this.compiledGlyphs = Object.create(null);\n    this.compiledCharCodeToGlyphId = Object.create(null);\n  }\n  static get NOOP() {\n    return shadow(this, \"NOOP\", FeatureTest.isFloat16ArraySupported ? new Float16Array(0) : new Float32Array(0));\n  }\n  getPathJs(unicode) {\n    const {\n      charCode,\n      glyphId\n    } = lookupCmap(this.cmap, unicode);\n    let fn = this.compiledGlyphs[glyphId],\n      compileEx;\n    if (fn === undefined) {\n      try {\n        fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n      } catch (ex) {\n        fn = CompiledFont.NOOP;\n        compileEx = ex;\n      }\n      this.compiledGlyphs[glyphId] = fn;\n    }\n    this.compiledCharCodeToGlyphId[charCode] ??= glyphId;\n    if (compileEx) {\n      throw compileEx;\n    }\n    return fn;\n  }\n  compileGlyph(code, glyphId) {\n    if (!code?.length || code[0] === 14) {\n      return CompiledFont.NOOP;\n    }\n    let fontMatrix = this.fontMatrix;\n    if (this.isCFFCIDFont) {\n      const fdIndex = this.fdSelect.getFDIndex(glyphId);\n      if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n        const fontDict = this.fdArray[fdIndex];\n        fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n      } else {\n        warn(\"Invalid fd index for glyph index.\");\n      }\n    }\n    assert(isNumberArray(fontMatrix, 6), \"Expected a valid fontMatrix.\");\n    const cmds = new Commands();\n    cmds.transform(fontMatrix.slice());\n    this.compileGlyphImpl(code, cmds, glyphId);\n    cmds.add(DrawOPS.closePath);\n    return cmds.getPath();\n  }\n  compileGlyphImpl() {\n    unreachable(\"Children classes should implement this.\");\n  }\n  hasBuiltPath(unicode) {\n    const {\n      charCode,\n      glyphId\n    } = lookupCmap(this.cmap, unicode);\n    return this.compiledGlyphs[glyphId] !== undefined && this.compiledCharCodeToGlyphId[charCode] !== undefined;\n  }\n}\nclass TrueTypeCompiled extends CompiledFont {\n  constructor(glyphs, cmap, fontMatrix) {\n    super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n    this.glyphs = glyphs;\n    this.cmap = cmap;\n  }\n  compileGlyphImpl(code, cmds) {\n    compileGlyf(code, cmds, this);\n  }\n}\nclass Type2Compiled extends CompiledFont {\n  constructor(cffInfo, cmap, fontMatrix) {\n    super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n    this.glyphs = cffInfo.glyphs;\n    this.gsubrs = cffInfo.gsubrs || [];\n    this.subrs = cffInfo.subrs || [];\n    this.cmap = cmap;\n    this.glyphNameMap = getGlyphsUnicode();\n    this.gsubrsBias = getSubroutineBias(this.gsubrs);\n    this.subrsBias = getSubroutineBias(this.subrs);\n    this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n    this.fdSelect = cffInfo.fdSelect;\n    this.fdArray = cffInfo.fdArray;\n  }\n  compileGlyphImpl(code, cmds, glyphId) {\n    compileCharString(code, cmds, this, glyphId);\n  }\n}\nclass FontRendererFactory {\n  static create(font, seacAnalysisEnabled) {\n    const data = new Uint8Array(font.data),\n      view = new DataView(data.buffer);\n    let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n    const numTables = view.getUint16(4);\n    for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n      const tag = bytesToString(data.subarray(p, p + 4));\n      const offset = view.getUint32(p + 8);\n      const length = view.getUint32(p + 12);\n      switch (tag) {\n        case \"cmap\":\n          cmap = parseCmap(data, offset, offset + length);\n          break;\n        case \"glyf\":\n          glyf = data.subarray(offset, offset + length);\n          break;\n        case \"loca\":\n          loca = data.subarray(offset, offset + length);\n          break;\n        case \"head\":\n          unitsPerEm = view.getUint16(offset + 18);\n          indexToLocFormat = view.getUint16(offset + 50);\n          break;\n        case \"CFF \":\n          cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n          break;\n      }\n    }\n    if (glyf) {\n      const fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n      return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n    }\n    return new Type2Compiled(cff, cmap, font.fontMatrix);\n  }\n}\n\n;// ./src/core/metrics.js\n\nconst getMetrics = getLookupTableFactory(function (t) {\n  t.Courier = 600;\n  t[\"Courier-Bold\"] = 600;\n  t[\"Courier-BoldOblique\"] = 600;\n  t[\"Courier-Oblique\"] = 600;\n  t.Helvetica = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t.Symbol = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.universal = 713;\n    t.numbersign = 500;\n    t.existential = 549;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.suchthat = 439;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asteriskmath = 500;\n    t.plus = 549;\n    t.comma = 250;\n    t.minus = 549;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 549;\n    t.equal = 549;\n    t.greater = 549;\n    t.question = 444;\n    t.congruent = 549;\n    t.Alpha = 722;\n    t.Beta = 667;\n    t.Chi = 722;\n    t.Delta = 612;\n    t.Epsilon = 611;\n    t.Phi = 763;\n    t.Gamma = 603;\n    t.Eta = 722;\n    t.Iota = 333;\n    t.theta1 = 631;\n    t.Kappa = 722;\n    t.Lambda = 686;\n    t.Mu = 889;\n    t.Nu = 722;\n    t.Omicron = 722;\n    t.Pi = 768;\n    t.Theta = 741;\n    t.Rho = 556;\n    t.Sigma = 592;\n    t.Tau = 611;\n    t.Upsilon = 690;\n    t.sigma1 = 439;\n    t.Omega = 768;\n    t.Xi = 645;\n    t.Psi = 795;\n    t.Zeta = 611;\n    t.bracketleft = 333;\n    t.therefore = 863;\n    t.bracketright = 333;\n    t.perpendicular = 658;\n    t.underscore = 500;\n    t.radicalex = 500;\n    t.alpha = 631;\n    t.beta = 549;\n    t.chi = 549;\n    t.delta = 494;\n    t.epsilon = 439;\n    t.phi = 521;\n    t.gamma = 411;\n    t.eta = 603;\n    t.iota = 329;\n    t.phi1 = 603;\n    t.kappa = 549;\n    t.lambda = 549;\n    t.mu = 576;\n    t.nu = 521;\n    t.omicron = 549;\n    t.pi = 549;\n    t.theta = 521;\n    t.rho = 549;\n    t.sigma = 603;\n    t.tau = 439;\n    t.upsilon = 576;\n    t.omega1 = 713;\n    t.omega = 686;\n    t.xi = 493;\n    t.psi = 686;\n    t.zeta = 494;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.similar = 549;\n    t.Euro = 750;\n    t.Upsilon1 = 620;\n    t.minute = 247;\n    t.lessequal = 549;\n    t.fraction = 167;\n    t.infinity = 713;\n    t.florin = 500;\n    t.club = 753;\n    t.diamond = 753;\n    t.heart = 753;\n    t.spade = 753;\n    t.arrowboth = 1042;\n    t.arrowleft = 987;\n    t.arrowup = 603;\n    t.arrowright = 987;\n    t.arrowdown = 603;\n    t.degree = 400;\n    t.plusminus = 549;\n    t.second = 411;\n    t.greaterequal = 549;\n    t.multiply = 549;\n    t.proportional = 713;\n    t.partialdiff = 494;\n    t.bullet = 460;\n    t.divide = 549;\n    t.notequal = 549;\n    t.equivalence = 549;\n    t.approxequal = 549;\n    t.ellipsis = 1000;\n    t.arrowvertex = 603;\n    t.arrowhorizex = 1000;\n    t.carriagereturn = 658;\n    t.aleph = 823;\n    t.Ifraktur = 686;\n    t.Rfraktur = 795;\n    t.weierstrass = 987;\n    t.circlemultiply = 768;\n    t.circleplus = 768;\n    t.emptyset = 823;\n    t.intersection = 768;\n    t.union = 768;\n    t.propersuperset = 713;\n    t.reflexsuperset = 713;\n    t.notsubset = 713;\n    t.propersubset = 713;\n    t.reflexsubset = 713;\n    t.element = 713;\n    t.notelement = 713;\n    t.angle = 768;\n    t.gradient = 713;\n    t.registerserif = 790;\n    t.copyrightserif = 790;\n    t.trademarkserif = 890;\n    t.product = 823;\n    t.radical = 549;\n    t.dotmath = 250;\n    t.logicalnot = 713;\n    t.logicaland = 603;\n    t.logicalor = 603;\n    t.arrowdblboth = 1042;\n    t.arrowdblleft = 987;\n    t.arrowdblup = 603;\n    t.arrowdblright = 987;\n    t.arrowdbldown = 603;\n    t.lozenge = 494;\n    t.angleleft = 329;\n    t.registersans = 790;\n    t.copyrightsans = 790;\n    t.trademarksans = 786;\n    t.summation = 713;\n    t.parenlefttp = 384;\n    t.parenleftex = 384;\n    t.parenleftbt = 384;\n    t.bracketlefttp = 384;\n    t.bracketleftex = 384;\n    t.bracketleftbt = 384;\n    t.bracelefttp = 494;\n    t.braceleftmid = 494;\n    t.braceleftbt = 494;\n    t.braceex = 494;\n    t.angleright = 329;\n    t.integral = 274;\n    t.integraltp = 686;\n    t.integralex = 686;\n    t.integralbt = 686;\n    t.parenrighttp = 384;\n    t.parenrightex = 384;\n    t.parenrightbt = 384;\n    t.bracketrighttp = 384;\n    t.bracketrightex = 384;\n    t.bracketrightbt = 384;\n    t.bracerighttp = 494;\n    t.bracerightmid = 494;\n    t.bracerightbt = 494;\n    t.apple = 790;\n  });\n  t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 408;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 564;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 564;\n    t.equal = 564;\n    t.greater = 564;\n    t.question = 444;\n    t.at = 921;\n    t.A = 722;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 556;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 389;\n    t.K = 722;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 556;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 722;\n    t.W = 944;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 469;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 444;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 333;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.asciitilde = 541;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 180;\n    t.quotedblleft = 444;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 453;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 444;\n    t.quotedblright = 444;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 444;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 889;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 444;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 564;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 444;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 444;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 444;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 444;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 444;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 444;\n    t.Amacron = 722;\n    t.rcaron = 333;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 556;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 588;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 564;\n    t.uacute = 500;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 444;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 722;\n    t.Iacute = 333;\n    t.plusminus = 564;\n    t.brokenbar = 200;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 333;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 326;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 444;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 344;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 722;\n    t.zdotaccent = 444;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 500;\n    t.minus = 564;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 564;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 1000;\n    t.ampersand = 833;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 930;\n    t.A = 722;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 778;\n    t.L = 667;\n    t.M = 944;\n    t.N = 722;\n    t.O = 778;\n    t.P = 611;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 556;\n    t.T = 667;\n    t.U = 722;\n    t.V = 722;\n    t.W = 1000;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 667;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 581;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 556;\n    t.c = 444;\n    t.d = 556;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 333;\n    t.k = 556;\n    t.l = 278;\n    t.m = 833;\n    t.n = 556;\n    t.o = 500;\n    t.p = 556;\n    t.q = 556;\n    t.r = 444;\n    t.s = 389;\n    t.t = 333;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 394;\n    t.bar = 220;\n    t.braceright = 394;\n    t.asciitilde = 520;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 540;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 300;\n    t.Lslash = 667;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 330;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 556;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 570;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 667;\n    t.Cacute = 722;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 722;\n    t.rcaron = 444;\n    t.ccedilla = 444;\n    t.Zdotaccent = 667;\n    t.Thorn = 611;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 556;\n    t.dcaron = 672;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 667;\n    t.partialdiff = 494;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 778;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 444;\n    t.omacron = 500;\n    t.Zacute = 667;\n    t.Zcaron = 667;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 416;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 300;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 394;\n    t.Kcommaaccent = 778;\n    t.Lacute = 667;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 667;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 444;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 667;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 444;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 556;\n    t.minus = 570;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 333;\n    t.logicalnot = 570;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 389;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 832;\n    t.A = 667;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 667;\n    t.F = 667;\n    t.G = 722;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 667;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 889;\n    t.X = 667;\n    t.Y = 611;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 570;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 556;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 556;\n    t.v = 444;\n    t.w = 667;\n    t.x = 500;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 348;\n    t.bar = 220;\n    t.braceright = 348;\n    t.asciitilde = 570;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 500;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 944;\n    t.ordfeminine = 266;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 300;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 611;\n    t.divide = 570;\n    t.Yacute = 611;\n    t.Acircumflex = 667;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 667;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 608;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 444;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 722;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 366;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 576;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 382;\n    t.Kcommaaccent = 667;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 500;\n    t.minus = 606;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 606;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 420;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 675;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 675;\n    t.equal = 675;\n    t.greater = 675;\n    t.question = 500;\n    t.at = 920;\n    t.A = 611;\n    t.B = 611;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 611;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 444;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 667;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 611;\n    t.S = 500;\n    t.T = 556;\n    t.U = 722;\n    t.V = 611;\n    t.W = 833;\n    t.X = 611;\n    t.Y = 556;\n    t.Z = 556;\n    t.bracketleft = 389;\n    t.backslash = 278;\n    t.bracketright = 389;\n    t.asciicircum = 422;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 278;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 444;\n    t.l = 278;\n    t.m = 722;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 444;\n    t.w = 667;\n    t.x = 444;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 400;\n    t.bar = 275;\n    t.braceright = 400;\n    t.asciitilde = 541;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 214;\n    t.quotedblleft = 556;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 523;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 556;\n    t.quotedblright = 556;\n    t.guillemotright = 500;\n    t.ellipsis = 889;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 889;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 556;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 667;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 556;\n    t.divide = 675;\n    t.Yacute = 556;\n    t.Acircumflex = 611;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 667;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 556;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 611;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 500;\n    t.Amacron = 611;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 556;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 611;\n    t.Sacute = 500;\n    t.dcaron = 544;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 611;\n    t.Abreve = 611;\n    t.multiply = 675;\n    t.uacute = 500;\n    t.Tcaron = 556;\n    t.partialdiff = 476;\n    t.ydieresis = 444;\n    t.Nacute = 667;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 667;\n    t.Iacute = 333;\n    t.plusminus = 675;\n    t.brokenbar = 275;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 556;\n    t.Zcaron = 556;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 300;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 611;\n    t.Adieresis = 611;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 500;\n    t.lcaron = 300;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 500;\n    t.Scommaaccent = 500;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 667;\n    t.otilde = 500;\n    t.Rcommaaccent = 611;\n    t.Lcommaaccent = 556;\n    t.Atilde = 611;\n    t.Aogonek = 611;\n    t.Aring = 611;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 444;\n    t.minus = 675;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 675;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t.ZapfDingbats = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.a1 = 974;\n    t.a2 = 961;\n    t.a202 = 974;\n    t.a3 = 980;\n    t.a4 = 719;\n    t.a5 = 789;\n    t.a119 = 790;\n    t.a118 = 791;\n    t.a117 = 690;\n    t.a11 = 960;\n    t.a12 = 939;\n    t.a13 = 549;\n    t.a14 = 855;\n    t.a15 = 911;\n    t.a16 = 933;\n    t.a105 = 911;\n    t.a17 = 945;\n    t.a18 = 974;\n    t.a19 = 755;\n    t.a20 = 846;\n    t.a21 = 762;\n    t.a22 = 761;\n    t.a23 = 571;\n    t.a24 = 677;\n    t.a25 = 763;\n    t.a26 = 760;\n    t.a27 = 759;\n    t.a28 = 754;\n    t.a6 = 494;\n    t.a7 = 552;\n    t.a8 = 537;\n    t.a9 = 577;\n    t.a10 = 692;\n    t.a29 = 786;\n    t.a30 = 788;\n    t.a31 = 788;\n    t.a32 = 790;\n    t.a33 = 793;\n    t.a34 = 794;\n    t.a35 = 816;\n    t.a36 = 823;\n    t.a37 = 789;\n    t.a38 = 841;\n    t.a39 = 823;\n    t.a40 = 833;\n    t.a41 = 816;\n    t.a42 = 831;\n    t.a43 = 923;\n    t.a44 = 744;\n    t.a45 = 723;\n    t.a46 = 749;\n    t.a47 = 790;\n    t.a48 = 792;\n    t.a49 = 695;\n    t.a50 = 776;\n    t.a51 = 768;\n    t.a52 = 792;\n    t.a53 = 759;\n    t.a54 = 707;\n    t.a55 = 708;\n    t.a56 = 682;\n    t.a57 = 701;\n    t.a58 = 826;\n    t.a59 = 815;\n    t.a60 = 789;\n    t.a61 = 789;\n    t.a62 = 707;\n    t.a63 = 687;\n    t.a64 = 696;\n    t.a65 = 689;\n    t.a66 = 786;\n    t.a67 = 787;\n    t.a68 = 713;\n    t.a69 = 791;\n    t.a70 = 785;\n    t.a71 = 791;\n    t.a72 = 873;\n    t.a73 = 761;\n    t.a74 = 762;\n    t.a203 = 762;\n    t.a75 = 759;\n    t.a204 = 759;\n    t.a76 = 892;\n    t.a77 = 892;\n    t.a78 = 788;\n    t.a79 = 784;\n    t.a81 = 438;\n    t.a82 = 138;\n    t.a83 = 277;\n    t.a84 = 415;\n    t.a97 = 392;\n    t.a98 = 392;\n    t.a99 = 668;\n    t.a100 = 668;\n    t.a89 = 390;\n    t.a90 = 390;\n    t.a93 = 317;\n    t.a94 = 317;\n    t.a91 = 276;\n    t.a92 = 276;\n    t.a205 = 509;\n    t.a85 = 509;\n    t.a206 = 410;\n    t.a86 = 410;\n    t.a87 = 234;\n    t.a88 = 234;\n    t.a95 = 334;\n    t.a96 = 334;\n    t.a101 = 732;\n    t.a102 = 544;\n    t.a103 = 544;\n    t.a104 = 910;\n    t.a106 = 667;\n    t.a107 = 760;\n    t.a108 = 760;\n    t.a112 = 776;\n    t.a111 = 595;\n    t.a110 = 694;\n    t.a109 = 626;\n    t.a120 = 788;\n    t.a121 = 788;\n    t.a122 = 788;\n    t.a123 = 788;\n    t.a124 = 788;\n    t.a125 = 788;\n    t.a126 = 788;\n    t.a127 = 788;\n    t.a128 = 788;\n    t.a129 = 788;\n    t.a130 = 788;\n    t.a131 = 788;\n    t.a132 = 788;\n    t.a133 = 788;\n    t.a134 = 788;\n    t.a135 = 788;\n    t.a136 = 788;\n    t.a137 = 788;\n    t.a138 = 788;\n    t.a139 = 788;\n    t.a140 = 788;\n    t.a141 = 788;\n    t.a142 = 788;\n    t.a143 = 788;\n    t.a144 = 788;\n    t.a145 = 788;\n    t.a146 = 788;\n    t.a147 = 788;\n    t.a148 = 788;\n    t.a149 = 788;\n    t.a150 = 788;\n    t.a151 = 788;\n    t.a152 = 788;\n    t.a153 = 788;\n    t.a154 = 788;\n    t.a155 = 788;\n    t.a156 = 788;\n    t.a157 = 788;\n    t.a158 = 788;\n    t.a159 = 788;\n    t.a160 = 894;\n    t.a161 = 838;\n    t.a163 = 1016;\n    t.a164 = 458;\n    t.a196 = 748;\n    t.a165 = 924;\n    t.a192 = 748;\n    t.a166 = 918;\n    t.a167 = 927;\n    t.a168 = 928;\n    t.a169 = 928;\n    t.a170 = 834;\n    t.a171 = 873;\n    t.a172 = 828;\n    t.a173 = 924;\n    t.a162 = 924;\n    t.a174 = 917;\n    t.a175 = 930;\n    t.a176 = 931;\n    t.a177 = 463;\n    t.a178 = 883;\n    t.a179 = 836;\n    t.a193 = 836;\n    t.a180 = 867;\n    t.a199 = 867;\n    t.a181 = 696;\n    t.a200 = 696;\n    t.a182 = 874;\n    t.a201 = 874;\n    t.a183 = 760;\n    t.a184 = 946;\n    t.a197 = 771;\n    t.a185 = 865;\n    t.a194 = 771;\n    t.a198 = 888;\n    t.a186 = 967;\n    t.a195 = 888;\n    t.a187 = 831;\n    t.a188 = 873;\n    t.a189 = 927;\n    t.a190 = 970;\n    t.a191 = 918;\n  });\n});\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n  t.Courier = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: -426\n  };\n  t[\"Courier-Bold\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 439\n  };\n  t[\"Courier-Oblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426\n  };\n  t[\"Courier-BoldOblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426\n  };\n  t.Helvetica = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523\n  };\n  t[\"Helvetica-Bold\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532\n  };\n  t[\"Helvetica-Oblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523\n  };\n  t[\"Helvetica-BoldOblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532\n  };\n  t[\"Times-Roman\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 662,\n    xHeight: 450\n  };\n  t[\"Times-Bold\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 676,\n    xHeight: 461\n  };\n  t[\"Times-Italic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 653,\n    xHeight: 441\n  };\n  t[\"Times-BoldItalic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 669,\n    xHeight: 462\n  };\n  t.Symbol = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN\n  };\n  t.ZapfDingbats = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN\n  };\n});\n\n;// ./src/core/opentype_file_builder.js\n\n\n\n\n\n\n\n\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\nclass OpenTypeFileBuilder {\n  #tables = new Map();\n  constructor(sfnt) {\n    this.sfnt = sfnt;\n  }\n  static getSearchParams(entriesCount, entrySize) {\n    let maxPower2 = 1,\n      log2 = 0;\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n    const searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange\n    };\n  }\n  toArray() {\n    let sfnt = this.sfnt;\n    const tables = this.#tables;\n    const tablesNames = [...tables.keys()].sort();\n    const numTables = tablesNames.length;\n    let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n    const tableOffsets = [offset];\n    for (let i = 0; i < numTables; i++) {\n      const table = tables.get(tablesNames[i]);\n      const paddedLength = (table.length + 3 & ~3) >>> 0;\n      offset += paddedLength;\n      tableOffsets.push(offset);\n    }\n    const file = new Uint8Array(offset),\n      view = new DataView(file.buffer);\n    for (let i = 0; i < numTables; i++) {\n      const table = tables.get(tablesNames[i]);\n      file.set(table, tableOffsets[i]);\n    }\n    if (sfnt === \"true\") {\n      sfnt = \"\\x00\\x01\\x00\\x00\";\n    }\n    file.set(stringToBytes(sfnt), 0);\n    view.setInt16(4, numTables);\n    const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n    view.setInt16(6, searchParams.range);\n    view.setInt16(8, searchParams.entry);\n    view.setInt16(10, searchParams.rangeShift);\n    offset = OTF_HEADER_SIZE;\n    for (let i = 0; i < numTables; i++) {\n      const tableName = tablesNames[i];\n      file.set(stringToBytes(tableName), offset);\n      let checksum = 0;\n      for (let j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n        const quad = view.getUint32(j);\n        checksum = checksum + quad >>> 0;\n      }\n      view.setInt32(offset + 4, checksum);\n      view.setInt32(offset + 8, tableOffsets[i]);\n      view.setInt32(offset + 12, tables.get(tableName).length);\n      offset += OTF_TABLE_ENTRY_SIZE;\n    }\n    this.#tables.clear();\n    return file;\n  }\n  addTable(tag, data) {\n    if (this.#tables.has(tag)) {\n      throw new Error(`Table ${tag} already exists`);\n    }\n    this.#tables.set(tag, data);\n  }\n}\n\n;// ./src/core/type1_parser.js\n\n\n\n\n\n\n\n\n\n\n\n\nconst HINTING_ENABLED = false;\nconst COMMAND_MAP = {\n  hstem: [1],\n  vstem: [3],\n  vmoveto: [4],\n  rlineto: [5],\n  hlineto: [6],\n  vlineto: [7],\n  rrcurveto: [8],\n  callsubr: [10],\n  flex: [12, 35],\n  drop: [12, 18],\n  endchar: [14],\n  rmoveto: [21],\n  hmoveto: [22],\n  vhcurveto: [30],\n  hvcurveto: [31]\n};\nclass Type1CharString {\n  width = 0;\n  lsb = 0;\n  flexing = false;\n  output = [];\n  stack = [];\n  convert(encoded, subrs, seacAnalysisEnabled) {\n    const count = encoded.length;\n    let error = false;\n    let wx, sbx, subrNumber;\n    for (let i = 0; i < count; i++) {\n      let value = encoded[i];\n      if (value < 32) {\n        if (value === 12) {\n          value = (value << 8) + encoded[++i];\n        }\n        switch (value) {\n          case 1:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n          case 3:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n          case 4:\n            if (this.flexing) {\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n              const dy = this.stack.pop();\n              this.stack.push(0, dy);\n              break;\n            }\n            error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n            break;\n          case 5:\n            error = this.executeCommand(2, COMMAND_MAP.rlineto);\n            break;\n          case 6:\n            error = this.executeCommand(1, COMMAND_MAP.hlineto);\n            break;\n          case 7:\n            error = this.executeCommand(1, COMMAND_MAP.vlineto);\n            break;\n          case 8:\n            error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n            break;\n          case 9:\n            this.stack = [];\n            break;\n          case 10:\n            if (this.stack.length < 1) {\n              error = true;\n              break;\n            }\n            subrNumber = this.stack.pop();\n            if (!subrs[subrNumber]) {\n              error = true;\n              break;\n            }\n            error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n            break;\n          case 11:\n            return error;\n          case 13:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n            wx = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx);\n            error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n            break;\n          case 14:\n            this.output.push(COMMAND_MAP.endchar[0]);\n            break;\n          case 21:\n            if (this.flexing) {\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n            break;\n          case 22:\n            if (this.flexing) {\n              this.stack.push(0);\n              break;\n            }\n            error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n            break;\n          case 30:\n            error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n            break;\n          case 31:\n            error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n            break;\n          case (12 << 8) + 0:\n            this.stack = [];\n            break;\n          case (12 << 8) + 1:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n          case (12 << 8) + 2:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n          case (12 << 8) + 6:\n            if (seacAnalysisEnabled) {\n              const asb = this.stack.at(-5);\n              this.seac = this.stack.splice(-4, 4);\n              this.seac[0] += this.lsb - asb;\n              error = this.executeCommand(0, COMMAND_MAP.endchar);\n            } else {\n              error = this.executeCommand(4, COMMAND_MAP.endchar);\n            }\n            break;\n          case (12 << 8) + 7:\n            if (this.stack.length < 4) {\n              error = true;\n              break;\n            }\n            this.stack.pop();\n            wx = this.stack.pop();\n            const sby = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx, sby);\n            error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n            break;\n          case (12 << 8) + 12:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n            const num2 = this.stack.pop();\n            const num1 = this.stack.pop();\n            this.stack.push(num1 / num2);\n            break;\n          case (12 << 8) + 16:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n            subrNumber = this.stack.pop();\n            const numArgs = this.stack.pop();\n            if (subrNumber === 0 && numArgs === 3) {\n              const flexArgs = this.stack.splice(-17, 17);\n              this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n              error = this.executeCommand(13, COMMAND_MAP.flex, true);\n              this.flexing = false;\n              this.stack.push(flexArgs[15], flexArgs[16]);\n            } else if (subrNumber === 1 && numArgs === 0) {\n              this.flexing = true;\n            }\n            break;\n          case (12 << 8) + 17:\n            break;\n          case (12 << 8) + 33:\n            this.stack = [];\n            break;\n          default:\n            warn('Unknown type 1 charstring command of \"' + value + '\"');\n            break;\n        }\n        if (error) {\n          break;\n        }\n        continue;\n      } else if (value <= 246) {\n        value -= 139;\n      } else if (value <= 250) {\n        value = (value - 247) * 256 + encoded[++i] + 108;\n      } else if (value <= 254) {\n        value = -((value - 251) * 256) - encoded[++i] - 108;\n      } else {\n        value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n      }\n      this.stack.push(value);\n    }\n    return error;\n  }\n  executeCommand(howManyArgs, command, keepStack) {\n    const stackLength = this.stack.length;\n    if (howManyArgs > stackLength) {\n      return true;\n    }\n    const start = stackLength - howManyArgs;\n    for (let i = start; i < stackLength; i++) {\n      let value = this.stack[i];\n      if (Number.isInteger(value)) {\n        this.output.push(28, value >> 8 & 0xff, value & 0xff);\n      } else {\n        value = 65536 * value | 0;\n        this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n      }\n    }\n    this.output.push(...command);\n    if (keepStack) {\n      this.stack.splice(start, howManyArgs);\n    } else {\n      this.stack.length = 0;\n    }\n    return false;\n  }\n}\nconst EEXEC_ENCRYPT_KEY = 55665;\nconst CHAR_STRS_ENCRYPT_KEY = 4330;\nfunction isHexDigit(code) {\n  return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n}\nfunction decrypt(data, key, discardNumber) {\n  if (discardNumber >= data.length) {\n    return new Uint8Array(0);\n  }\n  const c1 = 52845,\n    c2 = 22719;\n  let r = key | 0,\n    i,\n    j;\n  for (i = 0; i < discardNumber; i++) {\n    r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n  }\n  const count = data.length - discardNumber;\n  const decrypted = new Uint8Array(count);\n  for (i = discardNumber, j = 0; j < count; i++, j++) {\n    const value = data[i];\n    decrypted[j] = value ^ r >> 8;\n    r = (value + r) * c1 + c2 & (1 << 16) - 1;\n  }\n  return decrypted;\n}\nfunction decryptAscii(data, key, discardNumber) {\n  const c1 = 52845,\n    c2 = 22719;\n  let r = key | 0;\n  const count = data.length,\n    maybeLength = count >>> 1;\n  const decrypted = new Uint8Array(maybeLength);\n  let i, j;\n  for (i = 0, j = 0; i < count; i++) {\n    const digit1 = data[i];\n    if (!isHexDigit(digit1)) {\n      continue;\n    }\n    i++;\n    let digit2;\n    while (i < count && !isHexDigit(digit2 = data[i])) {\n      i++;\n    }\n    if (i < count) {\n      const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n      decrypted[j++] = value ^ r >> 8;\n      r = (value + r) * c1 + c2 & (1 << 16) - 1;\n    }\n  }\n  return decrypted.slice(discardNumber, j);\n}\nfunction isSpecial(c) {\n  return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29;\n}\nclass Type1Parser {\n  constructor(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      const data = stream.getBytes();\n      const isBinary = !((isHexDigit(data[0]) || isWhiteSpace(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));\n      stream = new Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n    }\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n    this.stream = stream;\n    this.nextChar();\n  }\n  readNumberArray() {\n    this.getToken();\n    const array = [];\n    while (true) {\n      const token = this.getToken();\n      if (token === null || token === \"]\" || token === \"}\") {\n        break;\n      }\n      array.push(parseFloat(token || 0));\n    }\n    return array;\n  }\n  readNumber() {\n    const token = this.getToken();\n    return parseFloat(token || 0);\n  }\n  readInt() {\n    const token = this.getToken();\n    return parseInt(token || 0, 10) | 0;\n  }\n  readBoolean() {\n    const token = this.getToken();\n    return token === \"true\" ? 1 : 0;\n  }\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n  prevChar() {\n    this.stream.skip(-2);\n    return this.currentChar = this.stream.getByte();\n  }\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n    while (true) {\n      if (ch === -1) {\n        return null;\n      }\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (!isWhiteSpace(ch)) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n    if (isSpecial(ch)) {\n      this.nextChar();\n      return String.fromCharCode(ch);\n    }\n    let token = \"\";\n    do {\n      token += String.fromCharCode(ch);\n      ch = this.nextChar();\n    } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n    return token;\n  }\n  readCharStrings(bytes, lenIV) {\n    if (lenIV === -1) {\n      return bytes;\n    }\n    return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n  }\n  extractFontProgram(properties) {\n    const stream = this.stream;\n    const subrs = [],\n      charstrings = [];\n    const privateData = new Map([[\"lenIV\", 4]]);\n    const program = {\n      subrs: [],\n      charstrings: [],\n      properties: {\n        privateData\n      }\n    };\n    let token, length, data, lenIV;\n    let subrsParsed = false;\n    let charStringsParsed = false;\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n      token = this.getToken();\n      switch (token) {\n        case \"CharStrings\":\n          if (charStringsParsed) {\n            break;\n          }\n          charStringsParsed = true;\n          this.getToken();\n          this.getToken();\n          this.getToken();\n          this.getToken();\n          while (true) {\n            token = this.getToken();\n            if (token === null || token === \"end\") {\n              break;\n            }\n            if (token !== \"/\") {\n              continue;\n            }\n            const glyph = this.getToken();\n            length = this.readInt();\n            this.getToken();\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = privateData.get(\"lenIV\");\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken();\n            if (token === \"noaccess\") {\n              this.getToken();\n            } else if (token === \"/\") {\n              this.prevChar();\n            }\n            charstrings.push({\n              glyph,\n              encoded\n            });\n          }\n          break;\n        case \"Subrs\":\n          if (subrsParsed) {\n            break;\n          }\n          subrsParsed = true;\n          this.readInt();\n          this.getToken();\n          while (this.getToken() === \"dup\") {\n            const index = this.readInt();\n            length = this.readInt();\n            this.getToken();\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = privateData.get(\"lenIV\");\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken();\n            if (token === \"noaccess\") {\n              this.getToken();\n            }\n            subrs[index] = encoded;\n          }\n          break;\n        case \"BlueValues\":\n        case \"OtherBlues\":\n        case \"FamilyBlues\":\n        case \"FamilyOtherBlues\":\n          const blueArray = this.readNumberArray();\n          if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n            privateData.set(token, blueArray);\n          }\n          break;\n        case \"StemSnapH\":\n        case \"StemSnapV\":\n          privateData.set(token, this.readNumberArray());\n          break;\n        case \"StdHW\":\n        case \"StdVW\":\n          privateData.set(token, this.readNumberArray()[0]);\n          break;\n        case \"BlueShift\":\n        case \"lenIV\":\n        case \"BlueFuzz\":\n        case \"BlueScale\":\n        case \"LanguageGroup\":\n          privateData.set(token, this.readNumber());\n          break;\n        case \"ExpansionFactor\":\n          privateData.set(token, this.readNumber() || 0.06);\n          break;\n        case \"ForceBold\":\n          privateData.set(token, this.readBoolean());\n          break;\n      }\n    }\n    for (const {\n      encoded,\n      glyph\n    } of charstrings) {\n      const charString = new Type1CharString();\n      const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n      const output = !error ? charString.output : [14];\n      const charStringObject = {\n        glyphName: glyph,\n        charstring: output,\n        width: charString.width,\n        lsb: charString.lsb,\n        seac: charString.seac\n      };\n      if (glyph === \".notdef\") {\n        program.charstrings.unshift(charStringObject);\n      } else {\n        program.charstrings.push(charStringObject);\n      }\n      if (properties.builtInEncoding) {\n        const index = properties.builtInEncoding.indexOf(glyph);\n        if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) {\n          properties.widths[index] = charString.width;\n        }\n      }\n    }\n    return program;\n  }\n  extractCidKeyedFontProgram(properties) {\n    const stream = this.stream;\n    const privateData = new Map([[\"lenIV\", 4]]);\n    const program = {\n      subrs: [],\n      charstrings: [],\n      properties: {\n        privateData\n      }\n    };\n    let cidCount = 0;\n    let cidMapOffset = -1;\n    let fdBytes = 1;\n    let gdBytes = 0;\n    let subrMapOffset = -1;\n    let sdBytes = 0;\n    let subrCount = 0;\n    let startDataLength = 0;\n    let startDataIsHex = false;\n    let foundStartData = false;\n    const previousTokens = [];\n    function rememberToken(value) {\n      previousTokens.push(value);\n      if (previousTokens.length > 4) {\n        previousTokens.shift();\n      }\n    }\n    let token;\n    while ((token = this.getToken()) !== null) {\n      if (token === \"StartData\") {\n        const dataType = previousTokens.at(-3);\n        const dataLength = previousTokens.at(-1);\n        if (previousTokens.at(-4) !== \"(\" || previousTokens.at(-2) !== \")\" || dataType !== \"Binary\" && dataType !== \"Hex\" || !/^\\d+$/.test(dataLength)) {\n          return null;\n        }\n        startDataLength = parseInt(dataLength, 10);\n        if (startDataLength <= 0) {\n          return null;\n        }\n        startDataIsHex = dataType === \"Hex\";\n        foundStartData = true;\n        break;\n      }\n      rememberToken(token);\n      if (token !== \"/\") {\n        continue;\n      }\n      token = this.getToken();\n      rememberToken(token);\n      switch (token) {\n        case \"FontMatrix\":\n          properties.fontMatrix = this.readNumberArray();\n          break;\n        case \"FontBBox\":\n          const fontBBox = this.readNumberArray();\n          properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n          properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n          properties.ascentScaled = true;\n          break;\n        case \"CIDCount\":\n          cidCount = this.readInt();\n          break;\n        case \"CIDMapOffset\":\n          cidMapOffset = this.readInt();\n          break;\n        case \"FDBytes\":\n          fdBytes = this.readInt();\n          break;\n        case \"GDBytes\":\n          gdBytes = this.readInt();\n          break;\n        case \"SubrMapOffset\":\n          subrMapOffset = this.readInt();\n          break;\n        case \"SDBytes\":\n          sdBytes = this.readInt();\n          break;\n        case \"SubrCount\":\n          subrCount = this.readInt();\n          break;\n        case \"BlueValues\":\n        case \"OtherBlues\":\n        case \"FamilyBlues\":\n        case \"FamilyOtherBlues\":\n          this.readNumberArray();\n          break;\n        case \"StemSnapH\":\n        case \"StemSnapV\":\n          privateData.set(token, this.readNumberArray());\n          break;\n        case \"StdHW\":\n        case \"StdVW\":\n          privateData.set(token, this.readNumberArray()[0]);\n          break;\n        case \"BlueShift\":\n        case \"lenIV\":\n        case \"BlueFuzz\":\n        case \"BlueScale\":\n        case \"LanguageGroup\":\n          privateData.set(token, this.readNumber());\n          break;\n        case \"ExpansionFactor\":\n          privateData.set(token, this.readNumber() || 0.06);\n          break;\n        case \"ForceBold\":\n          privateData.set(token, this.readBoolean());\n          break;\n      }\n    }\n    if (!foundStartData || cidCount <= 0 || cidMapOffset < 0 || fdBytes < 0 || fdBytes > 4 || gdBytes < 1 || gdBytes > 4) {\n      return null;\n    }\n    const maxLength = stream.end - stream.pos;\n    if (startDataLength > maxLength) {\n      if (!startDataIsHex) {\n        startDataLength = maxLength;\n      } else if (startDataLength > 2 * maxLength) {\n        return null;\n      }\n    }\n    let binary = stream.getBytes(startDataIsHex ? undefined : startDataLength);\n    if (startDataIsHex) {\n      const decoded = new Uint8Array(startDataLength);\n      let digit1 = -1,\n        j = 0;\n      for (let i = 0, ii = binary.length; i < ii && j < startDataLength; i++) {\n        const digit = binary[i];\n        if (!isHexDigit(digit)) {\n          continue;\n        }\n        if (digit1 < 0) {\n          digit1 = digit;\n          continue;\n        }\n        decoded[j++] = parseInt(String.fromCharCode(digit1, digit), 16);\n        digit1 = -1;\n      }\n      if (j !== startDataLength) {\n        return null;\n      }\n      binary = decoded;\n    }\n    const lenIV = privateData.get(\"lenIV\");\n    const cidEntrySize = fdBytes + gdBytes;\n    const subrs = [];\n    function readUint(offset, byteCount) {\n      let n = 0;\n      for (let i = 0; i < byteCount; i++) {\n        n = n << 8 | binary[offset + i];\n      }\n      return n >>> 0;\n    }\n    if (cidMapOffset + (cidCount + 1) * cidEntrySize > binary.length || subrCount > 0 && (subrMapOffset < 0 || sdBytes < 1 || sdBytes > 4 || subrMapOffset + (subrCount + 1) * sdBytes > binary.length)) {\n      return null;\n    }\n    if (fdBytes > 0) {\n      for (let cid = 0; cid < cidCount; cid++) {\n        if (readUint(cidMapOffset + cid * cidEntrySize, fdBytes) !== 0) {\n          return null;\n        }\n      }\n    }\n    if (subrCount > 0) {\n      const subrOffsets = new Array(subrCount + 1);\n      for (let i = 0; i <= subrCount; i++) {\n        subrOffsets[i] = readUint(subrMapOffset + i * sdBytes, sdBytes);\n      }\n      for (let i = 0; i < subrCount; i++) {\n        const start = subrOffsets[i];\n        const end = subrOffsets[i + 1];\n        if (end > binary.length || end < start) {\n          subrs[i] = new Uint8Array(0);\n          continue;\n        }\n        subrs[i] = this.readCharStrings(binary.subarray(start, end), lenIV);\n      }\n    }\n    const charstrings = [];\n    let prevOffset = readUint(cidMapOffset + fdBytes, gdBytes);\n    for (let cid = 0; cid < cidCount; cid++) {\n      const nextOffset = readUint(cidMapOffset + (cid + 1) * cidEntrySize + fdBytes, gdBytes);\n      const glyphName = cid === 0 ? \".notdef\" : `cid${cid}`;\n      if (nextOffset > prevOffset && nextOffset <= binary.length) {\n        const encoded = this.readCharStrings(binary.subarray(prevOffset, nextOffset), lenIV);\n        const charString = new Type1CharString();\n        const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n        charstrings.push({\n          glyphName,\n          charstring: error ? [14] : charString.output,\n          width: charString.width,\n          lsb: charString.lsb,\n          seac: charString.seac\n        });\n      } else {\n        const notDef = charstrings[0];\n        charstrings.push({\n          glyphName,\n          charstring: notDef?.charstring.slice() || [0x8b, 0x0e],\n          width: notDef?.width || 0,\n          lsb: notDef?.lsb || 0\n        });\n      }\n      prevOffset = nextOffset;\n    }\n    program.subrs = subrs;\n    program.charstrings = charstrings;\n    return program;\n  }\n  extractFontHeader(properties) {\n    let token;\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n      token = this.getToken();\n      switch (token) {\n        case \"FontMatrix\":\n          const matrix = this.readNumberArray();\n          properties.fontMatrix = matrix;\n          break;\n        case \"Encoding\":\n          const encodingArg = this.getToken();\n          let encoding;\n          if (!/^\\d+$/.test(encodingArg)) {\n            encoding = getEncoding(encodingArg);\n          } else {\n            encoding = [];\n            const size = parseInt(encodingArg, 10) | 0;\n            this.getToken();\n            for (let j = 0; j < size; j++) {\n              token = this.getToken();\n              while (token !== \"dup\" && token !== \"def\") {\n                token = this.getToken();\n                if (token === null) {\n                  return;\n                }\n              }\n              if (token === \"def\") {\n                break;\n              }\n              const index = this.readInt();\n              this.getToken();\n              const glyph = this.getToken();\n              encoding[index] = glyph;\n              this.getToken();\n            }\n          }\n          properties.builtInEncoding = encoding;\n          break;\n        case \"FontBBox\":\n          const fontBBox = this.readNumberArray();\n          properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n          properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n          properties.ascentScaled = true;\n          break;\n      }\n    }\n  }\n}\n\n;// ./src/core/type1_font.js\n\n\n\n\n\n\n\n\nfunction findBlock(streamBytes, signature, startIndex) {\n  const streamBytesLength = streamBytes.length;\n  const signatureLength = signature.length;\n  const scanLength = streamBytesLength - signatureLength;\n  let i = startIndex,\n    found = false;\n  while (i < scanLength) {\n    let j = 0;\n    while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n      j++;\n    }\n    if (j >= signatureLength) {\n      i += j;\n      while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n        i++;\n      }\n      found = true;\n      break;\n    }\n    i++;\n  }\n  return {\n    found,\n    length: i\n  };\n}\nfunction getHeaderBlock(stream, suggestedLength) {\n  const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n  const streamStartPos = stream.pos;\n  let headerBytes, headerBytesLength, block;\n  try {\n    headerBytes = stream.getBytes(suggestedLength);\n    headerBytesLength = headerBytes.length;\n  } catch {}\n  if (headerBytesLength === suggestedLength) {\n    block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n    if (block.found && block.length === suggestedLength) {\n      return {\n        stream: new Stream(headerBytes),\n        length: suggestedLength\n      };\n    }\n  }\n  warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n  stream.pos = streamStartPos;\n  const SCAN_BLOCK_LENGTH = 2048;\n  let actualLength;\n  while (true) {\n    const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n    block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n    if (block.length === 0) {\n      break;\n    }\n    stream.pos += block.length;\n    if (block.found) {\n      actualLength = stream.pos - streamStartPos;\n      break;\n    }\n  }\n  stream.pos = streamStartPos;\n  if (actualLength) {\n    return {\n      stream: new Stream(stream.getBytes(actualLength)),\n      length: actualLength\n    };\n  }\n  warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n  return {\n    stream: new Stream(stream.getBytes(suggestedLength)),\n    length: suggestedLength\n  };\n}\nfunction getEexecBlock(stream, suggestedLength) {\n  const eexecBytes = stream.getBytes();\n  if (eexecBytes.length === 0) {\n    throw new FormatError(\"getEexecBlock - no font program found.\");\n  }\n  return {\n    stream: new Stream(eexecBytes),\n    length: eexecBytes.length\n  };\n}\nfunction isCidKeyedType1File(file) {\n  const sample = file.peekBytes(2048);\n  if (sample.length < 2 || sample[0] !== 0x25 || sample[1] !== 0x21) {\n    return false;\n  }\n  const text = bytesToString(sample);\n  return text.includes(\"Resource-CIDFont\") || /\\/CIDFontType\\s+0\\b/.test(text);\n}\nclass Type1Font {\n  #rawFileLength;\n  constructor(name, file, properties) {\n    let data;\n    if (properties.composite && isCidKeyedType1File(file)) {\n      data = this.#parseCidKeyedType1(file, properties);\n    }\n    data ||= this.#parseType1(file, properties);\n    for (const key in data.properties) {\n      properties[key] = data.properties[key];\n    }\n    const charstrings = data.charstrings;\n    const type2Charstrings = this.getType2Charstrings(charstrings);\n    const subrs = this.getType2Subrs(data.subrs);\n    this.charstrings = charstrings;\n    this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n  #parseType1(file, properties) {\n    const PFB_HEADER_SIZE = 6;\n    let headerBlockLength = properties.length1;\n    let eexecBlockLength = properties.length2;\n    let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n    const headerBlock = getHeaderBlock(file, headerBlockLength);\n    const headerBlockParser = new Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n    headerBlockParser.extractFontHeader(properties);\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n    const eexecBlock = getEexecBlock(file, eexecBlockLength);\n    const eexecBlockParser = new Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n    const data = eexecBlockParser.extractFontProgram(properties);\n    this.#rawFileLength = headerBlock.length + eexecBlock.length;\n    return data;\n  }\n  #parseCidKeyedType1(file, properties) {\n    const fileStart = file.pos;\n    const length = file.end - fileStart;\n    const parser = new Type1Parser(file, false, SEAC_ANALYSIS_ENABLED);\n    const data = parser.extractCidKeyedFontProgram(properties);\n    if (!data) {\n      file.pos = fileStart;\n      warn(\"Type1Font: unable to parse CID-keyed Type 1 font.\");\n      return null;\n    }\n    this.#rawFileLength = length;\n    return data;\n  }\n  get numGlyphs() {\n    return this.charstrings.length + 1;\n  }\n  getCharset() {\n    const charset = [\".notdef\"];\n    for (const {\n      glyphName\n    } of this.charstrings) {\n      charset.push(glyphName);\n    }\n    return charset;\n  }\n  getGlyphMapping(properties) {\n    const charstrings = this.charstrings;\n    if (properties.composite) {\n      const charCodeToGlyphId = Object.create(null);\n      for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {\n        const charCode = properties.cMap.charCodeOf(glyphId);\n        charCodeToGlyphId[charCode] = glyphId + 1;\n      }\n      return charCodeToGlyphId;\n    }\n    const glyphNames = [\".notdef\"];\n    let builtInEncoding, glyphId;\n    for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n      glyphNames.push(charstrings[glyphId].glyphName);\n    }\n    const encoding = properties.builtInEncoding;\n    if (encoding) {\n      builtInEncoding = Object.create(null);\n      for (const charCode in encoding) {\n        glyphId = glyphNames.indexOf(encoding[charCode]);\n        if (glyphId >= 0) {\n          builtInEncoding[charCode] = glyphId;\n        }\n      }\n    }\n    return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n  }\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.numGlyphs) {\n      return false;\n    }\n    if (id === 0) {\n      return true;\n    }\n    const glyph = this.charstrings[id - 1];\n    return glyph.charstring.length > 0;\n  }\n  getSeacs(charstrings) {\n    const seacMap = [];\n    for (let i = 0, ii = charstrings.length; i < ii; i++) {\n      const charstring = charstrings[i];\n      if (charstring.seac) {\n        seacMap[i + 1] = charstring.seac;\n      }\n    }\n    return seacMap;\n  }\n  getType2Charstrings(type1Charstrings) {\n    const type2Charstrings = [];\n    for (const type1Charstring of type1Charstrings) {\n      type2Charstrings.push(type1Charstring.charstring);\n    }\n    return type2Charstrings;\n  }\n  getType2Subrs(type1Subrs) {\n    let bias = 0;\n    const count = type1Subrs.length;\n    if (count < 1133) {\n      bias = 107;\n    } else if (count < 33769) {\n      bias = 1131;\n    } else {\n      bias = 32768;\n    }\n    const type2Subrs = [];\n    let i;\n    for (i = 0; i < bias; i++) {\n      type2Subrs.push([0x0b]);\n    }\n    for (i = 0; i < count; i++) {\n      type2Subrs.push(type1Subrs[i]);\n    }\n    return type2Subrs;\n  }\n  wrap(name, glyphs, charstrings, subrs, properties) {\n    const cff = new CFF(this.#rawFileLength);\n    cff.header = new CFFHeader(1, 0, 4, 4);\n    cff.names = [name];\n    const topDict = new CFFTopDict();\n    topDict.setByName(\"version\", 391);\n    topDict.setByName(\"Notice\", 392);\n    topDict.setByName(\"FullName\", 393);\n    topDict.setByName(\"FamilyName\", 394);\n    topDict.setByName(\"Weight\", 395);\n    topDict.setByName(\"Encoding\", null);\n    topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n    topDict.setByName(\"FontBBox\", properties.bbox);\n    topDict.setByName(\"charset\", null);\n    topDict.setByName(\"CharStrings\", null);\n    topDict.setByName(\"Private\", null);\n    cff.topDict = topDict;\n    const strings = new CFFStrings();\n    strings.add(\"Version 0.11\");\n    strings.add(\"See original notice\");\n    strings.add(name);\n    strings.add(name);\n    strings.add(\"Medium\");\n    cff.strings = strings;\n    cff.globalSubrIndex = new CFFIndex();\n    const count = glyphs.length;\n    const charsetArray = [\".notdef\"];\n    for (let i = 0; i < count; i++) {\n      const {\n        glyphName\n      } = charstrings[i];\n      const index = CFFStandardStrings.indexOf(glyphName);\n      if (index === -1) {\n        strings.add(glyphName);\n      }\n      charsetArray.push(glyphName);\n    }\n    cff.charset = new CFFCharset(false, 0, charsetArray);\n    const charStringsIndex = new CFFIndex();\n    charStringsIndex.add([0x8b, 0x0e]);\n    for (let i = 0; i < count; i++) {\n      charStringsIndex.add(glyphs[i]);\n    }\n    cff.charStrings = charStringsIndex;\n    const privateDict = new CFFPrivateDict();\n    privateDict.setByName(\"Subrs\", null);\n    const fields = [\"BlueValues\", \"OtherBlues\", \"FamilyBlues\", \"FamilyOtherBlues\", \"StemSnapH\", \"StemSnapV\", \"BlueShift\", \"BlueFuzz\", \"BlueScale\", \"LanguageGroup\", \"ExpansionFactor\", \"ForceBold\", \"StdHW\", \"StdVW\"];\n    for (const field of fields) {\n      if (!properties.privateData.has(field)) {\n        continue;\n      }\n      const value = properties.privateData.get(field);\n      if (Array.isArray(value)) {\n        for (let j = value.length - 1; j > 0; j--) {\n          value[j] -= value[j - 1];\n        }\n      }\n      privateDict.setByName(field, value);\n    }\n    cff.topDict.privateDict = privateDict;\n    const subrIndex = new CFFIndex();\n    for (const subr of subrs) {\n      subrIndex.add(subr);\n    }\n    privateDict.subrsIndex = subrIndex;\n    const compiler = new CFFCompiler(cff);\n    return compiler.compile();\n  }\n}\n\n;// ./src/core/fonts.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\nconst PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];\nconst PDF_GLYPH_SPACE_UNITS = 1000;\nconst EXPORT_DATA_PROPERTIES = [\"ascent\", \"bbox\", \"black\", \"bold\", \"cssFontInfo\", \"data\", \"defaultVMetrics\", \"defaultWidth\", \"descent\", \"disableFontFace\", \"fallbackName\", \"fontExtraProperties\", \"fontMatrix\", \"isInvalidPDFjsFont\", \"isType3Font\", \"italic\", \"loadedName\", \"mimetype\", \"missingFile\", \"name\", \"remeasure\", \"systemFontInfo\", \"vertical\"];\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\"cMap\", \"composite\", \"defaultEncoding\", \"differences\", \"isMonospace\", \"isSerifFont\", \"isSymbolicFont\", \"seacMap\", \"subtype\", \"toFontChar\", \"toUnicode\", \"type\", \"vmetrics\", \"widths\"];\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n  if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n  const scale = 0.001 / properties.fontMatrix[0];\n  const glyphsWidths = properties.widths;\n  for (const glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n  properties.defaultWidth *= scale;\n}\nfunction adjustTrueTypeToUnicode(properties, isSymbolicFont, nameRecords) {\n  if (properties.isInternalFont) {\n    return;\n  }\n  if (properties.hasIncludedToUnicodeMap) {\n    return;\n  }\n  if (properties.hasEncoding) {\n    return;\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  if (!isSymbolicFont) {\n    return;\n  }\n  if (nameRecords.length === 0) {\n    return;\n  }\n  if (properties.defaultEncoding === WinAnsiEncoding) {\n    return;\n  }\n  for (const r of nameRecords) {\n    if (!isWinNameRecord(r)) {\n      return;\n    }\n  }\n  const encoding = WinAnsiEncoding;\n  const toUnicode = [],\n    glyphsUnicodeMap = getGlyphsUnicode();\n  for (const charCode in encoding) {\n    const glyphName = encoding[charCode];\n    if (glyphName === \"\") {\n      continue;\n    }\n    const unicode = glyphsUnicodeMap[glyphName];\n    if (unicode === undefined) {\n      continue;\n    }\n    toUnicode[charCode] = String.fromCharCode(unicode);\n  }\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\nfunction adjustType1ToUnicode(properties, builtInEncoding) {\n  if (properties.isInternalFont) {\n    return;\n  }\n  if (properties.hasIncludedToUnicodeMap) {\n    return;\n  }\n  if (builtInEncoding === properties.defaultEncoding) {\n    return;\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  const toUnicode = [],\n    glyphsUnicodeMap = getGlyphsUnicode();\n  for (const charCode in builtInEncoding) {\n    if (properties.hasEncoding) {\n      if (properties.baseEncodingName || properties.differences[charCode] !== undefined) {\n        continue;\n      }\n    }\n    const glyphName = builtInEncoding[charCode];\n    const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\nfunction amendFallbackToUnicode(properties) {\n  if (!properties.fallbackToUnicode) {\n    return;\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  const toUnicode = [];\n  for (const charCode in properties.fallbackToUnicode) {\n    if (properties.toUnicode.has(charCode)) {\n      continue;\n    }\n    toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n  }\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\nclass fonts_Glyph {\n  constructor(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    this.originalCharCode = originalCharCode;\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n  }\n  get category() {\n    return shadow(this, \"category\", getCharUnicodeCategory(this.unicode), true);\n  }\n}\nfunction int16(b0, b1) {\n  return (b0 << 8) + b1;\n}\nfunction writeSignedInt16(bytes, index, value) {\n  bytes[index + 1] = value;\n  bytes[index] = value >>> 8;\n}\nfunction signedInt16(b0, b1) {\n  const value = (b0 << 8) + b1;\n  return value & 1 << 15 ? value - 0x10000 : value;\n}\nfunction writeUint32(bytes, index, value) {\n  bytes[index + 3] = value & 0xff;\n  bytes[index + 2] = value >>> 8;\n  bytes[index + 1] = value >>> 16;\n  bytes[index] = value >>> 24;\n}\nfunction isTrueTypeFile(file) {\n  const header = file.peekBytes(4),\n    str = bytesToString(header);\n  return str === \"\\x00\\x01\\x00\\x00\" || str === \"true\";\n}\nfunction isTrueTypeCollectionFile(file) {\n  const header = file.peekBytes(4);\n  return bytesToString(header) === \"ttcf\";\n}\nfunction isOpenTypeFile(file) {\n  const header = file.peekBytes(4);\n  return bytesToString(header) === \"OTTO\";\n}\nfunction isType1File(file) {\n  const header = file.peekBytes(2);\n  if (header[0] === 0x25 && header[1] === 0x21) {\n    return true;\n  }\n  if (header[0] === 0x80 && header[1] === 0x01) {\n    return true;\n  }\n  return false;\n}\nfunction isCFFFile(file) {\n  const header = file.peekBytes(4);\n  if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n    return true;\n  }\n  return false;\n}\nfunction getFontFileType(file, {\n  type,\n  subtype,\n  composite\n}) {\n  let fileType, fileSubtype;\n  if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n    fileType = composite ? \"CIDFontType2\" : \"TrueType\";\n  } else if (isOpenTypeFile(file)) {\n    fileType = composite ? \"CIDFontType2\" : \"OpenType\";\n  } else if (isType1File(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n    }\n  } else if (isCFFFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n      fileSubtype = \"CIDFontType0C\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n      fileSubtype = \"Type1C\";\n    }\n  } else {\n    warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n    fileType = type;\n    fileSubtype = subtype;\n  }\n  return [fileType, fileSubtype];\n}\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n  for (const charCode in glyphMap) {\n    map[+charCode] = glyphMap[charCode];\n  }\n}\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n  const toFontChar = [];\n  let unicode;\n  for (let i = 0, ii = encoding.length; i < ii; i++) {\n    unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toFontChar[i] = unicode;\n    }\n  }\n  for (const charCode in differences) {\n    unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toFontChar[+charCode] = unicode;\n    }\n  }\n  return toFontChar;\n}\nfunction isMacNameRecord(r) {\n  return r.platform === 1 && r.encoding === 0 && r.language === 0;\n}\nfunction isWinNameRecord(r) {\n  return r.platform === 3 && r.encoding === 1 && r.language === 0x409;\n}\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n  switch (cid.length) {\n    case 1:\n      return cid.charCodeAt(0);\n    case 2:\n      return cid.charCodeAt(0) << 8 | cid.charCodeAt(1);\n  }\n  const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n  if (shouldThrow) {\n    throw new FormatError(msg);\n  }\n  warn(msg);\n  return cid;\n}\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) {\n  const newMap = Object.create(null);\n  const toUnicodeExtraMap = new Map();\n  const toFontChar = [];\n  const usedGlyphIds = new Set();\n  let privateUseAreaIndex = 0;\n  const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n  let nextAvailableFontCharCode = privateUseOffetStart;\n  let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n  const isInPrivateArea = code => PRIVATE_USE_AREAS[0][0] <= code && code <= PRIVATE_USE_AREAS[0][1] || PRIVATE_USE_AREAS[1][0] <= code && code <= PRIVATE_USE_AREAS[1][1];\n  let LIGATURE_TO_UNICODE = null;\n  for (const originalCharCode in charCodeToGlyphId) {\n    let glyphId = charCodeToGlyphId[originalCharCode];\n    if (!hasGlyph(glyphId)) {\n      continue;\n    }\n    if (nextAvailableFontCharCode > privateUseOffetEnd) {\n      privateUseAreaIndex++;\n      if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n        warn(\"Ran out of space in font private use area.\");\n        break;\n      }\n      nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n      privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n    }\n    const fontCharCode = nextAvailableFontCharCode++;\n    if (glyphId === 0) {\n      glyphId = newGlyphZeroId;\n    }\n    let unicode = toUnicode.get(originalCharCode);\n    if (typeof unicode === \"string\") {\n      if (unicode.length === 1) {\n        unicode = unicode.codePointAt(0);\n      } else {\n        if (!LIGATURE_TO_UNICODE) {\n          LIGATURE_TO_UNICODE = new Map();\n          for (let i = 0xfb00; i <= 0xfb4f; i++) {\n            const normalized = String.fromCharCode(i).normalize(\"NFKD\");\n            if (normalized.length > 1) {\n              LIGATURE_TO_UNICODE.set(normalized, i);\n            }\n          }\n        }\n        unicode = LIGATURE_TO_UNICODE.get(unicode) || unicode.codePointAt(0);\n      }\n    }\n    if (unicode && !isInPrivateArea(unicode) && !usedGlyphIds.has(glyphId)) {\n      toUnicodeExtraMap.set(unicode, glyphId);\n      usedGlyphIds.add(glyphId);\n    }\n    newMap[fontCharCode] = glyphId;\n    toFontChar[originalCharCode] = fontCharCode;\n  }\n  return {\n    toFontChar,\n    charCodeToGlyphId: newMap,\n    toUnicodeExtraMap,\n    nextAvailableFontCharCode\n  };\n}\nfunction getRanges(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const codes = [];\n  for (const charCode in glyphs) {\n    if (glyphs[charCode] >= numGlyphs) {\n      continue;\n    }\n    codes.push({\n      fontCharCode: charCode | 0,\n      glyphId: glyphs[charCode]\n    });\n  }\n  if (toUnicodeExtraMap) {\n    for (const [unicode, glyphId] of toUnicodeExtraMap) {\n      if (glyphId >= numGlyphs) {\n        continue;\n      }\n      codes.push({\n        fontCharCode: unicode,\n        glyphId\n      });\n    }\n  }\n  if (codes.length === 0) {\n    codes.push({\n      fontCharCode: 0,\n      glyphId: 0\n    });\n  }\n  codes.sort((a, b) => a.fontCharCode - b.fontCharCode);\n  const ranges = [];\n  const length = codes.length;\n  for (let n = 0; n < length;) {\n    const start = codes[n].fontCharCode;\n    const codeIndices = [codes[n].glyphId];\n    ++n;\n    let end = start;\n    while (n < length && end + 1 === codes[n].fontCharCode) {\n      codeIndices.push(codes[n].glyphId);\n      ++end;\n      ++n;\n      if (end === 0xffff) {\n        break;\n      }\n    }\n    ranges.push([start, end, codeIndices]);\n  }\n  return ranges;\n}\nfunction createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs);\n  const hasNonBmp = ranges.at(-1)[1] > 0xffff;\n  let i, ii, j, jj;\n  for (i = ranges.length - 1; i >= 0; --i) {\n    if (ranges[i][0] <= 0xffff) {\n      break;\n    }\n  }\n  const bmpLength = i + 1;\n  if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n    ranges[i][1] = 0xfffe;\n  }\n  const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n  const segCount = bmpLength + trailingRangesCount;\n  const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n  const segmentsLength = bmpLength * 2 + trailingRangesCount * 2;\n  const startCount = new DataBuilder({\n      exactLength: segmentsLength\n    }),\n    endCount = new DataBuilder({\n      exactLength: segmentsLength\n    }),\n    idDeltas = new DataBuilder({\n      exactLength: segmentsLength\n    }),\n    idRangeOffsets = new DataBuilder({\n      exactLength: segmentsLength\n    }),\n    glyphsIds = new DataBuilder({});\n  let bias = 0;\n  let format4Overflow = false;\n  for (i = 0, ii = bmpLength; i < ii; i++) {\n    const [start, end, codes] = ranges[i];\n    startCount.setInt16(start);\n    endCount.setInt16(end);\n    let contiguous = true;\n    for (j = 1, jj = codes.length; j < jj; ++j) {\n      if (codes[j] !== codes[j - 1] + 1) {\n        contiguous = false;\n        break;\n      }\n    }\n    if (!contiguous) {\n      const offset = (segCount - i) * 2 + bias * 2;\n      bias += end - start + 1;\n      idDeltas.skip(2);\n      if (offset > 0xffff) {\n        format4Overflow = true;\n        idRangeOffsets.skip(2);\n      } else {\n        idRangeOffsets.setInt16(offset);\n      }\n      for (j = 0, jj = codes.length; j < jj; ++j) {\n        glyphsIds.setInt16(codes[j]);\n      }\n    } else {\n      const startCode = codes[0];\n      idDeltas.setInt16(startCode - start & 0xffff);\n      idRangeOffsets.skip(2);\n    }\n  }\n  if (trailingRangesCount > 0) {\n    endCount.setArray([0xff, 0xff]);\n    startCount.setArray([0xff, 0xff]);\n    idDeltas.setArray([0x00, 0x01]);\n    idRangeOffsets.skip(2);\n  }\n  const format314 = new DataBuilder({\n    exactLength: 12 + startCount.length + endCount.length + idDeltas.length + idRangeOffsets.length + glyphsIds.length\n  });\n  format314.skip(2);\n  format314.setInt16(2 * segCount);\n  format314.setInt16(searchParams.range);\n  format314.setInt16(searchParams.entry);\n  format314.setInt16(searchParams.rangeShift);\n  format314.setArray(endCount.data);\n  format314.skip(2);\n  format314.setArray(startCount.data);\n  format314.setArray(idDeltas.data);\n  format314.setArray(idRangeOffsets.data);\n  format314.setArray(glyphsIds.data);\n  const useFormat4 = !format4Overflow && format314.length + 4 <= 0xffff;\n  const useFormat12 = hasNonBmp || !useFormat4;\n  const numTables = (useFormat4 ? 1 : 0) + (useFormat12 ? 1 : 0);\n  let format31012 = null,\n    header31012 = null;\n  if (useFormat12) {\n    format31012 = new DataBuilder({});\n    for (const range of ranges) {\n      let start = range[0];\n      const codes = range[2];\n      let code = codes[0];\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          const end = range[0] + j - 1;\n          format31012.setInt32(start);\n          format31012.setInt32(end);\n          format31012.setInt32(code);\n          start = end + 1;\n          code = codes[j];\n        }\n      }\n      format31012.setInt32(start);\n      format31012.setInt32(range[1]);\n      format31012.setInt32(code);\n    }\n    header31012 = new DataBuilder({\n      exactLength: 16\n    });\n    header31012.setArray([0x00, 0x0c]);\n    header31012.skip(2);\n    header31012.setInt32(format31012.length + 16);\n    header31012.skip(4);\n    header31012.setInt32(format31012.length / 12);\n  }\n  const headerLength = 4 + numTables * 8;\n  const format4Length = useFormat4 ? 4 + format314.length : 0;\n  const cmap = new DataBuilder({\n    exactLength: headerLength\n  });\n  cmap.skip(2);\n  cmap.setInt16(numTables);\n  let tableOffset = headerLength;\n  if (useFormat4) {\n    cmap.setArray([0x00, 0x03]);\n    cmap.setArray([0x00, 0x01]);\n    cmap.setInt32(tableOffset);\n    tableOffset += format4Length;\n  }\n  if (useFormat12) {\n    cmap.setArray([0x00, 0x03]);\n    cmap.setArray([0x00, 0x0a]);\n    cmap.setInt32(tableOffset);\n  }\n  const table = new DataBuilder({\n    exactLength: cmap.length + format4Length + (header31012?.length ?? 0) + (format31012?.length ?? 0)\n  });\n  table.setArray(cmap.data);\n  if (useFormat4) {\n    table.setArray([0x00, 0x04]);\n    table.setInt16(format314.length + 4);\n    table.setArray(format314.data);\n  }\n  if (useFormat12) {\n    table.setArray(header31012.data);\n    table.setArray(format31012.data);\n  }\n  return table.data;\n}\nfunction validateOS2Table(os2, file) {\n  file.pos = (file.start || 0) + os2.offset;\n  const version = file.getUint16();\n  const minLength = [78, 86, 96, 96, 96, 100][version];\n  if (minLength === undefined || os2.length < minLength) {\n    return false;\n  }\n  file.skip(60);\n  const selection = file.getUint16();\n  if (version < 4 && selection & 0x0300) {\n    return false;\n  }\n  const firstChar = file.getUint16();\n  const lastChar = file.getUint16();\n  if (firstChar > lastChar) {\n    return false;\n  }\n  file.skip(6);\n  const usWinAscent = file.getUint16();\n  if (usWinAscent === 0) {\n    return false;\n  }\n  os2.data[8] = os2.data[9] = 0;\n  return true;\n}\nfunction createOS2Table(properties, charstrings, override) {\n  override ||= {\n    unitsPerEm: 0,\n    yMax: 0,\n    yMin: 0,\n    ascent: 0,\n    descent: 0\n  };\n  let ulUnicodeRange1 = 0;\n  let ulUnicodeRange2 = 0;\n  let ulUnicodeRange3 = 0;\n  let ulUnicodeRange4 = 0;\n  let firstCharIndex = null;\n  let lastCharIndex = 0;\n  let position = -1;\n  if (charstrings) {\n    for (let code in charstrings) {\n      code |= 0;\n      if (firstCharIndex > code || !firstCharIndex) {\n        firstCharIndex = code;\n      }\n      if (lastCharIndex < code) {\n        lastCharIndex = code;\n      }\n      position = getUnicodeRangeFor(code, position);\n      if (position < 32) {\n        ulUnicodeRange1 |= 1 << position;\n      } else if (position < 64) {\n        ulUnicodeRange2 |= 1 << position - 32;\n      } else if (position < 96) {\n        ulUnicodeRange3 |= 1 << position - 64;\n      } else if (position < 123) {\n        ulUnicodeRange4 |= 1 << position - 96;\n      } else {\n        throw new FormatError(\"Unicode ranges Bits > 123 are reserved for internal usage\");\n      }\n    }\n    if (lastCharIndex > 0xffff) {\n      lastCharIndex = 0xffff;\n    }\n  } else {\n    firstCharIndex = 0;\n    lastCharIndex = 255;\n  }\n  const bbox = properties.bbox || [0, 0, 0, 0];\n  const unitsPerEm = override.unitsPerEm || (properties.fontMatrix ? 1 / Math.max(...properties.fontMatrix.slice(0, 4).map(Math.abs)) : 1000);\n  const scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n  const typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n  let typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n  if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n    typoDescent = -typoDescent;\n  }\n  const winAscent = override.yMax || typoAscent;\n  const winDescent = -override.yMin || -typoDescent;\n  const os2 = new DataBuilder({\n    exactLength: 96\n  });\n  os2.setArray([0x00, 0x03]);\n  os2.setArray([0x02, 0x24]);\n  os2.setArray([0x01, 0xf4]);\n  os2.setArray([0x00, 0x05]);\n  os2.skip(2);\n  os2.setArray([0x02, 0x8a]);\n  os2.setArray([0x02, 0xbb]);\n  os2.skip(2);\n  os2.setArray([0x00, 0x8c]);\n  os2.setArray([0x02, 0x8a]);\n  os2.setArray([0x02, 0xbb]);\n  os2.skip(2);\n  os2.setArray([0x01, 0xdf]);\n  os2.setArray([0x00, 0x31]);\n  os2.setArray([0x01, 0x02]);\n  os2.skip(2);\n  os2.setArray([0x00, 0x00, 0x06, properties.fixedPitch ? 0x09 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);\n  os2.setInt32(ulUnicodeRange1);\n  os2.setInt32(ulUnicodeRange2);\n  os2.setInt32(ulUnicodeRange3);\n  os2.setInt32(ulUnicodeRange4);\n  os2.setArray([0x2a, 0x32, 0x31, 0x2a]);\n  os2.setInt16(properties.italicAngle ? 1 : 0);\n  os2.setInt16(firstCharIndex || properties.firstChar);\n  os2.setInt16(lastCharIndex || properties.lastChar);\n  os2.setInt16(typoAscent);\n  os2.setInt16(typoDescent);\n  os2.setArray([0x00, 0x64]);\n  os2.setInt16(winAscent);\n  os2.setInt16(winDescent);\n  os2.skip(4 + 4);\n  os2.setInt16(properties.xHeight);\n  os2.setInt16(properties.capHeight);\n  os2.skip(2);\n  os2.setInt16(firstCharIndex || properties.firstChar);\n  os2.setArray([0x00, 0x03]);\n  return os2.data;\n}\nfunction createPostTable(properties) {\n  const post = new DataBuilder({\n    exactLength: 32\n  });\n  post.setArray([0x00, 0x03, 0x00, 0x00]);\n  post.setInt32(Math.floor(properties.italicAngle * 2 ** 16));\n  post.skip(2 + 2);\n  post.setInt32(properties.fixedPitch ? 1 : 0);\n  post.skip(4 + 4 + 4 + 4);\n  return post.data;\n}\nfunction createPostscriptName(name) {\n  return name.replaceAll(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\nfunction createNameTable(name, proto) {\n  proto ||= [[], []];\n  const strings = [proto[0][0] || \"Original licence\", proto[0][1] || name, proto[0][2] || \"Unknown\", proto[0][3] || \"uniqueID\", proto[0][4] || name, proto[0][5] || \"Version 0.11\", proto[0][6] || createPostscriptName(name), proto[0][7] || \"Unknown\", proto[0][8] || \"Unknown\", proto[0][9] || \"Unknown\"];\n  const stringsBytes = strings.map(s => stringToBytes(s));\n  const stringsUnicodeBytes = new Array(strings.length);\n  let i, ii, j, jj, str;\n  for (i = 0, ii = strings.length; i < ii; i++) {\n    str = proto[1][i] || strings[i];\n    const strUnicode = new DataBuilder({\n      exactLength: str.length * 2\n    });\n    for (j = 0, jj = str.length; j < jj; j++) {\n      strUnicode.setInt16(str.charCodeAt(j));\n    }\n    stringsUnicodeBytes[i] = strUnicode.data;\n  }\n  const namesBytes = [stringsBytes, stringsUnicodeBytes];\n  const platformsBytes = [[0x00, 0x01], [0x00, 0x03]];\n  const encodingsBytes = [[0x00, 0x00], [0x00, 0x01]];\n  const languagesBytes = [[0x00, 0x00], [0x04, 0x09]];\n  const nameRecords = [];\n  let strOffset = 0;\n  for (i = 0, ii = platformsBytes.length; i < ii; i++) {\n    const strs = namesBytes[i];\n    for (j = 0, jj = strs.length; j < jj; j++) {\n      str = strs[j];\n      const nameRecord = new DataBuilder({\n        exactLength: 6 + platformsBytes[i].length + encodingsBytes[i].length + languagesBytes[i].length\n      });\n      nameRecord.setArray(platformsBytes[i]);\n      nameRecord.setArray(encodingsBytes[i]);\n      nameRecord.setArray(languagesBytes[i]);\n      nameRecord.setInt16(j);\n      nameRecord.setInt16(str.length);\n      nameRecord.setInt16(strOffset);\n      nameRecords.push(nameRecord.data);\n      strOffset += str.length;\n    }\n  }\n  const namesRecordCount = stringsBytes.length * platformsBytes.length;\n  const nameTable = new DataBuilder({\n    exactLength: 6 + Math.sumPrecise(nameRecords.map(arr => arr.length)) + Math.sumPrecise(stringsBytes.map(arr => arr.length)) + Math.sumPrecise(stringsUnicodeBytes.map(arr => arr.length))\n  });\n  nameTable.skip(2);\n  nameTable.setInt16(namesRecordCount);\n  nameTable.setInt16(namesRecordCount * 12 + 6);\n  for (const arr of nameRecords) {\n    nameTable.setArray(arr);\n  }\n  for (const arr of stringsBytes) {\n    nameTable.setArray(arr);\n  }\n  for (const arr of stringsUnicodeBytes) {\n    nameTable.setArray(arr);\n  }\n  return nameTable.data;\n}\nclass Font {\n  #charsCache = new Map();\n  #glyphCache = new Map();\n  charProcOperatorList;\n  constructor(name, file, properties, evaluatorOptions) {\n    this.name = name;\n    this.psName = null;\n    this.mimetype = null;\n    this.disableFontFace = evaluatorOptions.disableFontFace;\n    this.fontExtraProperties = evaluatorOptions.fontExtraProperties;\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.missingFile = false;\n    this.cssFontInfo = properties.cssFontInfo;\n    let isSerifFont = !!(properties.flags & FontFlags.Serif);\n    if (!isSerifFont && !properties.isSimulatedFlags) {\n      const stdFontMap = getStdFontMap(),\n        nonStdFontMap = getNonStdFontMap(),\n        serifFonts = getSerifFonts();\n      for (const namePart of name.split(\"+\")) {\n        let fontName = normalizeFontName(namePart);\n        fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n        fontName = fontName.split(\"-\", 1)[0];\n        if (serifFonts[fontName]) {\n          isSerifFont = true;\n          break;\n        }\n      }\n    }\n    this.isSerifFont = isSerifFont;\n    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n    let {\n      type,\n      subtype\n    } = properties;\n    this.type = type;\n    this.subtype = subtype;\n    this.systemFontInfo = properties.systemFontInfo;\n    const matches = name.match(/^InvalidPDFjsFont_(.*)_\\d+$/);\n    this.isInvalidPDFjsFont = !!matches;\n    if (this.isInvalidPDFjsFont) {\n      this.fallbackName = matches[1];\n    } else if (this.isMonospace) {\n      this.fallbackName = \"monospace\";\n    } else if (this.isSerifFont) {\n      this.fallbackName = \"serif\";\n    } else {\n      this.fallbackName = \"sans-serif\";\n    }\n    if (this.systemFontInfo?.guessFallback) {\n      this.systemFontInfo.guessFallback = false;\n      this.systemFontInfo.css += `,${this.fallbackName}`;\n    }\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.cMap = properties.cMap;\n    this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.lineHeight = this.ascent - this.descent;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n    this.toUnicode = properties.toUnicode;\n    this.toFontChar = [];\n    if (properties.type === \"Type3\") {\n      for (let charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n      return;\n    }\n    this.cidEncoding = properties.cidEncoding || \"\";\n    this.vertical = !!properties.vertical;\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n    if (!file || file.isEmpty) {\n      if (file) {\n        warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n      }\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n    [type, subtype] = getFontFileType(file, properties);\n    if (type !== this.type || subtype !== this.subtype) {\n      info(\"Inconsistent font file Type/SubType, expected: \" + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`);\n    }\n    let data;\n    try {\n      switch (type) {\n        case \"MMType1\":\n          info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n        case \"Type1\":\n        case \"CIDFontType0\":\n          this.mimetype = \"font/opentype\";\n          const cff = subtype === \"Type1C\" || subtype === \"CIDFontType0C\" ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n          adjustWidths(properties);\n          data = this.convert(name, cff, properties);\n          break;\n        case \"OpenType\":\n        case \"TrueType\":\n        case \"CIDFontType2\":\n          this.mimetype = \"font/opentype\";\n          data = this.checkAndRepair(name, file, properties);\n          adjustWidths(properties);\n          if (this.isOpenType) {\n            type = \"OpenType\";\n          }\n          break;\n        default:\n          throw new FormatError(`Font ${type} is not supported`);\n      }\n    } catch (e) {\n      warn(e);\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n    amendFallbackToUnicode(properties);\n    this.data = data;\n    this.type = type;\n    this.subtype = subtype;\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.seacMap = properties.seacMap;\n  }\n  get renderer() {\n    const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n    return shadow(this, \"renderer\", renderer);\n  }\n  #getExportData(props) {\n    const data = Object.create(null);\n    for (const prop of props) {\n      const value = this[prop];\n      if (value !== undefined) {\n        data[prop] = value;\n      }\n    }\n    return data;\n  }\n  exportData() {\n    return {\n      buffer: compileFontInfo(this.#getExportData(EXPORT_DATA_PROPERTIES)),\n      charProcOperatorList: this.charProcOperatorList,\n      extra: this.fontExtraProperties ? this.#getExportData(EXPORT_DATA_EXTRA_PROPERTIES) : undefined\n    };\n  }\n  fallbackToSystemFont(properties) {\n    this.missingFile = true;\n    const {\n      name,\n      type\n    } = this;\n    let fontName = normalizeFontName(name);\n    const stdFontMap = getStdFontMap(),\n      nonStdFontMap = getNonStdFontMap();\n    const isStandardFont = !!stdFontMap[fontName];\n    const isMappedToStandardFont = !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n    fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n    const fontBasicMetricsMap = getFontBasicMetrics();\n    const metrics = fontBasicMetricsMap[fontName];\n    if (metrics) {\n      if (isNaN(this.ascent)) {\n        this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n      }\n      if (isNaN(this.descent)) {\n        this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n      }\n      if (isNaN(this.capHeight)) {\n        this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n      }\n    }\n    this.bold = /bold/i.test(fontName);\n    this.italic = /oblique|italic/i.test(fontName);\n    this.black = /Black/.test(name);\n    const isNarrow = /Narrow/.test(name);\n    this.remeasure = (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n    if ((isStandardFont || isMappedToStandardFont) && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n      const cidToGidMap = properties.cidToGidMap;\n      const map = [];\n      applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n      if (/Arial-?Black/i.test(name)) {\n        applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n      } else if (/Calibri/i.test(name)) {\n        applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n      }\n      if (cidToGidMap) {\n        for (const charCode in map) {\n          const cid = map[charCode];\n          if (cidToGidMap[cid] !== undefined) {\n            map[+charCode] = cidToGidMap[cid];\n          }\n        }\n        if (cidToGidMap.length !== this.toUnicode.length && properties.hasIncludedToUnicodeMap && this.toUnicode instanceof IdentityToUnicodeMap) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            const cid = map[charCode];\n            if (cidToGidMap[cid] === undefined) {\n              map[+charCode] = unicodeCharCode;\n            }\n          });\n        }\n      }\n      if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n      this.toFontChar = map;\n      this.toUnicode = new ToUnicodeMap(map);\n    } else if (/Symbol/i.test(fontName)) {\n      this.toFontChar = buildToFontChar(SymbolSetEncoding, getGlyphsUnicode(), this.differences);\n    } else if (/Dingbats/i.test(fontName)) {\n      this.toFontChar = buildToFontChar(ZapfDingbatsEncoding, getDingbatsGlyphsUnicode(), this.differences);\n    } else if (isStandardFont || isMappedToStandardFont) {\n      const map = buildToFontChar(this.defaultEncoding, getGlyphsUnicode(), this.differences);\n      if (type === \"CIDFontType2\" && !this.cidEncoding.startsWith(\"Identity-\") && !(this.toUnicode instanceof IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n      this.toFontChar = map;\n    } else {\n      const glyphsUnicodeMap = getGlyphsUnicode();\n      const map = [];\n      this.toUnicode.forEach((charCode, unicodeCharCode) => {\n        if (!this.composite) {\n          const glyphName = this.differences[charCode] || this.defaultEncoding[charCode];\n          const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n          if (unicode !== -1) {\n            unicodeCharCode = unicode;\n          }\n        }\n        map[+charCode] = unicodeCharCode;\n      });\n      if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n        if (/Tahoma|Verdana/i.test(name)) {\n          applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n        }\n      }\n      this.toFontChar = map;\n    }\n    amendFallbackToUnicode(properties);\n    this.loadedName = fontName.split(\"-\", 1)[0];\n  }\n  checkAndRepair(name, font, properties) {\n    const VALID_TABLES = [\"OS/2\", \"cmap\", \"head\", \"hhea\", \"hmtx\", \"maxp\", \"name\", \"post\", \"loca\", \"glyf\", \"fpgm\", \"prep\", \"cvt \", \"CFF \"];\n    function readTables(file, numTables) {\n      const tables = Object.create(null);\n      tables[\"OS/2\"] = null;\n      tables.cmap = null;\n      tables.head = null;\n      tables.hhea = null;\n      tables.hmtx = null;\n      tables.maxp = null;\n      tables.name = null;\n      tables.post = null;\n      for (let i = 0; i < numTables; i++) {\n        const table = readTableEntry(file);\n        if (!VALID_TABLES.includes(table.tag)) {\n          continue;\n        }\n        if (table.length === 0) {\n          continue;\n        }\n        tables[table.tag] = table;\n      }\n      return tables;\n    }\n    function readTableEntry(file) {\n      const tag = file.getString(4);\n      const checksum = file.getInt32() >>> 0;\n      const offset = file.getInt32() >>> 0;\n      const length = file.getInt32() >>> 0;\n      const previousPosition = file.pos;\n      file.pos = file.start || 0;\n      file.skip(offset);\n      const data = file.getBytes(length);\n      file.pos = previousPosition;\n      if (tag === \"head\") {\n        data[8] = data[9] = data[10] = data[11] = 0;\n        data[17] |= 0x20;\n      }\n      const view = tag === \"CFF \" ? null : new DataView(data.buffer, data.byteOffset, data.byteLength);\n      return {\n        tag,\n        checksum,\n        length,\n        offset,\n        data,\n        view\n      };\n    }\n    function readOpenTypeHeader(ttf) {\n      return {\n        version: ttf.getString(4),\n        numTables: ttf.getUint16(),\n        searchRange: ttf.getUint16(),\n        entrySelector: ttf.getUint16(),\n        rangeShift: ttf.getUint16()\n      };\n    }\n    function readTrueTypeCollectionHeader(ttc) {\n      const ttcTag = ttc.getString(4);\n      assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n      const majorVersion = ttc.getUint16();\n      const minorVersion = ttc.getUint16();\n      const numFonts = ttc.getInt32() >>> 0;\n      const offsetTable = [];\n      for (let i = 0; i < numFonts; i++) {\n        offsetTable.push(ttc.getInt32() >>> 0);\n      }\n      const header = {\n        ttcTag,\n        majorVersion,\n        minorVersion,\n        numFonts,\n        offsetTable\n      };\n      switch (majorVersion) {\n        case 1:\n          return header;\n        case 2:\n          header.dsigTag = ttc.getInt32() >>> 0;\n          header.dsigLength = ttc.getInt32() >>> 0;\n          header.dsigOffset = ttc.getInt32() >>> 0;\n          return header;\n      }\n      throw new FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);\n    }\n    function readTrueTypeCollectionData(ttc, fontName) {\n      const {\n        numFonts,\n        offsetTable\n      } = readTrueTypeCollectionHeader(ttc);\n      const fontNameParts = fontName.split(\"+\");\n      let fallbackData;\n      for (let i = 0; i < numFonts; i++) {\n        ttc.pos = (ttc.start || 0) + offsetTable[i];\n        const potentialHeader = readOpenTypeHeader(ttc);\n        const potentialTables = readTables(ttc, potentialHeader.numTables);\n        if (!potentialTables.name) {\n          throw new FormatError('TrueType Collection font must contain a \"name\" table.');\n        }\n        const [nameTable] = readNameTable(potentialTables.name);\n        for (let j = 0, jj = nameTable.length; j < jj; j++) {\n          for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n            const nameEntry = nameTable[j][k]?.replaceAll(/\\s/g, \"\");\n            if (!nameEntry) {\n              continue;\n            }\n            if (nameEntry === fontName) {\n              return {\n                header: potentialHeader,\n                tables: potentialTables\n              };\n            }\n            if (fontNameParts.length < 2) {\n              continue;\n            }\n            for (const part of fontNameParts) {\n              if (nameEntry === part) {\n                fallbackData = {\n                  name: part,\n                  header: potentialHeader,\n                  tables: potentialTables\n                };\n              }\n            }\n          }\n        }\n      }\n      if (fallbackData) {\n        warn(`TrueType Collection does not contain \"${fontName}\" font, ` + `falling back to \"${fallbackData.name}\" font instead.`);\n        return {\n          header: fallbackData.header,\n          tables: fallbackData.tables\n        };\n      }\n      throw new FormatError(`TrueType Collection does not contain \"${fontName}\" font.`);\n    }\n    function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n      if (!cmap) {\n        warn(\"No cmap table available.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n      let segment;\n      let start = (file.start || 0) + cmap.offset;\n      file.pos = start;\n      file.skip(2);\n      const numTables = file.getUint16();\n      let potentialTable;\n      let canBreak = false;\n      for (let i = 0; i < numTables; i++) {\n        const platformId = file.getUint16();\n        const encodingId = file.getUint16();\n        const offset = file.getInt32() >>> 0;\n        let useTable = false;\n        if (potentialTable?.platformId === platformId && potentialTable?.encodingId === encodingId) {\n          continue;\n        }\n        if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) {\n          useTable = true;\n        } else if (platformId === 1 && encodingId === 0) {\n          useTable = true;\n        } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n          useTable = true;\n          if (!isSymbolicFont) {\n            canBreak = true;\n          }\n        } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n          useTable = true;\n          let correctlySorted = true;\n          if (i < numTables - 1) {\n            const nextBytes = file.peekBytes(2),\n              nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n            if (nextPlatformId < platformId) {\n              correctlySorted = false;\n            }\n          }\n          if (correctlySorted) {\n            canBreak = true;\n          }\n        }\n        if (useTable) {\n          potentialTable = {\n            platformId,\n            encodingId,\n            offset\n          };\n        }\n        if (canBreak) {\n          break;\n        }\n      }\n      if (potentialTable) {\n        file.pos = start + potentialTable.offset;\n      }\n      if (!potentialTable || file.peekByte() === -1) {\n        warn(\"Could not find a preferred cmap table.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n      const format = file.getUint16();\n      let hasShortCmap = false;\n      const mappings = [];\n      let j, glyphId;\n      if (format === 0) {\n        file.skip(2 + 2);\n        for (j = 0; j < 256; j++) {\n          const index = file.getByte();\n          if (!index) {\n            continue;\n          }\n          mappings.push({\n            charCode: j,\n            glyphId: index\n          });\n        }\n        hasShortCmap = true;\n      } else if (format === 2) {\n        file.skip(2 + 2);\n        const subHeaderKeys = [];\n        let maxSubHeaderKey = 0;\n        for (let i = 0; i < 256; i++) {\n          const subHeaderKey = file.getUint16() >> 3;\n          subHeaderKeys.push(subHeaderKey);\n          maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n        }\n        const subHeaders = [];\n        for (let i = 0; i <= maxSubHeaderKey; i++) {\n          subHeaders.push({\n            firstCode: file.getUint16(),\n            entryCount: file.getUint16(),\n            idDelta: signedInt16(file.getByte(), file.getByte()),\n            idRangePos: file.pos + file.getUint16()\n          });\n        }\n        for (let i = 0; i < 256; i++) {\n          if (subHeaderKeys[i] === 0) {\n            file.pos = subHeaders[0].idRangePos + 2 * i;\n            glyphId = file.getUint16();\n            mappings.push({\n              charCode: i,\n              glyphId\n            });\n          } else {\n            const s = subHeaders[subHeaderKeys[i]];\n            for (j = 0; j < s.entryCount; j++) {\n              const charCode = (i << 8) + j + s.firstCode;\n              file.pos = s.idRangePos + 2 * j;\n              glyphId = file.getUint16();\n              if (glyphId !== 0) {\n                glyphId = (glyphId + s.idDelta) % 65536;\n              }\n              mappings.push({\n                charCode,\n                glyphId\n              });\n            }\n          }\n        }\n      } else if (format === 4) {\n        file.skip(2 + 2);\n        const segCount = file.getUint16() >> 1;\n        file.skip(6);\n        const segments = [];\n        let segIndex;\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments.push({\n            end: file.getUint16()\n          });\n        }\n        file.skip(2);\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].start = file.getUint16();\n        }\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].delta = file.getUint16();\n        }\n        let offsetsCount = 0,\n          offsetIndex;\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          const rangeOffset = file.getUint16();\n          if (!rangeOffset) {\n            segment.offsetIndex = -1;\n            continue;\n          }\n          offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n          segment.offsetIndex = offsetIndex;\n          offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n        }\n        const offsets = [];\n        for (j = 0; j < offsetsCount; j++) {\n          offsets.push(file.getUint16());\n        }\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          start = segment.start;\n          const end = segment.end;\n          const delta = segment.delta;\n          offsetIndex = segment.offsetIndex;\n          for (j = start; j <= end; j++) {\n            if (j === 0xffff) {\n              continue;\n            }\n            glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n            glyphId = glyphId + delta & 0xffff;\n            mappings.push({\n              charCode: j,\n              glyphId\n            });\n          }\n        }\n      } else if (format === 6) {\n        file.skip(2 + 2);\n        const firstCode = file.getUint16();\n        const entryCount = file.getUint16();\n        for (j = 0; j < entryCount; j++) {\n          glyphId = file.getUint16();\n          const charCode = firstCode + j;\n          mappings.push({\n            charCode,\n            glyphId\n          });\n        }\n      } else if (format === 12) {\n        file.skip(2 + 4 + 4);\n        const nGroups = file.getInt32() >>> 0;\n        for (j = 0; j < nGroups; j++) {\n          const startCharCode = file.getInt32() >>> 0;\n          const endCharCode = file.getInt32() >>> 0;\n          let glyphCode = file.getInt32() >>> 0;\n          for (let charCode = startCharCode; charCode <= endCharCode; charCode++) {\n            mappings.push({\n              charCode,\n              glyphId: glyphCode++\n            });\n          }\n        }\n      } else {\n        warn(\"cmap table has unsupported format: \" + format);\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n      const finalMappings = [],\n        seenCharCodes = new Set();\n      for (const map of mappings) {\n        const {\n          charCode\n        } = map;\n        if (seenCharCodes.has(charCode)) {\n          continue;\n        }\n        seenCharCodes.add(charCode);\n        finalMappings.push(map);\n      }\n      return {\n        platformId: potentialTable.platformId,\n        encodingId: potentialTable.encodingId,\n        mappings: finalMappings.sort((a, b) => a.charCode - b.charCode),\n        hasShortCmap\n      };\n    }\n    function sanitizeMetrics(file, header, metrics, headTable, numGlyphs, dupFirstEntry) {\n      if (!header) {\n        if (metrics) {\n          metrics.data = null;\n        }\n        return;\n      }\n      file.pos = (file.start || 0) + header.offset;\n      file.pos += 4;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      const caretOffset = file.getUint16();\n      file.pos += 8;\n      file.pos += 2;\n      let numOfMetrics = file.getUint16();\n      if (caretOffset !== 0) {\n        const macStyle = int16(headTable.data[44], headTable.data[45]);\n        if (!(macStyle & 2)) {\n          header.data[22] = 0;\n          header.data[23] = 0;\n        }\n      }\n      if (numOfMetrics > numGlyphs) {\n        info(`The numOfMetrics (${numOfMetrics}) should not be ` + `greater than the numGlyphs (${numGlyphs}).`);\n        numOfMetrics = numGlyphs;\n        header.data[34] = (numOfMetrics & 0xff00) >> 8;\n        header.data[35] = numOfMetrics & 0x00ff;\n      }\n      const numOfSidebearings = numGlyphs - numOfMetrics;\n      const numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n      if (numMissing > 0) {\n        const entries = new Uint8Array(metrics.length + numMissing * 2);\n        entries.set(metrics.data);\n        if (dupFirstEntry) {\n          entries[metrics.length] = metrics.data[2];\n          entries[metrics.length + 1] = metrics.data[3];\n        }\n        metrics.data = entries;\n      }\n    }\n    function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n      const glyphProfile = {\n        length: 0,\n        sizeOfInstructions: 0\n      };\n      if (sourceStart < 0 || sourceStart >= source.length || sourceEnd > source.length || sourceEnd - sourceStart <= 12) {\n        return glyphProfile;\n      }\n      const glyf = source.subarray(sourceStart, sourceEnd);\n      const xMin = signedInt16(glyf[2], glyf[3]);\n      const yMin = signedInt16(glyf[4], glyf[5]);\n      const xMax = signedInt16(glyf[6], glyf[7]);\n      const yMax = signedInt16(glyf[8], glyf[9]);\n      if (xMin > xMax) {\n        writeSignedInt16(glyf, 2, xMax);\n        writeSignedInt16(glyf, 6, xMin);\n      }\n      if (yMin > yMax) {\n        writeSignedInt16(glyf, 4, yMax);\n        writeSignedInt16(glyf, 8, yMin);\n      }\n      const contoursCount = signedInt16(glyf[0], glyf[1]);\n      if (contoursCount < 0) {\n        if (contoursCount < -1) {\n          return glyphProfile;\n        }\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n      let i,\n        j = 10,\n        flagsCount = 0;\n      for (i = 0; i < contoursCount; i++) {\n        const endPoint = glyf[j] << 8 | glyf[j + 1];\n        flagsCount = endPoint + 1;\n        j += 2;\n      }\n      const instructionsStart = j;\n      const instructionsLength = glyf[j] << 8 | glyf[j + 1];\n      glyphProfile.sizeOfInstructions = instructionsLength;\n      j += 2 + instructionsLength;\n      const instructionsEnd = j;\n      let coordinatesLength = 0;\n      for (i = 0; i < flagsCount; i++) {\n        const flag = glyf[j++];\n        if (flag & 0xc0) {\n          glyf[j - 1] = flag & 0x3f;\n        }\n        let xLength = 2;\n        if (flag & 2) {\n          xLength = 1;\n        } else if (flag & 16) {\n          xLength = 0;\n        }\n        let yLength = 2;\n        if (flag & 4) {\n          yLength = 1;\n        } else if (flag & 32) {\n          yLength = 0;\n        }\n        const xyLength = xLength + yLength;\n        coordinatesLength += xyLength;\n        if (flag & 8) {\n          const repeat = glyf[j++];\n          if (repeat === 0) {\n            glyf[j - 1] ^= 8;\n          }\n          i += repeat;\n          coordinatesLength += repeat * xyLength;\n        }\n      }\n      if (coordinatesLength === 0) {\n        return glyphProfile;\n      }\n      let glyphDataLength = j + coordinatesLength;\n      if (glyphDataLength > glyf.length) {\n        return glyphProfile;\n      }\n      if (!hintsValid && instructionsLength > 0) {\n        dest.set(glyf.subarray(0, instructionsStart), destStart);\n        dest.set([0, 0], destStart + instructionsStart);\n        dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n        glyphDataLength -= instructionsLength;\n        if (glyf.length - glyphDataLength > 3) {\n          glyphDataLength = glyphDataLength + 3 & ~3;\n        }\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n      if (glyf.length - glyphDataLength > 3) {\n        glyphDataLength = glyphDataLength + 3 & ~3;\n        dest.set(glyf.subarray(0, glyphDataLength), destStart);\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n      dest.set(glyf, destStart);\n      glyphProfile.length = glyf.length;\n      return glyphProfile;\n    }\n    function sanitizeHead(head, numGlyphs, locaLength) {\n      const {\n        data,\n        view\n      } = head;\n      const version = view.getInt32(0);\n      if (version >> 16 !== 1) {\n        info(\"Attempting to fix invalid version in head table: \" + version);\n        view.setInt32(0, 0x00010000);\n      }\n      const indexToLocFormat = signedInt16(data[50], data[51]);\n      if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n        info(\"Attempting to fix invalid indexToLocFormat in head table: \" + indexToLocFormat);\n        const numGlyphsPlusOne = numGlyphs + 1;\n        if (locaLength === numGlyphsPlusOne << 1) {\n          data[50] = 0;\n          data[51] = 0;\n        } else if (locaLength === numGlyphsPlusOne << 2) {\n          data[50] = 0;\n          data[51] = 1;\n        } else {\n          throw new FormatError(\"Could not fix indexToLocFormat: \" + indexToLocFormat);\n        }\n      }\n    }\n    function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n      let itemSize, itemDecode, itemEncode;\n      if (isGlyphLocationsLong) {\n        itemSize = 4;\n        itemDecode = function fontItemDecodeLong(data, offset) {\n          return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n        };\n        itemEncode = function fontItemEncodeLong(data, offset, value) {\n          data[offset] = value >>> 24 & 0xff;\n          data[offset + 1] = value >> 16 & 0xff;\n          data[offset + 2] = value >> 8 & 0xff;\n          data[offset + 3] = value & 0xff;\n        };\n      } else {\n        itemSize = 2;\n        itemDecode = function fontItemDecode(data, offset) {\n          return data[offset] << 9 | data[offset + 1] << 1;\n        };\n        itemEncode = function fontItemEncode(data, offset, value) {\n          data[offset] = value >> 9 & 0xff;\n          data[offset + 1] = value >> 1 & 0xff;\n        };\n      }\n      const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n      const locaDataSize = itemSize * (1 + numGlyphsOut);\n      const locaData = new Uint8Array(locaDataSize);\n      locaData.set(loca.data.subarray(0, locaDataSize));\n      loca.data = locaData;\n      const oldGlyfData = glyf.data;\n      const oldGlyfDataLength = oldGlyfData.length;\n      const newGlyfData = new Uint8Array(oldGlyfDataLength);\n      let i, j;\n      const locaEntries = [];\n      for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n        let offset = itemDecode(locaData, j);\n        if (offset > oldGlyfDataLength) {\n          offset = oldGlyfDataLength;\n        }\n        locaEntries.push({\n          index: i,\n          offset,\n          endOffset: 0\n        });\n      }\n      locaEntries.sort((a, b) => a.offset - b.offset);\n      for (i = 0; i < numGlyphs; i++) {\n        locaEntries[i].endOffset = locaEntries[i + 1].offset;\n      }\n      locaEntries.sort((a, b) => a.index - b.index);\n      for (i = 0; i < numGlyphs; i++) {\n        const {\n          offset,\n          endOffset\n        } = locaEntries[i];\n        if (offset !== 0 || endOffset !== 0) {\n          break;\n        }\n        const nextOffset = locaEntries[i + 1].offset;\n        if (nextOffset === 0) {\n          continue;\n        }\n        locaEntries[i].endOffset = nextOffset;\n        break;\n      }\n      const last = locaEntries.at(-2);\n      if (last.offset !== 0 && last.endOffset === 0) {\n        last.endOffset = oldGlyfDataLength;\n      }\n      const droppedGlyphs = pruneCompositeGlyphCycles(oldGlyfData, locaEntries, numGlyphs);\n      const missingGlyphs = Object.create(null);\n      let writeOffset = 0;\n      itemEncode(locaData, 0, writeOffset);\n      for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n        const glyphProfile = droppedGlyphs.has(i) ? {\n          length: 0,\n          sizeOfInstructions: 0\n        } : sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid);\n        const newLength = glyphProfile.length;\n        if (newLength === 0) {\n          missingGlyphs[i] = true;\n        }\n        if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n          maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n        }\n        writeOffset += newLength;\n        itemEncode(locaData, j, writeOffset);\n      }\n      if (writeOffset === 0) {\n        const simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n        for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n          itemEncode(locaData, j, simpleGlyph.length);\n        }\n        glyf.data = simpleGlyph;\n      } else if (dupFirstEntry) {\n        const firstEntryLength = itemDecode(locaData, itemSize);\n        if (newGlyfData.length > firstEntryLength + writeOffset) {\n          glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n        } else {\n          glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n          glyf.data.set(newGlyfData.subarray(0, writeOffset));\n        }\n        glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n        itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n      } else {\n        glyf.data = newGlyfData.subarray(0, writeOffset);\n      }\n      return {\n        missingGlyphs,\n        maxSizeOfInstructions\n      };\n    }\n    function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n      const start = (font.start || 0) + post.offset;\n      font.pos = start;\n      const length = post.length,\n        end = start + length;\n      const version = font.getInt32();\n      font.skip(28);\n      let glyphNames;\n      let valid = true;\n      let i;\n      switch (version) {\n        case 0x00010000:\n          glyphNames = MacStandardGlyphOrdering;\n          break;\n        case 0x00020000:\n          const numGlyphs = font.getUint16();\n          if (numGlyphs !== maxpNumGlyphs) {\n            valid = false;\n            break;\n          }\n          const glyphNameIndexes = [];\n          for (i = 0; i < numGlyphs; ++i) {\n            const index = font.getUint16();\n            if (index >= 32768) {\n              valid = false;\n              break;\n            }\n            glyphNameIndexes.push(index);\n          }\n          if (!valid) {\n            break;\n          }\n          const customNames = [];\n          while (font.pos < end) {\n            const strLen = font.getByte(),\n              str = font.getString(strLen);\n            customNames.push(str);\n          }\n          glyphNames = [];\n          for (i = 0; i < numGlyphs; ++i) {\n            const j = glyphNameIndexes[i];\n            if (j < 258) {\n              glyphNames.push(MacStandardGlyphOrdering[j]);\n              continue;\n            }\n            glyphNames.push(customNames[j - 258]);\n          }\n          break;\n        case 0x00030000:\n          break;\n        default:\n          warn(\"Unknown/unsupported post table version \" + version);\n          valid = false;\n          if (propertiesObj.defaultEncoding) {\n            glyphNames = propertiesObj.defaultEncoding;\n          }\n          break;\n      }\n      propertiesObj.glyphNames = glyphNames;\n      return valid;\n    }\n    function readNameTable(nameTable) {\n      const start = (font.start || 0) + nameTable.offset;\n      font.pos = start;\n      const names = [[], []],\n        records = [];\n      const length = nameTable.length,\n        end = start + length;\n      const format = font.getUint16();\n      const FORMAT_0_HEADER_LENGTH = 6;\n      if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n        return [names, records];\n      }\n      const numRecords = font.getUint16();\n      const stringsStart = font.getUint16();\n      const NAME_RECORD_LENGTH = 12;\n      let i, ii;\n      for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n        const r = {\n          platform: font.getUint16(),\n          encoding: font.getUint16(),\n          language: font.getUint16(),\n          name: font.getUint16(),\n          length: font.getUint16(),\n          offset: font.getUint16()\n        };\n        if (isMacNameRecord(r) || isWinNameRecord(r)) {\n          records.push(r);\n        }\n      }\n      for (i = 0, ii = records.length; i < ii; i++) {\n        const record = records[i];\n        if (record.length <= 0) {\n          continue;\n        }\n        const pos = start + stringsStart + record.offset;\n        if (pos + record.length > end) {\n          continue;\n        }\n        font.pos = pos;\n        const nameIndex = record.name;\n        if (record.encoding) {\n          let str = \"\";\n          for (let j = 0, jj = record.length; j < jj; j += 2) {\n            str += String.fromCharCode(font.getUint16());\n          }\n          names[1][nameIndex] = str;\n        } else {\n          names[0][nameIndex] = font.getString(record.length);\n        }\n      }\n      return [names, records];\n    }\n    const TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n    function sanitizeTTProgram(table, ttContext) {\n      let data = table.data;\n      let i = 0,\n        j,\n        n,\n        b,\n        funcId,\n        pc,\n        lastEndf = 0,\n        lastDeff = 0;\n      const stack = [];\n      const callstack = [];\n      const functionsCalled = [];\n      let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n      let inFDEF = false,\n        ifLevel = 0,\n        inELSE = 0;\n      for (let ii = data.length; i < ii;) {\n        const op = data[i++];\n        if (op === 0x40) {\n          n = data[i++];\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if (op === 0x41) {\n          n = data[i++];\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push(signedInt16(b, data[i++]));\n            }\n          }\n        } else if ((op & 0xf8) === 0xb0) {\n          n = op - 0xb0 + 1;\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb8) {\n          n = op - 0xb8 + 1;\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push(signedInt16(b, data[i++]));\n            }\n          }\n        } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n          if (!inFDEF && !inELSE) {\n            funcId = stack.at(-1);\n            if (isNaN(funcId)) {\n              info(\"TT: CALL empty stack (or invalid entry).\");\n            } else {\n              ttContext.functionsUsed[funcId] = true;\n              if (funcId in ttContext.functionsStackDeltas) {\n                const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n                if (newStackLength < 0) {\n                  warn(\"TT: CALL invalid functions stack delta.\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n                stack.length = newStackLength;\n              } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n                callstack.push({\n                  data,\n                  i,\n                  stackTop: stack.length - 1\n                });\n                functionsCalled.push(funcId);\n                pc = ttContext.functionsDefined[funcId];\n                if (!pc) {\n                  warn(\"TT: CALL non-existent function\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n                data = pc.data;\n                i = pc.i;\n              }\n            }\n          }\n        } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n          if (inFDEF || inELSE) {\n            warn(\"TT: nested FDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n          inFDEF = true;\n          lastDeff = i;\n          funcId = stack.pop();\n          ttContext.functionsDefined[funcId] = {\n            data,\n            i\n          };\n        } else if (op === 0x2d) {\n          if (inFDEF) {\n            inFDEF = false;\n            lastEndf = i;\n          } else {\n            pc = callstack.pop();\n            if (!pc) {\n              warn(\"TT: ENDF bad stack\");\n              ttContext.hintsValid = false;\n              return;\n            }\n            funcId = functionsCalled.pop();\n            data = pc.data;\n            i = pc.i;\n            ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n          }\n        } else if (op === 0x89) {\n          if (inFDEF || inELSE) {\n            warn(\"TT: nested IDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n          inFDEF = true;\n          lastDeff = i;\n        } else if (op === 0x58) {\n          ++ifLevel;\n        } else if (op === 0x1b) {\n          inELSE = ifLevel;\n        } else if (op === 0x59) {\n          if (inELSE === ifLevel) {\n            inELSE = 0;\n          }\n          --ifLevel;\n        } else if (op === 0x1c) {\n          if (!inFDEF && !inELSE) {\n            const offset = stack.at(-1);\n            if (offset > 0) {\n              i += offset - 1;\n            }\n          }\n        }\n        if (!inFDEF && !inELSE) {\n          let stackDelta = 0;\n          if (op <= 0x8e) {\n            stackDelta = TTOpsStackDeltas[op];\n          } else if (op >= 0xc0 && op <= 0xdf) {\n            stackDelta = -1;\n          } else if (op >= 0xe0) {\n            stackDelta = -2;\n          }\n          if (op >= 0x71 && op <= 0x75) {\n            n = stack.pop();\n            if (!isNaN(n)) {\n              stackDelta = -n * 2;\n            }\n          }\n          while (stackDelta < 0 && stack.length > 0) {\n            stack.pop();\n            stackDelta++;\n          }\n          while (stackDelta > 0) {\n            stack.push(NaN);\n            stackDelta--;\n          }\n        }\n      }\n      ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n      const content = [data];\n      if (i > data.length) {\n        content.push(new Uint8Array(i - data.length));\n      }\n      if (lastDeff > lastEndf) {\n        warn(\"TT: complementing a missing function tail\");\n        content.push(new Uint8Array([0x22, 0x2d]));\n      }\n      foldTTTable(table, content);\n    }\n    function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n      if (ttContext.tooComplexToFollowFunctions) {\n        return;\n      }\n      if (ttContext.functionsDefined.length > maxFunctionDefs) {\n        warn(\"TT: more functions defined than expected\");\n        ttContext.hintsValid = false;\n        return;\n      }\n      for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n        if (j > maxFunctionDefs) {\n          warn(\"TT: invalid function id: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n        if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n          warn(\"TT: undefined function: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n      }\n    }\n    function foldTTTable(table, content) {\n      if (content.length > 1) {\n        let newLength = 0;\n        let j, jj;\n        for (j = 0, jj = content.length; j < jj; j++) {\n          newLength += content[j].length;\n        }\n        newLength = newLength + 3 & ~3;\n        const result = new Uint8Array(newLength);\n        let pos = 0;\n        for (j = 0, jj = content.length; j < jj; j++) {\n          result.set(content[j], pos);\n          pos += content[j].length;\n        }\n        table.data = result;\n        table.length = newLength;\n      }\n    }\n    function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n      const ttContext = {\n        functionsDefined: [],\n        functionsUsed: [],\n        functionsStackDeltas: [],\n        tooComplexToFollowFunctions: false,\n        hintsValid: true\n      };\n      if (fpgm) {\n        sanitizeTTProgram(fpgm, ttContext);\n      }\n      if (prep) {\n        sanitizeTTProgram(prep, ttContext);\n      }\n      if (fpgm) {\n        checkInvalidFunctions(ttContext, maxFunctionDefs);\n      }\n      if (cvt && cvt.length & 1) {\n        const cvtData = new Uint8Array(cvt.length + 1);\n        cvtData.set(cvt.data);\n        cvt.data = cvtData;\n      }\n      return ttContext.hintsValid;\n    }\n    font = new Stream(new Uint8Array(font.getBytes()));\n    let header, tables;\n    if (isTrueTypeCollectionFile(font)) {\n      const ttcData = readTrueTypeCollectionData(font, this.name);\n      header = ttcData.header;\n      tables = ttcData.tables;\n    } else {\n      header = readOpenTypeHeader(font);\n      tables = readTables(font, header.numTables);\n    }\n    const isTrueType = !tables[\"CFF \"];\n    let parsedCff = null;\n    if (!isTrueType) {\n      try {\n        parsedCff = new CFFParser(new Stream(tables[\"CFF \"].data), properties, SEAC_ANALYSIS_ENABLED).parse();\n      } catch {\n        warn(\"Failed to parse font \" + properties.loadedName);\n      }\n      if (header.version === \"OTTO\" && (!properties.composite || properties.fontFileN === \"FontFile3\" && parsedCff?.isCIDFont) || !tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n        return this.convert(name, new CFFFont(new Stream(tables[\"CFF \"].data), properties), properties);\n      }\n      delete tables.glyf;\n      delete tables.loca;\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n      this.isOpenType = true;\n    } else {\n      if (!tables.loca) {\n        throw new FormatError('Required \"loca\" table is not found');\n      }\n      if (!tables.glyf) {\n        warn('Required \"glyf\" table is not found -- trying to recover.');\n        tables.glyf = {\n          tag: \"glyf\",\n          data: new Uint8Array(0)\n        };\n      }\n      this.isOpenType = false;\n    }\n    if (!tables.maxp) {\n      throw new FormatError('Required \"maxp\" table is not found');\n    }\n    let numGlyphsFromCFF;\n    if (parsedCff) {\n      try {\n        parsedCff.duplicateFirstGlyph();\n        tables[\"CFF \"].data = new CFFCompiler(parsedCff).compile();\n        numGlyphsFromCFF = parsedCff.charStringCount;\n      } catch {\n        warn(\"Failed to compile font \" + properties.loadedName);\n      }\n    }\n    font.pos = (font.start || 0) + tables.maxp.offset;\n    let version = font.getInt32();\n    const numGlyphs = numGlyphsFromCFF ?? font.getUint16();\n    if (version === 0x00005000 && tables.maxp.length !== 6) {\n      tables.maxp.data = tables.maxp.data.subarray(0, 6);\n      tables.maxp.length = 6;\n    }\n    if (version !== 0x00010000 && version !== 0x00005000) {\n      if (tables.maxp.length === 6) {\n        version = 0x0005000;\n      } else if (tables.maxp.length >= 32) {\n        version = 0x00010000;\n      } else {\n        throw new FormatError(`\"maxp\" table has a wrong version number`);\n      }\n      writeUint32(tables.maxp.data, 0, version);\n    }\n    let isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n    if (tables.loca) {\n      const locaLength = isGlyphLocationsLong ? (numGlyphs + 1) * 4 : (numGlyphs + 1) * 2;\n      if (tables.loca.length !== locaLength) {\n        warn(\"Incorrect 'loca' table length -- attempting to fix it.\");\n        const sortedTables = Object.values(tables).filter(Boolean).sort((a, b) => a.offset - b.offset);\n        const locaIndex = sortedTables.indexOf(tables.loca);\n        const nextTable = sortedTables[locaIndex + 1] || null;\n        if (nextTable && tables.loca.offset + locaLength < nextTable.offset) {\n          const previousPos = font.pos;\n          font.pos = font.start || 0;\n          font.skip(tables.loca.offset);\n          tables.loca.data = font.getBytes(locaLength);\n          tables.loca.length = locaLength;\n          font.pos = previousPos;\n        }\n      }\n    }\n    if (properties.scaleFactors?.length === numGlyphs && isTrueType) {\n      const {\n        scaleFactors\n      } = properties;\n      const glyphs = new GlyfTable({\n        glyfTable: tables.glyf.data,\n        isGlyphLocationsLong,\n        locaTable: tables.loca.data,\n        numGlyphs\n      });\n      glyphs.scale(scaleFactors);\n      const {\n        glyf,\n        loca,\n        isLocationLong\n      } = glyphs.write();\n      tables.glyf.data = glyf;\n      tables.loca.data = loca;\n      if (isLocationLong !== !!isGlyphLocationsLong) {\n        tables.head.data[50] = 0;\n        isGlyphLocationsLong = tables.head.data[51] = isLocationLong ? 1 : 0;\n      }\n      const metrics = tables.hmtx.data;\n      for (let i = 0; i < numGlyphs; i++) {\n        const j = 4 * i;\n        const advanceWidth = Math.round(scaleFactors[i] * int16(metrics[j], metrics[j + 1]));\n        metrics[j] = advanceWidth >> 8 & 0xff;\n        metrics[j + 1] = advanceWidth & 0xff;\n        const lsb = Math.round(scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3]));\n        writeSignedInt16(metrics, j + 2, lsb);\n      }\n    }\n    let numGlyphsOut = numGlyphs + 1;\n    let dupFirstEntry = true;\n    if (numGlyphsOut > 0xffff) {\n      dupFirstEntry = false;\n      numGlyphsOut = numGlyphs;\n      warn(\"Not enough space in glyfs to duplicate first glyph.\");\n    }\n    let maxFunctionDefs = 0;\n    let maxSizeOfInstructions = 0;\n    if (version >= 0x00010000 && tables.maxp.length >= 32) {\n      font.pos += 8;\n      const maxZones = font.getUint16();\n      if (maxZones > 2) {\n        tables.maxp.data[14] = 0;\n        tables.maxp.data[15] = 2;\n      }\n      font.pos += 4;\n      maxFunctionDefs = font.getUint16();\n      font.pos += 4;\n      maxSizeOfInstructions = font.getUint16();\n    } else if (isTrueType && version === 0x00005000) {\n      const newMaxp = new Uint8Array(32);\n      writeUint32(newMaxp, 0, 0x00010000);\n      newMaxp[4] = numGlyphs >> 8 & 0xff;\n      newMaxp[5] = numGlyphs & 0xff;\n      newMaxp.fill(0xff, 6, 14);\n      newMaxp[15] = 2;\n      newMaxp[28] = 0xff;\n      newMaxp[29] = 0xff;\n      newMaxp[31] = 0x10;\n      tables.maxp.data = newMaxp;\n      tables.maxp.length = 32;\n      version = 0x00010000;\n    }\n    tables.maxp.data[4] = numGlyphsOut >> 8;\n    tables.maxp.data[5] = numGlyphsOut & 255;\n    const hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables[\"cvt \"], maxFunctionDefs);\n    if (!hintsValid) {\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n    }\n    sanitizeMetrics(font, tables.hhea, tables.hmtx, tables.head, numGlyphsOut, dupFirstEntry);\n    if (!tables.head) {\n      throw new FormatError('Required \"head\" table is not found');\n    }\n    sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n    let missingGlyphs = Object.create(null);\n    if (isTrueType) {\n      const glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n      missingGlyphs = glyphsInfo.missingGlyphs;\n      if (version >= 0x00010000 && tables.maxp.length >= 32) {\n        tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n        tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n      }\n    }\n    if (!tables.hhea) {\n      throw new FormatError('Required \"hhea\" table is not found');\n    }\n    if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n      tables.hhea.data[10] = 0xff;\n      tables.hhea.data[11] = 0xff;\n    }\n    const metricsOverride = {\n      unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n      yMax: signedInt16(tables.head.data[42], tables.head.data[43]),\n      yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n      ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n      descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n      lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9])\n    };\n    this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n    this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n    this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n    if (this.cssFontInfo?.lineHeight) {\n      this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n      this.lineGap = this.cssFontInfo.metrics.lineGap;\n    } else {\n      this.lineHeight = this.ascent - this.descent + this.lineGap;\n    }\n    if (tables.post) {\n      readPostScriptTable(tables.post, properties, numGlyphs);\n    }\n    tables.post = {\n      tag: \"post\",\n      data: createPostTable(properties)\n    };\n    const charCodeToGlyphId = Object.create(null);\n    function hasGlyph(glyphId) {\n      return !missingGlyphs[glyphId];\n    }\n    if (properties.composite) {\n      const cidToGidMap = properties.cidToGidMap || [];\n      const isCidToGidMapEmpty = cidToGidMap.length === 0;\n      properties.cMap.forEach(function (charCode, cid) {\n        if (typeof cid === \"string\") {\n          cid = convertCidString(charCode, cid, true);\n        }\n        if (cid > 0xffff) {\n          throw new FormatError(\"Max size of CID is 65,535\");\n        }\n        let glyphId = -1;\n        if (isCidToGidMapEmpty) {\n          glyphId = cid;\n        } else if (cidToGidMap[cid] !== undefined) {\n          glyphId = cidToGidMap[cid];\n        }\n        if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      });\n    } else {\n      const cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);\n      const cmapPlatformId = cmapTable.platformId;\n      const cmapEncodingId = cmapTable.encodingId;\n      const cmapMappings = cmapTable.mappings;\n      let baseEncoding = [],\n        forcePostTable = false;\n      if (properties.hasEncoding && (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\")) {\n        baseEncoding = getEncoding(properties.baseEncodingName);\n      }\n      if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) {\n        const glyphsUnicodeMap = getGlyphsUnicode();\n        for (let charCode = 0; charCode < 256; charCode++) {\n          let glyphName;\n          if (this.differences[charCode] !== undefined) {\n            glyphName = this.differences[charCode];\n          } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n            glyphName = baseEncoding[charCode];\n          } else {\n            glyphName = StandardEncoding[charCode];\n          }\n          if (!glyphName) {\n            continue;\n          }\n          const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n          let unicodeOrCharCode;\n          if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n            unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n          } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n            unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n          }\n          if (unicodeOrCharCode === undefined) {\n            if (!properties.glyphNames && properties.hasIncludedToUnicodeMap && !(this.toUnicode instanceof IdentityToUnicodeMap)) {\n              const unicode = this.toUnicode.get(charCode);\n              if (unicode) {\n                unicodeOrCharCode = unicode.codePointAt(0);\n              }\n            }\n            if (unicodeOrCharCode === undefined) {\n              continue;\n            }\n          }\n          for (const mapping of cmapMappings) {\n            if (mapping.charCode !== unicodeOrCharCode) {\n              continue;\n            }\n            charCodeToGlyphId[charCode] = mapping.glyphId;\n            break;\n          }\n        }\n      } else if (cmapPlatformId === 0) {\n        for (const mapping of cmapMappings) {\n          charCodeToGlyphId[mapping.charCode] = mapping.glyphId;\n        }\n        forcePostTable = true;\n      } else if (cmapPlatformId === 3 && cmapEncodingId === 0) {\n        for (const mapping of cmapMappings) {\n          let charCode = mapping.charCode;\n          if (charCode >= 0xf000 && charCode <= 0xf0ff) {\n            charCode &= 0xff;\n          }\n          charCodeToGlyphId[charCode] = mapping.glyphId;\n        }\n      } else {\n        for (const mapping of cmapMappings) {\n          charCodeToGlyphId[mapping.charCode] = mapping.glyphId;\n        }\n      }\n      if (properties.glyphNames && (baseEncoding.length || this.differences.length)) {\n        for (let i = 0; i < 256; ++i) {\n          if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n            continue;\n          }\n          const glyphName = this.differences[i] || baseEncoding[i];\n          if (!glyphName) {\n            continue;\n          }\n          const glyphId = properties.glyphNames.indexOf(glyphName);\n          if (glyphId > 0 && hasGlyph(glyphId)) {\n            charCodeToGlyphId[i] = glyphId;\n          }\n        }\n      }\n      if (!properties.isInternalFont && charCodeToGlyphId[0] === undefined && hasGlyph(0)) {\n        charCodeToGlyphId[0] = 0;\n      }\n    }\n    if (charCodeToGlyphId.length === 0) {\n      charCodeToGlyphId[0] = 0;\n    }\n    const glyphZeroId = dupFirstEntry ? numGlyphsOut - 1 : 0;\n    if (!properties.cssFontInfo) {\n      const newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId, this.toUnicode);\n      this.toFontChar = newMapping.toFontChar;\n      tables.cmap = {\n        tag: \"cmap\",\n        data: createCmapTable(newMapping.charCodeToGlyphId, newMapping.toUnicodeExtraMap, numGlyphsOut)\n      };\n      if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n        tables[\"OS/2\"] = {\n          tag: \"OS/2\",\n          data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n        };\n      }\n    }\n    if (!tables.name) {\n      tables.name = {\n        tag: \"name\",\n        data: createNameTable(this.name)\n      };\n    } else {\n      const [namePrototype, nameRecords] = readNameTable(tables.name);\n      tables.name.data = createNameTable(name, namePrototype);\n      this.psName = namePrototype[0][6] || null;\n      if (!properties.composite) {\n        adjustTrueTypeToUnicode(properties, this.isSymbolicFont, nameRecords);\n      }\n    }\n    const builder = new OpenTypeFileBuilder(header.version);\n    for (const tableTag in tables) {\n      builder.addTable(tableTag, tables[tableTag].data);\n    }\n    return builder.toArray();\n  }\n  convert(fontName, font, properties) {\n    properties.fixedPitch = false;\n    if (properties.builtInEncoding) {\n      adjustType1ToUnicode(properties, properties.builtInEncoding);\n    }\n    const glyphZeroId = font instanceof CFFFont ? font.numGlyphs - 1 : 1;\n    const mapping = font.getGlyphMapping(properties);\n    let newMapping = null;\n    let newCharCodeToGlyphId = mapping;\n    let toUnicodeExtraMap = null;\n    if (!properties.cssFontInfo) {\n      newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId, this.toUnicode);\n      this.toFontChar = newMapping.toFontChar;\n      newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n      toUnicodeExtraMap = newMapping.toUnicodeExtraMap;\n    }\n    const numGlyphs = font.numGlyphs;\n    function getCharCodes(charCodeToGlyphId, glyphId) {\n      let charCodes = null;\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          (charCodes ||= []).push(charCode | 0);\n        }\n      }\n      return charCodes;\n    }\n    function createCharCode(charCodeToGlyphId, glyphId) {\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          return charCode | 0;\n        }\n      }\n      newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n      return newMapping.nextAvailableFontCharCode++;\n    }\n    const seacs = font.seacs;\n    if (newMapping && SEAC_ANALYSIS_ENABLED && seacs?.length) {\n      const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n      const charset = font.getCharset();\n      const seacMap = Object.create(null);\n      for (let glyphId in seacs) {\n        glyphId |= 0;\n        const seac = seacs[glyphId];\n        const baseGlyphName = StandardEncoding[seac[2]];\n        const accentGlyphName = StandardEncoding[seac[3]];\n        const baseGlyphId = charset.indexOf(baseGlyphName);\n        const accentGlyphId = charset.indexOf(accentGlyphName);\n        if (baseGlyphId < 0 || accentGlyphId < 0) {\n          continue;\n        }\n        const accentOffset = {\n          x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n          y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n        };\n        const charCodes = getCharCodes(mapping, glyphId);\n        if (!charCodes) {\n          continue;\n        }\n        for (const charCode of charCodes) {\n          const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n          const baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n          const accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n          seacMap[charCode] = {\n            baseFontCharCode,\n            accentFontCharCode,\n            accentOffset\n          };\n        }\n      }\n      properties.seacMap = seacMap;\n    }\n    const unitsPerEm = properties.fontMatrix ? 1 / Math.max(...properties.fontMatrix.slice(0, 4).map(Math.abs)) : 1000;\n    const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n    builder.addTable(\"CFF \", font.data);\n    builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n    builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs));\n    builder.addTable(\"head\", function fontTableHead() {\n      const dateArr = [0x00, 0x00, 0x00, 0x00, 0x9e, 0x0b, 0x7e, 0x27];\n      const head = new DataBuilder({\n        exactLength: 54\n      });\n      head.setArray([0x00, 0x01, 0x00, 0x00]);\n      head.setArray([0x00, 0x00, 0x10, 0x00]);\n      head.skip(4);\n      head.setArray([0x5f, 0x0f, 0x3c, 0xf5]);\n      head.skip(2);\n      head.setSafeInt16(unitsPerEm);\n      head.setArray(dateArr);\n      head.setArray(dateArr);\n      head.skip(2);\n      head.setSafeInt16(properties.descent);\n      head.setArray([0x0f, 0xff]);\n      head.setSafeInt16(properties.ascent);\n      head.setInt16(properties.italicAngle ? 2 : 0);\n      head.setArray([0x00, 0x11]);\n      head.skip(2 + 2 + 2);\n      return head.data;\n    }());\n    builder.addTable(\"hhea\", function fontTableHhea() {\n      const hhea = new DataBuilder({\n        exactLength: 36\n      });\n      hhea.setArray([0x00, 0x01, 0x00, 0x00]);\n      hhea.setSafeInt16(properties.ascent);\n      hhea.setSafeInt16(properties.descent);\n      hhea.skip(2);\n      hhea.setArray([0xff, 0xff]);\n      hhea.skip(2 + 2 + 2);\n      hhea.setSafeInt16(properties.capHeight);\n      hhea.setSafeInt16(Math.tan(properties.italicAngle) * properties.xHeight);\n      hhea.skip(2 + 2 + 2 + 2 + 2 + 2);\n      hhea.setInt16(numGlyphs);\n      return hhea.data;\n    }());\n    builder.addTable(\"hmtx\", function fontTableHmtx() {\n      const charstrings = font.charstrings;\n      const cffWidths = font.cff?.widths ?? null;\n      const hmtx = new DataBuilder({\n        exactLength: numGlyphs * 4\n      });\n      hmtx.skip(4);\n      for (let i = 1, ii = numGlyphs; i < ii; i++) {\n        let width = 0;\n        if (charstrings) {\n          width = charstrings[i - 1].width || 0;\n        } else if (cffWidths) {\n          width = Math.ceil(cffWidths[i] || 0);\n        }\n        hmtx.setInt16(width);\n        hmtx.skip(2);\n      }\n      return hmtx.data;\n    }());\n    builder.addTable(\"maxp\", function fontTableMaxp() {\n      const maxp = new DataBuilder({\n        exactLength: 6\n      });\n      maxp.setArray([0x00, 0x00, 0x50, 0x00]);\n      maxp.setInt16(numGlyphs);\n      return maxp.data;\n    }());\n    builder.addTable(\"name\", createNameTable(fontName));\n    builder.addTable(\"post\", createPostTable(properties));\n    return builder.toArray();\n  }\n  get _spaceWidth() {\n    const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n    let width;\n    for (const glyphName of possibleSpaceReplacements) {\n      if (glyphName in this.widths) {\n        width = this.widths[glyphName];\n        break;\n      }\n      const glyphsUnicodeMap = getGlyphsUnicode();\n      const glyphUnicode = glyphsUnicodeMap[glyphName];\n      let charcode = 0;\n      if (this.composite && this.cMap.contains(glyphUnicode)) {\n        charcode = this.cMap.lookup(glyphUnicode);\n        if (typeof charcode === \"string\") {\n          charcode = convertCidString(glyphUnicode, charcode);\n        }\n      }\n      if (!charcode && this.toUnicode) {\n        charcode = this.toUnicode.charCodeOf(glyphUnicode);\n      }\n      if (charcode <= 0) {\n        charcode = glyphUnicode;\n      }\n      width = this.widths[charcode];\n      if (width) {\n        break;\n      }\n    }\n    return shadow(this, \"_spaceWidth\", width || this.defaultWidth);\n  }\n  _charToGlyph(charcode, isSpace = false) {\n    let glyph = this.#glyphCache.get(charcode);\n    if (glyph?.isSpace === isSpace) {\n      return glyph;\n    }\n    let fontCharCode, width, operatorListId;\n    let widthCode = charcode;\n    if (this.cMap?.contains(charcode)) {\n      widthCode = this.cMap.lookup(charcode);\n      if (typeof widthCode === \"string\") {\n        widthCode = convertCidString(charcode, widthCode);\n      }\n    }\n    width = this.widths[widthCode];\n    if (typeof width !== \"number\") {\n      width = this.defaultWidth;\n    }\n    const vmetric = this.vmetrics?.[widthCode] || this.defaultVMetrics;\n    let unicode = this.toUnicode.get(charcode) || charcode;\n    if (typeof unicode === \"number\") {\n      unicode = String.fromCharCode(unicode);\n    }\n    let isInFont = this.toFontChar[charcode] !== undefined;\n    fontCharCode = this.toFontChar[charcode] || charcode;\n    if (this.missingFile) {\n      const glyphName = this.differences[charcode] || this.defaultEncoding[charcode];\n      if ((glyphName === \".notdef\" || glyphName === \"\") && this.type === \"Type1\") {\n        fontCharCode = 0x20;\n        if (glyphName === \"\") {\n          width ||= this._spaceWidth;\n          unicode = String.fromCharCode(fontCharCode);\n        }\n      }\n      fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n    }\n    if (this.isType3Font) {\n      operatorListId = fontCharCode;\n    }\n    let accent = null;\n    if (this.seacMap?.[charcode]) {\n      isInFont = true;\n      const seac = this.seacMap[charcode];\n      fontCharCode = seac.baseFontCharCode;\n      accent = {\n        fontChar: String.fromCodePoint(seac.accentFontCharCode),\n        offset: seac.accentOffset\n      };\n    }\n    let fontChar = \"\";\n    if (typeof fontCharCode === \"number\") {\n      if (fontCharCode <= 0x10ffff) {\n        fontChar = String.fromCodePoint(fontCharCode);\n      } else {\n        warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n      }\n    }\n    if (this.missingFile && this.vertical && fontChar.length === 1) {\n      const vertical = getVerticalPresentationForm()[fontChar.charCodeAt(0)];\n      if (vertical) {\n        fontChar = unicode = String.fromCharCode(vertical);\n      }\n    }\n    glyph = new fonts_Glyph(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n    this.#glyphCache.set(charcode, glyph);\n    return glyph;\n  }\n  charsToGlyphs(chars) {\n    let glyphs = this.#charsCache.get(chars);\n    if (glyphs) {\n      return glyphs;\n    }\n    glyphs = [];\n    if (this.cMap) {\n      const c = Object.create(null),\n        ii = chars.length;\n      let i = 0;\n      while (i < ii) {\n        this.cMap.readCharCode(chars, i, c);\n        const {\n          charcode,\n          length\n        } = c;\n        i += length;\n        const glyph = this._charToGlyph(charcode, length === 1 && chars.charCodeAt(i - 1) === 0x20);\n        glyphs.push(glyph);\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        const charcode = chars.charCodeAt(i);\n        const glyph = this._charToGlyph(charcode, charcode === 0x20);\n        glyphs.push(glyph);\n      }\n    }\n    this.#charsCache.set(chars, glyphs);\n    return glyphs;\n  }\n  getCharPositions(chars) {\n    const positions = [];\n    if (this.cMap) {\n      const c = Object.create(null);\n      let i = 0;\n      while (i < chars.length) {\n        this.cMap.readCharCode(chars, i, c);\n        const length = c.length;\n        positions.push([i, i + length]);\n        i += length;\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        positions.push([i, i + 1]);\n      }\n    }\n    return positions;\n  }\n  get glyphCacheValues() {\n    return this.#glyphCache.values();\n  }\n  encodeString(str) {\n    const buffers = [];\n    const currentBuf = [];\n    const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n    const getCharCode = this.toUnicode instanceof IdentityToUnicodeMap ? unicode => this.toUnicode.charCodeOf(unicode) : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n    for (let i = 0, ii = str.length; i < ii; i++) {\n      const unicode = str.codePointAt(i);\n      if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n        i++;\n      }\n      if (this.toUnicode) {\n        const charCode = getCharCode(unicode);\n        if (charCode !== -1) {\n          if (hasCurrentBufErrors()) {\n            buffers.push(currentBuf.join(\"\"));\n            currentBuf.length = 0;\n          }\n          const charCodeLength = this.cMap ? this.cMap.getCharCodeLength(charCode) : 1;\n          for (let j = charCodeLength - 1; j >= 0; j--) {\n            currentBuf.push(String.fromCharCode(charCode >> 8 * j & 0xff));\n          }\n          continue;\n        }\n      }\n      if (!hasCurrentBufErrors()) {\n        buffers.push(currentBuf.join(\"\"));\n        currentBuf.length = 0;\n      }\n      currentBuf.push(String.fromCodePoint(unicode));\n    }\n    buffers.push(currentBuf.join(\"\"));\n    return buffers;\n  }\n}\nclass ErrorFont {\n  constructor(error) {\n    this.error = error;\n    this.loadedName = \"g_font_error\";\n    this.missingFile = true;\n  }\n  charsToGlyphs() {\n    return [];\n  }\n  encodeString(chars) {\n    return [chars];\n  }\n  exportData() {\n    return {\n      error: this.error\n    };\n  }\n}\n\n;// ./src/core/calibri_factors.js\nconst CalibriBoldFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst CalibriBoldMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nconst CalibriBoldItalicFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst CalibriBoldItalicMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nconst CalibriItalicFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118, 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst CalibriItalicMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nconst CalibriRegularFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122, 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst CalibriRegularMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\n\n;// ./src/core/helvetica_factors.js\nconst HelveticaBoldFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057, 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst HelveticaBoldMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nconst HelveticaBoldItalicFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014, 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst HelveticaBoldItalicMetrics = {\n  lineHeight: 1.35,\n  lineGap: 0.2\n};\nconst HelveticaItalicFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006, 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst HelveticaItalicMetrics = {\n  lineHeight: 1.35,\n  lineGap: 0.2\n};\nconst HelveticaRegularFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst HelveticaRegularMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\n\n;// ./src/core/liberationsans_widths.js\nconst LiberationSansBoldWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];\nconst LiberationSansBoldMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nconst LiberationSansBoldItalicWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600, 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];\nconst LiberationSansBoldItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nconst LiberationSansItalicWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];\nconst LiberationSansItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nconst LiberationSansRegularWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];\nconst LiberationSansRegularMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\n\n;// ./src/core/myriadpro_factors.js\nconst MyriadProBoldFactors = [1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst MyriadProBoldMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nconst MyriadProBoldItalicFactors = [1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst MyriadProBoldItalicMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nconst MyriadProItalicFactors = [1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832, 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst MyriadProItalicMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nconst MyriadProRegularFactors = [1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241, 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst MyriadProRegularMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\n\n;// ./src/core/segoeui_factors.js\nconst SegoeuiBoldFactors = [1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst SegoeuiBoldMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nconst SegoeuiBoldItalicFactors = [1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416, 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst SegoeuiBoldItalicMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nconst SegoeuiItalicFactors = [1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst SegoeuiItalicMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nconst SegoeuiRegularFactors = [1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572, 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196, 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nconst SegoeuiRegularMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\n\n;// ./src/core/xfa_fonts.js\n\n\n\n\n\n\n\n\n\n\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n  t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: MyriadProRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: MyriadProRegularMetrics\n  };\n  t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: MyriadProBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: MyriadProBoldMetrics\n  };\n  t[\"MyriadPro-It\"] = t[\"MyriadPro-Italic\"] = t[\"PdfJS-Fallback-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: MyriadProItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: MyriadProItalicMetrics\n  };\n  t[\"MyriadPro-BoldIt\"] = t[\"MyriadPro-BoldItalic\"] = t[\"PdfJS-Fallback-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: MyriadProBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: MyriadProBoldItalicMetrics\n  };\n  t.ArialMT = t.Arial = t[\"Arial-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping\n  };\n  t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping\n  };\n  t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping\n  };\n  t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping\n  };\n  t[\"Calibri-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: CalibriRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: CalibriRegularMetrics\n  };\n  t[\"Calibri-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: CalibriBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: CalibriBoldMetrics\n  };\n  t[\"Calibri-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: CalibriItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: CalibriItalicMetrics\n  };\n  t[\"Calibri-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: CalibriBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: CalibriBoldItalicMetrics\n  };\n  t[\"Segoeui-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: SegoeuiRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: SegoeuiRegularMetrics\n  };\n  t[\"Segoeui-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: SegoeuiBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: SegoeuiBoldMetrics\n  };\n  t[\"Segoeui-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: SegoeuiItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: SegoeuiItalicMetrics\n  };\n  t[\"Segoeui-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: SegoeuiBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: SegoeuiBoldItalicMetrics\n  };\n  t[\"Helvetica-Regular\"] = t.Helvetica = {\n    name: \"LiberationSans-Regular\",\n    factors: HelveticaRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: HelveticaRegularMetrics\n  };\n  t[\"Helvetica-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: HelveticaBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: HelveticaBoldMetrics\n  };\n  t[\"Helvetica-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: HelveticaItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: HelveticaItalicMetrics\n  };\n  t[\"Helvetica-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: HelveticaBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: HelveticaBoldItalicMetrics\n  };\n});\nfunction getXfaFontName(name) {\n  const fontName = normalizeFontName(name);\n  const fontMap = getXFAFontMap();\n  return fontMap[fontName];\n}\nfunction getXfaFontWidths(name) {\n  const info = getXfaFontName(name);\n  if (!info) {\n    return null;\n  }\n  const {\n    baseWidths,\n    baseMapping,\n    factors\n  } = info;\n  const rescaledBaseWidths = !factors ? baseWidths : baseWidths.map((w, i) => w * factors[i]);\n  let currentCode = -2;\n  let currentArray;\n  const newWidths = [];\n  for (const [unicode, glyphIndex] of baseMapping.map((charUnicode, index) => [charUnicode, index]).sort(([unicode1], [unicode2]) => unicode1 - unicode2)) {\n    if (unicode === -1) {\n      continue;\n    }\n    if (unicode === currentCode + 1) {\n      currentArray.push(rescaledBaseWidths[glyphIndex]);\n      currentCode += 1;\n    } else {\n      currentCode = unicode;\n      currentArray = [rescaledBaseWidths[glyphIndex]];\n      newWidths.push(unicode, currentArray);\n    }\n  }\n  return newWidths;\n}\nfunction getXfaFontDict(name) {\n  const widths = getXfaFontWidths(name);\n  const dict = new Dict(null);\n  dict.set(\"BaseFont\", Name.get(name));\n  dict.set(\"Type\", Name.get(\"Font\"));\n  dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n  dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n  dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n  dict.set(\"W\", widths);\n  dict.set(\"FirstChar\", widths[0]);\n  dict.set(\"LastChar\", widths.at(-2) + widths.at(-1).length - 1);\n  const descriptor = new Dict(null);\n  dict.set(\"FontDescriptor\", descriptor);\n  const systemInfo = new Dict(null);\n  systemInfo.set(\"Ordering\", \"Identity\");\n  systemInfo.set(\"Registry\", \"Adobe\");\n  systemInfo.set(\"Supplement\", 0);\n  dict.set(\"CIDSystemInfo\", systemInfo);\n  return dict;\n}\n\n;// ./src/core/postscript/lexer.js\nconst TOKEN = {\n  number: 0,\n  lbrace: 1,\n  rbrace: 2,\n  true: 3,\n  false: 4,\n  add: 5,\n  sub: 6,\n  mul: 7,\n  div: 8,\n  idiv: 9,\n  mod: 10,\n  exp: 11,\n  eq: 12,\n  ne: 13,\n  gt: 14,\n  ge: 15,\n  lt: 16,\n  le: 17,\n  and: 18,\n  or: 19,\n  xor: 20,\n  bitshift: 21,\n  abs: 22,\n  neg: 23,\n  ceiling: 24,\n  floor: 25,\n  round: 26,\n  truncate: 27,\n  not: 28,\n  sqrt: 29,\n  sin: 30,\n  cos: 31,\n  ln: 32,\n  log: 33,\n  atan: 34,\n  cvi: 35,\n  cvr: 36,\n  dup: 37,\n  exch: 38,\n  pop: 39,\n  copy: 40,\n  index: 41,\n  roll: 42,\n  if: 43,\n  ifelse: 44,\n  eof: 45,\n  min: 46,\n  max: 47\n};\nclass Token {\n  constructor(id, value = null) {\n    this.id = id;\n    this.value = value;\n  }\n}\nclass lexer_Lexer {\n  static #singletons = null;\n  static #operatorSingletons = null;\n  static #initSingletons() {\n    const singletons = Object.create(null);\n    const operatorSingletons = Object.create(null);\n    for (const [name, id] of Object.entries(TOKEN)) {\n      if (name === \"number\") {\n        continue;\n      }\n      const isOperator = id >= TOKEN.true && id <= TOKEN.ifelse;\n      const token = new Token(id, isOperator ? name : null);\n      singletons[name] = token;\n      if (isOperator) {\n        operatorSingletons[name] = token;\n      }\n    }\n    this.#singletons = singletons;\n    this.#operatorSingletons = operatorSingletons;\n  }\n  constructor(data) {\n    if (!lexer_Lexer.#singletons) {\n      lexer_Lexer.#initSingletons();\n    }\n    this.data = data;\n    this.pos = 0;\n    this.len = data.length;\n    this._numberPattern = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?/iy;\n    this._identifierPattern = /[a-z]+/y;\n  }\n  _skipComment() {\n    const lf = this.data.indexOf(\"\\n\", this.pos);\n    const cr = this.data.indexOf(\"\\r\", this.pos);\n    const eol = Math.min(lf < 0 ? this.len : lf, cr < 0 ? this.len : cr);\n    this.pos = Math.min(eol + 1, this.len);\n  }\n  _getNumber() {\n    this._numberPattern.lastIndex = this.pos;\n    const match = this._numberPattern.exec(this.data);\n    if (!match) {\n      return new Token(TOKEN.number, 0);\n    }\n    const number = parseFloat(match[0]);\n    if (!Number.isFinite(number)) {\n      return new Token(TOKEN.number, 0);\n    }\n    this.pos = this._numberPattern.lastIndex;\n    return new Token(TOKEN.number, number);\n  }\n  _getOperator() {\n    this._identifierPattern.lastIndex = this.pos;\n    const match = this._identifierPattern.exec(this.data);\n    if (!match) {\n      return new Token(TOKEN.number, 0);\n    }\n    this.pos = this._identifierPattern.lastIndex;\n    const op = match[0];\n    const token = lexer_Lexer.#operatorSingletons[op];\n    if (!token) {\n      return new Token(TOKEN.number, 0);\n    }\n    return token;\n  }\n  next() {\n    while (this.pos < this.len) {\n      const ch = this.data.charCodeAt(this.pos++);\n      switch (ch) {\n        case 0x00:\n        case 0x09:\n        case 0x0a:\n        case 0x0c:\n        case 0x0d:\n        case 0x20:\n          break;\n        case 0x25:\n          this._skipComment();\n          break;\n        case 0x7b:\n          return lexer_Lexer.#singletons.lbrace;\n        case 0x7d:\n          return lexer_Lexer.#singletons.rbrace;\n        case 0x2b:\n        case 0x2d:\n          this.pos--;\n          return this._getNumber();\n        case 0x2e:\n          this.pos--;\n          return this._getNumber();\n        default:\n          if (ch >= 0x30 && ch <= 0x39) {\n            this.pos--;\n            return this._getNumber();\n          }\n          if (ch >= 0x61 && ch <= 0x7a) {\n            this.pos--;\n            return this._getOperator();\n          }\n          return new Token(TOKEN.number, 0);\n      }\n    }\n    return lexer_Lexer.#singletons.eof;\n  }\n}\n\n;// ./src/core/postscript/ast.js\n\n\n\n\n\n\n\n\n\n\n\n\nconst PS_VALUE_TYPE = {\n  numeric: 0,\n  boolean: 1,\n  unknown: 2\n};\nconst PS_NODE = {\n  program: 0,\n  block: 1,\n  number: 2,\n  operator: 3,\n  if: 4,\n  ifelse: 5,\n  arg: 6,\n  const: 7,\n  unary: 8,\n  binary: 9,\n  ternary: 10\n};\nclass PsNode {\n  constructor(type) {\n    this.type = type;\n  }\n}\nclass PsProgram extends PsNode {\n  constructor(body) {\n    super(PS_NODE.program);\n    this.body = body;\n  }\n}\nclass PsBlock extends PsNode {\n  constructor(instructions) {\n    super(PS_NODE.block);\n    this.instructions = instructions;\n  }\n}\nclass PsNumber extends PsNode {\n  constructor(value) {\n    super(PS_NODE.number);\n    this.value = value;\n  }\n}\nclass PsOperator extends PsNode {\n  constructor(op) {\n    super(PS_NODE.operator);\n    this.op = op;\n  }\n}\nclass PsIf extends PsNode {\n  constructor(then) {\n    super(PS_NODE.if);\n    this.then = then;\n  }\n}\nclass PsIfElse extends PsNode {\n  constructor(then, otherwise) {\n    super(PS_NODE.ifelse);\n    this.then = then;\n    this.otherwise = otherwise;\n  }\n}\nclass PsArgNode extends PsNode {\n  constructor(index) {\n    super(PS_NODE.arg);\n    this.index = index;\n    this.valueType = PS_VALUE_TYPE.numeric;\n  }\n}\nclass PsConstNode extends PsNode {\n  constructor(value) {\n    super(PS_NODE.const);\n    this.value = value;\n    this.valueType = typeof value === \"boolean\" ? PS_VALUE_TYPE.boolean : PS_VALUE_TYPE.numeric;\n  }\n}\nclass PsUnaryNode extends PsNode {\n  constructor(op, operand, valueType = PS_VALUE_TYPE.unknown) {\n    super(PS_NODE.unary);\n    this.op = op;\n    this.operand = operand;\n    this.valueType = valueType;\n  }\n}\nclass PsBinaryNode extends PsNode {\n  constructor(op, first, second, valueType = PS_VALUE_TYPE.unknown) {\n    super(PS_NODE.binary);\n    this.op = op;\n    this.first = first;\n    this.second = second;\n    this.valueType = valueType;\n  }\n}\nclass PsTernaryNode extends PsNode {\n  constructor(cond, then, otherwise, valueType = PS_VALUE_TYPE.unknown) {\n    super(PS_NODE.ternary);\n    this.cond = cond;\n    this.then = then;\n    this.otherwise = otherwise;\n    this.valueType = valueType;\n  }\n}\nclass ast_Parser {\n  constructor(lexer) {\n    this.lexer = lexer;\n    this._token = null;\n  }\n  static _isRegularOperator(id) {\n    return id >= TOKEN.true && id < TOKEN.if;\n  }\n  _advance() {\n    this._token = this.lexer.next();\n  }\n  _expect(id) {\n    if (this._token.id !== id) {\n      throw new FormatError(`PostScript function: expected token id ${id}, got ${this._token.id}.`);\n    }\n    const tok = this._token;\n    this._advance();\n    return tok;\n  }\n  parse() {\n    this._advance();\n    this._expect(TOKEN.lbrace);\n    const block = this._parseBlock();\n    this._expect(TOKEN.rbrace);\n    if (this._token.id !== TOKEN.eof) {\n      warn(\"PostScript function: unexpected content after closing brace.\");\n    }\n    return new PsProgram(block);\n  }\n  _parseBlock() {\n    const instructions = [];\n    while (true) {\n      const tok = this._token;\n      switch (tok.id) {\n        case TOKEN.number:\n          instructions.push(new PsNumber(tok.value));\n          this._advance();\n          break;\n        case TOKEN.lbrace:\n          {\n            this._advance();\n            const thenBlock = this._parseBlock();\n            this._expect(TOKEN.rbrace);\n            if (this._token.id === TOKEN.if) {\n              this._advance();\n              instructions.push(new PsIf(thenBlock));\n            } else if (this._token.id === TOKEN.lbrace) {\n              this._advance();\n              const elseBlock = this._parseBlock();\n              this._expect(TOKEN.rbrace);\n              this._expect(TOKEN.ifelse);\n              instructions.push(new PsIfElse(thenBlock, elseBlock));\n            } else {\n              throw new FormatError(\"PostScript function: a procedure block must be followed by 'if' or '{…} ifelse'.\");\n            }\n            break;\n          }\n        case TOKEN.rbrace:\n        case TOKEN.eof:\n          return new PsBlock(instructions);\n        case TOKEN.if:\n        case TOKEN.ifelse:\n          throw new FormatError(`PostScript function: unexpected '${tok.value}' operator.`);\n        default:\n          if (ast_Parser._isRegularOperator(tok.id)) {\n            instructions.push(new PsOperator(tok.id));\n            this._advance();\n            break;\n          }\n          throw new FormatError(`PostScript function: unexpected token id ${tok.id}.`);\n      }\n    }\n  }\n}\nfunction parsePostScriptFunction(source) {\n  return new ast_Parser(new lexer_Lexer(source)).parse();\n}\nfunction _nodesEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (a.type !== b.type) {\n    return false;\n  }\n  switch (a.type) {\n    case PS_NODE.arg:\n      return a.index === b.index;\n    case PS_NODE.const:\n      return a.value === b.value;\n    case PS_NODE.unary:\n      return a.op === b.op && _nodesEqual(a.operand, b.operand);\n    case PS_NODE.binary:\n      return a.op === b.op && _nodesEqual(a.first, b.first) && _nodesEqual(a.second, b.second);\n    case PS_NODE.ternary:\n      return _nodesEqual(a.cond, b.cond) && _nodesEqual(a.then, b.then) && _nodesEqual(a.otherwise, b.otherwise);\n    default:\n      return false;\n  }\n}\nfunction _evalBinaryConst(op, a, b) {\n  switch (op) {\n    case TOKEN.add:\n      return a + b;\n    case TOKEN.sub:\n      return a - b;\n    case TOKEN.mul:\n      return a * b;\n    case TOKEN.div:\n      return b !== 0 ? a / b : 0;\n    case TOKEN.idiv:\n      return b !== 0 ? Math.trunc(a / b) : 0;\n    case TOKEN.mod:\n      return b !== 0 ? a - Math.trunc(a / b) * b : 0;\n    case TOKEN.exp:\n      {\n        const r = a ** b;\n        return Number.isFinite(r) ? r : undefined;\n      }\n    case TOKEN.atan:\n      {\n        let deg = Math.atan2(a, b) * (180 / Math.PI);\n        if (deg < 0) {\n          deg += 360;\n        }\n        return deg;\n      }\n    case TOKEN.eq:\n      return a === b;\n    case TOKEN.ne:\n      return a !== b;\n    case TOKEN.gt:\n      return a > b;\n    case TOKEN.ge:\n      return a >= b;\n    case TOKEN.lt:\n      return a < b;\n    case TOKEN.le:\n      return a <= b;\n    case TOKEN.and:\n      return typeof a === \"boolean\" ? a && b : a & b | 0;\n    case TOKEN.or:\n      return typeof a === \"boolean\" ? a || b : a | b | 0;\n    case TOKEN.xor:\n      return typeof a === \"boolean\" ? a !== b : a ^ b | 0;\n    case TOKEN.bitshift:\n      return b >= 0 ? a << b | 0 : a >> -b | 0;\n    case TOKEN.min:\n      return Math.min(a, b);\n    case TOKEN.max:\n      return Math.max(a, b);\n    default:\n      return undefined;\n  }\n}\nfunction _evalUnaryConst(op, v) {\n  switch (op) {\n    case TOKEN.abs:\n      return Math.abs(v);\n    case TOKEN.neg:\n      return -v;\n    case TOKEN.ceiling:\n      return Math.ceil(v);\n    case TOKEN.floor:\n      return Math.floor(v);\n    case TOKEN.round:\n      return Math.round(v);\n    case TOKEN.truncate:\n      return Math.trunc(v);\n    case TOKEN.sqrt:\n      {\n        const r = Math.sqrt(v);\n        return Number.isFinite(r) ? r : undefined;\n      }\n    case TOKEN.sin:\n      return Math.sin(v % 360 * Math.PI / 180);\n    case TOKEN.cos:\n      return Math.cos(v % 360 * Math.PI / 180);\n    case TOKEN.ln:\n      {\n        const r = Math.log(v);\n        return Number.isFinite(r) ? r : undefined;\n      }\n    case TOKEN.log:\n      {\n        const r = Math.log10(v);\n        return Number.isFinite(r) ? r : undefined;\n      }\n    case TOKEN.cvi:\n      return Math.trunc(v);\n    case TOKEN.cvr:\n      return v;\n    case TOKEN.not:\n      return typeof v === \"boolean\" ? !v : ~v;\n    default:\n      return undefined;\n  }\n}\nconst MAX_STACK_SIZE = 100;\nfunction _unaryValueType(op, operandType) {\n  return op === TOKEN.not ? operandType : PS_VALUE_TYPE.numeric;\n}\nfunction _binaryValueType(op, firstType, secondType) {\n  switch (op) {\n    case TOKEN.eq:\n    case TOKEN.ne:\n    case TOKEN.gt:\n    case TOKEN.ge:\n    case TOKEN.lt:\n    case TOKEN.le:\n      return PS_VALUE_TYPE.boolean;\n    case TOKEN.and:\n    case TOKEN.or:\n    case TOKEN.xor:\n      return firstType === secondType && firstType !== PS_VALUE_TYPE.unknown ? firstType : PS_VALUE_TYPE.unknown;\n    default:\n      return PS_VALUE_TYPE.numeric;\n  }\n}\nclass PSStackToTree {\n  static #binaryOps = null;\n  static #unaryOps = null;\n  static #idempotentUnary = null;\n  static #negatedComparison = null;\n  static #init() {\n    this.#binaryOps = new Set([TOKEN.add, TOKEN.sub, TOKEN.mul, TOKEN.div, TOKEN.idiv, TOKEN.mod, TOKEN.exp, TOKEN.atan, TOKEN.eq, TOKEN.ne, TOKEN.gt, TOKEN.ge, TOKEN.lt, TOKEN.le, TOKEN.and, TOKEN.or, TOKEN.xor, TOKEN.bitshift]);\n    this.#unaryOps = new Set([TOKEN.abs, TOKEN.neg, TOKEN.ceiling, TOKEN.floor, TOKEN.round, TOKEN.truncate, TOKEN.sqrt, TOKEN.sin, TOKEN.cos, TOKEN.ln, TOKEN.log, TOKEN.cvi, TOKEN.cvr, TOKEN.not]);\n    this.#idempotentUnary = new Set([TOKEN.abs, TOKEN.ceiling, TOKEN.cvi, TOKEN.cvr, TOKEN.floor, TOKEN.round, TOKEN.truncate]);\n    this.#negatedComparison = new Map([[TOKEN.eq, TOKEN.ne], [TOKEN.ne, TOKEN.eq], [TOKEN.lt, TOKEN.ge], [TOKEN.le, TOKEN.gt], [TOKEN.gt, TOKEN.le], [TOKEN.ge, TOKEN.lt]]);\n  }\n  evaluate(program, numInputs) {\n    if (!PSStackToTree.#binaryOps) {\n      PSStackToTree.#init();\n    }\n    this._failed = false;\n    if (numInputs > MAX_STACK_SIZE) {\n      return null;\n    }\n    const stack = [];\n    for (let i = 0; i < numInputs; i++) {\n      stack.push(new PsArgNode(i));\n    }\n    this._evalBlock(program.body, stack);\n    if (this._failed) {\n      return null;\n    }\n    PSStackToTree.#markShared(stack);\n    return stack;\n  }\n  static #markShared(outputs) {\n    const refCount = new Map();\n    const visit = node => {\n      if (!node || node.type === PS_NODE.arg || node.type === PS_NODE.const) {\n        return;\n      }\n      const prev = refCount.get(node) ?? 0;\n      refCount.set(node, prev + 1);\n      if (prev > 0) {\n        return;\n      }\n      switch (node.type) {\n        case PS_NODE.unary:\n          visit(node.operand);\n          break;\n        case PS_NODE.binary:\n          visit(node.first);\n          visit(node.second);\n          break;\n        case PS_NODE.ternary:\n          visit(node.cond);\n          visit(node.then);\n          visit(node.otherwise);\n          break;\n      }\n    };\n    for (const output of outputs) {\n      visit(output);\n    }\n    for (const [node, count] of refCount) {\n      if (count > 1) {\n        node.shared = true;\n        node.sharedCount = count;\n      }\n    }\n  }\n  _evalBlock(block, stack) {\n    this._evalBlockFrom(block.instructions, 0, stack);\n  }\n  _evalBlockFrom(instructions, startIdx, stack) {\n    for (let idx = startIdx; idx < instructions.length; idx++) {\n      if (this._failed) {\n        break;\n      }\n      const instr = instructions[idx];\n      switch (instr.type) {\n        case PS_NODE.number:\n          stack.push(new PsConstNode(instr.value));\n          if (stack.length > MAX_STACK_SIZE) {\n            this._failed = true;\n          }\n          break;\n        case PS_NODE.operator:\n          this._evalOp(instr.op, stack);\n          break;\n        case PS_NODE.if:\n          {\n            if (stack.length < 1) {\n              this._failed = true;\n              break;\n            }\n            const cond = stack.pop();\n            const saved = stack.slice();\n            this._evalBlock(instr.then, stack);\n            if (this._failed) {\n              break;\n            }\n            if (stack.length === saved.length) {\n              for (let i = 0; i < stack.length; i++) {\n                if (stack[i] !== saved[i]) {\n                  stack[i] = this._makeTernary(cond, stack[i], saved[i]);\n                }\n              }\n            } else if (stack.length > saved.length) {\n              if (cond.type === PS_NODE.const) {\n                if (!cond.value) {\n                  stack.length = 0;\n                  stack.push(...saved);\n                }\n                break;\n              }\n              const trueStack = stack.slice();\n              this._evalBlockFrom(instructions, idx + 1, trueStack);\n              if (this._failed) {\n                break;\n              }\n              const falseStack = saved;\n              this._evalBlockFrom(instructions, idx + 1, falseStack);\n              if (this._failed) {\n                break;\n              }\n              if (trueStack.length !== falseStack.length) {\n                const zero = new PsConstNode(0);\n                while (trueStack.length < falseStack.length) {\n                  trueStack.push(zero);\n                }\n                while (falseStack.length < trueStack.length) {\n                  falseStack.push(zero);\n                }\n              }\n              stack.length = 0;\n              for (let i = 0; i < trueStack.length; i++) {\n                stack.push(this._makeTernary(cond, trueStack[i], falseStack[i]));\n              }\n              return;\n            } else {\n              this._failed = true;\n            }\n            break;\n          }\n        case PS_NODE.ifelse:\n          {\n            if (stack.length < 1) {\n              this._failed = true;\n              break;\n            }\n            const cond = stack.pop();\n            const snapshot = stack.slice();\n            const thenStack = snapshot.slice();\n            this._evalBlock(instr.then, thenStack);\n            if (this._failed) {\n              break;\n            }\n            const elseStack = snapshot.slice();\n            this._evalBlock(instr.otherwise, elseStack);\n            if (this._failed) {\n              break;\n            }\n            if (thenStack.length !== elseStack.length) {\n              const zero = new PsConstNode(0);\n              while (thenStack.length < elseStack.length) {\n                thenStack.push(zero);\n              }\n              while (elseStack.length < thenStack.length) {\n                elseStack.push(zero);\n              }\n            }\n            stack.length = 0;\n            for (let i = 0; i < thenStack.length; i++) {\n              stack.push(this._makeTernary(cond, thenStack[i], elseStack[i]));\n            }\n            break;\n          }\n      }\n    }\n  }\n  _evalOp(op, stack) {\n    if (PSStackToTree.#binaryOps.has(op)) {\n      if (stack.length < 2) {\n        this._failed = true;\n        return;\n      }\n      const first = stack.pop();\n      const second = stack.pop();\n      stack.push(this._makeBinary(op, first, second));\n      return;\n    }\n    if (PSStackToTree.#unaryOps.has(op)) {\n      if (stack.length < 1) {\n        this._failed = true;\n        return;\n      }\n      stack.push(this._makeUnary(op, stack.pop()));\n      return;\n    }\n    switch (op) {\n      case TOKEN.true:\n        stack.push(new PsConstNode(true));\n        if (stack.length > MAX_STACK_SIZE) {\n          this._failed = true;\n        }\n        break;\n      case TOKEN.false:\n        stack.push(new PsConstNode(false));\n        if (stack.length > MAX_STACK_SIZE) {\n          this._failed = true;\n        }\n        break;\n      case TOKEN.dup:\n        if (stack.length < 1) {\n          this._failed = true;\n          break;\n        }\n        stack.push(stack.at(-1));\n        if (stack.length > MAX_STACK_SIZE) {\n          this._failed = true;\n        }\n        break;\n      case TOKEN.exch:\n        {\n          if (stack.length < 2) {\n            this._failed = true;\n            break;\n          }\n          const a = stack.pop();\n          const b = stack.pop();\n          stack.push(a, b);\n          break;\n        }\n      case TOKEN.pop:\n        if (stack.length < 1) {\n          this._failed = true;\n          break;\n        }\n        stack.pop();\n        break;\n      case TOKEN.copy:\n        {\n          if (stack.length < 1) {\n            this._failed = true;\n            break;\n          }\n          const nNode = stack.pop();\n          if (nNode.type === PS_NODE.const) {\n            const n = nNode.value | 0;\n            if (n === 0) {} else if (n < 0 || n > stack.length) {\n              this._failed = true;\n            } else {\n              stack.push(...stack.slice(-n));\n              if (stack.length > MAX_STACK_SIZE) {\n                this._failed = true;\n              }\n            }\n          } else {\n            this._failed = true;\n          }\n          break;\n        }\n      case TOKEN.index:\n        {\n          if (stack.length < 1) {\n            this._failed = true;\n            break;\n          }\n          const nNode = stack.pop();\n          if (nNode.type === PS_NODE.const) {\n            const n = nNode.value | 0;\n            if (n < 0 || n >= stack.length) {\n              this._failed = true;\n            } else {\n              stack.push(stack.at(-n - 1));\n            }\n          } else {\n            this._failed = true;\n          }\n          break;\n        }\n      case TOKEN.roll:\n        {\n          if (stack.length < 2) {\n            this._failed = true;\n            break;\n          }\n          const jNode = stack.pop();\n          const nNode = stack.pop();\n          if (nNode.type === PS_NODE.const && jNode.type === PS_NODE.const) {\n            const n = nNode.value | 0;\n            if (n === 0) {} else if (n < 0 || n > stack.length) {\n              this._failed = true;\n            } else {\n              const j = ((jNode.value | 0) % n + n) % n;\n              if (j > 0) {\n                const slice = stack.splice(-n, n);\n                stack.push(...slice.slice(n - j), ...slice.slice(0, n - j));\n              }\n            }\n          } else {\n            this._failed = true;\n          }\n          break;\n        }\n      default:\n        this._failed = true;\n        break;\n    }\n  }\n  _makeBinary(op, first, second) {\n    if (first.type === PS_NODE.const && second.type === PS_NODE.const) {\n      const v = _evalBinaryConst(op, second.value, first.value);\n      if (v !== undefined) {\n        return new PsConstNode(v);\n      }\n    }\n    if (_nodesEqual(first, second)) {\n      switch (op) {\n        case TOKEN.sub:\n          return new PsConstNode(0);\n        case TOKEN.xor:\n          return new PsConstNode(first.valueType === PS_VALUE_TYPE.boolean ? false : 0);\n        case TOKEN.and:\n        case TOKEN.or:\n          return first;\n        case TOKEN.min:\n        case TOKEN.max:\n          return first;\n        case TOKEN.eq:\n        case TOKEN.ge:\n        case TOKEN.le:\n          return new PsConstNode(true);\n        case TOKEN.ne:\n        case TOKEN.gt:\n        case TOKEN.lt:\n          return new PsConstNode(false);\n      }\n    }\n    if (first.type === PS_NODE.const) {\n      const b = first.value;\n      switch (op) {\n        case TOKEN.add:\n          if (b === 0) {\n            return second;\n          }\n          break;\n        case TOKEN.sub:\n          if (b === 0) {\n            return second;\n          }\n          break;\n        case TOKEN.mul:\n          if (b === 1) {\n            return second;\n          }\n          if (b === 0) {\n            return first;\n          }\n          if (b === -1) {\n            return this._makeUnary(TOKEN.neg, second);\n          }\n          break;\n        case TOKEN.div:\n          if (b !== 0) {\n            return this._makeBinary(TOKEN.mul, new PsConstNode(1 / b), second);\n          }\n          break;\n        case TOKEN.idiv:\n          if (b === 1) {\n            return second;\n          }\n          break;\n        case TOKEN.exp:\n          if (b === 1) {\n            return second;\n          }\n          if (b === -1) {\n            return this._makeBinary(TOKEN.div, second, new PsConstNode(1));\n          }\n          if (b === 0.5) {\n            return this._makeUnary(TOKEN.sqrt, second);\n          }\n          if (b === 0.25) {\n            const sqrtOnce = this._makeUnary(TOKEN.sqrt, second);\n            return this._makeUnary(TOKEN.sqrt, sqrtOnce);\n          }\n          if (b === 2) {\n            return this._makeBinary(TOKEN.mul, second, second);\n          }\n          if (b === 3) {\n            return this._makeBinary(TOKEN.mul, this._makeBinary(TOKEN.mul, second, second), second);\n          }\n          if (b === 4) {\n            const square = this._makeBinary(TOKEN.mul, second, second);\n            return this._makeBinary(TOKEN.mul, square, square);\n          }\n          if (b === 0) {\n            return new PsConstNode(1);\n          }\n          break;\n        case TOKEN.and:\n          if (b === true) {\n            return second;\n          }\n          if (b === false) {\n            return first;\n          }\n          break;\n        case TOKEN.or:\n          if (b === false) {\n            return second;\n          }\n          if (b === true) {\n            return first;\n          }\n          break;\n        case TOKEN.min:\n          if (second.type === PS_NODE.binary && second.op === TOKEN.max && second.first.type === PS_NODE.const && second.first.value >= b) {\n            return first;\n          }\n          break;\n        case TOKEN.max:\n          if (second.type === PS_NODE.binary && second.op === TOKEN.min && second.first.type === PS_NODE.const && second.first.value <= b) {\n            return first;\n          }\n          break;\n      }\n    }\n    if (second.type === PS_NODE.const) {\n      const a = second.value;\n      switch (op) {\n        case TOKEN.add:\n          if (a === 0) {\n            return first;\n          }\n          break;\n        case TOKEN.sub:\n          if (a === 0) {\n            return this._makeUnary(TOKEN.neg, first);\n          }\n          break;\n        case TOKEN.mul:\n          if (a === 1) {\n            return first;\n          }\n          if (a === 0) {\n            return second;\n          }\n          if (a === -1) {\n            return this._makeUnary(TOKEN.neg, first);\n          }\n          break;\n        case TOKEN.and:\n          if (a === true) {\n            return first;\n          }\n          if (a === false) {\n            return second;\n          }\n          break;\n        case TOKEN.or:\n          if (a === false) {\n            return first;\n          }\n          if (a === true) {\n            return second;\n          }\n          break;\n      }\n    }\n    return new PsBinaryNode(op, first, second, _binaryValueType(op, first.valueType, second.valueType));\n  }\n  _makeUnary(op, operand) {\n    if (operand.type === PS_NODE.const) {\n      const v = _evalUnaryConst(op, operand.value);\n      if (v !== undefined) {\n        return new PsConstNode(v);\n      }\n    }\n    if (op === TOKEN.not && operand.type === PS_NODE.binary) {\n      const negated = PSStackToTree.#negatedComparison.get(operand.op);\n      if (negated !== undefined) {\n        return new PsBinaryNode(negated, operand.first, operand.second, PS_VALUE_TYPE.boolean);\n      }\n    }\n    if (op === TOKEN.neg && operand.type === PS_NODE.binary && operand.op === TOKEN.sub) {\n      return this._makeBinary(TOKEN.sub, operand.second, operand.first);\n    }\n    if (operand.type === PS_NODE.unary) {\n      if (op === TOKEN.neg && operand.op === TOKEN.neg || op === TOKEN.not && operand.op === TOKEN.not) {\n        return operand.operand;\n      }\n      if (op === TOKEN.abs && operand.op === TOKEN.neg) {\n        return this._makeUnary(TOKEN.abs, operand.operand);\n      }\n      if (PSStackToTree.#idempotentUnary.has(op) && op === operand.op) {\n        return operand;\n      }\n    }\n    return new PsUnaryNode(op, operand, _unaryValueType(op, operand.valueType));\n  }\n  _makeTernary(cond, then, otherwise) {\n    if (cond.type === PS_NODE.const) {\n      return cond.value ? then : otherwise;\n    }\n    if (_nodesEqual(then, otherwise)) {\n      return then;\n    }\n    if (then.type === PS_NODE.const && otherwise.type === PS_NODE.const) {\n      if (then.value === true && otherwise.value === false) {\n        return cond;\n      }\n      if (then.value === false && otherwise.value === true) {\n        return this._makeUnary(TOKEN.not, cond);\n      }\n    }\n    if (cond.type === PS_NODE.binary) {\n      const {\n        op: cop,\n        first: cf,\n        second: cs\n      } = cond;\n      if (cop === TOKEN.gt || cop === TOKEN.ge) {\n        if (_nodesEqual(then, cf) && _nodesEqual(otherwise, cs)) {\n          return this._makeBinary(TOKEN.min, cf, cs);\n        }\n        if (_nodesEqual(then, cs) && _nodesEqual(otherwise, cf)) {\n          return this._makeBinary(TOKEN.max, cf, cs);\n        }\n      } else if (cop === TOKEN.lt || cop === TOKEN.le) {\n        if (_nodesEqual(then, cf) && _nodesEqual(otherwise, cs)) {\n          return this._makeBinary(TOKEN.max, cf, cs);\n        }\n        if (_nodesEqual(then, cs) && _nodesEqual(otherwise, cf)) {\n          return this._makeBinary(TOKEN.min, cf, cs);\n        }\n      }\n    }\n    return new PsTernaryNode(cond, then, otherwise, then.valueType === otherwise.valueType ? then.valueType : PS_VALUE_TYPE.unknown);\n  }\n}\n\n;// ./src/core/postscript/js_evaluator.js\n\n\n\n\n\n\n\nconst OP = {\n  ARG: 0,\n  CONST: 1,\n  STORE: 2,\n  IF: 3,\n  JUMP: 4,\n  ABS: 5,\n  NEG: 6,\n  CEIL: 7,\n  FLOOR: 8,\n  ROUND: 9,\n  TRUNC: 10,\n  NOT_B: 11,\n  NOT_N: 12,\n  SQRT: 13,\n  SIN: 14,\n  COS: 15,\n  LN: 16,\n  LOG10: 17,\n  CVI: 18,\n  SHIFT: 19,\n  ADD: 20,\n  SUB: 21,\n  MUL: 22,\n  DIV: 23,\n  IDIV: 24,\n  MOD: 25,\n  POW: 26,\n  EQ: 27,\n  NE: 28,\n  GT: 29,\n  GE: 30,\n  LT: 31,\n  LE: 32,\n  AND: 33,\n  OR: 34,\n  XOR: 35,\n  ATAN: 36,\n  MIN: 37,\n  MAX: 38,\n  TEE_TMP: 39,\n  LOAD_TMP: 40\n};\nconst _DEG_TO_RAD = Math.PI / 180;\nconst _RAD_TO_DEG = 180 / Math.PI;\nclass PsJsCompiler {\n  static #stack = new Float64Array(64);\n  static #tmp = new Float64Array(64);\n  constructor(domain, range) {\n    this.nIn = domain.length >> 1;\n    this.nOut = range.length >> 1;\n    this.range = range;\n    this.ir = [];\n    this._tmpMap = new Map();\n    this._nextTmp = 0;\n  }\n  _compileNode(node) {\n    if (node.shared) {\n      const cached = this._tmpMap.get(node);\n      if (cached !== undefined) {\n        this.ir.push(OP.LOAD_TMP, cached);\n        return true;\n      }\n      if (!this._compileNodeImpl(node)) {\n        return false;\n      }\n      const slot = this._nextTmp++;\n      this._tmpMap.set(node, slot);\n      this.ir.push(OP.TEE_TMP, slot);\n      return true;\n    }\n    return this._compileNodeImpl(node);\n  }\n  _compileNodeImpl(node) {\n    switch (node.type) {\n      case PS_NODE.arg:\n        this.ir.push(OP.ARG, node.index);\n        return true;\n      case PS_NODE.const:\n        {\n          const v = node.value;\n          this.ir.push(OP.CONST, typeof v === \"boolean\" ? Number(v) : v);\n          return true;\n        }\n      case PS_NODE.unary:\n        return this._compileUnary(node);\n      case PS_NODE.binary:\n        return this._compileBinary(node);\n      case PS_NODE.ternary:\n        return this._compileTernary(node);\n      default:\n        return false;\n    }\n  }\n  _compileUnary(node) {\n    const {\n      op,\n      operand,\n      valueType\n    } = node;\n    if (op === TOKEN.cvr) {\n      return this._compileNode(operand);\n    }\n    if (!this._compileNode(operand)) {\n      return false;\n    }\n    switch (op) {\n      case TOKEN.abs:\n        this.ir.push(OP.ABS);\n        break;\n      case TOKEN.neg:\n        this.ir.push(OP.NEG);\n        break;\n      case TOKEN.ceiling:\n        this.ir.push(OP.CEIL);\n        break;\n      case TOKEN.floor:\n        this.ir.push(OP.FLOOR);\n        break;\n      case TOKEN.round:\n        this.ir.push(OP.ROUND);\n        break;\n      case TOKEN.truncate:\n        this.ir.push(OP.TRUNC);\n        break;\n      case TOKEN.sqrt:\n        this.ir.push(OP.SQRT);\n        break;\n      case TOKEN.sin:\n        this.ir.push(OP.SIN);\n        break;\n      case TOKEN.cos:\n        this.ir.push(OP.COS);\n        break;\n      case TOKEN.ln:\n        this.ir.push(OP.LN);\n        break;\n      case TOKEN.log:\n        this.ir.push(OP.LOG10);\n        break;\n      case TOKEN.cvi:\n        this.ir.push(OP.CVI);\n        break;\n      case TOKEN.not:\n        if (valueType === PS_VALUE_TYPE.boolean) {\n          this.ir.push(OP.NOT_B);\n        } else if (valueType === PS_VALUE_TYPE.numeric) {\n          this.ir.push(OP.NOT_N);\n        } else {\n          return false;\n        }\n        break;\n      default:\n        return false;\n    }\n    return true;\n  }\n  _compileBinary(node) {\n    const {\n      op,\n      first,\n      second\n    } = node;\n    if (op === TOKEN.bitshift) {\n      if (first.type !== PS_NODE.const || !Number.isInteger(first.value)) {\n        return false;\n      }\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      this.ir.push(OP.SHIFT, first.value);\n      return true;\n    }\n    if (!this._compileNode(second)) {\n      return false;\n    }\n    if (!this._compileNode(first)) {\n      return false;\n    }\n    switch (op) {\n      case TOKEN.add:\n        this.ir.push(OP.ADD);\n        break;\n      case TOKEN.sub:\n        this.ir.push(OP.SUB);\n        break;\n      case TOKEN.mul:\n        this.ir.push(OP.MUL);\n        break;\n      case TOKEN.div:\n        this.ir.push(OP.DIV);\n        break;\n      case TOKEN.idiv:\n        this.ir.push(OP.IDIV);\n        break;\n      case TOKEN.mod:\n        this.ir.push(OP.MOD);\n        break;\n      case TOKEN.exp:\n        this.ir.push(OP.POW);\n        break;\n      case TOKEN.eq:\n        this.ir.push(OP.EQ);\n        break;\n      case TOKEN.ne:\n        this.ir.push(OP.NE);\n        break;\n      case TOKEN.gt:\n        this.ir.push(OP.GT);\n        break;\n      case TOKEN.ge:\n        this.ir.push(OP.GE);\n        break;\n      case TOKEN.lt:\n        this.ir.push(OP.LT);\n        break;\n      case TOKEN.le:\n        this.ir.push(OP.LE);\n        break;\n      case TOKEN.and:\n        this.ir.push(OP.AND);\n        break;\n      case TOKEN.or:\n        this.ir.push(OP.OR);\n        break;\n      case TOKEN.xor:\n        this.ir.push(OP.XOR);\n        break;\n      case TOKEN.atan:\n        this.ir.push(OP.ATAN);\n        break;\n      case TOKEN.min:\n        this.ir.push(OP.MIN);\n        break;\n      case TOKEN.max:\n        this.ir.push(OP.MAX);\n        break;\n      default:\n        return false;\n    }\n    return true;\n  }\n  _compileTernary(node) {\n    if (!this._compileNode(node.cond)) {\n      return false;\n    }\n    this.ir.push(OP.IF, 0);\n    const ifPatch = this.ir.length - 1;\n    if (!this._compileNode(node.then)) {\n      return false;\n    }\n    this.ir.push(OP.JUMP, 0);\n    const jumpPatch = this.ir.length - 1;\n    this.ir[ifPatch] = this.ir.length;\n    if (!this._compileNode(node.otherwise)) {\n      return false;\n    }\n    this.ir[jumpPatch] = this.ir.length;\n    return true;\n  }\n  compile(program) {\n    const outputs = new PSStackToTree().evaluate(program, this.nIn);\n    if (!outputs || outputs.length < this.nOut) {\n      return null;\n    }\n    for (let i = 0; i < this.nOut; i++) {\n      if (!this._compileNode(outputs[i])) {\n        return null;\n      }\n      const min = this.range[i * 2];\n      const max = this.range[i * 2 + 1];\n      this.ir.push(OP.STORE, i, min, max);\n    }\n    return new Float64Array(this.ir);\n  }\n  static execute(ir, src, srcOffset, dest, destOffset) {\n    let ip = 0,\n      sp = 0;\n    const n = ir.length;\n    const stack = this.#stack;\n    const tmp = this.#tmp;\n    while (ip < n) {\n      switch (ir[ip++] | 0) {\n        case OP.ARG:\n          stack[sp++] = src[srcOffset + (ir[ip++] | 0)];\n          break;\n        case OP.CONST:\n          stack[sp++] = ir[ip++];\n          break;\n        case OP.STORE:\n          {\n            const slot = ir[ip++] | 0;\n            const min = ir[ip++];\n            const max = ir[ip++];\n            dest[destOffset + slot] = MathClamp(stack[--sp], min, max);\n            break;\n          }\n        case OP.IF:\n          {\n            const tgt = ir[ip++];\n            if (stack[--sp] === 0) {\n              ip = tgt;\n            }\n            break;\n          }\n        case OP.JUMP:\n          ip = ir[ip];\n          break;\n        case OP.ABS:\n          stack[sp - 1] = Math.abs(stack[sp - 1]);\n          break;\n        case OP.NEG:\n          stack[sp - 1] = -stack[sp - 1];\n          break;\n        case OP.CEIL:\n          stack[sp - 1] = Math.ceil(stack[sp - 1]);\n          break;\n        case OP.FLOOR:\n          stack[sp - 1] = Math.floor(stack[sp - 1]);\n          break;\n        case OP.ROUND:\n          stack[sp - 1] = Math.floor(stack[sp - 1] + 0.5);\n          break;\n        case OP.TRUNC:\n          stack[sp - 1] = Math.trunc(stack[sp - 1]);\n          break;\n        case OP.NOT_B:\n          stack[sp - 1] = stack[sp - 1] !== 0 ? 0 : 1;\n          break;\n        case OP.NOT_N:\n          stack[sp - 1] = ~(stack[sp - 1] | 0);\n          break;\n        case OP.SQRT:\n          stack[sp - 1] = Math.sqrt(stack[sp - 1]);\n          break;\n        case OP.SIN:\n          stack[sp - 1] = Math.sin(stack[sp - 1] % 360 * _DEG_TO_RAD);\n          break;\n        case OP.COS:\n          stack[sp - 1] = Math.cos(stack[sp - 1] % 360 * _DEG_TO_RAD);\n          break;\n        case OP.LN:\n          stack[sp - 1] = Math.log(stack[sp - 1]);\n          break;\n        case OP.LOG10:\n          stack[sp - 1] = Math.log10(stack[sp - 1]);\n          break;\n        case OP.CVI:\n          stack[sp - 1] = Math.trunc(stack[sp - 1]) | 0;\n          break;\n        case OP.SHIFT:\n          {\n            const amt = ir[ip++];\n            const v = stack[sp - 1] | 0;\n            if (amt > 0) {\n              stack[sp - 1] = v << amt;\n            } else if (amt < 0) {\n              stack[sp - 1] = v >> -amt;\n            } else {\n              stack[sp - 1] = v;\n            }\n            break;\n          }\n        case OP.ADD:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] += b;\n            break;\n          }\n        case OP.SUB:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] -= b;\n            break;\n          }\n        case OP.MUL:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] *= b;\n            break;\n          }\n        case OP.DIV:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = b !== 0 ? stack[sp - 1] / b : 0;\n            break;\n          }\n        case OP.IDIV:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = b !== 0 ? Math.trunc(stack[sp - 1] / b) : 0;\n            break;\n          }\n        case OP.MOD:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = b !== 0 ? stack[sp - 1] % b : 0;\n            break;\n          }\n        case OP.POW:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] **= b;\n            break;\n          }\n        case OP.EQ:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = stack[sp - 1] === b ? 1 : 0;\n            break;\n          }\n        case OP.NE:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = stack[sp - 1] !== b ? 1 : 0;\n            break;\n          }\n        case OP.GT:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = stack[sp - 1] > b ? 1 : 0;\n            break;\n          }\n        case OP.GE:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = stack[sp - 1] >= b ? 1 : 0;\n            break;\n          }\n        case OP.LT:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = stack[sp - 1] < b ? 1 : 0;\n            break;\n          }\n        case OP.LE:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = stack[sp - 1] <= b ? 1 : 0;\n            break;\n          }\n        case OP.AND:\n          {\n            const b = stack[--sp] | 0;\n            stack[sp - 1] = (stack[sp - 1] | 0) & b;\n            break;\n          }\n        case OP.OR:\n          {\n            const b = stack[--sp] | 0;\n            stack[sp - 1] = stack[sp - 1] | 0 | b;\n            break;\n          }\n        case OP.XOR:\n          {\n            const b = stack[--sp] | 0;\n            stack[sp - 1] = (stack[sp - 1] | 0) ^ b;\n            break;\n          }\n        case OP.ATAN:\n          {\n            const b = stack[--sp];\n            const deg = Math.atan2(stack[sp - 1], b) * _RAD_TO_DEG;\n            stack[sp - 1] = deg < 0 ? deg + 360 : deg;\n            break;\n          }\n        case OP.MIN:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = Math.min(stack[sp - 1], b);\n            break;\n          }\n        case OP.MAX:\n          {\n            const b = stack[--sp];\n            stack[sp - 1] = Math.max(stack[sp - 1], b);\n            break;\n          }\n        case OP.TEE_TMP:\n          tmp[ir[ip++] | 0] = stack[sp - 1];\n          break;\n        case OP.LOAD_TMP:\n          stack[sp++] = tmp[ir[ip++] | 0];\n          break;\n      }\n    }\n  }\n}\nclass PSStackBasedInterpreter {\n  static #stack = new Float64Array(100);\n  static #sp = 0;\n  static #push(v) {\n    if (this.#sp < this.#stack.length) {\n      this.#stack[this.#sp++] = v;\n    }\n  }\n  static #execOp(op) {\n    const stack = this.#stack;\n    switch (op) {\n      case TOKEN.true:\n        this.#push(1);\n        break;\n      case TOKEN.false:\n        this.#push(0);\n        break;\n      case TOKEN.abs:\n        stack[this.#sp - 1] = Math.abs(stack[this.#sp - 1]);\n        break;\n      case TOKEN.neg:\n        stack[this.#sp - 1] = -stack[this.#sp - 1];\n        break;\n      case TOKEN.ceiling:\n        stack[this.#sp - 1] = Math.ceil(stack[this.#sp - 1]);\n        break;\n      case TOKEN.floor:\n        stack[this.#sp - 1] = Math.floor(stack[this.#sp - 1]);\n        break;\n      case TOKEN.round:\n        stack[this.#sp - 1] = Math.floor(stack[this.#sp - 1] + 0.5);\n        break;\n      case TOKEN.truncate:\n        stack[this.#sp - 1] = Math.trunc(stack[this.#sp - 1]);\n        break;\n      case TOKEN.sqrt:\n        stack[this.#sp - 1] = Math.sqrt(stack[this.#sp - 1]);\n        break;\n      case TOKEN.sin:\n        stack[this.#sp - 1] = Math.sin(stack[this.#sp - 1] % 360 * _DEG_TO_RAD);\n        break;\n      case TOKEN.cos:\n        stack[this.#sp - 1] = Math.cos(stack[this.#sp - 1] % 360 * _DEG_TO_RAD);\n        break;\n      case TOKEN.ln:\n        stack[this.#sp - 1] = Math.log(stack[this.#sp - 1]);\n        break;\n      case TOKEN.log:\n        stack[this.#sp - 1] = Math.log10(stack[this.#sp - 1]);\n        break;\n      case TOKEN.cvi:\n        stack[this.#sp - 1] = Math.trunc(stack[this.#sp - 1]) | 0;\n        break;\n      case TOKEN.cvr:\n        break;\n      case TOKEN.not:\n        {\n          const v = stack[this.#sp - 1];\n          stack[this.#sp - 1] = v === 0 || v === 1 ? 1 - v : ~(v | 0);\n          break;\n        }\n      case TOKEN.add:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] += b;\n          break;\n        }\n      case TOKEN.sub:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] -= b;\n          break;\n        }\n      case TOKEN.mul:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] *= b;\n          break;\n        }\n      case TOKEN.div:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = b !== 0 ? stack[this.#sp - 1] / b : 0;\n          break;\n        }\n      case TOKEN.idiv:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = b !== 0 ? Math.trunc(stack[this.#sp - 1] / b) : 0;\n          break;\n        }\n      case TOKEN.mod:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = b !== 0 ? stack[this.#sp - 1] % b : 0;\n          break;\n        }\n      case TOKEN.exp:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] **= b;\n          break;\n        }\n      case TOKEN.atan:\n        {\n          const dx = stack[--this.#sp];\n          const deg = Math.atan2(stack[this.#sp - 1], dx) * _RAD_TO_DEG;\n          stack[this.#sp - 1] = deg < 0 ? deg + 360 : deg;\n          break;\n        }\n      case TOKEN.eq:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = stack[this.#sp - 1] === b ? 1 : 0;\n          break;\n        }\n      case TOKEN.ne:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = stack[this.#sp - 1] !== b ? 1 : 0;\n          break;\n        }\n      case TOKEN.gt:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = stack[this.#sp - 1] > b ? 1 : 0;\n          break;\n        }\n      case TOKEN.ge:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = stack[this.#sp - 1] >= b ? 1 : 0;\n          break;\n        }\n      case TOKEN.lt:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = stack[this.#sp - 1] < b ? 1 : 0;\n          break;\n        }\n      case TOKEN.le:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = stack[this.#sp - 1] <= b ? 1 : 0;\n          break;\n        }\n      case TOKEN.and:\n        {\n          const b = stack[--this.#sp] | 0;\n          stack[this.#sp - 1] = (stack[this.#sp - 1] | 0) & b;\n          break;\n        }\n      case TOKEN.or:\n        {\n          const b = stack[--this.#sp] | 0;\n          stack[this.#sp - 1] = stack[this.#sp - 1] | 0 | b;\n          break;\n        }\n      case TOKEN.xor:\n        {\n          const b = stack[--this.#sp] | 0;\n          stack[this.#sp - 1] = (stack[this.#sp - 1] | 0) ^ b;\n          break;\n        }\n      case TOKEN.bitshift:\n        {\n          const amt = stack[--this.#sp] | 0;\n          const v = stack[this.#sp - 1] | 0;\n          stack[this.#sp - 1] = amt > 0 ? v << amt : v >> -amt;\n          break;\n        }\n      case TOKEN.min:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = Math.min(stack[this.#sp - 1], b);\n          break;\n        }\n      case TOKEN.max:\n        {\n          const b = stack[--this.#sp];\n          stack[this.#sp - 1] = Math.max(stack[this.#sp - 1], b);\n          break;\n        }\n      case TOKEN.dup:\n        this.#push(stack[this.#sp - 1]);\n        break;\n      case TOKEN.exch:\n        {\n          const a = stack[--this.#sp];\n          const b = stack[--this.#sp];\n          this.#push(a);\n          this.#push(b);\n          break;\n        }\n      case TOKEN.pop:\n        this.#sp--;\n        break;\n      case TOKEN.copy:\n        {\n          const n = Math.trunc(stack[--this.#sp]);\n          const base = this.#sp - n;\n          for (let k = 0; k < n; k++) {\n            this.#push(stack[base + k]);\n          }\n          break;\n        }\n      case TOKEN.index:\n        {\n          const i = Math.trunc(stack[--this.#sp]);\n          this.#push(stack[this.#sp - 1 - i]);\n          break;\n        }\n      case TOKEN.roll:\n        {\n          const j = Math.trunc(stack[--this.#sp]);\n          const n = Math.trunc(stack[--this.#sp]);\n          if (n > 1 && j !== 0) {\n            const mod = (j % n + n) % n;\n            if (mod !== 0) {\n              const base = this.#sp - n;\n              const sub = stack.slice(base, this.#sp);\n              for (let k = 0; k < n; k++) {\n                stack[base + k] = sub[(k - mod + n) % n];\n              }\n            }\n          }\n          break;\n        }\n    }\n  }\n  static #execBlock(instructions) {\n    for (const instr of instructions) {\n      switch (instr.type) {\n        case PS_NODE.number:\n          this.#push(instr.value);\n          break;\n        case PS_NODE.operator:\n          this.#execOp(instr.op);\n          break;\n        case PS_NODE.if:\n          if (this.#stack[--this.#sp] !== 0) {\n            this.#execBlock(instr.then.instructions);\n          }\n          break;\n        case PS_NODE.ifelse:\n          if (this.#stack[--this.#sp] !== 0) {\n            this.#execBlock(instr.then.instructions);\n          } else {\n            this.#execBlock(instr.otherwise.instructions);\n          }\n          break;\n      }\n    }\n  }\n  static build(program, domain, range) {\n    const nIn = domain.length >> 1;\n    const nOut = range.length >> 1;\n    const {\n      instructions\n    } = program.body;\n    return (src, srcOffset, dest, destOffset) => {\n      this.#sp = 0;\n      for (let i = 0; i < nIn; i++) {\n        this.#push(src[srcOffset + i]);\n      }\n      this.#execBlock(instructions);\n      const base = this.#sp - nOut;\n      for (let i = 0; i < nOut; i++) {\n        const v = base + i >= 0 ? this.#stack[base + i] : 0;\n        dest[destOffset + i] = MathClamp(range[i * 2 + 1], range[i * 2], v);\n      }\n    };\n  }\n}\nfunction buildPostScriptJsFunction(source, domain, range, forceInterpreter = false) {\n  const program = parsePostScriptFunction(source);\n  const ir = !forceInterpreter && new PsJsCompiler(domain, range).compile(program);\n  if (ir) {\n    return (src, srcOffset, dest, destOffset) => {\n      PsJsCompiler.execute(ir, src, srcOffset, dest, destOffset);\n    };\n  }\n  return PSStackBasedInterpreter.build(program, domain, range);\n}\n\n;// ./src/core/postscript/wasm_compiler.js\n\n\n\n\n\n\n\n\n\n\nconst wasm_compiler_OP = {\n  if: 0x04,\n  else: 0x05,\n  end: 0x0b,\n  select: 0x1b,\n  call: 0x10,\n  local_get: 0x20,\n  local_set: 0x21,\n  local_tee: 0x22,\n  i32_const: 0x41,\n  i32_eqz: 0x45,\n  i32_and: 0x71,\n  i32_or: 0x72,\n  i32_xor: 0x73,\n  i32_shl: 0x74,\n  i32_shr_s: 0x75,\n  i32_trunc_f64_s: 0xaa,\n  f64_const: 0x44,\n  f64_eq: 0x61,\n  f64_ne: 0x62,\n  f64_lt: 0x63,\n  f64_gt: 0x64,\n  f64_le: 0x65,\n  f64_ge: 0x66,\n  f64_abs: 0x99,\n  f64_neg: 0x9a,\n  f64_ceil: 0x9b,\n  f64_floor: 0x9c,\n  f64_trunc: 0x9d,\n  f64_nearest: 0x9e,\n  f64_sqrt: 0x9f,\n  f64_add: 0xa0,\n  f64_sub: 0xa1,\n  f64_mul: 0xa2,\n  f64_div: 0xa3,\n  f64_min: 0xa4,\n  f64_max: 0xa5,\n  f64_convert_i32_s: 0xb7,\n  f64_store: 0x39\n};\nconst FUNC_TYPE = 0x60;\nconst F64 = 0x7c;\nconst SECTION = {\n  type: 0x01,\n  import: 0x02,\n  function: 0x03,\n  memory: 0x05,\n  export: 0x07,\n  code: 0x0a\n};\nconst EXTERN_FUNC = 0x00;\nconst EXTERN_MEM = 0x02;\nfunction unsignedLEB128(n) {\n  const out = [];\n  do {\n    let byte = n & 0x7f;\n    n >>>= 7;\n    if (n !== 0) {\n      byte |= 0x80;\n    }\n    out.push(byte);\n  } while (n !== 0);\n  return out;\n}\nfunction encodeASCIIString(s) {\n  return [...unsignedLEB128(s.length), ...Array.from(s, c => c.charCodeAt(0))];\n}\nfunction section(id, data) {\n  return [id, ...unsignedLEB128(data.length), ...data];\n}\nfunction vec(items) {\n  const out = unsignedLEB128(items.length);\n  for (const item of items) {\n    if (typeof item === \"number\") {\n      out.push(item);\n      continue;\n    }\n    for (const byte of item) {\n      out.push(byte);\n    }\n  }\n  return out;\n}\nconst MATH_IMPORTS = [[\"sin\", \"Math\", \"sin\", [F64], [F64]], [\"cos\", \"Math\", \"cos\", [F64], [F64]], [\"atan2\", \"Math\", \"atan2\", [F64, F64], [F64]], [\"log\", \"Math\", \"log\", [F64], [F64]], [\"log10\", \"Math\", \"log10\", [F64], [F64]], [\"pow\", \"Math\", \"pow\", [F64, F64], [F64]]];\nconst _mathImportObject = {\n  Math: Object.fromEntries(MATH_IMPORTS.map(([name]) => [name, Math[name]]))\n};\nclass PsWasmCompiler {\n  static #initialized = false;\n  static #comparisonToOp = null;\n  static #importIdx = null;\n  static #degToRad = 0;\n  static #radToDeg = 0;\n  static #importTypeEntries = null;\n  static #importSection = null;\n  static #functionSection = null;\n  static #memorySection = null;\n  static #exportSection = null;\n  static #wasmMagicVersion = null;\n  static #f64View = null;\n  static #f64Arr = null;\n  static #init() {\n    this.#comparisonToOp = new Map([[TOKEN.eq, wasm_compiler_OP.f64_eq], [TOKEN.ne, wasm_compiler_OP.f64_ne], [TOKEN.lt, wasm_compiler_OP.f64_lt], [TOKEN.le, wasm_compiler_OP.f64_le], [TOKEN.gt, wasm_compiler_OP.f64_gt], [TOKEN.ge, wasm_compiler_OP.f64_ge]]);\n    this.#importIdx = Object.create(null);\n    for (let i = 0; i < MATH_IMPORTS.length; i++) {\n      this.#importIdx[MATH_IMPORTS[i][0]] = i;\n    }\n    this.#degToRad = Math.PI / 180;\n    this.#radToDeg = 180 / Math.PI;\n    this.#importTypeEntries = MATH_IMPORTS.map(([,,, params, results]) => [FUNC_TYPE, ...vec(params), ...vec(results)]);\n    this.#importSection = new Uint8Array(section(SECTION.import, vec(MATH_IMPORTS.map(([, mod, field], i) => [...encodeASCIIString(mod), ...encodeASCIIString(field), EXTERN_FUNC, ...unsignedLEB128(i + 1)]))));\n    this.#functionSection = new Uint8Array(section(SECTION.function, vec([[0]])));\n    this.#memorySection = new Uint8Array(section(SECTION.memory, vec([[0x00, 0x01]])));\n    this.#exportSection = new Uint8Array(section(SECTION.export, vec([[...encodeASCIIString(\"fn\"), EXTERN_FUNC, ...unsignedLEB128(MATH_IMPORTS.length)], [...encodeASCIIString(\"mem\"), EXTERN_MEM, 0x00]])));\n    this.#wasmMagicVersion = new Uint8Array([0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00]);\n    const f64Buf = new ArrayBuffer(8);\n    this.#f64View = new DataView(f64Buf);\n    this.#f64Arr = new Uint8Array(f64Buf);\n    this.#initialized = true;\n  }\n  constructor(domain, range) {\n    if (!PsWasmCompiler.#initialized) {\n      PsWasmCompiler.#init();\n    }\n    this._nIn = domain.length >> 1;\n    this._nOut = range.length >> 1;\n    this._range = range;\n    this._code = [];\n    this._nextLocal = this._nIn;\n    this._freeLocals = [];\n    this._sharedLocals = new Map();\n  }\n  _allocLocal() {\n    return this._freeLocals.pop() ?? this._nextLocal++;\n  }\n  _releaseLocal(idx) {\n    this._freeLocals.push(idx);\n  }\n  _emitULEB128(n) {\n    do {\n      let b = n & 0x7f;\n      n >>>= 7;\n      if (n !== 0) {\n        b |= 0x80;\n      }\n      this._code.push(b);\n    } while (n !== 0);\n  }\n  _emitF64Const(value) {\n    this._code.push(wasm_compiler_OP.f64_const);\n    PsWasmCompiler.#f64View.setFloat64(0, value, true);\n    for (let i = 0; i < 8; i++) {\n      this._code.push(PsWasmCompiler.#f64Arr[i]);\n    }\n  }\n  _emitLocalGet(idx) {\n    this._code.push(wasm_compiler_OP.local_get);\n    this._emitULEB128(idx);\n  }\n  _emitLocalSet(idx) {\n    this._code.push(wasm_compiler_OP.local_set);\n    this._emitULEB128(idx);\n  }\n  _emitLocalTee(idx) {\n    this._code.push(wasm_compiler_OP.local_tee);\n    this._emitULEB128(idx);\n  }\n  _compileNode(node) {\n    if (node.shared) {\n      const entry = this._sharedLocals.get(node);\n      if (entry !== undefined) {\n        this._emitLocalGet(entry.local);\n        if (--entry.remaining === 0) {\n          this._releaseLocal(entry.local);\n        }\n        return true;\n      }\n      if (!this._compileNodeImpl(node)) {\n        return false;\n      }\n      const local = this._allocLocal();\n      this._sharedLocals.set(node, {\n        local,\n        remaining: node.sharedCount - 1\n      });\n      this._emitLocalTee(local);\n      return true;\n    }\n    return this._compileNodeImpl(node);\n  }\n  _compileNodeImpl(node) {\n    switch (node.type) {\n      case PS_NODE.arg:\n        this._emitLocalGet(node.index);\n        return true;\n      case PS_NODE.const:\n        {\n          let v = node.value;\n          if (typeof v === \"boolean\") {\n            v = v ? 1 : 0;\n          }\n          this._emitF64Const(v);\n          return true;\n        }\n      case PS_NODE.unary:\n        return this._compileUnaryNode(node);\n      case PS_NODE.binary:\n        return this._compileBinaryNode(node);\n      case PS_NODE.ternary:\n        return this._compileTernaryNode(node);\n      default:\n        return false;\n    }\n  }\n  _compileSinCosNode(node) {\n    const local = this._allocLocal();\n    try {\n      if (!this._compileNode(node.operand)) {\n        return false;\n      }\n      const code = this._code;\n      this._emitLocalSet(local);\n      this._emitLocalGet(local);\n      this._emitLocalGet(local);\n      this._emitF64Const(360);\n      code.push(wasm_compiler_OP.f64_div, wasm_compiler_OP.f64_trunc);\n      this._emitF64Const(360);\n      code.push(wasm_compiler_OP.f64_mul, wasm_compiler_OP.f64_sub);\n      this._emitF64Const(PsWasmCompiler.#degToRad);\n      code.push(wasm_compiler_OP.f64_mul, wasm_compiler_OP.call);\n      this._emitULEB128(PsWasmCompiler.#importIdx[node.op === TOKEN.sin ? \"sin\" : \"cos\"]);\n      return true;\n    } finally {\n      this._releaseLocal(local);\n    }\n  }\n  _compileUnaryNode(node) {\n    const code = this._code;\n    if (node.op === TOKEN.sin || node.op === TOKEN.cos) {\n      return this._compileSinCosNode(node);\n    }\n    if (node.op === TOKEN.not) {\n      if (node.valueType === PS_VALUE_TYPE.boolean) {\n        if (!this._compileNodeAsBoolI32(node.operand)) {\n          return false;\n        }\n        code.push(wasm_compiler_OP.i32_eqz, wasm_compiler_OP.f64_convert_i32_s);\n        return true;\n      }\n      if (node.valueType === PS_VALUE_TYPE.numeric) {\n        if (!this._compileNode(node.operand)) {\n          return false;\n        }\n        code.push(wasm_compiler_OP.i32_trunc_f64_s, wasm_compiler_OP.i32_const, 0x7f, wasm_compiler_OP.i32_xor, wasm_compiler_OP.f64_convert_i32_s);\n        return true;\n      }\n      return false;\n    }\n    if (!this._compileNode(node.operand)) {\n      return false;\n    }\n    switch (node.op) {\n      case TOKEN.abs:\n        code.push(wasm_compiler_OP.f64_abs);\n        break;\n      case TOKEN.neg:\n        code.push(wasm_compiler_OP.f64_neg);\n        break;\n      case TOKEN.sqrt:\n        code.push(wasm_compiler_OP.f64_sqrt);\n        break;\n      case TOKEN.floor:\n        code.push(wasm_compiler_OP.f64_floor);\n        break;\n      case TOKEN.ceiling:\n        code.push(wasm_compiler_OP.f64_ceil);\n        break;\n      case TOKEN.round:\n        this._emitF64Const(0.5);\n        code.push(wasm_compiler_OP.f64_add, wasm_compiler_OP.f64_floor);\n        break;\n      case TOKEN.truncate:\n        code.push(wasm_compiler_OP.f64_trunc);\n        break;\n      case TOKEN.cvi:\n        code.push(wasm_compiler_OP.i32_trunc_f64_s, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.cvr:\n        break;\n      case TOKEN.ln:\n        code.push(wasm_compiler_OP.call);\n        this._emitULEB128(PsWasmCompiler.#importIdx.log);\n        break;\n      case TOKEN.log:\n        code.push(wasm_compiler_OP.call);\n        this._emitULEB128(PsWasmCompiler.#importIdx.log10);\n        break;\n      default:\n        return false;\n    }\n    return true;\n  }\n  _compileSafeDivNode(first, second) {\n    const tmp = this._allocLocal();\n    try {\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      if (!this._compileNode(first)) {\n        return false;\n      }\n      const code = this._code;\n      this._emitLocalTee(tmp);\n      code.push(wasm_compiler_OP.f64_div);\n      this._emitF64Const(0);\n      this._emitLocalGet(tmp);\n      this._emitF64Const(0);\n      code.push(wasm_compiler_OP.f64_ne, wasm_compiler_OP.select);\n      return true;\n    } finally {\n      this._releaseLocal(tmp);\n    }\n  }\n  _compileSafeIdivNode(first, second) {\n    const tmp = this._allocLocal();\n    try {\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      if (!this._compileNode(first)) {\n        return false;\n      }\n      const code = this._code;\n      this._emitLocalTee(tmp);\n      code.push(wasm_compiler_OP.f64_div, wasm_compiler_OP.f64_trunc);\n      this._emitF64Const(0);\n      this._emitLocalGet(tmp);\n      this._emitF64Const(0);\n      code.push(wasm_compiler_OP.f64_ne, wasm_compiler_OP.select);\n      return true;\n    } finally {\n      this._releaseLocal(tmp);\n    }\n  }\n  _compileBitshiftNode(first, second) {\n    if (first.type !== PS_NODE.const || !Number.isInteger(first.value)) {\n      return false;\n    }\n    if (!this._compileNode(second)) {\n      return false;\n    }\n    const code = this._code;\n    code.push(wasm_compiler_OP.i32_trunc_f64_s);\n    const shift = first.value;\n    if (shift > 0) {\n      code.push(wasm_compiler_OP.i32_const);\n      this._emitULEB128(shift);\n      code.push(wasm_compiler_OP.i32_shl);\n    } else if (shift < 0) {\n      code.push(wasm_compiler_OP.i32_const);\n      this._emitULEB128(-shift);\n      code.push(wasm_compiler_OP.i32_shr_s);\n    }\n    code.push(wasm_compiler_OP.f64_convert_i32_s);\n    return true;\n  }\n  _compileModNode(first, second) {\n    if (first.type === PS_NODE.const && first.value === 0) {\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      this._code.push(wasm_compiler_OP.drop);\n      this._emitF64Const(0);\n      return true;\n    }\n    const localA = this._allocLocal();\n    try {\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      this._emitLocalTee(localA);\n      const code = this._code;\n      if (first.type === PS_NODE.const) {\n        this._emitLocalGet(localA);\n        this._emitF64Const(first.value);\n        code.push(wasm_compiler_OP.f64_div, wasm_compiler_OP.f64_trunc);\n        this._emitF64Const(first.value);\n        code.push(wasm_compiler_OP.f64_mul, wasm_compiler_OP.f64_sub);\n      } else {\n        const localB = this._allocLocal();\n        try {\n          if (!this._compileNode(first)) {\n            return false;\n          }\n          this._emitLocalSet(localB);\n          this._emitLocalGet(localA);\n          this._emitLocalGet(localB);\n          code.push(wasm_compiler_OP.f64_div, wasm_compiler_OP.f64_trunc);\n          this._emitLocalGet(localB);\n          code.push(wasm_compiler_OP.f64_mul, wasm_compiler_OP.f64_sub);\n          this._emitF64Const(0);\n          this._emitLocalGet(localB);\n          this._emitF64Const(0);\n          code.push(wasm_compiler_OP.f64_ne, wasm_compiler_OP.select);\n        } finally {\n          this._releaseLocal(localB);\n        }\n      }\n      return true;\n    } finally {\n      this._releaseLocal(localA);\n    }\n  }\n  _compileAtanNode(first, second) {\n    const localR = this._allocLocal();\n    try {\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      if (!this._compileNode(first)) {\n        return false;\n      }\n      const code = this._code;\n      code.push(wasm_compiler_OP.call);\n      this._emitULEB128(PsWasmCompiler.#importIdx.atan2);\n      this._emitF64Const(PsWasmCompiler.#radToDeg);\n      code.push(wasm_compiler_OP.f64_mul);\n      this._emitLocalTee(localR);\n      this._emitF64Const(0);\n      code.push(wasm_compiler_OP.f64_lt, wasm_compiler_OP.if, F64);\n      this._emitLocalGet(localR);\n      this._emitF64Const(360);\n      code.push(wasm_compiler_OP.f64_add, wasm_compiler_OP.else);\n      this._emitLocalGet(localR);\n      code.push(wasm_compiler_OP.end);\n      return true;\n    } finally {\n      this._releaseLocal(localR);\n    }\n  }\n  _compileBitwiseNode(op, first, second) {\n    if (!this._compileBitwiseOperandI32(second)) {\n      return false;\n    }\n    if (!this._compileBitwiseOperandI32(first)) {\n      return false;\n    }\n    const code = this._code;\n    switch (op) {\n      case TOKEN.and:\n        code.push(wasm_compiler_OP.i32_and);\n        break;\n      case TOKEN.or:\n        code.push(wasm_compiler_OP.i32_or);\n        break;\n      case TOKEN.xor:\n        code.push(wasm_compiler_OP.i32_xor);\n        break;\n      default:\n        return false;\n    }\n    code.push(wasm_compiler_OP.f64_convert_i32_s);\n    return true;\n  }\n  _compileBitwiseOperandI32(node) {\n    if (node.valueType === PS_VALUE_TYPE.boolean) {\n      return this._compileNodeAsBoolI32(node);\n    }\n    if (!this._compileNode(node)) {\n      return false;\n    }\n    this._code.push(wasm_compiler_OP.i32_trunc_f64_s);\n    return true;\n  }\n  _compileStandardBinaryNode(op, first, second) {\n    if (first === second && first.type !== PS_NODE.arg && first.type !== PS_NODE.const && !first.shared) {\n      const tmp = this._allocLocal();\n      try {\n        if (!this._compileNode(first)) {\n          return false;\n        }\n        this._emitLocalTee(tmp);\n        this._emitLocalGet(tmp);\n      } finally {\n        this._releaseLocal(tmp);\n      }\n    } else {\n      if (!this._compileNode(second)) {\n        return false;\n      }\n      if (!this._compileNode(first)) {\n        return false;\n      }\n    }\n    const code = this._code;\n    switch (op) {\n      case TOKEN.add:\n        code.push(wasm_compiler_OP.f64_add);\n        break;\n      case TOKEN.sub:\n        code.push(wasm_compiler_OP.f64_sub);\n        break;\n      case TOKEN.mul:\n        code.push(wasm_compiler_OP.f64_mul);\n        break;\n      case TOKEN.exp:\n        code.push(wasm_compiler_OP.call);\n        this._emitULEB128(PsWasmCompiler.#importIdx.pow);\n        break;\n      case TOKEN.eq:\n        code.push(wasm_compiler_OP.f64_eq, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.ne:\n        code.push(wasm_compiler_OP.f64_ne, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.lt:\n        code.push(wasm_compiler_OP.f64_lt, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.le:\n        code.push(wasm_compiler_OP.f64_le, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.gt:\n        code.push(wasm_compiler_OP.f64_gt, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.ge:\n        code.push(wasm_compiler_OP.f64_ge, wasm_compiler_OP.f64_convert_i32_s);\n        break;\n      case TOKEN.min:\n        code.push(wasm_compiler_OP.f64_min);\n        break;\n      case TOKEN.max:\n        code.push(wasm_compiler_OP.f64_max);\n        break;\n      default:\n        return false;\n    }\n    return true;\n  }\n  _compileBinaryNode(node) {\n    const {\n      op,\n      first,\n      second\n    } = node;\n    if (op === TOKEN.bitshift) {\n      return this._compileBitshiftNode(first, second);\n    }\n    if (op === TOKEN.div) {\n      return this._compileSafeDivNode(first, second);\n    }\n    if (op === TOKEN.idiv) {\n      return this._compileSafeIdivNode(first, second);\n    }\n    if (op === TOKEN.mod) {\n      return this._compileModNode(first, second);\n    }\n    if (op === TOKEN.atan) {\n      return this._compileAtanNode(first, second);\n    }\n    if (op === TOKEN.and || op === TOKEN.or || op === TOKEN.xor) {\n      return this._compileBitwiseNode(op, first, second);\n    }\n    return this._compileStandardBinaryNode(op, first, second);\n  }\n  _compileNodeAsBoolI32(node) {\n    if (node.type === PS_NODE.binary) {\n      const wasmOp = PsWasmCompiler.#comparisonToOp.get(node.op);\n      if (wasmOp !== undefined) {\n        if (!this._compileNode(node.second)) {\n          return false;\n        }\n        if (!this._compileNode(node.first)) {\n          return false;\n        }\n        this._code.push(wasmOp);\n        return true;\n      }\n      if (node.valueType === PS_VALUE_TYPE.boolean && (node.op === TOKEN.and || node.op === TOKEN.or || node.op === TOKEN.xor)) {\n        if (!this._compileNodeAsBoolI32(node.second)) {\n          return false;\n        }\n        if (!this._compileNodeAsBoolI32(node.first)) {\n          return false;\n        }\n        switch (node.op) {\n          case TOKEN.and:\n            this._code.push(wasm_compiler_OP.i32_and);\n            break;\n          case TOKEN.or:\n            this._code.push(wasm_compiler_OP.i32_or);\n            break;\n          case TOKEN.xor:\n            this._code.push(wasm_compiler_OP.i32_xor);\n            break;\n        }\n        return true;\n      }\n    }\n    if (node.type === PS_NODE.unary && node.op === TOKEN.not && node.valueType === PS_VALUE_TYPE.boolean) {\n      if (!this._compileNodeAsBoolI32(node.operand)) {\n        return false;\n      }\n      this._code.push(wasm_compiler_OP.i32_eqz);\n      return true;\n    }\n    if (!this._compileNode(node)) {\n      return false;\n    }\n    if (node.valueType === PS_VALUE_TYPE.boolean) {\n      this._code.push(wasm_compiler_OP.i32_trunc_f64_s);\n    } else {\n      this._emitF64Const(0);\n      this._code.push(wasm_compiler_OP.f64_ne);\n    }\n    return true;\n  }\n  _compileTernaryNode(node) {\n    if (!this._compileNodeAsBoolI32(node.cond)) {\n      return false;\n    }\n    this._code.push(wasm_compiler_OP.if, F64);\n    if (!this._compileNode(node.then)) {\n      return false;\n    }\n    this._code.push(wasm_compiler_OP.else);\n    if (!this._compileNode(node.otherwise)) {\n      return false;\n    }\n    this._code.push(wasm_compiler_OP.end);\n    return true;\n  }\n  compile(program) {\n    const outputs = new PSStackToTree().evaluate(program, this._nIn);\n    if (!outputs || outputs.length < this._nOut) {\n      return null;\n    }\n    const code = this._code;\n    for (let i = 0; i < this._nOut; i++) {\n      const min = this._range[i * 2];\n      const max = this._range[i * 2 + 1];\n      code.push(wasm_compiler_OP.i32_const);\n      this._emitULEB128(i * 8);\n      if (!this._compileNode(outputs[i])) {\n        return null;\n      }\n      this._emitF64Const(max);\n      code.push(wasm_compiler_OP.f64_min);\n      this._emitF64Const(min);\n      code.push(wasm_compiler_OP.f64_max, wasm_compiler_OP.f64_store, 0x03, 0x00);\n    }\n    code.push(wasm_compiler_OP.end);\n    const nIn = this._nIn;\n    const nLocals = this._nextLocal - nIn;\n    const paramTypes = Array(nIn).fill(F64);\n    const resultTypes = [];\n    const funcType = [FUNC_TYPE, ...vec(paramTypes), ...vec(resultTypes)];\n    const typeSectionBytes = new Uint8Array(section(SECTION.type, vec([funcType, ...PsWasmCompiler.#importTypeEntries])));\n    const localDecls = nLocals > 0 ? vec([[...unsignedLEB128(nLocals), F64]]) : vec([]);\n    const funcBodyLen = localDecls.length + code.length;\n    const codeSectionBytes = new Uint8Array(section(SECTION.code, vec([[...unsignedLEB128(funcBodyLen), ...localDecls, ...code]])));\n    const magicVersion = PsWasmCompiler.#wasmMagicVersion;\n    const importSection = PsWasmCompiler.#importSection;\n    const functionSection = PsWasmCompiler.#functionSection;\n    const memorySection = PsWasmCompiler.#memorySection;\n    const exportSection = PsWasmCompiler.#exportSection;\n    const totalLen = magicVersion.length + typeSectionBytes.length + importSection.length + functionSection.length + memorySection.length + exportSection.length + codeSectionBytes.length;\n    const result = new Uint8Array(totalLen);\n    let off = 0;\n    result.set(magicVersion, off);\n    off += magicVersion.length;\n    result.set(typeSectionBytes, off);\n    off += typeSectionBytes.length;\n    result.set(importSection, off);\n    off += importSection.length;\n    result.set(functionSection, off);\n    off += functionSection.length;\n    result.set(memorySection, off);\n    off += memorySection.length;\n    result.set(exportSection, off);\n    off += exportSection.length;\n    result.set(codeSectionBytes, off);\n    return result;\n  }\n}\nfunction compilePostScriptToWasm(source, domain, range) {\n  return new PsWasmCompiler(domain, range).compile(parsePostScriptFunction(source));\n}\nfunction _makeWrapper(exports, nIn, nOut) {\n  const {\n    fn,\n    mem\n  } = exports;\n  const outView = new Float64Array(mem.buffer, 0, nOut);\n  let writeOut;\n  switch (nOut) {\n    case 1:\n      writeOut = (dest, destOffset) => {\n        dest[destOffset] = outView[0];\n      };\n      break;\n    case 2:\n      writeOut = (dest, destOffset) => {\n        dest[destOffset] = outView[0];\n        dest[destOffset + 1] = outView[1];\n      };\n      break;\n    case 3:\n      writeOut = (dest, destOffset) => {\n        dest[destOffset] = outView[0];\n        dest[destOffset + 1] = outView[1];\n        dest[destOffset + 2] = outView[2];\n      };\n      break;\n    case 4:\n      writeOut = (dest, destOffset) => {\n        dest[destOffset] = outView[0];\n        dest[destOffset + 1] = outView[1];\n        dest[destOffset + 2] = outView[2];\n        dest[destOffset + 3] = outView[3];\n      };\n      break;\n    default:\n      writeOut = (dest, destOffset) => {\n        for (let i = 0; i < nOut; i++) {\n          dest[destOffset + i] = outView[i];\n        }\n      };\n  }\n  switch (nIn) {\n    case 1:\n      return (src, srcOffset, dest, destOffset) => {\n        fn(src[srcOffset]);\n        writeOut(dest, destOffset);\n      };\n    case 2:\n      return (src, srcOffset, dest, destOffset) => {\n        fn(src[srcOffset], src[srcOffset + 1]);\n        writeOut(dest, destOffset);\n      };\n    case 3:\n      return (src, srcOffset, dest, destOffset) => {\n        fn(src[srcOffset], src[srcOffset + 1], src[srcOffset + 2]);\n        writeOut(dest, destOffset);\n      };\n    case 4:\n      return (src, srcOffset, dest, destOffset) => {\n        fn(src[srcOffset], src[srcOffset + 1], src[srcOffset + 2], src[srcOffset + 3]);\n        writeOut(dest, destOffset);\n      };\n    default:\n      {\n        const inBuf = new Float64Array(nIn);\n        return (src, srcOffset, dest, destOffset) => {\n          for (let i = 0; i < nIn; i++) {\n            inBuf[i] = src[srcOffset + i];\n          }\n          fn(...inBuf);\n          writeOut(dest, destOffset);\n        };\n      }\n  }\n}\nfunction buildPostScriptWasmFunction(source, domain, range) {\n  const bytes = compilePostScriptToWasm(source, domain, range);\n  if (!bytes) {\n    return null;\n  }\n  try {\n    const instance = new WebAssembly.Instance(new WebAssembly.Module(bytes), _mathImportObject);\n    return _makeWrapper(instance.exports, domain.length >> 1, range.length >> 1);\n  } catch {\n    return null;\n  }\n}\n\n;// ./src/core/image_utils.js\n\n\n\n\n\n\n\n\n\n\n\nclass BaseLocalCache {\n  constructor(options) {\n    this._onlyRefs = options?.onlyRefs === true;\n    if (!this._onlyRefs) {\n      this._nameRefMap = new Map();\n      this._imageMap = new Map();\n    }\n    this._imageCache = new RefSetCache();\n  }\n  getByName(name) {\n    if (this._onlyRefs) {\n      unreachable(\"Should not call `getByName` method.\");\n    }\n    const ref = this._nameRefMap.get(name);\n    if (ref) {\n      return this.getByRef(ref);\n    }\n    return this._imageMap.get(name) || null;\n  }\n  getByRef(ref) {\n    return this._imageCache.get(ref) || null;\n  }\n  set(name, ref, data) {\n    unreachable(\"Abstract method `set` called.\");\n  }\n}\nclass LocalImageCache extends BaseLocalCache {\n  set(name, ref = null, data) {\n    if (typeof name !== \"string\") {\n      throw new Error('LocalImageCache.set - expected \"name\" argument.');\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      this._nameRefMap.set(name, ref);\n      this._imageCache.put(ref, data);\n      return;\n    }\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\nclass LocalColorSpaceCache extends BaseLocalCache {\n  set(name = null, ref = null, data) {\n    if (typeof name !== \"string\" && !ref) {\n      throw new Error('LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.');\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      if (name !== null) {\n        this._nameRefMap.set(name, ref);\n      }\n      this._imageCache.put(ref, data);\n      return;\n    }\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\nclass LocalFunctionCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n}\nclass LocalGStateCache extends BaseLocalCache {\n  set(name, ref = null, data) {\n    if (typeof name !== \"string\") {\n      throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      this._nameRefMap.set(name, ref);\n      this._imageCache.put(ref, data);\n      return;\n    }\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\nclass LocalTilingPatternCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n}\nclass RegionalImageCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('RegionalImageCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n}\nclass GlobalColorSpaceCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('GlobalColorSpaceCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n  clear() {\n    this._imageCache.clear();\n  }\n}\nclass GlobalImageCache {\n  static NUM_PAGES_THRESHOLD = 2;\n  static MIN_IMAGES_TO_CACHE = 10;\n  static MAX_BYTE_SIZE = 5e7;\n  #decodeFailedSet = new RefSet();\n  constructor() {\n    this._refCache = new RefSetCache();\n    this._imageCache = new RefSetCache();\n  }\n  get #byteSize() {\n    let byteSize = 0;\n    for (const imageData of this._imageCache) {\n      byteSize += imageData.byteSize;\n    }\n    return byteSize;\n  }\n  get #cacheLimitReached() {\n    if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n      return false;\n    }\n    if (this.#byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n      return false;\n    }\n    return true;\n  }\n  shouldCache(ref, pageIndex) {\n    let pageIndexSet = this._refCache.get(ref);\n    if (!pageIndexSet) {\n      pageIndexSet = new Set();\n      this._refCache.put(ref, pageIndexSet);\n    }\n    pageIndexSet.add(pageIndex);\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return false;\n    }\n    if (!this._imageCache.has(ref) && this.#cacheLimitReached) {\n      return false;\n    }\n    return true;\n  }\n  addDecodeFailed(ref) {\n    this.#decodeFailedSet.put(ref);\n  }\n  hasDecodeFailed(ref) {\n    return this.#decodeFailedSet.has(ref);\n  }\n  addByteSize(ref, byteSize) {\n    const imageData = this._imageCache.get(ref);\n    if (!imageData) {\n      return;\n    }\n    if (imageData.byteSize) {\n      return;\n    }\n    imageData.byteSize = byteSize;\n  }\n  getData(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n    if (!pageIndexSet) {\n      return null;\n    }\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return null;\n    }\n    const imageData = this._imageCache.get(ref);\n    if (!imageData) {\n      return null;\n    }\n    pageIndexSet.add(pageIndex);\n    return imageData;\n  }\n  setData(ref, data) {\n    if (!this._refCache.has(ref)) {\n      throw new Error('GlobalImageCache.setData - expected \"shouldCache\" to have been called.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    if (this.#cacheLimitReached) {\n      warn(\"GlobalImageCache.setData - cache limit reached.\");\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n  clear(onlyData = false) {\n    if (!onlyData) {\n      this.#decodeFailedSet.clear();\n      this._refCache.clear();\n    }\n    this._imageCache.clear();\n  }\n}\n\n;// ./src/core/function.js\n\n\n\n\n\n\n\n\n\n\n\n\nconst FunctionType = {\n  SAMPLED: 0,\n  EXPONENTIAL_INTERPOLATION: 2,\n  STITCHING: 3,\n  POSTSCRIPT_CALCULATOR: 4\n};\nclass PDFFunctionFactory {\n  static #useWasm = true;\n  static setOptions({\n    useWasm\n  }) {\n    this.#useWasm = useWasm;\n  }\n  constructor({\n    xref\n  }) {\n    this.xref = xref;\n  }\n  get useWasm() {\n    return PDFFunctionFactory.#useWasm;\n  }\n  create(fn, parseArray = false) {\n    let fnRef, parsedFn;\n    if (fn instanceof Ref) {\n      fnRef = fn;\n    } else if (fn instanceof Dict) {\n      fnRef = fn.objId;\n    } else if (fn instanceof BaseStream) {\n      fnRef = fn.dict?.objId;\n    }\n    if (fnRef) {\n      const cachedFn = this._localFunctionCache.getByRef(fnRef);\n      if (cachedFn) {\n        return cachedFn;\n      }\n    }\n    const fnObj = this.xref.fetchIfRef(fn);\n    if (Array.isArray(fnObj)) {\n      if (!parseArray) {\n        throw new Error('PDFFunctionFactory.create - expected \"parseArray\" argument.');\n      }\n      parsedFn = PDFFunction.parseArray(this, fnObj);\n    } else {\n      parsedFn = PDFFunction.parse(this, fnObj);\n    }\n    if (fnRef) {\n      this._localFunctionCache.set(null, fnRef, parsedFn);\n    }\n    return parsedFn;\n  }\n  get _localFunctionCache() {\n    return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n  }\n}\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n  if (!isNumberArray(arr, null)) {\n    return arr.map(x => +x);\n  }\n  return arr;\n}\nclass PDFFunction {\n  static getSampleArray(size, outputSize, bps, stream) {\n    let length = outputSize;\n    for (const s of size) {\n      length *= s;\n    }\n    const array = new Array(length);\n    let codeSize = 0;\n    let codeBuf = 0;\n    const sampleMul = 1.0 / (2.0 ** bps - 1);\n    const strBytes = stream.getBytes((length * bps + 7) / 8);\n    let strIdx = 0;\n    for (let i = 0; i < length; i++) {\n      while (codeSize < bps) {\n        codeBuf <<= 8;\n        codeBuf |= strBytes[strIdx++];\n        codeSize += 8;\n      }\n      codeSize -= bps;\n      array[i] = (codeBuf >> codeSize) * sampleMul;\n      codeBuf &= (1 << codeSize) - 1;\n    }\n    return array;\n  }\n  static parse(factory, fn) {\n    const dict = fn.dict || fn;\n    const typeNum = dict.get(\"FunctionType\");\n    switch (typeNum) {\n      case FunctionType.SAMPLED:\n        return this.constructSampled(factory, fn, dict);\n      case FunctionType.EXPONENTIAL_INTERPOLATION:\n        return this.constructInterpolated(factory, dict);\n      case FunctionType.STITCHING:\n        return this.constructStiched(factory, dict);\n      case FunctionType.POSTSCRIPT_CALCULATOR:\n        return this.constructPostScript(factory, fn, dict);\n    }\n    throw new FormatError(`Unknown function type: ${typeNum}`);\n  }\n  static parseArray(factory, fnObj) {\n    const {\n      xref\n    } = factory;\n    const fnArray = [];\n    for (const fn of fnObj) {\n      fnArray.push(this.parse(factory, xref.fetchIfRef(fn)));\n    }\n    return function (src, srcOffset, dest, destOffset) {\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        fnArray[i](src, srcOffset, dest, destOffset + i);\n      }\n    };\n  }\n  static constructSampled(factory, fn, dict) {\n    function interpolate(x, xmin, xmax, ymin, ymax) {\n      return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n    }\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n    const range = toNumberArray(dict.getArray(\"Range\"));\n    if (!domain || !range) {\n      throw new FormatError(\"No domain or range\");\n    }\n    const inputSize = domain.length / 2;\n    const outputSize = range.length / 2;\n    const size = toNumberArray(dict.getArray(\"Size\"));\n    const bps = dict.get(\"BitsPerSample\");\n    const order = dict.get(\"Order\") || 1;\n    if (order !== 1) {\n      info(\"No support for cubic spline interpolation: \" + order);\n    }\n    let encode = toNumberArray(dict.getArray(\"Encode\"));\n    if (!encode) {\n      encode = [];\n      for (let i = 0; i < inputSize; ++i) {\n        encode.push(0, size[i] - 1);\n      }\n    }\n    const decode = toNumberArray(dict.getArray(\"Decode\")) || range;\n    const samples = this.getSampleArray(size, outputSize, bps, fn);\n    return function constructSampledFn(src, srcOffset, dest, destOffset) {\n      const cubeVertices = 1 << inputSize;\n      const cubeN = new Float64Array(cubeVertices).fill(1);\n      const cubeVertex = new Uint32Array(cubeVertices);\n      let i, j;\n      let k = outputSize,\n        pos = 1;\n      for (i = 0; i < inputSize; ++i) {\n        const domain_2i = domain[2 * i];\n        const domain_2i_1 = domain[2 * i + 1];\n        const xi = MathClamp(src[srcOffset + i], domain_2i, domain_2i_1);\n        let e = interpolate(xi, domain_2i, domain_2i_1, encode[2 * i], encode[2 * i + 1]);\n        const size_i = size[i];\n        e = MathClamp(e, 0, size_i - 1);\n        const e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n        const n0 = e0 + 1 - e;\n        const n1 = e - e0;\n        const offset0 = e0 * k;\n        const offset1 = offset0 + k;\n        for (j = 0; j < cubeVertices; j++) {\n          if (j & pos) {\n            cubeN[j] *= n1;\n            cubeVertex[j] += offset1;\n          } else {\n            cubeN[j] *= n0;\n            cubeVertex[j] += offset0;\n          }\n        }\n        k *= size_i;\n        pos <<= 1;\n      }\n      for (j = 0; j < outputSize; ++j) {\n        let rj = 0;\n        for (i = 0; i < cubeVertices; i++) {\n          rj += samples[cubeVertex[i] + j] * cubeN[i];\n        }\n        rj = interpolate(rj, 0, 1, decode[2 * j], decode[2 * j + 1]);\n        dest[destOffset + j] = MathClamp(rj, range[2 * j], range[2 * j + 1]);\n      }\n    };\n  }\n  static constructInterpolated(factory, dict) {\n    const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n    const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n    const n = dict.get(\"N\");\n    const diff = [];\n    for (let i = 0, ii = c0.length; i < ii; ++i) {\n      diff.push(c1[i] - c0[i]);\n    }\n    const length = diff.length;\n    return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n      const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n      for (let j = 0; j < length; ++j) {\n        dest[destOffset + j] = c0[j] + x * diff[j];\n      }\n    };\n  }\n  static constructStiched(factory, dict) {\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n    if (!domain) {\n      throw new FormatError(\"No domain\");\n    }\n    const inputSize = domain.length / 2;\n    if (inputSize !== 1) {\n      throw new FormatError(\"Bad domain for stiched function\");\n    }\n    const {\n      xref\n    } = factory;\n    const fns = [];\n    for (const fn of dict.get(\"Functions\")) {\n      fns.push(this.parse(factory, xref.fetchIfRef(fn)));\n    }\n    const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n    const encode = toNumberArray(dict.getArray(\"Encode\"));\n    const tmpBuf = new Float32Array(1);\n    return function constructStichedFn(src, srcOffset, dest, destOffset) {\n      const v = MathClamp(src[srcOffset], domain[0], domain[1]);\n      const length = bounds.length;\n      let i;\n      for (i = 0; i < length; ++i) {\n        if (v < bounds[i]) {\n          break;\n        }\n      }\n      const dmin = i > 0 ? bounds[i - 1] : domain[0];\n      const dmax = i < length ? bounds[i] : domain[1];\n      const rmin = encode[2 * i];\n      const rmax = encode[2 * i + 1];\n      tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n      fns[i](tmpBuf, 0, dest, destOffset);\n    };\n  }\n  static constructPostScript(factory, fn, dict) {\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n    const range = toNumberArray(dict.getArray(\"Range\"));\n    if (!domain) {\n      throw new FormatError(\"No domain.\");\n    }\n    if (!range) {\n      throw new FormatError(\"No range.\");\n    }\n    const psCode = fn.getString();\n    try {\n      if (factory.useWasm) {\n        const wasmFn = buildPostScriptWasmFunction(psCode, domain, range);\n        if (wasmFn) {\n          return wasmFn;\n        }\n      }\n    } catch {}\n    warn(\"Failed to compile PostScript function to wasm, falling back to JS\");\n    return buildPostScriptJsFunction(psCode, domain, range);\n  }\n}\nfunction isPDFFunction(v) {\n  let fnDict;\n  if (v instanceof Dict) {\n    fnDict = v;\n  } else if (v instanceof BaseStream) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n  return fnDict.has(\"FunctionType\");\n}\n\n;// ./src/core/evaluator_utils.js\n\n\n\nfunction textSinkWrapper(sink) {\n  const TEXT_CONTENT_CHUNK_SIZE = 100;\n  const resolved = sink ? null : Promise.resolve();\n  return {\n    enqueueInvoked: false,\n    enqueue(chunk, size) {\n      this.enqueueInvoked = true;\n      sink?.enqueue(chunk, size);\n    },\n    get desiredSize() {\n      return sink?.desiredSize ?? TEXT_CONTENT_CHUNK_SIZE;\n    },\n    get ready() {\n      return sink?.ready ?? resolved;\n    }\n  };\n}\nfunction _parseVisibilityExpression(xref, array, nestingCounter, currentResult) {\n  const MAX_NESTING = 10;\n  if (++nestingCounter > MAX_NESTING) {\n    warn(\"Visibility expression is too deeply nested\");\n    return;\n  }\n  const length = array.length;\n  const operator = xref.fetchIfRef(array[0]);\n  if (length < 2 || !(operator instanceof Name)) {\n    warn(\"Invalid visibility expression\");\n    return;\n  }\n  switch (operator.name) {\n    case \"And\":\n    case \"Or\":\n    case \"Not\":\n      currentResult.push(operator.name);\n      break;\n    default:\n      warn(`Invalid operator ${operator.name} in visibility expression`);\n      return;\n  }\n  for (let i = 1; i < length; i++) {\n    const raw = array[i];\n    const object = xref.fetchIfRef(raw);\n    if (Array.isArray(object)) {\n      const nestedResult = [];\n      currentResult.push(nestedResult);\n      _parseVisibilityExpression(xref, object, nestingCounter, nestedResult);\n    } else if (raw instanceof Ref) {\n      currentResult.push(raw.toString());\n    }\n  }\n}\nfunction parseMarkedContentProps(xref, contentProperties, resources) {\n  let optionalContent;\n  if (contentProperties instanceof Name) {\n    const properties = resources.get(\"Properties\");\n    optionalContent = properties.get(contentProperties.name);\n  } else if (contentProperties instanceof Dict) {\n    optionalContent = contentProperties;\n  } else {\n    throw new FormatError(\"Optional content properties malformed.\");\n  }\n  const optionalContentType = optionalContent.get(\"Type\")?.name;\n  if (optionalContentType === \"OCG\") {\n    return {\n      type: optionalContentType,\n      id: optionalContent.objId\n    };\n  } else if (optionalContentType === \"OCMD\") {\n    const expression = optionalContent.get(\"VE\");\n    if (Array.isArray(expression)) {\n      const result = [];\n      _parseVisibilityExpression(xref, expression, 0, result);\n      if (result.length > 0) {\n        return {\n          type: \"OCMD\",\n          expression: result\n        };\n      }\n    }\n    const optionalContentGroups = optionalContent.get(\"OCGs\");\n    if (Array.isArray(optionalContentGroups) || optionalContentGroups instanceof Dict) {\n      const groupIds = [];\n      if (Array.isArray(optionalContentGroups)) {\n        for (const ocg of optionalContentGroups) {\n          groupIds.push(ocg.toString());\n        }\n      } else {\n        groupIds.push(optionalContentGroups.objId);\n      }\n      const p = optionalContent.get(\"P\");\n      return {\n        type: optionalContentType,\n        ids: groupIds,\n        policy: p instanceof Name ? p.name : null,\n        expression: null\n      };\n    } else if (optionalContentGroups instanceof Ref) {\n      return {\n        type: optionalContentType,\n        id: optionalContentGroups.toString()\n      };\n    }\n  }\n  return null;\n}\n\n;// ./src/core/bidi.js\n\nconst baseTypes = [\"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\", \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\", \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"];\nconst arabicTypes = [\"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\", \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"];\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\nfunction findUnequal(arr, start, value) {\n  let j, jj;\n  for (j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n  return j;\n}\nfunction reverseValues(arr, start, end) {\n  for (let i = start, j = end - 1; i < j; ++i, --j) {\n    const temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\nfunction createBidiText(str, isLTR, vertical = false) {\n  let dir = \"ltr\";\n  if (vertical) {\n    dir = \"ttb\";\n  } else if (!isLTR) {\n    dir = \"rtl\";\n  }\n  return {\n    str,\n    dir\n  };\n}\nconst chars = [];\nconst types = [];\nfunction bidi(str, startLevel = -1, vertical = false) {\n  let isLTR = true;\n  const strLength = str.length;\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n  chars.length = strLength;\n  types.length = strLength;\n  let numBidi = 0;\n  let i, ii;\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n    const charCode = str.charCodeAt(i);\n    let charType = \"L\";\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = \"R\";\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n      if (!charType) {\n        warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n      }\n    } else if (0x0700 <= charCode && charCode <= 0x08ac || 0xfb50 <= charCode && charCode <= 0xfdff || 0xfe70 <= charCode && charCode <= 0xfeff) {\n      charType = \"AL\";\n    }\n    if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n      numBidi++;\n    }\n    types[i] = charType;\n  }\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3 && strLength > 4) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n  const levels = [];\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n  const e = isOdd(startLevel) ? \"R\" : \"L\";\n  const sor = e;\n  const eor = sor;\n  let lastType = sor;\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"NSM\") {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n  lastType = sor;\n  let t;\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"EN\") {\n      types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n      lastType = t;\n    }\n  }\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"AL\") {\n      types[i] = \"R\";\n    }\n  }\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n      types[i] = \"EN\";\n    }\n    if (types[i] === \"CS\" && (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") && types[i + 1] === types[i - 1]) {\n      types[i] = types[i - 1];\n    }\n  }\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"EN\") {\n      for (let j = i - 1; j >= 0; --j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n        types[j] = \"EN\";\n      }\n      for (let j = i + 1; j < strLength; ++j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n        types[j] = \"EN\";\n      }\n    }\n  }\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n      types[i] = \"ON\";\n    }\n  }\n  lastType = sor;\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"EN\") {\n      types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\") {\n      lastType = t;\n    }\n  }\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      const end = findUnequal(types, i + 1, \"ON\");\n      let before = sor;\n      for (let j = i - 1; j >= 0; j--) {\n        const tt = types[j];\n        if (tt === \"L\") {\n          before = \"L\";\n          break;\n        }\n        if (tt === \"R\" || tt === \"EN\" || tt === \"AN\") {\n          before = \"R\";\n          break;\n        }\n      }\n      let after = eor;\n      for (let j = end; j < strLength; j++) {\n        const tt = types[j];\n        if (tt === \"L\") {\n          after = \"L\";\n          break;\n        }\n        if (tt === \"R\" || tt === \"EN\" || tt === \"AN\") {\n          after = \"R\";\n          break;\n        }\n      }\n      if (before === after) {\n        types.fill(before, i, end);\n      }\n      i = end - 1;\n    }\n  }\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      types[i] = e;\n    }\n  }\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (isEven(levels[i])) {\n      if (t === \"R\") {\n        levels[i] += 1;\n      } else if (t === \"AN\" || t === \"EN\") {\n        levels[i] += 2;\n      }\n    } else if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n      levels[i] += 1;\n    }\n  }\n  let highestLevel = -1;\n  let lowestOddLevel = 99;\n  let level;\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    let start = -1;\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    const ch = chars[i];\n    if (ch === \"<\" || ch === \">\") {\n      chars[i] = \"\";\n    }\n  }\n  return createBidiText(chars.join(\"\"), isLTR);\n}\n\n;// ./src/core/font_substitutions.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst NORMAL = {\n  style: \"normal\",\n  weight: \"normal\"\n};\nconst MEDIUM = {\n  style: \"normal\",\n  weight: \"500\"\n};\nconst BOLD = {\n  style: \"normal\",\n  weight: \"bold\"\n};\nconst ITALIC = {\n  style: \"italic\",\n  weight: \"normal\"\n};\nconst BOLDITALIC = {\n  style: \"italic\",\n  weight: \"bold\"\n};\nconst substitutionMap = new Map([[\"Times-Roman\", {\n  local: [\"Times New Roman\", \"Times-Roman\", \"Times\", \"Liberation Serif\", \"Nimbus Roman\", \"Nimbus Roman L\", \"Tinos\", \"Thorndale\", \"TeX Gyre Termes\", \"FreeSerif\", \"Linux Libertine O\", \"Libertinus Serif\", \"PT Astra Serif\", \"DejaVu Serif\", \"Bitstream Vera Serif\", \"Ubuntu\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"Times-Bold\", {\n  alias: \"Times-Roman\",\n  style: BOLD,\n  ultimate: \"serif\"\n}], [\"Times-Italic\", {\n  alias: \"Times-Roman\",\n  style: ITALIC,\n  ultimate: \"serif\"\n}], [\"Times-BoldItalic\", {\n  alias: \"Times-Roman\",\n  style: BOLDITALIC,\n  ultimate: \"serif\"\n}], [\"Helvetica\", {\n  local: [\"Helvetica\", \"Helvetica Neue\", \"Arial\", \"Arial Nova\", \"Liberation Sans\", \"Arimo\", \"Nimbus Sans\", \"Nimbus Sans L\", \"A030\", \"TeX Gyre Heros\", \"FreeSans\", \"DejaVu Sans\", \"Albany\", \"Bitstream Vera Sans\", \"Arial Unicode MS\", \"Microsoft Sans Serif\", \"Apple Symbols\", \"Cantarell\"],\n  path: \"LiberationSans-Regular.ttf\",\n  style: NORMAL,\n  ultimate: \"sans-serif\"\n}], [\"Helvetica-Bold\", {\n  alias: \"Helvetica\",\n  path: \"LiberationSans-Bold.ttf\",\n  style: BOLD,\n  ultimate: \"sans-serif\"\n}], [\"Helvetica-Oblique\", {\n  alias: \"Helvetica\",\n  path: \"LiberationSans-Italic.ttf\",\n  style: ITALIC,\n  ultimate: \"sans-serif\"\n}], [\"Helvetica-BoldOblique\", {\n  alias: \"Helvetica\",\n  path: \"LiberationSans-BoldItalic.ttf\",\n  style: BOLDITALIC,\n  ultimate: \"sans-serif\"\n}], [\"Courier\", {\n  local: [\"Courier\", \"Courier New\", \"Liberation Mono\", \"Nimbus Mono\", \"Nimbus Mono L\", \"Cousine\", \"Cumberland\", \"TeX Gyre Cursor\", \"FreeMono\", \"Linux Libertine Mono O\", \"Libertinus Mono\"],\n  style: NORMAL,\n  ultimate: \"monospace\"\n}], [\"Courier-Bold\", {\n  alias: \"Courier\",\n  style: BOLD,\n  ultimate: \"monospace\"\n}], [\"Courier-Oblique\", {\n  alias: \"Courier\",\n  style: ITALIC,\n  ultimate: \"monospace\"\n}], [\"Courier-BoldOblique\", {\n  alias: \"Courier\",\n  style: BOLDITALIC,\n  ultimate: \"monospace\"\n}], [\"ArialBlack\", {\n  local: [\"Arial Black\"],\n  style: {\n    style: \"normal\",\n    weight: \"900\"\n  },\n  fallback: \"Helvetica-Bold\"\n}], [\"ArialBlack-Bold\", {\n  alias: \"ArialBlack\"\n}], [\"ArialBlack-Italic\", {\n  alias: \"ArialBlack\",\n  style: {\n    style: \"italic\",\n    weight: \"900\"\n  },\n  fallback: \"Helvetica-BoldOblique\"\n}], [\"ArialBlack-BoldItalic\", {\n  alias: \"ArialBlack-Italic\"\n}], [\"ArialNarrow\", {\n  local: [\"Arial Narrow\", \"Liberation Sans Narrow\", \"Helvetica Condensed\", \"Nimbus Sans Narrow\", \"TeX Gyre Heros Cn\"],\n  style: NORMAL,\n  fallback: \"Helvetica\"\n}], [\"ArialNarrow-Bold\", {\n  alias: \"ArialNarrow\",\n  style: BOLD,\n  fallback: \"Helvetica-Bold\"\n}], [\"ArialNarrow-Italic\", {\n  alias: \"ArialNarrow\",\n  style: ITALIC,\n  fallback: \"Helvetica-Oblique\"\n}], [\"ArialNarrow-BoldItalic\", {\n  alias: \"ArialNarrow\",\n  style: BOLDITALIC,\n  fallback: \"Helvetica-BoldOblique\"\n}], [\"Calibri\", {\n  local: [\"Calibri\", \"Carlito\"],\n  style: NORMAL,\n  fallback: \"Helvetica\"\n}], [\"Calibri-Bold\", {\n  alias: \"Calibri\",\n  style: BOLD,\n  fallback: \"Helvetica-Bold\"\n}], [\"Calibri-Italic\", {\n  alias: \"Calibri\",\n  style: ITALIC,\n  fallback: \"Helvetica-Oblique\"\n}], [\"Calibri-BoldItalic\", {\n  alias: \"Calibri\",\n  style: BOLDITALIC,\n  fallback: \"Helvetica-BoldOblique\"\n}], [\"Wingdings\", {\n  local: [\"Wingdings\", \"URW Dingbats\"],\n  style: NORMAL\n}], [\"Wingdings-Regular\", {\n  alias: \"Wingdings\"\n}], [\"Wingdings-Bold\", {\n  alias: \"Wingdings\"\n}], [\"\\xCB\\xCE\\xCC\\xE5\", {\n  local: [\"SimSun\", \"SimSun Regular\", \"NSimSun\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"\\xBA\\xDA\\xCC\\xE5\", {\n  local: [\"SimHei\", \"SimHei Regular\"],\n  style: NORMAL,\n  ultimate: \"sans-serif\"\n}], [\"\\xBF\\xAC\\xCC\\xE5\", {\n  local: [\"KaiTi\", \"SimKai\", \"SimKai Regular\"],\n  style: NORMAL,\n  ultimate: \"sans-serif\"\n}], [\"\\xB7\\xC2\\xCB\\xCE\", {\n  local: [\"FangSong\", \"SimFang\", \"SimFang Regular\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"\\xBF\\xAC\\xCC\\xE5_GB2312\", {\n  alias: \"\\xBF\\xAC\\xCC\\xE5\"\n}], [\"\\xB7\\xC2\\xCB\\xCE_GB2312\", {\n  alias: \"\\xB7\\xC2\\xCB\\xCE\"\n}], [\"\\xC1\\xA5\\xCA\\xE9\", {\n  local: [\"SimLi\", \"SimLi Regular\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"\\xD0\\xC2\\xCB\\xCE\", {\n  alias: \"\\xCB\\xCE\\xCC\\xE5\"\n}], [\"HeiseiMin-W3\", {\n  local: [\"Hiragino Mincho ProN\", \"Hiragino Mincho Pro\", \"Yu Mincho\", \"YuMincho\", \"Source Han Serif JP\", \"Noto Serif JP\", \"Noto Serif CJK JP\", \"IPAexMincho\", \"IPAMincho\", \"Takao Mincho\", \"MS Mincho\", \"MS PMincho\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"HeiseiKakuGo-W5\", {\n  local: [\"Hiragino Kaku Gothic ProN\", \"Hiragino Kaku Gothic Pro\", \"Hiragino Sans\", \"Yu Gothic\", \"YuGothic\", \"Source Han Sans JP\", \"Noto Sans JP\", \"Noto Sans CJK JP\", \"IPAexGothic\", \"IPAGothic\", \"Takao Gothic\", \"Meiryo\", \"MS Gothic\", \"MS PGothic\"],\n  style: MEDIUM,\n  ultimate: \"sans-serif\"\n}], [\"HeiseiMin-W3-Acro\", {\n  alias: \"HeiseiMin-W3\"\n}], [\"HeiseiKakuGo-W5-Acro\", {\n  alias: \"HeiseiKakuGo-W5\"\n}], [\"KozMinPro-Regular\", {\n  alias: \"HeiseiMin-W3\"\n}], [\"KozMinProVI-Regular\", {\n  alias: \"HeiseiMin-W3\"\n}], [\"KozMinPr6N-Regular\", {\n  alias: \"HeiseiMin-W3\"\n}], [\"KozGoPro-Regular\", {\n  alias: \"HeiseiKakuGo-W5\"\n}], [\"KozGoProVI-Regular\", {\n  alias: \"HeiseiKakuGo-W5\"\n}], [\"KozGoPr6N-Regular\", {\n  alias: \"HeiseiKakuGo-W5\"\n}], [\"STSong-Light\", {\n  local: [\"STSong\", \"Songti SC\", \"Source Han Serif SC\", \"Source Han Serif CN\", \"Noto Serif SC\", \"Noto Serif CJK SC\", \"AR PL UMing CN\", \"SimSun\", \"NSimSun\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"STHeiti-Regular\", {\n  local: [\"STHeiti\", \"Heiti SC\", \"PingFang SC\", \"Source Han Sans SC\", \"Source Han Sans CN\", \"Noto Sans SC\", \"Noto Sans CJK SC\", \"Microsoft YaHei\", \"SimHei\", \"WenQuanYi Zen Hei\"],\n  style: NORMAL,\n  ultimate: \"sans-serif\"\n}], [\"STSongStd-Light\", {\n  alias: \"STSong-Light\"\n}], [\"AdobeSongStd-Light\", {\n  alias: \"STSong-Light\"\n}], [\"AdobeHeitiStd-Regular\", {\n  alias: \"STHeiti-Regular\"\n}], [\"AdobeKaitiStd-Regular\", {\n  alias: \"\\xBF\\xAC\\xCC\\xE5\"\n}], [\"AdobeFangsongStd-Regular\", {\n  alias: \"\\xB7\\xC2\\xCB\\xCE\"\n}], [\"MSung-Light\", {\n  local: [\"Songti TC\", \"LiSong Pro\", \"Source Han Serif TC\", \"Source Han Serif TW\", \"Noto Serif TC\", \"Noto Serif CJK TC\", \"AR PL UMing TW\", \"PMingLiU\", \"MingLiU\", \"MingLiU_HKSCS\"],\n  style: NORMAL,\n  ultimate: \"serif\"\n}], [\"MHei-Medium\", {\n  local: [\"Heiti TC\", \"STHeiti\", \"Source Han Sans TC\", \"Source Han Sans TW\", \"Noto Sans TC\", \"Noto Sans CJK TC\", \"PingFang TC\", \"Microsoft JhengHei\"],\n  style: MEDIUM,\n  ultimate: \"sans-serif\"\n}], [\"MSungStd-Light\", {\n  alias: \"MSung-Light\"\n}], [\"AdobeMingStd-Light\", {\n  alias: \"MSung-Light\"\n}], [\"HYSMyeongJo-Medium\", {\n  local: [\"AppleMyungjo\", \"Source Han Serif KR\", \"Noto Serif KR\", \"Noto Serif CJK KR\", \"Nanum Myeongjo\", \"Batang\"],\n  style: MEDIUM,\n  ultimate: \"serif\"\n}], [\"HYGoThic-Medium\", {\n  local: [\"Apple SD Gothic Neo\", \"AppleGothic\", \"Source Han Sans KR\", \"Noto Sans KR\", \"Noto Sans CJK KR\", \"Nanum Gothic\", \"Malgun Gothic\", \"Dotum\", \"Gulim\"],\n  style: MEDIUM,\n  ultimate: \"sans-serif\"\n}], [\"HYSMyeongJoStd-Medium\", {\n  alias: \"HYSMyeongJo-Medium\"\n}], [\"AdobeMyungjoStd-Medium\", {\n  alias: \"HYSMyeongJo-Medium\"\n}], [\"HYGoThic-Bold\", {\n  alias: \"HYGoThic-Medium\",\n  style: BOLD\n}], [\"AdobeGothicStd-Bold\", {\n  alias: \"HYGoThic-Medium\",\n  style: BOLD\n}]]);\nconst fontAliases = new Map([[\"Arial-Black\", \"ArialBlack\"]]);\nfunction getStyleToAppend(style) {\n  switch (style) {\n    case BOLD:\n      return \"Bold\";\n    case ITALIC:\n      return \"Italic\";\n    case BOLDITALIC:\n      return \"Bold Italic\";\n    default:\n      if (style?.weight === \"bold\") {\n        return \"Bold\";\n      }\n      if (style?.style === \"italic\") {\n        return \"Italic\";\n      }\n  }\n  return \"\";\n}\nfunction getFamilyName(str) {\n  const keywords = new Set([\"thin\", \"extralight\", \"ultralight\", \"demilight\", \"semilight\", \"light\", \"book\", \"regular\", \"normal\", \"medium\", \"demibold\", \"semibold\", \"bold\", \"extrabold\", \"ultrabold\", \"black\", \"heavy\", \"extrablack\", \"ultrablack\", \"roman\", \"italic\", \"oblique\", \"ultracondensed\", \"extracondensed\", \"condensed\", \"semicondensed\", \"normal\", \"semiexpanded\", \"expanded\", \"extraexpanded\", \"ultraexpanded\", \"bolditalic\"]);\n  return str.split(/[- ,+]+/g).filter(tok => !keywords.has(tok.toLowerCase())).join(\" \");\n}\nfunction generateFont({\n  alias,\n  local,\n  path,\n  fallback,\n  style,\n  ultimate\n}, src, localFontPath, useFallback = true, usePath = true, append = \"\") {\n  const result = {\n    style: null,\n    ultimate: null\n  };\n  if (local) {\n    const extra = append ? ` ${append}` : \"\";\n    for (const name of local) {\n      src.push(`local(${name}${extra})`);\n    }\n  }\n  if (alias) {\n    const substitution = substitutionMap.get(alias);\n    const aliasAppend = append || getStyleToAppend(style);\n    Object.assign(result, generateFont(substitution, src, localFontPath, useFallback && !fallback, usePath && !path, aliasAppend));\n  }\n  if (style) {\n    result.style = style;\n  }\n  if (ultimate) {\n    result.ultimate = ultimate;\n  }\n  if (useFallback && fallback) {\n    const fallbackInfo = substitutionMap.get(fallback);\n    const {\n      ultimate: fallbackUltimate\n    } = generateFont(fallbackInfo, src, localFontPath, useFallback, usePath && !path, append);\n    result.ultimate ||= fallbackUltimate;\n  }\n  if (usePath && path && localFontPath) {\n    src.push(`url(${localFontPath}${path})`);\n  }\n  return result;\n}\nfunction getFontSubstitution(systemFontCache, idFactory, localFontPath, baseFontName, standardFontName, type) {\n  if (baseFontName.startsWith(\"InvalidPDFjsFont_\")) {\n    return null;\n  }\n  if ((type === \"TrueType\" || type === \"Type1\") && /^[A-Z]{6}\\+/.test(baseFontName)) {\n    baseFontName = baseFontName.slice(7);\n  }\n  baseFontName = normalizeFontName(baseFontName);\n  const key = baseFontName;\n  let substitutionInfo = systemFontCache.get(key);\n  if (substitutionInfo) {\n    return substitutionInfo;\n  }\n  let substitution = substitutionMap.get(baseFontName);\n  if (!substitution) {\n    for (const [alias, subst] of fontAliases) {\n      if (baseFontName.startsWith(alias)) {\n        baseFontName = `${subst}${baseFontName.substring(alias.length)}`;\n        substitution = substitutionMap.get(baseFontName);\n        break;\n      }\n    }\n  }\n  let mustAddBaseFont = false;\n  if (!substitution) {\n    substitution = substitutionMap.get(standardFontName);\n    mustAddBaseFont = true;\n  }\n  const loadedName = `${idFactory.getDocId()}_s${idFactory.createFontId()}`;\n  if (!substitution) {\n    if (!validateFontName(baseFontName)) {\n      warn(`Cannot substitute the font because of its name: ${baseFontName}`);\n      systemFontCache.set(key, null);\n      return null;\n    }\n    const bold = /bold/i.test(baseFontName);\n    const italic = /oblique|italic/i.test(baseFontName);\n    const style = bold && italic && BOLDITALIC || bold && BOLD || italic && ITALIC || NORMAL;\n    substitutionInfo = {\n      css: `\"${getFamilyName(baseFontName)}\",${loadedName}`,\n      guessFallback: true,\n      loadedName,\n      baseFontName,\n      src: `local(${baseFontName})`,\n      style\n    };\n    systemFontCache.set(key, substitutionInfo);\n    return substitutionInfo;\n  }\n  const src = [];\n  if (mustAddBaseFont && validateFontName(baseFontName)) {\n    src.push(`local(${baseFontName})`);\n  }\n  const {\n    style,\n    ultimate\n  } = generateFont(substitution, src, localFontPath);\n  const guessFallback = ultimate === null;\n  const fallback = guessFallback ? \"\" : `,${ultimate}`;\n  substitutionInfo = {\n    css: `\"${getFamilyName(baseFontName)}\",${loadedName}${fallback}`,\n    guessFallback,\n    loadedName,\n    baseFontName,\n    src: src.join(\",\"),\n    style\n  };\n  systemFontCache.set(key, substitutionInfo);\n  return substitutionInfo;\n}\n\n;// ./src/shared/murmurhash3.js\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/core/image.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass PDFImage {\n  constructor({\n    xref,\n    res,\n    image,\n    isInline = false,\n    smask = null,\n    mask = null,\n    isMask = false,\n    pdfFunctionFactory,\n    globalColorSpaceCache,\n    localColorSpaceCache\n  }) {\n    this.image = image;\n    const dict = image.dict;\n    const filter = dict.get(\"F\", \"Filter\");\n    let filterName;\n    if (filter instanceof Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = xref.fetchIfRef(filter[0]);\n      if (filterZero instanceof Name) {\n        filterName = filterZero.name;\n      }\n    }\n    switch (filterName) {\n      case \"JPXDecode\":\n        ({\n          width: image.width,\n          height: image.height,\n          componentsCount: image.numComps,\n          bitsPerComponent: image.bitsPerComponent\n        } = JpxImage.parseImageProperties(image.stream));\n        image.stream.reset();\n        const reducePower = ImageResizer.getReducePowerForJPX(image.width, image.height, image.numComps);\n        this.jpxDecoderOptions = {\n          numComponents: 0,\n          isIndexedColormap: false,\n          smaskInData: dict.has(\"SMaskInData\"),\n          reducePower\n        };\n        if (reducePower) {\n          const factor = 2 ** reducePower;\n          image.width = Math.ceil(image.width / factor);\n          image.height = Math.ceil(image.height / factor);\n        }\n        break;\n      case \"JBIG2Decode\":\n        image.bitsPerComponent = 1;\n        image.numComps = 1;\n        break;\n    }\n    let width = dict.get(\"W\", \"Width\");\n    let height = dict.get(\"H\", \"Height\");\n    if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n      warn(\"PDFImage - using the Width/Height of the image data, \" + \"rather than the image dictionary.\");\n      width = image.width;\n      height = image.height;\n    } else {\n      const validWidth = typeof width === \"number\" && width > 0,\n        validHeight = typeof height === \"number\" && height > 0;\n      if (!validWidth || !validHeight) {\n        if (!image.fallbackDims) {\n          throw new FormatError(`Invalid image width: ${width} or height: ${height}`);\n        }\n        warn(\"PDFImage - using the Width/Height of the parent image, for SMask/Mask data.\");\n        if (!validWidth) {\n          width = image.fallbackDims.width;\n        }\n        if (!validHeight) {\n          height = image.fallbackDims.height;\n        }\n      }\n    }\n    this.width = width;\n    this.height = height;\n    this.interpolate = dict.get(\"I\", \"Interpolate\");\n    this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    this.matte = dict.get(\"Matte\") || false;\n    let bitsPerComponent = image.bitsPerComponent;\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new FormatError(`Bits per component missing in image: ${this.imageMask}`);\n        }\n      }\n    }\n    this.bpc = bitsPerComponent;\n    if (!this.imageMask) {\n      let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n      const hasColorSpace = !!colorSpace;\n      if (!hasColorSpace) {\n        if (this.jpxDecoderOptions) {\n          colorSpace = Name.get(\"DeviceRGBA\");\n        } else {\n          switch (image.numComps) {\n            case 1:\n              colorSpace = Name.get(\"DeviceGray\");\n              break;\n            case 3:\n              colorSpace = Name.get(\"DeviceRGB\");\n              break;\n            case 4:\n              colorSpace = Name.get(\"DeviceCMYK\");\n              break;\n            default:\n              throw new Error(`Images with ${image.numComps} color components not supported.`);\n          }\n        }\n      } else if (this.jpxDecoderOptions?.smaskInData) {\n        colorSpace = Name.get(\"DeviceRGBA\");\n      }\n      this.colorSpace = ColorSpaceUtils.parse({\n        cs: colorSpace,\n        xref,\n        resources: isInline ? res : null,\n        pdfFunctionFactory,\n        globalColorSpaceCache,\n        localColorSpaceCache\n      });\n      this.numComps = this.colorSpace.numComps;\n      if (this.jpxDecoderOptions) {\n        this.jpxDecoderOptions.numComponents = hasColorSpace ? this.numComps : 0;\n        this.jpxDecoderOptions.isIndexedColormap = this.colorSpace.name === \"Indexed\";\n      }\n    } else {\n      this.numComps = 1;\n    }\n    this.decode = dict.getArray(\"D\", \"Decode\");\n    this.needsDecode = false;\n    if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !ColorSpace.isDefaultDecode(this.decode, 1))) {\n      this.needsDecode = true;\n      const max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      const isIndexed = this.colorSpace?.name === \"Indexed\";\n      for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        const dmin = this.decode[i];\n        const dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n    if (smask) {\n      smask.fallbackDims ??= {\n        width,\n        height\n      };\n      this.smask = new PDFImage({\n        xref,\n        res,\n        image: smask,\n        isInline,\n        pdfFunctionFactory,\n        globalColorSpaceCache,\n        localColorSpaceCache\n      });\n    } else if (mask) {\n      if (mask instanceof BaseStream) {\n        const maskDict = mask.dict,\n          imageMask = maskDict.get(\"IM\", \"ImageMask\");\n        if (!imageMask) {\n          warn(\"Ignoring /Mask in image without /ImageMask.\");\n        } else {\n          mask.fallbackDims ??= {\n            width,\n            height\n          };\n          this.mask = new PDFImage({\n            xref,\n            res,\n            image: mask,\n            isInline,\n            isMask: true,\n            pdfFunctionFactory,\n            globalColorSpaceCache,\n            localColorSpaceCache\n          });\n        }\n      } else {\n        this.mask = mask;\n      }\n    }\n  }\n  static async buildImage({\n    xref,\n    res,\n    image,\n    isInline = false,\n    pdfFunctionFactory,\n    globalColorSpaceCache,\n    localColorSpaceCache\n  }) {\n    const imageData = image;\n    let smaskData = null;\n    let maskData = null;\n    const smask = image.dict.get(\"SMask\");\n    const mask = image.dict.get(\"Mask\");\n    if (smask) {\n      if (smask instanceof BaseStream) {\n        smaskData = smask;\n      } else {\n        warn(\"Unsupported /SMask format.\");\n      }\n    } else if (mask) {\n      if (mask instanceof BaseStream || Array.isArray(mask)) {\n        maskData = mask;\n      } else {\n        warn(\"Unsupported /Mask format.\");\n      }\n    }\n    return new PDFImage({\n      xref,\n      res,\n      image: imageData,\n      isInline,\n      smask: smaskData,\n      mask: maskData,\n      pdfFunctionFactory,\n      globalColorSpaceCache,\n      localColorSpaceCache\n    });\n  }\n  static async createMask({\n    image,\n    isOffscreenCanvasSupported = false\n  }) {\n    const {\n      dict\n    } = image;\n    const width = dict.get(\"W\", \"Width\");\n    const height = dict.get(\"H\", \"Height\");\n    const interpolate = dict.get(\"I\", \"Interpolate\");\n    const decode = dict.getArray(\"D\", \"Decode\");\n    const inverseDecode = decode?.[0] > 0;\n    const computedLength = (width + 7 >> 3) * height;\n    const imgArray = await image.getImageData(computedLength);\n    const isSingleOpaquePixel = width === 1 && height === 1 && inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n    if (isSingleOpaquePixel) {\n      return {\n        isSingleOpaquePixel\n      };\n    }\n    if (isOffscreenCanvasSupported) {\n      if (ImageResizer.needsToBeResized(width, height)) {\n        const data = new Uint8ClampedArray(width * height * 4);\n        convertBlackAndWhiteToRGBA({\n          src: imgArray,\n          dest: data,\n          width,\n          height,\n          nonBlackColor: 0,\n          inverseDecode\n        });\n        return ImageResizer.createImage({\n          kind: ImageKind.RGBA_32BPP,\n          data,\n          width,\n          height,\n          interpolate\n        });\n      }\n      const canvas = new OffscreenCanvas(width, height);\n      const ctx = canvas.getContext(\"2d\");\n      const imgData = ctx.createImageData(width, height);\n      convertBlackAndWhiteToRGBA({\n        src: imgArray,\n        dest: imgData.data,\n        width,\n        height,\n        nonBlackColor: 0,\n        inverseDecode\n      });\n      ctx.putImageData(imgData, 0, 0);\n      const bitmap = canvas.transferToImageBitmap();\n      return {\n        data: null,\n        width,\n        height,\n        interpolate,\n        bitmap\n      };\n    }\n    const actualLength = imgArray.byteLength;\n    const haveFullData = computedLength === actualLength;\n    let data;\n    if (image instanceof DecodeStream && (!inverseDecode || haveFullData)) {\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8Array(imgArray);\n    } else {\n      data = new Uint8Array(computedLength);\n      data.set(imgArray);\n      data.fill(0xff, actualLength);\n    }\n    if (inverseDecode) {\n      for (let i = 0; i < actualLength; i++) {\n        data[i] ^= 0xff;\n      }\n    }\n    return {\n      data,\n      width,\n      height,\n      interpolate\n    };\n  }\n  get drawWidth() {\n    return Math.max(this.width, this.smask?.width || 0, this.mask?.width || 0);\n  }\n  get drawHeight() {\n    return Math.max(this.height, this.smask?.height || 0, this.mask?.height || 0);\n  }\n  decodeBuffer(buffer) {\n    const bpc = this.bpc;\n    const numComps = this.numComps;\n    const decodeAddends = this.decodeAddends;\n    const decodeCoefficients = this.decodeCoefficients;\n    const max = (1 << bpc) - 1;\n    let i, ii;\n    if (bpc === 1) {\n      for (i = 0, ii = buffer.length; i < ii; i++) {\n        buffer[i] = +!buffer[i];\n      }\n      return;\n    }\n    let index = 0;\n    for (i = 0, ii = this.width * this.height; i < ii; i++) {\n      for (let j = 0; j < numComps; j++) {\n        buffer[index] = MathClamp(decodeAddends[j] + buffer[index] * decodeCoefficients[j], 0, max);\n        index++;\n      }\n    }\n  }\n  getComponents(buffer) {\n    const bpc = this.bpc;\n    if (bpc === 8) {\n      return buffer;\n    }\n    const width = this.width;\n    const height = this.height;\n    const numComps = this.numComps;\n    const length = width * height * numComps;\n    let bufferPos = 0;\n    let output;\n    if (bpc <= 8) {\n      output = new Uint8Array(length);\n    } else if (bpc <= 16) {\n      output = new Uint16Array(length);\n    } else {\n      output = new Uint32Array(length);\n    }\n    const rowComps = width * numComps;\n    const max = (1 << bpc) - 1;\n    let i = 0,\n      ii,\n      buf;\n    if (bpc === 1) {\n      let mask, loop1End, loop2End;\n      for (let j = 0; j < height; j++) {\n        loop1End = i + (rowComps & ~7);\n        loop2End = i + rowComps;\n        while (i < loop1End) {\n          buf = buffer[bufferPos++];\n          output[i] = buf >> 7 & 1;\n          output[i + 1] = buf >> 6 & 1;\n          output[i + 2] = buf >> 5 & 1;\n          output[i + 3] = buf >> 4 & 1;\n          output[i + 4] = buf >> 3 & 1;\n          output[i + 5] = buf >> 2 & 1;\n          output[i + 6] = buf >> 1 & 1;\n          output[i + 7] = buf & 1;\n          i += 8;\n        }\n        if (i < loop2End) {\n          buf = buffer[bufferPos++];\n          mask = 128;\n          while (i < loop2End) {\n            output[i++] = +!!(buf & mask);\n            mask >>= 1;\n          }\n        }\n      }\n    } else {\n      let bits = 0;\n      buf = 0;\n      for (i = 0, ii = length; i < ii; ++i) {\n        if (i % rowComps === 0) {\n          buf = 0;\n          bits = 0;\n        }\n        while (bits < bpc) {\n          buf = buf << 8 | buffer[bufferPos++];\n          bits += 8;\n        }\n        const remainingBits = bits - bpc;\n        let value = buf >> remainingBits;\n        if (value < 0) {\n          value = 0;\n        } else if (value > max) {\n          value = max;\n        }\n        output[i] = value;\n        buf &= (1 << remainingBits) - 1;\n        bits = remainingBits;\n      }\n    }\n    return output;\n  }\n  async fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n    let apply;\n    if (this.smask) {\n      apply = (buffer, options) => this.smask.fillGrayBuffer(buffer, {\n        ...options,\n        destWidth: width,\n        destHeight: height\n      });\n    } else if (this.mask) {\n      if (this.mask instanceof PDFImage) {\n        apply = (buffer, options) => this.mask.fillGrayBuffer(buffer, {\n          ...options,\n          invertOutput: true,\n          destWidth: width,\n          destHeight: height\n        });\n      } else if (Array.isArray(this.mask)) {\n        apply = (buffer, {\n          maxRows,\n          offset,\n          stride\n        }) => {\n          for (let i = 0, ii = width * maxRows; i < ii; ++i) {\n            let opacity = 0;\n            const imageOffset = i * this.numComps;\n            for (let j = 0; j < this.numComps; ++j) {\n              const color = image[imageOffset + j];\n              const maskOffset = j * 2;\n              if (color < this.mask[maskOffset] || color > this.mask[maskOffset + 1]) {\n                opacity = 255;\n                break;\n              }\n            }\n            buffer[i * stride + offset] = opacity;\n          }\n        };\n      } else {\n        throw new FormatError(\"Unknown mask format.\");\n      }\n    } else {\n      apply = (buffer, {\n        maxRows,\n        offset,\n        stride\n      }) => {\n        for (let i = 0, ii = width * maxRows; i < ii; ++i) {\n          buffer[i * stride + offset] = 255;\n        }\n      };\n    }\n    await apply(rgbaBuf, {\n      maxRows: actualHeight,\n      offset: 3,\n      stride: 4\n    });\n  }\n  undoPreblend(buffer, width, height) {\n    const matte = this.smask?.matte;\n    if (!matte) {\n      return;\n    }\n    const matteRgb = this.colorSpace.getRgb(matte, 0);\n    const matteR = matteRgb[0];\n    const matteG = matteRgb[1];\n    const matteB = matteRgb[2];\n    const length = width * height * 4;\n    for (let i = 0; i < length; i += 4) {\n      const alpha = buffer[i + 3];\n      if (alpha === 0) {\n        buffer[i] = 255;\n        buffer[i + 1] = 255;\n        buffer[i + 2] = 255;\n        continue;\n      }\n      const k = 255 / alpha;\n      buffer[i] = (buffer[i] - matteR) * k + matteR;\n      buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n      buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n    }\n  }\n  async createImageData(forceRGBA = false, isOffscreenCanvasSupported = false) {\n    const drawWidth = this.drawWidth;\n    const drawHeight = this.drawHeight;\n    const imgData = {\n      width: drawWidth,\n      height: drawHeight,\n      interpolate: this.interpolate,\n      kind: 0,\n      data: null\n    };\n    const numComps = this.numComps;\n    const originalWidth = this.width;\n    const originalHeight = this.height;\n    const bpc = this.bpc;\n    const rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n    const mustBeResized = isOffscreenCanvasSupported && ImageResizer.needsToBeResized(drawWidth, drawHeight);\n    if (!this.smask && !this.mask && this.colorSpace.name === \"DeviceRGBA\") {\n      imgData.kind = ImageKind.RGBA_32BPP;\n      const imgArray = imgData.data = await this.getImageBytes(originalHeight * originalWidth * 4, {\n        internal: isOffscreenCanvasSupported && mustBeResized\n      });\n      if (isOffscreenCanvasSupported) {\n        if (!mustBeResized) {\n          return this.createBitmap(ImageKind.RGBA_32BPP, drawWidth, drawHeight, imgArray);\n        }\n        return ImageResizer.createImage(imgData, false);\n      }\n      return imgData;\n    }\n    if (!forceRGBA) {\n      let kind;\n      if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n        kind = ImageKind.GRAYSCALE_1BPP;\n      } else if (this.colorSpace.name === \"DeviceRGB\" && bpc === 8 && !this.needsDecode) {\n        kind = ImageKind.RGB_24BPP;\n      }\n      if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n        const image = await this.#getImage(originalWidth, originalHeight);\n        if (image) {\n          return image;\n        }\n        const data = await this.getImageBytes(originalHeight * rowBytes, {\n          internal: isOffscreenCanvasSupported && mustBeResized\n        });\n        if (isOffscreenCanvasSupported) {\n          if (mustBeResized) {\n            return ImageResizer.createImage({\n              data,\n              kind,\n              width: drawWidth,\n              height: drawHeight,\n              interpolate: this.interpolate\n            }, this.needsDecode);\n          }\n          return this.createBitmap(kind, originalWidth, originalHeight, data);\n        }\n        imgData.kind = kind;\n        imgData.data = data;\n        if (this.needsDecode) {\n          assert(kind === ImageKind.GRAYSCALE_1BPP, \"PDFImage.createImageData: The image must be grayscale.\");\n          const buffer = imgData.data;\n          for (let i = 0, ii = buffer.length; i < ii; i++) {\n            buffer[i] ^= 0xff;\n          }\n        }\n        return imgData;\n      }\n      if (this.image instanceof JpegStream && !this.smask && !this.mask && !this.needsDecode) {\n        let imageLength = originalHeight * rowBytes;\n        if (isOffscreenCanvasSupported && !mustBeResized) {\n          let isHandled = false;\n          switch (this.colorSpace.name) {\n            case \"DeviceGray\":\n              imageLength *= 4;\n              isHandled = true;\n              break;\n            case \"DeviceRGB\":\n              imageLength = imageLength / 3 * 4;\n              isHandled = true;\n              break;\n            case \"DeviceCMYK\":\n              isHandled = true;\n              break;\n          }\n          if (isHandled) {\n            const image = await this.#getImage(drawWidth, drawHeight);\n            if (image) {\n              return image;\n            }\n            const rgba = await this.getImageBytes(imageLength, {\n              drawWidth,\n              drawHeight,\n              forceRGBA: true,\n              internal: true\n            });\n            return this.createBitmap(ImageKind.RGBA_32BPP, drawWidth, drawHeight, rgba);\n          }\n        } else {\n          switch (this.colorSpace.name) {\n            case \"DeviceGray\":\n              imageLength *= 3;\n            case \"DeviceRGB\":\n            case \"DeviceCMYK\":\n              imgData.kind = ImageKind.RGB_24BPP;\n              imgData.data = await this.getImageBytes(imageLength, {\n                drawWidth,\n                drawHeight,\n                forceRGB: true,\n                internal: mustBeResized\n              });\n              if (mustBeResized) {\n                return ImageResizer.createImage(imgData);\n              }\n              return imgData;\n          }\n        }\n      }\n    }\n    const imgArray = await this.getImageBytes(originalHeight * rowBytes, {\n      internal: true\n    });\n    const actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n    const comps = this.getComponents(imgArray);\n    let alpha01, maybeUndoPreblend;\n    let canvas, ctx, canvasImgData, data;\n    if (isOffscreenCanvasSupported && !mustBeResized) {\n      canvas = new OffscreenCanvas(drawWidth, drawHeight);\n      ctx = canvas.getContext(\"2d\");\n      canvasImgData = ctx.createImageData(drawWidth, drawHeight);\n      data = canvasImgData.data;\n    }\n    imgData.kind = ImageKind.RGBA_32BPP;\n    if (!forceRGBA && !this.smask && !this.mask) {\n      if (!isOffscreenCanvasSupported || mustBeResized) {\n        imgData.kind = ImageKind.RGB_24BPP;\n        data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n        alpha01 = 0;\n      } else {\n        const arr = new Uint32Array(data.buffer);\n        arr.fill(FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff);\n        alpha01 = 1;\n      }\n      maybeUndoPreblend = false;\n    } else {\n      if (!isOffscreenCanvasSupported || mustBeResized) {\n        data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n      }\n      alpha01 = 1;\n      maybeUndoPreblend = true;\n      await this.fillOpacity(data, drawWidth, drawHeight, actualHeight, comps);\n    }\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n    this.colorSpace.fillRgb(data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n    if (maybeUndoPreblend) {\n      this.undoPreblend(data, drawWidth, actualHeight);\n    }\n    if (isOffscreenCanvasSupported && !mustBeResized) {\n      ctx.putImageData(canvasImgData, 0, 0);\n      const bitmap = canvas.transferToImageBitmap();\n      return {\n        data: null,\n        width: drawWidth,\n        height: drawHeight,\n        bitmap,\n        interpolate: this.interpolate\n      };\n    }\n    imgData.data = data;\n    if (mustBeResized) {\n      return ImageResizer.createImage(imgData);\n    }\n    return imgData;\n  }\n  async fillGrayBuffer(buffer, {\n    destWidth,\n    destHeight,\n    invertOutput,\n    maxRows,\n    offset = 0,\n    stride = 1\n  } = {}) {\n    const numComps = this.numComps;\n    if (numComps !== 1) {\n      throw new FormatError(`Reading gray scale from a color image: ${numComps}`);\n    }\n    const srcWidth = this.width;\n    const srcHeight = this.height;\n    const bpc = this.bpc;\n    const rowBytes = srcWidth * numComps * bpc + 7 >> 3;\n    const imgArray = await this.getImageBytes(srcHeight * rowBytes, {\n      internal: true\n    });\n    const comps = this.getComponents(imgArray);\n    const resolvedDestWidth = destWidth ?? srcWidth;\n    const resolvedDestHeight = destHeight ?? srcHeight;\n    const needsResampling = resolvedDestWidth !== srcWidth || resolvedDestHeight !== srcHeight;\n    const rows = maxRows === undefined ? resolvedDestHeight : Math.min(resolvedDestHeight, maxRows);\n    let outputWidth = srcWidth;\n    let yRatio = 0;\n    let xScaled = null;\n    if (needsResampling) {\n      outputWidth = resolvedDestWidth;\n      yRatio = srcHeight / resolvedDestHeight;\n      const xRatio = srcWidth / resolvedDestWidth;\n      xScaled = new Uint32Array(resolvedDestWidth);\n      for (let i = 0; i < resolvedDestWidth; i++) {\n        xScaled[i] = Math.floor(i * xRatio);\n      }\n    }\n    const mask = invertOutput ? 0xff : 0;\n    if (bpc === 1) {\n      if (xScaled) {\n        const xMap = xScaled;\n        let destIndex = offset;\n        if (this.needsDecode) {\n          for (let row = 0; row < rows; row++) {\n            const py = Math.floor(row * yRatio) * srcWidth;\n            for (let col = 0; col < outputWidth; col++) {\n              buffer[destIndex] = comps[py + xMap[col]] - 1 & 255 ^ mask;\n              destIndex += stride;\n            }\n          }\n        } else {\n          for (let row = 0; row < rows; row++) {\n            const py = Math.floor(row * yRatio) * srcWidth;\n            for (let col = 0; col < outputWidth; col++) {\n              buffer[destIndex] = -comps[py + xMap[col]] & 255 ^ mask;\n              destIndex += stride;\n            }\n          }\n        }\n      } else {\n        const length = outputWidth * rows;\n        if (this.needsDecode) {\n          for (let i = 0; i < length; ++i) {\n            buffer[i * stride + offset] = comps[i] - 1 & 255 ^ mask;\n          }\n        } else {\n          for (let i = 0; i < length; ++i) {\n            buffer[i * stride + offset] = -comps[i] & 255 ^ mask;\n          }\n        }\n      }\n      return;\n    }\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n    const scale = 255 / ((1 << bpc) - 1);\n    if (xScaled) {\n      const xMap = xScaled;\n      let destIndex = offset;\n      for (let row = 0; row < rows; row++) {\n        const py = Math.floor(row * yRatio) * srcWidth;\n        for (let col = 0; col < outputWidth; col++) {\n          buffer[destIndex] = scale * comps[py + xMap[col]] ^ mask;\n          destIndex += stride;\n        }\n      }\n    } else {\n      const length = outputWidth * rows;\n      for (let i = 0; i < length; ++i) {\n        buffer[i * stride + offset] = scale * comps[i] ^ mask;\n      }\n    }\n  }\n  createBitmap(kind, width, height, src) {\n    const canvas = new OffscreenCanvas(width, height);\n    const ctx = canvas.getContext(\"2d\");\n    let imgData;\n    if (kind === ImageKind.RGBA_32BPP) {\n      imgData = new ImageData(src, width, height);\n    } else {\n      imgData = ctx.createImageData(width, height);\n      convertToRGBA({\n        kind,\n        src,\n        dest: new Uint32Array(imgData.data.buffer),\n        width,\n        height,\n        inverseDecode: this.needsDecode\n      });\n    }\n    ctx.putImageData(imgData, 0, 0);\n    const bitmap = canvas.transferToImageBitmap();\n    return {\n      data: null,\n      width,\n      height,\n      bitmap,\n      interpolate: this.interpolate\n    };\n  }\n  async #getImage(width, height) {\n    const bitmap = await this.image.getTransferableImage();\n    if (!bitmap) {\n      return null;\n    }\n    return {\n      data: null,\n      width,\n      height,\n      bitmap,\n      interpolate: this.interpolate\n    };\n  }\n  async getImageBytes(length, {\n    drawWidth,\n    drawHeight,\n    forceRGBA = false,\n    forceRGB = false,\n    internal = false\n  }) {\n    this.image.reset();\n    this.image.drawWidth = drawWidth || this.width;\n    this.image.drawHeight = drawHeight || this.height;\n    this.image.forceRGBA = !!forceRGBA;\n    this.image.forceRGB = !!forceRGB;\n    const imageBytes = await this.image.getImageData(length, this.jpxDecoderOptions);\n    if (internal || this.image instanceof DecodeStream) {\n      return imageBytes;\n    }\n    assert(imageBytes instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.');\n    return new Uint8Array(imageBytes);\n  }\n}\n\n;// ./src/core/evaluator.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\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n  maxImageSize: -1,\n  disableFontFace: false,\n  ignoreErrors: false,\n  isOffscreenCanvasSupported: false,\n  isImageDecoderSupported: false,\n  canvasMaxAreaInBytes: -1,\n  fontExtraProperties: false,\n  useSystemFonts: true,\n  useWasm: true,\n  useWorkerFetch: true,\n  cMapUrl: null,\n  cMapPacked: true,\n  iccUrl: null,\n  standardFontDataUrl: null,\n  wasmUrl: null,\n  hasGPU: false\n});\nconst PatternType = {\n  TILING: 1,\n  SHADING: 2\n};\nconst TEXT_CHUNK_BATCH_SIZE = 10;\nconst deferred = Promise.resolve();\nfunction normalizeBlendMode(value, parsingArray = false) {\n  if (Array.isArray(value)) {\n    for (const val of value) {\n      const maybeBM = normalizeBlendMode(val, true);\n      if (maybeBM) {\n        return maybeBM;\n      }\n    }\n    warn(`Unsupported blend mode Array: ${value}`);\n    return \"source-over\";\n  }\n  if (!(value instanceof Name)) {\n    if (parsingArray) {\n      return null;\n    }\n    return \"source-over\";\n  }\n  switch (value.name) {\n    case \"Normal\":\n    case \"Compatible\":\n      return \"source-over\";\n    case \"Multiply\":\n      return \"multiply\";\n    case \"Screen\":\n      return \"screen\";\n    case \"Overlay\":\n      return \"overlay\";\n    case \"Darken\":\n      return \"darken\";\n    case \"Lighten\":\n      return \"lighten\";\n    case \"ColorDodge\":\n      return \"color-dodge\";\n    case \"ColorBurn\":\n      return \"color-burn\";\n    case \"HardLight\":\n      return \"hard-light\";\n    case \"SoftLight\":\n      return \"soft-light\";\n    case \"Difference\":\n      return \"difference\";\n    case \"Exclusion\":\n      return \"exclusion\";\n    case \"Hue\":\n      return \"hue\";\n    case \"Saturation\":\n      return \"saturation\";\n    case \"Color\":\n      return \"color\";\n    case \"Luminosity\":\n      return \"luminosity\";\n  }\n  if (parsingArray) {\n    return null;\n  }\n  warn(`Unsupported blend mode: ${value.name}`);\n  return \"source-over\";\n}\nfunction addCachedImageOps(opList, {\n  objId,\n  fn,\n  args,\n  optionalContent,\n  hasMask\n}) {\n  if (objId) {\n    opList.addDependency(objId);\n  }\n  opList.addImageOps(fn, args, optionalContent, hasMask);\n  if (fn === OPS.paintImageMaskXObject && args[0]?.count > 0) {\n    args[0].count++;\n  }\n}\nclass TimeSlotManager {\n  static TIME_SLOT_DURATION_MS = 20;\n  static CHECK_TIME_EVERY = 100;\n  constructor() {\n    this.reset();\n  }\n  check() {\n    if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n      return false;\n    }\n    this.checked = 0;\n    return this.endTime <= Date.now();\n  }\n  reset() {\n    this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n    this.checked = 0;\n  }\n}\nclass PartialEvaluator {\n  constructor({\n    xref,\n    handler,\n    pageIndex,\n    idFactory,\n    fontCache,\n    builtInCMapCache,\n    standardFontDataCache,\n    globalColorSpaceCache,\n    globalImageCache,\n    systemFontCache,\n    options = null\n  }) {\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalColorSpaceCache = globalColorSpaceCache;\n    this.globalImageCache = globalImageCache;\n    this.systemFontCache = systemFontCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.type3FontRefs = null;\n    this._regionalImageCache = new RegionalImageCache();\n    this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n  }\n  get _pdfFunctionFactory() {\n    return shadow(this, \"_pdfFunctionFactory\", new PDFFunctionFactory({\n      xref: this.xref\n    }));\n  }\n  get parsingType3Font() {\n    return !!this.type3FontRefs;\n  }\n  clone(newOptions = null) {\n    const newEvaluator = Object.create(this);\n    newEvaluator.options = Object.assign(Object.create(null), this.options, newOptions);\n    return newEvaluator;\n  }\n  hasBlendModes(resources, nonBlendModesSet) {\n    if (!(resources instanceof Dict)) {\n      return false;\n    }\n    if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n      return false;\n    }\n    const processed = new RefSet(nonBlendModesSet);\n    if (resources.objId) {\n      processed.put(resources.objId);\n    }\n    const nodes = [resources],\n      xref = this.xref;\n    while (nodes.length) {\n      const node = nodes.shift();\n      const graphicStates = node.get(\"ExtGState\");\n      if (graphicStates instanceof Dict) {\n        for (let graphicState of graphicStates.getRawValues()) {\n          if (graphicState instanceof Ref) {\n            if (processed.has(graphicState)) {\n              continue;\n            }\n            try {\n              graphicState = xref.fetch(graphicState);\n            } catch (ex) {\n              processed.put(graphicState);\n              info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n              continue;\n            }\n          }\n          if (!(graphicState instanceof Dict)) {\n            continue;\n          }\n          if (graphicState.objId) {\n            processed.put(graphicState.objId);\n          }\n          const bm = graphicState.get(\"BM\");\n          if (bm instanceof Name) {\n            if (bm.name !== \"Normal\") {\n              return true;\n            }\n            continue;\n          }\n          if (bm !== undefined && Array.isArray(bm)) {\n            for (const element of bm) {\n              if (element instanceof Name && element.name !== \"Normal\") {\n                return true;\n              }\n            }\n          }\n        }\n      }\n      const xObjects = node.get(\"XObject\");\n      if (!(xObjects instanceof Dict)) {\n        continue;\n      }\n      for (let xObject of xObjects.getRawValues()) {\n        if (xObject instanceof Ref) {\n          if (processed.has(xObject)) {\n            continue;\n          }\n          try {\n            xObject = xref.fetch(xObject);\n          } catch (ex) {\n            processed.put(xObject);\n            info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n            continue;\n          }\n        }\n        if (!(xObject instanceof BaseStream)) {\n          continue;\n        }\n        if (xObject.dict.objId) {\n          processed.put(xObject.dict.objId);\n        }\n        const xResources = xObject.dict.get(\"Resources\");\n        if (!(xResources instanceof Dict)) {\n          continue;\n        }\n        if (xResources.objId && processed.has(xResources.objId)) {\n          continue;\n        }\n        nodes.push(xResources);\n        if (xResources.objId) {\n          processed.put(xResources.objId);\n        }\n      }\n    }\n    for (const ref of processed) {\n      nonBlendModesSet.put(ref);\n    }\n    return false;\n  }\n  async fetchBuiltInCMap(name) {\n    const cachedData = this.builtInCMapCache.get(name);\n    if (cachedData) {\n      return cachedData;\n    }\n    let data;\n    if (this.options.useWorkerFetch) {\n      data = {\n        cMapData: await fetchBinaryData(`${this.options.cMapUrl}${name}.bcmap`),\n        isCompressed: true\n      };\n    } else {\n      data = {\n        cMapData: await this.handler.sendWithPromise(\"FetchBinaryData\", {\n          kind: \"cMapUrl\",\n          filename: `${name}${this.options.cMapPacked ? \".bcmap\" : \"\"}`\n        }),\n        isCompressed: this.options.cMapPacked\n      };\n    }\n    this.builtInCMapCache.set(name, data);\n    return data;\n  }\n  async fetchStandardFontData(name) {\n    const cachedData = this.standardFontDataCache.get(name);\n    if (cachedData) {\n      return new Stream(cachedData);\n    }\n    if (this.options.useSystemFonts && name !== \"Symbol\" && name !== \"ZapfDingbats\") {\n      return null;\n    }\n    const standardFontNameToFileName = getFontNameToFileMap(),\n      filename = standardFontNameToFileName[name];\n    let data;\n    try {\n      if (this.options.useWorkerFetch) {\n        data = await fetchBinaryData(`${this.options.standardFontDataUrl}${filename}`);\n      } else {\n        data = await this.handler.sendWithPromise(\"FetchBinaryData\", {\n          kind: \"standardFontDataUrl\",\n          filename\n        });\n      }\n    } catch (ex) {\n      warn(ex);\n      return null;\n    }\n    this.standardFontDataCache.set(name, data);\n    return new Stream(data);\n  }\n  async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache, seenRefs) {\n    const {\n      dict\n    } = xobj;\n    const matrix = lookupMatrix(dict.getArray(\"Matrix\"), null);\n    const bbox = lookupNormalRect(dict.getArray(\"BBox\"), null);\n    let f32bbox = bbox && new Float32Array(bbox);\n    if (f32bbox?.some(x => !isFinite(x))) {\n      f32bbox = null;\n    }\n    let optionalContent, groupOptions;\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n    }\n    if (optionalContent !== undefined) {\n      operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n    const group = dict.get(\"Group\");\n    let newOpList;\n    const f32matrix = matrix && new Float32Array(matrix);\n    const args = [f32matrix, !group && f32bbox || null];\n    const localResources = dict.get(\"Resources\");\n    if (group) {\n      groupOptions = {\n        matrix,\n        bbox: f32bbox,\n        smask,\n        isolated: false,\n        knockout: false,\n        needsIsolation: false,\n        hasSoftMask: false,\n        isGray: false\n      };\n      const groupSubtype = group.get(\"S\");\n      let colorSpace = null;\n      if (isName(groupSubtype, \"Transparency\")) {\n        groupOptions.isolated = group.get(\"I\") || false;\n        groupOptions.knockout = group.get(\"K\") || false;\n        if (group.has(\"CS\")) {\n          const cs = this._getColorSpace(group.getRaw(\"CS\"), resources, localColorSpaceCache);\n          colorSpace = cs instanceof ColorSpace ? cs : await this._handleColorSpace(cs);\n        }\n      }\n      groupOptions.isGray = colorSpace?.numComps === 1;\n      if (smask?.backdrop) {\n        colorSpace ||= ColorSpaceUtils.rgb;\n        smask.backdrop = colorSpace.getRgbHex(smask.backdrop, 0);\n      } else if (smask?.subtype === \"Luminosity\") {\n        smask.backdrop = \"#000000\";\n      }\n      newOpList = new CheckedOperatorList();\n    } else {\n      newOpList = operatorList;\n      operatorList.addOp(OPS.paintFormXObjectBegin, args);\n    }\n    await this.getOperatorList({\n      stream: xobj,\n      task,\n      resources: localResources instanceof Dict ? localResources : resources,\n      operatorList: newOpList,\n      initialState,\n      prevRefs: seenRefs\n    });\n    if (group) {\n      groupOptions.needsIsolation = newOpList.needsIsolation || !!smask;\n      groupOptions.hasSoftMask = newOpList.hasSoftMask || !!smask;\n      operatorList.addOp(OPS.beginGroup, [groupOptions]);\n      operatorList.addOp(OPS.paintFormXObjectBegin, args);\n      operatorList.addOpList(newOpList);\n      operatorList.addOp(OPS.paintFormXObjectEnd, []);\n      operatorList.addOp(OPS.endGroup, [groupOptions]);\n    } else {\n      operatorList.addOp(OPS.paintFormXObjectEnd, []);\n    }\n    if (optionalContent !== undefined) {\n      operatorList.addOp(OPS.endMarkedContent, []);\n    }\n  }\n  _sendImgData(objId, imgData, cacheGlobally = false) {\n    const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n    if (this.parsingType3Font || cacheGlobally) {\n      return this.handler.send(\"commonobj\", [objId, \"Image\", imgData], transfers);\n    }\n    return this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], transfers);\n  }\n  async buildPaintImageXObject({\n    resources,\n    image,\n    isInline = false,\n    operatorList,\n    cacheKey,\n    localImageCache,\n    localColorSpaceCache\n  }) {\n    const {\n      maxImageSize,\n      ignoreErrors,\n      isOffscreenCanvasSupported\n    } = this.options;\n    const {\n      dict\n    } = image;\n    const imageRef = dict.objId;\n    const w = dict.get(\"W\", \"Width\");\n    const h = dict.get(\"H\", \"Height\");\n    if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n      warn(\"Image dimensions are missing, or not numbers.\");\n      return;\n    }\n    if (maxImageSize !== -1 && w * h > maxImageSize) {\n      const msg = \"Image exceeded maximum allowed size and was removed.\";\n      if (!ignoreErrors) {\n        throw new Error(msg);\n      }\n      warn(msg);\n      return;\n    }\n    let optionalContent;\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n    }\n    const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    let imgData, fn, args;\n    if (imageMask) {\n      imgData = await PDFImage.createMask({\n        image,\n        isOffscreenCanvasSupported: isOffscreenCanvasSupported && !this.parsingType3Font\n      });\n      if (imgData.isSingleOpaquePixel) {\n        fn = OPS.paintSolidColorImageMask;\n        args = [];\n        operatorList.addImageOps(fn, args, optionalContent);\n        if (cacheKey) {\n          const cacheData = {\n            fn,\n            args,\n            optionalContent\n          };\n          localImageCache.set(cacheKey, imageRef, cacheData);\n          if (imageRef) {\n            this._regionalImageCache.set(null, imageRef, cacheData);\n          }\n        }\n        return;\n      }\n      if (this.parsingType3Font) {\n        args = compileType3Glyph(imgData);\n        if (args) {\n          operatorList.addImageOps(OPS.constructPath, args, optionalContent);\n          return;\n        }\n        warn(\"Cannot compile Type3 glyph.\");\n        operatorList.addImageOps(OPS.paintImageMaskXObject, [imgData], optionalContent);\n        return;\n      }\n      const objId = `mask_${this.idFactory.createObjId()}`;\n      operatorList.addDependency(objId);\n      imgData.dataLen = imgData.bitmap ? imgData.width * imgData.height * 4 : imgData.data.length;\n      this._sendImgData(objId, imgData);\n      fn = OPS.paintImageMaskXObject;\n      args = [{\n        data: objId,\n        width: imgData.width,\n        height: imgData.height,\n        interpolate: imgData.interpolate,\n        count: 1\n      }];\n      operatorList.addImageOps(fn, args, optionalContent);\n      if (cacheKey) {\n        const cacheData = {\n          objId,\n          fn,\n          args,\n          optionalContent\n        };\n        localImageCache.set(cacheKey, imageRef, cacheData);\n        if (imageRef) {\n          this._regionalImageCache.set(null, imageRef, cacheData);\n        }\n      }\n      return;\n    }\n    const SMALL_IMAGE_DIMENSIONS = 200;\n    const hasMask = dict.has(\"SMask\") || dict.has(\"Mask\");\n    if (isInline && w + h < SMALL_IMAGE_DIMENSIONS && !hasMask) {\n      try {\n        const imageObj = new PDFImage({\n          xref: this.xref,\n          res: resources,\n          image,\n          isInline,\n          pdfFunctionFactory: this._pdfFunctionFactory,\n          globalColorSpaceCache: this.globalColorSpaceCache,\n          localColorSpaceCache\n        });\n        imgData = await imageObj.createImageData(true, false);\n        operatorList.addImageOps(OPS.paintInlineImageXObject, [imgData], optionalContent);\n      } catch (reason) {\n        const msg = `Unable to decode inline image: \"${reason}\".`;\n        if (!ignoreErrors) {\n          throw new Error(msg);\n        }\n        warn(msg);\n      }\n      return;\n    }\n    let objId = `img_${this.idFactory.createObjId()}`,\n      cacheGlobally = false,\n      globalCacheData = null;\n    if (this.parsingType3Font) {\n      objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n    } else if (cacheKey && imageRef) {\n      cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);\n      if (cacheGlobally) {\n        assert(!isInline, \"Cannot cache an inline image globally.\");\n        objId = `${this.idFactory.getDocId()}_${objId}`;\n      }\n    }\n    operatorList.addDependency(objId);\n    fn = OPS.paintImageXObject;\n    args = [objId, w, h];\n    operatorList.addImageOps(fn, args, optionalContent, hasMask);\n    if (cacheGlobally) {\n      globalCacheData = {\n        objId,\n        fn,\n        args,\n        optionalContent,\n        hasMask,\n        byteSize: 0\n      };\n      if (this.globalImageCache.hasDecodeFailed(imageRef)) {\n        this.globalImageCache.setData(imageRef, globalCacheData);\n        this._sendImgData(objId, null, cacheGlobally);\n        return;\n      }\n      if (w * h > 250000 || hasMask) {\n        const localLength = await this.handler.sendWithPromise(\"commonobj\", [objId, \"CopyLocalImage\", {\n          imageRef\n        }]);\n        if (localLength) {\n          this.globalImageCache.setData(imageRef, globalCacheData);\n          this.globalImageCache.addByteSize(imageRef, localLength);\n          return;\n        }\n      }\n    }\n    PDFImage.buildImage({\n      xref: this.xref,\n      res: resources,\n      image,\n      isInline,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      globalColorSpaceCache: this.globalColorSpaceCache,\n      localColorSpaceCache\n    }).then(async imageObj => {\n      imgData = await imageObj.createImageData(false, isOffscreenCanvasSupported);\n      imgData.dataLen = imgData.bitmap ? imgData.width * imgData.height * 4 : imgData.data.length;\n      imgData.ref = imageRef;\n      if (cacheGlobally) {\n        this.globalImageCache.addByteSize(imageRef, imgData.dataLen);\n      }\n      return this._sendImgData(objId, imgData, cacheGlobally);\n    }).catch(reason => {\n      warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n      if (imageRef) {\n        this.globalImageCache.addDecodeFailed(imageRef);\n      }\n      return this._sendImgData(objId, null, cacheGlobally);\n    });\n    if (cacheKey) {\n      const cacheData = {\n        objId,\n        fn,\n        args,\n        optionalContent,\n        hasMask\n      };\n      localImageCache.set(cacheKey, imageRef, cacheData);\n      if (imageRef) {\n        this._regionalImageCache.set(null, imageRef, cacheData);\n        if (cacheGlobally) {\n          assert(globalCacheData, \"The global cache-data must be available.\");\n          this.globalImageCache.setData(imageRef, globalCacheData);\n        }\n      }\n    }\n  }\n  handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache, seenRefs) {\n    const smaskContent = smask.get(\"G\");\n    const smaskOptions = {\n      subtype: smask.get(\"S\").name,\n      backdrop: smask.get(\"BC\")\n    };\n    const transferObj = smask.get(\"TR\");\n    if (isPDFFunction(transferObj)) {\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n      const transferMap = new Uint8Array(256);\n      const tmp = new Float32Array(1);\n      for (let i = 0; i < 256; i++) {\n        tmp[0] = i / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[i] = tmp[0] * 255 | 0;\n      }\n      smaskOptions.transferMap = transferMap;\n    }\n    return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone({\n      newPath: true\n    }), localColorSpaceCache, seenRefs);\n  }\n  handleTransferFunction(tr) {\n    let transferArray;\n    if (Array.isArray(tr)) {\n      transferArray = tr;\n      if (tr.length > 1 && tr.every(map => map === tr[0])) {\n        transferArray = [tr[0]];\n      }\n    } else if (isPDFFunction(tr)) {\n      transferArray = [tr];\n    } else {\n      return null;\n    }\n    const transferMaps = [];\n    let numFns = 0,\n      numEffectfulFns = 0;\n    for (const entry of transferArray) {\n      const transferObj = this.xref.fetchIfRef(entry);\n      numFns++;\n      if (isName(transferObj, \"Identity\")) {\n        transferMaps.push(null);\n        continue;\n      } else if (!isPDFFunction(transferObj)) {\n        return null;\n      }\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n      const transferMap = new Uint8Array(256),\n        tmp = new Float32Array(1);\n      for (let j = 0; j < 256; j++) {\n        tmp[0] = j / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[j] = tmp[0] * 255 | 0;\n      }\n      transferMaps.push(transferMap);\n      numEffectfulFns++;\n    }\n    if (!(numFns === 1 || numFns === 4)) {\n      return null;\n    }\n    if (numEffectfulFns === 0) {\n      return null;\n    }\n    return transferMaps;\n  }\n  handleTilingType(fn, color, resources, pattern, patternDict, operatorList, task, localTilingPatternCache, seenRefs) {\n    const tilingOpList = new CheckedOperatorList();\n    const patternResources = Dict.merge({\n      xref: this.xref,\n      dictArray: [patternDict.get(\"Resources\"), resources]\n    });\n    return this.getOperatorList({\n      stream: pattern,\n      task,\n      resources: patternResources,\n      operatorList: tilingOpList,\n      prevRefs: seenRefs\n    }).then(function () {\n      const operatorListIR = tilingOpList.getIR();\n      const {\n        needsIsolation\n      } = tilingOpList;\n      const tilingPatternIR = getTilingPatternIR(operatorListIR, patternDict, color, needsIsolation);\n      operatorList.addDependencies(tilingOpList.dependencies);\n      operatorList.addOp(fn, tilingPatternIR);\n      if (patternDict.objId) {\n        localTilingPatternCache.set(null, patternDict.objId, {\n          operatorListIR,\n          needsIsolation,\n          dict: patternDict\n        });\n      }\n    }).catch(reason => {\n      if (reason instanceof AbortException) {\n        return;\n      }\n      if (this.options.ignoreErrors) {\n        warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n        return;\n      }\n      throw reason;\n    });\n  }\n  async handleSetFont(resources, fontArgs, fontRef, operatorList, task, state, fallbackFontDict = null, cssFontInfo = null, seenRefs = null) {\n    const fontName = fontArgs?.[0] instanceof Name ? fontArgs[0].name : null;\n    const translated = await this.loadFont(fontName, fontRef, resources, task, fallbackFontDict, cssFontInfo, seenRefs);\n    if (translated.font.isType3Font) {\n      operatorList.addDependencies(translated.type3Dependencies);\n    }\n    state.font = translated.font;\n    translated.send(this.handler);\n    return translated.loadedName;\n  }\n  handleText(chars, state) {\n    const font = state.font;\n    const glyphs = font.charsToGlyphs(chars);\n    if (font.data) {\n      const isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);\n      if (isAddToPathSet || state.fillColorSpace.name === \"Pattern\" || state.strokeColorSpace.name === \"Pattern\" || font.disableFontFace) {\n        PartialEvaluator.buildFontPaths(font, glyphs, this.handler, this.options);\n      }\n    }\n    return glyphs;\n  }\n  ensureStateFont(state) {\n    if (state.font) {\n      return;\n    }\n    const reason = new FormatError(\"Missing setFont (Tf) operator before text rendering operator.\");\n    if (this.options.ignoreErrors) {\n      warn(`ensureStateFont: \"${reason}\".`);\n      return;\n    }\n    throw reason;\n  }\n  async setGState({\n    resources,\n    gState,\n    operatorList,\n    cacheKey,\n    task,\n    stateManager,\n    localGStateCache,\n    localColorSpaceCache,\n    seenRefs\n  }) {\n    const gStateRef = gState.objId;\n    let isSimpleGState = true;\n    const gStateObj = [];\n    let promise = Promise.resolve();\n    for (const [key, value] of gState) {\n      switch (key) {\n        case \"Type\":\n          break;\n        case \"LW\":\n          if (typeof value !== \"number\") {\n            warn(`Invalid LW (line width): ${value}`);\n            break;\n          }\n          gStateObj.push([key, Math.abs(value)]);\n          break;\n        case \"LC\":\n        case \"LJ\":\n        case \"ML\":\n        case \"D\":\n        case \"RI\":\n        case \"FL\":\n        case \"CA\":\n        case \"ca\":\n          gStateObj.push([key, value]);\n          break;\n        case \"Font\":\n          isSimpleGState = false;\n          promise = promise.then(() => this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state, null, null, seenRefs).then(function (loadedName) {\n            operatorList.addDependency(loadedName);\n            gStateObj.push([key, [loadedName, value[1]]]);\n          }));\n          break;\n        case \"BM\":\n          gStateObj.push([key, normalizeBlendMode(value)]);\n          break;\n        case \"SMask\":\n          if (isName(value, \"None\")) {\n            gStateObj.push([key, false]);\n            break;\n          }\n          if (value instanceof Dict) {\n            isSimpleGState = false;\n            promise = promise.then(() => this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache, seenRefs));\n            gStateObj.push([key, true]);\n          } else {\n            warn(\"Unsupported SMask type\");\n          }\n          break;\n        case \"TR\":\n        case \"TR2\":\n          {\n            if (key === \"TR\" && gState.has(\"TR2\")) {\n              break;\n            }\n            const transferMaps = this.handleTransferFunction(value);\n            gStateObj.push([\"TR\", transferMaps]);\n            break;\n          }\n        case \"OP\":\n        case \"op\":\n        case \"OPM\":\n        case \"BG\":\n        case \"BG2\":\n        case \"UCR\":\n        case \"UCR2\":\n        case \"HT\":\n        case \"SM\":\n        case \"SA\":\n        case \"AIS\":\n        case \"TK\":\n          info(\"graphic state operator \" + key);\n          break;\n        default:\n          info(\"Unknown graphic state operator \" + key);\n          break;\n      }\n    }\n    await promise;\n    if (gStateObj.length > 0) {\n      operatorList.addOp(OPS.setGState, [gStateObj]);\n    }\n    if (isSimpleGState) {\n      localGStateCache.set(cacheKey, gStateRef, gStateObj);\n    }\n  }\n  loadFont(fontName, font, resources, task, fallbackFontDict = null, cssFontInfo = null, seenRefs = null) {\n    const errorFont = async () => new TranslatedFont({\n      loadedName: \"g_font_error\",\n      font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n      dict: font\n    });\n    let fontRef;\n    if (font) {\n      if (font instanceof Ref) {\n        fontRef = font;\n      }\n    } else {\n      const fontRes = resources.get(\"Font\");\n      if (fontRes) {\n        fontRef = fontRes.getRaw(fontName);\n      }\n    }\n    if (fontRef) {\n      if (this.type3FontRefs?.has(fontRef)) {\n        return errorFont();\n      }\n      if (this.fontCache.has(fontRef)) {\n        return this.fontCache.get(fontRef);\n      }\n      try {\n        font = this.xref.fetchIfRef(fontRef);\n      } catch (ex) {\n        warn(`loadFont - lookup failed: \"${ex}\".`);\n      }\n    }\n    if (!(font instanceof Dict)) {\n      if (!this.options.ignoreErrors && !this.parsingType3Font) {\n        warn(`Font \"${fontName}\" is not available.`);\n        return errorFont();\n      }\n      warn(`Font \"${fontName}\" is not available -- attempting to fallback to a default font.`);\n      font = fallbackFontDict || PartialEvaluator.fallbackFontDict;\n    }\n    if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n      return this.fontCache.get(font.cacheKey);\n    }\n    const {\n      promise,\n      resolve\n    } = Promise.withResolvers();\n    let preEvaluatedFont;\n    try {\n      preEvaluatedFont = this.preEvaluateFont(font);\n      preEvaluatedFont.cssFontInfo = cssFontInfo;\n    } catch (reason) {\n      warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n      return errorFont();\n    }\n    const {\n      descriptor,\n      hash\n    } = preEvaluatedFont;\n    const fontRefIsRef = fontRef instanceof Ref;\n    let fontID;\n    if (hash && descriptor instanceof Dict) {\n      const fontAliases = descriptor.fontAliases ||= Object.create(null);\n      if (fontAliases[hash]) {\n        const aliasFontRef = fontAliases[hash].aliasRef;\n        if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n          this.fontCache.putAlias(fontRef, aliasFontRef);\n          return this.fontCache.get(fontRef);\n        }\n      } else {\n        fontAliases[hash] = {\n          fontID: this.idFactory.createFontId()\n        };\n      }\n      if (fontRefIsRef) {\n        fontAliases[hash].aliasRef = fontRef;\n      }\n      fontID = fontAliases[hash].fontID;\n    } else {\n      fontID = this.idFactory.createFontId();\n    }\n    assert(fontID?.startsWith(\"f\"), 'The \"fontID\" must be (correctly) defined.');\n    if (fontRefIsRef) {\n      this.fontCache.put(fontRef, promise);\n    } else {\n      font.cacheKey = `cacheKey_${fontID}`;\n      this.fontCache.put(font.cacheKey, promise);\n    }\n    font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n    this.translateFont(preEvaluatedFont).then(async translatedFont => {\n      const translated = new TranslatedFont({\n        loadedName: font.loadedName,\n        font: translatedFont,\n        dict: font\n      });\n      if (translatedFont.isType3Font) {\n        try {\n          await translated.loadType3Data(this, resources, task, seenRefs);\n        } catch (reason) {\n          throw new Error(`Type3 font load error: ${reason}`);\n        }\n      }\n      resolve(translated);\n    }).catch(reason => {\n      warn(`loadFont - translateFont failed: \"${reason}\".`);\n      resolve(new TranslatedFont({\n        loadedName: font.loadedName,\n        font: new ErrorFont(reason?.message),\n        dict: font\n      }));\n    });\n    return promise;\n  }\n  buildPath(fn, args, state) {\n    const {\n      pathMinMax: minMax,\n      pathBuffer\n    } = state;\n    switch (fn | 0) {\n      case OPS.rectangle:\n        {\n          const x = state.currentPointX = args[0];\n          const y = state.currentPointY = args[1];\n          const width = args[2];\n          const height = args[3];\n          const xw = x + width;\n          const yh = y + height;\n          if (width === 0 || height === 0) {\n            pathBuffer.push(DrawOPS.moveTo, x, y, DrawOPS.lineTo, xw, yh, DrawOPS.closePath);\n          } else {\n            pathBuffer.push(DrawOPS.moveTo, x, y, DrawOPS.lineTo, xw, y, DrawOPS.lineTo, xw, yh, DrawOPS.lineTo, x, yh, DrawOPS.closePath);\n          }\n          Util.rectBoundingBox(x, y, xw, yh, minMax);\n          break;\n        }\n      case OPS.moveTo:\n        {\n          const x = state.currentPointX = args[0];\n          const y = state.currentPointY = args[1];\n          pathBuffer.push(DrawOPS.moveTo, x, y);\n          Util.pointBoundingBox(x, y, minMax);\n          break;\n        }\n      case OPS.lineTo:\n        {\n          const x = state.currentPointX = args[0];\n          const y = state.currentPointY = args[1];\n          pathBuffer.push(DrawOPS.lineTo, x, y);\n          Util.pointBoundingBox(x, y, minMax);\n          break;\n        }\n      case OPS.curveTo:\n        {\n          const startX = state.currentPointX;\n          const startY = state.currentPointY;\n          const [x1, y1, x2, y2, x, y] = args;\n          state.currentPointX = x;\n          state.currentPointY = y;\n          pathBuffer.push(DrawOPS.curveTo, x1, y1, x2, y2, x, y);\n          Util.bezierBoundingBox(startX, startY, x1, y1, x2, y2, x, y, minMax);\n          break;\n        }\n      case OPS.curveTo2:\n        {\n          const startX = state.currentPointX;\n          const startY = state.currentPointY;\n          const [x1, y1, x, y] = args;\n          state.currentPointX = x;\n          state.currentPointY = y;\n          pathBuffer.push(DrawOPS.curveTo, startX, startY, x1, y1, x, y);\n          Util.bezierBoundingBox(startX, startY, startX, startY, x1, y1, x, y, minMax);\n          break;\n        }\n      case OPS.curveTo3:\n        {\n          const startX = state.currentPointX;\n          const startY = state.currentPointY;\n          const [x1, y1, x, y] = args;\n          state.currentPointX = x;\n          state.currentPointY = y;\n          pathBuffer.push(DrawOPS.curveTo, x1, y1, x, y, x, y);\n          Util.bezierBoundingBox(startX, startY, x1, y1, x, y, x, y, minMax);\n          break;\n        }\n      case OPS.closePath:\n        pathBuffer.push(DrawOPS.closePath);\n        break;\n    }\n  }\n  _getColorSpace(cs, resources, localColorSpaceCache) {\n    return ColorSpaceUtils.parse({\n      cs,\n      xref: this.xref,\n      resources,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      globalColorSpaceCache: this.globalColorSpaceCache,\n      localColorSpaceCache,\n      asyncIfNotCached: true\n    });\n  }\n  async _handleColorSpace(csPromise) {\n    try {\n      return await csPromise;\n    } catch (ex) {\n      if (ex instanceof AbortException) {\n        return null;\n      }\n      if (this.options.ignoreErrors) {\n        warn(`_handleColorSpace - ignoring ColorSpace: \"${ex}\".`);\n        return null;\n      }\n      throw ex;\n    }\n  }\n  parseShading({\n    shading,\n    resources,\n    localColorSpaceCache,\n    localShadingPatternCache\n  }) {\n    let id = localShadingPatternCache.get(shading);\n    if (id) {\n      return id;\n    }\n    let patternIR;\n    try {\n      const shadingFill = Pattern.parseShading(shading, this.xref, resources, this._pdfFunctionFactory, this.globalColorSpaceCache, localColorSpaceCache);\n      patternIR = shadingFill.getIR();\n    } catch (reason) {\n      if (reason instanceof AbortException) {\n        return null;\n      }\n      if (this.options.ignoreErrors) {\n        warn(`parseShading - ignoring shading: \"${reason}\".`);\n        localShadingPatternCache.set(shading, null);\n        return null;\n      }\n      throw reason;\n    }\n    id = `pattern_${this.idFactory.createObjId()}`;\n    if (this.parsingType3Font) {\n      id = `${this.idFactory.getDocId()}_type3_${id}`;\n    }\n    localShadingPatternCache.set(shading, id);\n    if (this.parsingType3Font) {\n      const buffer = compilePatternInfo(patternIR);\n      this.handler.send(\"commonobj\", [id, \"Pattern\", buffer], [buffer]);\n    } else {\n      this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n    }\n    return id;\n  }\n  handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache, seenRefs) {\n    const patternName = args.pop();\n    if (patternName instanceof Name) {\n      const rawPattern = patterns.getRaw(patternName.name);\n      const localTilingPattern = rawPattern instanceof Ref && localTilingPatternCache.getByRef(rawPattern);\n      if (localTilingPattern) {\n        try {\n          const color = cs.base ? cs.base.getRgbHex(args, 0) : null;\n          const tilingPatternIR = getTilingPatternIR(localTilingPattern.operatorListIR, localTilingPattern.dict, color, localTilingPattern.needsIsolation);\n          operatorList.addOp(fn, tilingPatternIR);\n          return undefined;\n        } catch {}\n      }\n      const pattern = this.xref.fetchIfRef(rawPattern);\n      if (pattern) {\n        const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n        const typeNum = dict.get(\"PatternType\");\n        if (typeNum === PatternType.TILING) {\n          const color = cs.base ? cs.base.getRgbHex(args, 0) : null;\n          return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task, localTilingPatternCache, seenRefs);\n        } else if (typeNum === PatternType.SHADING) {\n          const shading = dict.get(\"Shading\");\n          const objId = this.parseShading({\n            shading,\n            resources,\n            localColorSpaceCache,\n            localShadingPatternCache\n          });\n          if (objId) {\n            const matrix = lookupMatrix(dict.getArray(\"Matrix\"), null);\n            operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n          }\n          return undefined;\n        }\n        throw new FormatError(`Unknown PatternType: ${typeNum}`);\n      }\n    }\n    throw new FormatError(`Unknown PatternName: ${patternName}`);\n  }\n  async parseMarkedContentProps(contentProperties, resources) {\n    return parseMarkedContentProps(this.xref, contentProperties, resources);\n  }\n  async getOperatorList({\n    stream,\n    task,\n    resources,\n    operatorList,\n    initialState = null,\n    fallbackFontDict = null,\n    prevRefs = null\n  }) {\n    if (stream.isAsync) {\n      const bytes = await stream.asyncGetBytes();\n      if (bytes) {\n        stream = new Stream(bytes, 0, bytes.length, stream.dict);\n      }\n    }\n    const objId = stream.dict?.objId;\n    const seenRefs = new RefSet(prevRefs);\n    if (objId) {\n      if (prevRefs?.has(objId)) {\n        throw new Error(`getOperatorList - ignoring circular reference: ${objId}`);\n      }\n      seenRefs.put(objId);\n    }\n    resources ||= Dict.empty;\n    initialState ||= new EvalState();\n    if (!operatorList) {\n      throw new Error('getOperatorList: missing \"operatorList\" parameter');\n    }\n    const self = this;\n    const xref = this.xref;\n    const localImageCache = new LocalImageCache();\n    const localColorSpaceCache = new LocalColorSpaceCache();\n    const localGStateCache = new LocalGStateCache();\n    const localTilingPatternCache = new LocalTilingPatternCache();\n    const localShadingPatternCache = new Map();\n    const xobjs = resources.get(\"XObject\") || Dict.empty;\n    const patterns = resources.get(\"Pattern\") || Dict.empty;\n    const stateManager = new StateManager(initialState);\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    const timeSlotManager = new TimeSlotManager();\n    function closePendingRestoreOPS(argument) {\n      for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n        operatorList.addOp(OPS.restore, []);\n      }\n    }\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        Promise.all([promise, operatorList.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n      const operation = {};\n      let stop, i, ii, cs, name, isValidName;\n      while (!(stop = timeSlotManager.check())) {\n        operation.args = null;\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n        let args = operation.args;\n        let fn = operation.fn;\n        switch (fn | 0) {\n          case OPS.paintXObject:\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n            if (isValidName) {\n              const localImage = localImageCache.getByName(name);\n              if (localImage) {\n                addCachedImageOps(operatorList, localImage);\n                args = null;\n                continue;\n              }\n            }\n            next(new Promise(function (resolveXObject, rejectXObject) {\n              if (!isValidName) {\n                throw new FormatError(\"XObject must be referred to by name.\");\n              }\n              let xobj = xobjs.getRaw(name);\n              if (xobj instanceof Ref) {\n                const cachedImage = localImageCache.getByRef(xobj) || self._regionalImageCache.getByRef(xobj) || self.globalImageCache.getData(xobj, self.pageIndex);\n                if (cachedImage) {\n                  addCachedImageOps(operatorList, cachedImage);\n                  resolveXObject();\n                  return;\n                }\n                xobj = xref.fetch(xobj);\n              }\n              if (!(xobj instanceof BaseStream)) {\n                throw new FormatError(\"XObject should be a stream\");\n              }\n              const type = xobj.dict.get(\"Subtype\");\n              if (!(type instanceof Name)) {\n                throw new FormatError(\"XObject should have a Name subtype\");\n              }\n              if (type.name === \"Form\") {\n                stateManager.save();\n                self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone({\n                  newPath: true\n                }), localColorSpaceCache, seenRefs).then(function () {\n                  stateManager.restore();\n                  resolveXObject();\n                }, rejectXObject);\n                return;\n              } else if (type.name === \"Image\") {\n                self.buildPaintImageXObject({\n                  resources,\n                  image: xobj,\n                  operatorList,\n                  cacheKey: name,\n                  localImageCache,\n                  localColorSpaceCache\n                }).then(resolveXObject, rejectXObject);\n                return;\n              } else if (type.name === \"PS\") {\n                info(\"Ignored XObject subtype PS\");\n              } else {\n                throw new FormatError(`Unhandled XObject subtype ${type.name}`);\n              }\n              resolveXObject();\n            }).catch(function (reason) {\n              if (reason instanceof AbortException) {\n                return;\n              }\n              if (self.options.ignoreErrors) {\n                warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n                return;\n              }\n              throw reason;\n            }));\n            return;\n          case OPS.setFont:\n            const fontSize = args[1];\n            next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state, fallbackFontDict, null, seenRefs).then(function (loadedName) {\n              operatorList.addDependency(loadedName);\n              operatorList.addOp(OPS.setFont, [loadedName, fontSize]);\n            }));\n            return;\n          case OPS.endInlineImage:\n            const cacheKey = args[0].cacheKey;\n            if (cacheKey) {\n              const localImage = localImageCache.getByName(cacheKey);\n              if (localImage) {\n                addCachedImageOps(operatorList, localImage);\n                args = null;\n                continue;\n              }\n            }\n            next(self.buildPaintImageXObject({\n              resources,\n              image: args[0],\n              isInline: true,\n              operatorList,\n              cacheKey,\n              localImageCache,\n              localColorSpaceCache\n            }));\n            return;\n          case OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            args[0] = self.handleText(args[0], stateManager.state);\n            break;\n          case OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            const combinedGlyphs = [],\n              state = stateManager.state;\n            for (const arrItem of args[0]) {\n              if (typeof arrItem === \"string\") {\n                combinedGlyphs.push(...self.handleText(arrItem, state));\n              } else if (typeof arrItem === \"number\") {\n                combinedGlyphs.push(arrItem);\n              }\n            }\n            args[0] = combinedGlyphs;\n            fn = OPS.showText;\n            break;\n          case OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            operatorList.addOp(OPS.nextLine);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = OPS.showText;\n            break;\n          case OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            operatorList.addOp(OPS.nextLine);\n            operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n            operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = OPS.showText;\n            break;\n          case OPS.setTextRenderingMode:\n            stateManager.state.textRenderingMode = args[0];\n            break;\n          case OPS.setFillColorSpace:\n            {\n              const fillCS = self._getColorSpace(args[0], resources, localColorSpaceCache);\n              if (fillCS instanceof ColorSpace) {\n                stateManager.state.fillColorSpace = fillCS;\n                continue;\n              }\n              next(self._handleColorSpace(fillCS).then(colorSpace => {\n                stateManager.state.fillColorSpace = colorSpace || ColorSpaceUtils.gray;\n              }));\n              return;\n            }\n          case OPS.setStrokeColorSpace:\n            {\n              const strokeCS = self._getColorSpace(args[0], resources, localColorSpaceCache);\n              if (strokeCS instanceof ColorSpace) {\n                stateManager.state.strokeColorSpace = strokeCS;\n                continue;\n              }\n              next(self._handleColorSpace(strokeCS).then(colorSpace => {\n                stateManager.state.strokeColorSpace = colorSpace || ColorSpaceUtils.gray;\n              }));\n              return;\n            }\n          case OPS.setFillColor:\n            cs = stateManager.state.fillColorSpace;\n            args = [cs.getRgbHex(args, 0)];\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeColor:\n            cs = stateManager.state.strokeColorSpace;\n            args = [cs.getRgbHex(args, 0)];\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.setFillGray:\n            stateManager.state.fillColorSpace = ColorSpaceUtils.gray;\n            args = [ColorSpaceUtils.gray.getRgbHex(args, 0)];\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeGray:\n            stateManager.state.strokeColorSpace = ColorSpaceUtils.gray;\n            args = [ColorSpaceUtils.gray.getRgbHex(args, 0)];\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.setFillCMYKColor:\n            stateManager.state.fillColorSpace = ColorSpaceUtils.cmyk;\n            args = [ColorSpaceUtils.cmyk.getRgbHex(args, 0)];\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeCMYKColor:\n            stateManager.state.strokeColorSpace = ColorSpaceUtils.cmyk;\n            args = [ColorSpaceUtils.cmyk.getRgbHex(args, 0)];\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.setFillRGBColor:\n            stateManager.state.fillColorSpace = ColorSpaceUtils.rgb;\n            args = [ColorSpaceUtils.rgb.getRgbHex(args, 0)];\n            break;\n          case OPS.setStrokeRGBColor:\n            stateManager.state.strokeColorSpace = ColorSpaceUtils.rgb;\n            args = [ColorSpaceUtils.rgb.getRgbHex(args, 0)];\n            break;\n          case OPS.setFillColorN:\n            cs = stateManager.state.patternFillColorSpace;\n            if (!cs) {\n              if (isNumberArray(args, null)) {\n                args = [ColorSpaceUtils.gray.getRgbHex(args, 0)];\n                fn = OPS.setFillRGBColor;\n                break;\n              }\n              args = [];\n              fn = OPS.setFillTransparent;\n              break;\n            }\n            if (cs.name === \"Pattern\") {\n              next(self.handleColorN(operatorList, OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache, seenRefs));\n              return;\n            }\n            args = [cs.getRgbHex(args, 0)];\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeColorN:\n            cs = stateManager.state.patternStrokeColorSpace;\n            if (!cs) {\n              if (isNumberArray(args, null)) {\n                args = [ColorSpaceUtils.gray.getRgbHex(args, 0)];\n                fn = OPS.setStrokeRGBColor;\n                break;\n              }\n              args = [];\n              fn = OPS.setStrokeTransparent;\n              break;\n            }\n            if (cs.name === \"Pattern\") {\n              next(self.handleColorN(operatorList, OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache, seenRefs));\n              return;\n            }\n            args = [cs.getRgbHex(args, 0)];\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.shadingFill:\n            let shading;\n            try {\n              const shadingRes = resources.get(\"Shading\");\n              if (!shadingRes) {\n                throw new FormatError(\"No shading resource found\");\n              }\n              shading = shadingRes.get(args[0].name);\n              if (!shading) {\n                throw new FormatError(\"No shading object found\");\n              }\n            } catch (reason) {\n              if (reason instanceof AbortException) {\n                continue;\n              }\n              if (self.options.ignoreErrors) {\n                warn(`getOperatorList - ignoring Shading: \"${reason}\".`);\n                continue;\n              }\n              throw reason;\n            }\n            const patternId = self.parseShading({\n              shading,\n              resources,\n              localColorSpaceCache,\n              localShadingPatternCache\n            });\n            if (!patternId) {\n              continue;\n            }\n            args = [patternId];\n            fn = OPS.shadingFill;\n            break;\n          case OPS.setGState:\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n            if (isValidName) {\n              const localGStateObj = localGStateCache.getByName(name);\n              if (localGStateObj) {\n                if (localGStateObj.length > 0) {\n                  operatorList.addOp(OPS.setGState, [localGStateObj]);\n                }\n                args = null;\n                continue;\n              }\n            }\n            next(new Promise(function (resolveGState, rejectGState) {\n              if (!isValidName) {\n                throw new FormatError(\"GState must be referred to by name.\");\n              }\n              const extGState = resources.get(\"ExtGState\");\n              if (!(extGState instanceof Dict)) {\n                throw new FormatError(\"ExtGState should be a dictionary.\");\n              }\n              const gState = extGState.get(name);\n              if (!(gState instanceof Dict)) {\n                throw new FormatError(\"GState should be a dictionary.\");\n              }\n              self.setGState({\n                resources,\n                gState,\n                operatorList,\n                cacheKey: name,\n                task,\n                stateManager,\n                localGStateCache,\n                localColorSpaceCache,\n                seenRefs\n              }).then(resolveGState, rejectGState);\n            }).catch(function (reason) {\n              if (reason instanceof AbortException) {\n                return;\n              }\n              if (self.options.ignoreErrors) {\n                warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n                return;\n              }\n              throw reason;\n            }));\n            return;\n          case OPS.setLineWidth:\n            {\n              const [thickness] = args;\n              if (typeof thickness !== \"number\") {\n                warn(`Invalid setLineWidth: ${thickness}`);\n                continue;\n              }\n              args[0] = Math.abs(thickness);\n              break;\n            }\n          case OPS.setDash:\n            {\n              const dashPhase = args[1];\n              if (typeof dashPhase !== \"number\") {\n                warn(`Invalid setDash: ${dashPhase}`);\n                continue;\n              }\n              const dashArray = args[0];\n              if (!Array.isArray(dashArray)) {\n                warn(`Invalid setDash: ${dashArray}`);\n                continue;\n              }\n              if (dashArray.some(x => typeof x !== \"number\")) {\n                args[0] = dashArray.filter(x => typeof x === \"number\");\n              }\n              break;\n            }\n          case OPS.moveTo:\n          case OPS.lineTo:\n          case OPS.curveTo:\n          case OPS.curveTo2:\n          case OPS.curveTo3:\n          case OPS.closePath:\n          case OPS.rectangle:\n            self.buildPath(fn, args, stateManager.state);\n            continue;\n          case OPS.stroke:\n          case OPS.closeStroke:\n          case OPS.fill:\n          case OPS.eoFill:\n          case OPS.fillStroke:\n          case OPS.eoFillStroke:\n          case OPS.closeFillStroke:\n          case OPS.closeEOFillStroke:\n          case OPS.endPath:\n            {\n              const {\n                state: {\n                  pathBuffer,\n                  pathMinMax\n                }\n              } = stateManager;\n              if (fn === OPS.closeStroke || fn === OPS.closeFillStroke || fn === OPS.closeEOFillStroke) {\n                pathBuffer.push(DrawOPS.closePath);\n              }\n              if (pathBuffer.length === 0) {\n                operatorList.addOp(OPS.constructPath, [fn, [null], null]);\n              } else {\n                operatorList.addOp(OPS.constructPath, [fn, [new Float32Array(pathBuffer)], pathMinMax.slice()]);\n                pathBuffer.length = 0;\n                pathMinMax.set(BBOX_INIT, 0);\n              }\n              continue;\n            }\n          case OPS.setTextMatrix:\n            operatorList.addOp(fn, [new Float32Array(args)]);\n            continue;\n          case OPS.markPoint:\n          case OPS.markPointProps:\n          case OPS.beginCompat:\n          case OPS.endCompat:\n            continue;\n          case OPS.beginMarkedContentProps:\n            if (!(args[0] instanceof Name)) {\n              warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n              operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", null]);\n              continue;\n            }\n            if (args[0].name === \"OC\") {\n              next(self.parseMarkedContentProps(args[1], resources).then(data => {\n                operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", data]);\n              }).catch(reason => {\n                if (reason instanceof AbortException) {\n                  return;\n                }\n                if (self.options.ignoreErrors) {\n                  warn(`getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`);\n                  operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", null]);\n                  return;\n                }\n                throw reason;\n              }));\n              return;\n            }\n            args = [args[0].name, args[1] instanceof Dict ? args[1].get(\"MCID\") : null];\n            break;\n          case OPS.beginMarkedContent:\n          case OPS.endMarkedContent:\n          default:\n            if (args !== null) {\n              for (i = 0, ii = args.length; i < ii; i++) {\n                if (args[i] instanceof Dict) {\n                  break;\n                }\n              }\n              if (i < ii) {\n                warn(\"getOperatorList - ignoring operator: \" + fn);\n                continue;\n              }\n            }\n        }\n        operatorList.addOp(fn, args);\n      }\n      if (stop) {\n        next(deferred);\n        return;\n      }\n      closePendingRestoreOPS();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof AbortException) {\n        return;\n      }\n      if (this.options.ignoreErrors) {\n        warn(`getOperatorList - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n        closePendingRestoreOPS();\n        return;\n      }\n      throw reason;\n    });\n  }\n  async getTextContent({\n    stream,\n    task,\n    resources,\n    stateManager = null,\n    includeMarkedContent = false,\n    sink,\n    seenStyles = new Set(),\n    viewBox,\n    lang = null,\n    markedContentData = null,\n    disableNormalization = false,\n    keepWhiteSpace = false,\n    prevRefs = null,\n    intersector = null\n  }) {\n    if (stream.isAsync) {\n      const bytes = await stream.asyncGetBytes();\n      if (bytes) {\n        stream = new Stream(bytes, 0, bytes.length, stream.dict);\n      }\n    }\n    sink ??= textSinkWrapper(null);\n    const objId = stream.dict?.objId;\n    const seenRefs = new RefSet(prevRefs);\n    if (objId) {\n      if (prevRefs?.has(objId)) {\n        throw new Error(`getTextContent - ignoring circular reference: ${objId}`);\n      }\n      seenRefs.put(objId);\n    }\n    resources ||= Dict.empty;\n    stateManager ||= new StateManager(new TextState());\n    if (includeMarkedContent) {\n      markedContentData ||= {\n        level: 0\n      };\n    }\n    const textContent = {\n      items: [],\n      styles: Object.create(null),\n      lang\n    };\n    const textContentItem = {\n      initialized: false,\n      str: [],\n      totalWidth: 0,\n      totalHeight: 0,\n      width: 0,\n      height: 0,\n      vertical: false,\n      prevTransform: null,\n      prevTextRise: 0,\n      textAdvanceScale: 0,\n      spaceInFlowMin: 0,\n      spaceInFlowMax: 0,\n      trackingSpaceMin: Infinity,\n      negativeSpaceMax: -Infinity,\n      notASpace: -Infinity,\n      transform: null,\n      fontName: null,\n      hasEOL: false\n    };\n    const twoLastChars = [\" \", \" \"];\n    let twoLastCharsPos = 0;\n    function saveLastChar(char) {\n      const nextPos = (twoLastCharsPos + 1) % 2;\n      const ret = twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n      twoLastChars[twoLastCharsPos] = char;\n      twoLastCharsPos = nextPos;\n      return !keepWhiteSpace && ret;\n    }\n    function shouldAddWhitepsace() {\n      return !keepWhiteSpace && twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[(twoLastCharsPos + 1) % 2] === \" \";\n    }\n    function resetLastChars() {\n      twoLastChars[0] = twoLastChars[1] = \" \";\n      twoLastCharsPos = 0;\n    }\n    const TRACKING_SPACE_FACTOR = 0.102;\n    const NOT_A_SPACE_FACTOR = 0.03;\n    const NEGATIVE_SPACE_FACTOR = -0.2;\n    const SPACE_IN_FLOW_MIN_FACTOR = 0.102;\n    const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n    const VERTICAL_SHIFT_RATIO = 0.25;\n    const self = this;\n    const xref = this.xref;\n    const showSpacedTextBuffer = [];\n    let xobjs = null;\n    const emptyXObjectCache = new LocalImageCache();\n    const emptyGStateCache = new LocalGStateCache();\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    let textState, currentTextState;\n    function pushWhitespace({\n      width = 0,\n      height = 0,\n      transform = textContentItem.prevTransform,\n      fontName = textContentItem.fontName\n    }) {\n      intersector?.addExtraChar(\" \");\n      textContent.items.push({\n        str: \" \",\n        dir: \"ltr\",\n        width,\n        height,\n        transform,\n        fontName,\n        hasEOL: false\n      });\n    }\n    function getCurrentTextTransform() {\n      const font = textState.font;\n      const tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n      if (font.isType3Font && (textState.fontSize <= 1 || font.isCharBBox) && !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)) {\n        const glyphHeight = font.bbox[3] - font.bbox[1];\n        if (glyphHeight > 0) {\n          tsm[3] *= glyphHeight * textState.fontMatrix[3];\n        }\n      }\n      return Util.transform(textState.ctm, Util.transform(textState.textMatrix, tsm));\n    }\n    function ensureTextContentItem() {\n      if (textContentItem.initialized) {\n        return textContentItem;\n      }\n      const {\n        font,\n        loadedName\n      } = textState;\n      if (!seenStyles.has(loadedName)) {\n        seenStyles.add(loadedName);\n        textContent.styles[loadedName] = {\n          fontFamily: font.fallbackName,\n          ascent: font.ascent,\n          descent: font.descent,\n          vertical: font.vertical\n        };\n        if (self.options.fontExtraProperties && font.systemFontInfo) {\n          const style = textContent.styles[loadedName];\n          style.fontSubstitution = font.systemFontInfo.css;\n          style.fontSubstitutionLoadedName = font.systemFontInfo.loadedName;\n        }\n      }\n      textContentItem.fontName = loadedName;\n      const trm = textContentItem.transform = getCurrentTextTransform();\n      if (!font.vertical) {\n        textContentItem.width = textContentItem.totalWidth = 0;\n        textContentItem.height = textContentItem.totalHeight = Math.hypot(trm[2], trm[3]);\n        textContentItem.vertical = false;\n      } else {\n        textContentItem.width = textContentItem.totalWidth = Math.hypot(trm[0], trm[1]);\n        textContentItem.height = textContentItem.totalHeight = 0;\n        textContentItem.vertical = true;\n      }\n      const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n      const {\n        fontSize\n      } = textState;\n      textContentItem.trackingSpaceMin = fontSize * TRACKING_SPACE_FACTOR;\n      textContentItem.notASpace = fontSize * NOT_A_SPACE_FACTOR;\n      textContentItem.negativeSpaceMax = fontSize * NEGATIVE_SPACE_FACTOR;\n      textContentItem.spaceInFlowMin = fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n      textContentItem.spaceInFlowMax = fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n      textContentItem.hasEOL = false;\n      textContentItem.initialized = true;\n      return textContentItem;\n    }\n    function updateAdvanceScale() {\n      if (!textContentItem.initialized) {\n        return;\n      }\n      const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      const scaleFactor = scaleCtmX * scaleLineX;\n      if (scaleFactor === textContentItem.textAdvanceScale) {\n        return;\n      }\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale;\n        textContentItem.width = 0;\n      } else {\n        textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale;\n        textContentItem.height = 0;\n      }\n      textContentItem.textAdvanceScale = scaleFactor;\n    }\n    function runBidiTransform(textChunk) {\n      let text = textChunk.str.join(\"\");\n      if (!disableNormalization) {\n        text = normalizeUnicode(text);\n      }\n      const bidiResult = bidi(text, -1, textChunk.vertical);\n      return {\n        str: bidiResult.str,\n        dir: bidiResult.dir,\n        width: Math.abs(textChunk.totalWidth),\n        height: Math.abs(textChunk.totalHeight),\n        transform: textChunk.transform,\n        fontName: textChunk.fontName,\n        hasEOL: textChunk.hasEOL\n      };\n    }\n    async function handleSetFont(fontName, fontRef) {\n      const translated = await self.loadFont(fontName, fontRef, resources, task, null, null, seenRefs);\n      textState.loadedName = translated.loadedName;\n      textState.font = translated.font;\n      textState.fontMatrix = translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n    }\n    function applyInverseRotation(x, y, matrix) {\n      const scale = Math.hypot(matrix[0], matrix[1]);\n      return [(matrix[0] * x + matrix[1] * y) / scale, (matrix[2] * x + matrix[3] * y) / scale];\n    }\n    function compareWithLastPosition(glyphWidth) {\n      const currentTransform = getCurrentTextTransform();\n      let posX = currentTransform[4];\n      let posY = currentTransform[5];\n      if (textState.font?.vertical) {\n        if (posX < viewBox[0] || posX > viewBox[2] || posY + glyphWidth < viewBox[1] || posY > viewBox[3]) {\n          return false;\n        }\n      } else if (posX + glyphWidth < viewBox[0] || posX > viewBox[2] || posY < viewBox[1] || posY > viewBox[3]) {\n        return false;\n      }\n      if (!textState.font || !textContentItem.prevTransform) {\n        return true;\n      }\n      let lastPosX = textContentItem.prevTransform[4];\n      let lastPosY = textContentItem.prevTransform[5];\n      if (lastPosX === posX && lastPosY === posY) {\n        return true;\n      }\n      let rotate = -1;\n      if (currentTransform[0] && currentTransform[1] === 0 && currentTransform[2] === 0) {\n        rotate = currentTransform[0] > 0 ? 0 : 180;\n      } else if (currentTransform[1] && currentTransform[0] === 0 && currentTransform[3] === 0) {\n        rotate = currentTransform[1] > 0 ? 90 : 270;\n      }\n      switch (rotate) {\n        case 0:\n          break;\n        case 90:\n          [posX, posY] = [posY, posX];\n          [lastPosX, lastPosY] = [lastPosY, lastPosX];\n          break;\n        case 180:\n          [posX, posY, lastPosX, lastPosY] = [-posX, -posY, -lastPosX, -lastPosY];\n          break;\n        case 270:\n          [posX, posY] = [-posY, -posX];\n          [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n          break;\n        default:\n          [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n          [lastPosX, lastPosY] = applyInverseRotation(lastPosX, lastPosY, textContentItem.prevTransform);\n      }\n      if (textState.font.vertical) {\n        const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n        const advanceX = posX - lastPosX;\n        const textOrientation = Math.sign(textContentItem.height || textContentItem.totalHeight);\n        if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n          if (Math.abs(advanceX) > 0.5 * textContentItem.width) {\n            appendEOL();\n            return true;\n          }\n          resetLastChars();\n          flushTextContentItem();\n          return true;\n        }\n        if (Math.abs(advanceX) > textContentItem.width) {\n          appendEOL();\n          return true;\n        }\n        if (advanceY <= textOrientation * textContentItem.notASpace) {\n          resetLastChars();\n        }\n        if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n          if (shouldAddWhitepsace()) {\n            resetLastChars();\n            flushTextContentItem();\n            pushWhitespace({\n              height: Math.abs(advanceY)\n            });\n          } else {\n            textContentItem.height += advanceY;\n          }\n        } else if (!addFakeSpaces(advanceY, textContentItem.prevTransform, textOrientation)) {\n          if (textContentItem.str.length === 0) {\n            resetLastChars();\n            pushWhitespace({\n              height: Math.abs(advanceY)\n            });\n          } else {\n            textContentItem.height += advanceY;\n          }\n        }\n        if (Math.abs(advanceX) > textContentItem.width * VERTICAL_SHIFT_RATIO) {\n          flushTextContentItem();\n        }\n        return true;\n      }\n      const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n      const advanceY = posY - lastPosY;\n      const textOrientation = Math.sign(textContentItem.width || textContentItem.totalWidth);\n      if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n        if (Math.abs(advanceY) > 0.5 * textContentItem.height) {\n          appendEOL();\n          return true;\n        }\n        resetLastChars();\n        flushTextContentItem();\n        return true;\n      }\n      const textRiseDelta = textState.textRise - textContentItem.prevTextRise;\n      const advanceYCorrected = textRiseDelta === 0 ? advanceY : advanceY - currentTransform[3] / textState.fontSize * textRiseDelta;\n      if (Math.abs(advanceYCorrected) > textContentItem.height) {\n        appendEOL();\n        return true;\n      }\n      if (advanceX <= textOrientation * textContentItem.notASpace) {\n        resetLastChars();\n      }\n      if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n        if (shouldAddWhitepsace()) {\n          resetLastChars();\n          flushTextContentItem();\n          pushWhitespace({\n            width: Math.abs(advanceX)\n          });\n        } else {\n          textContentItem.width += advanceX;\n        }\n      } else if (!addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)) {\n        if (textContentItem.str.length === 0) {\n          resetLastChars();\n          pushWhitespace({\n            width: Math.abs(advanceX)\n          });\n        } else {\n          textContentItem.width += advanceX;\n        }\n      }\n      if (Math.abs(advanceY) > textContentItem.height * VERTICAL_SHIFT_RATIO) {\n        flushTextContentItem();\n      }\n      return true;\n    }\n    function buildTextContentItem({\n      chars,\n      extraSpacing\n    }) {\n      if (currentTextState !== textState && (currentTextState.fontSize !== textState.fontSize || currentTextState.fontName !== textState.fontName && (currentTextState.font.name !== textState.font.name || currentTextState.font.vertical !== textState.font.vertical))) {\n        flushTextContentItem();\n        currentTextState = textState.clone();\n      }\n      const font = textState.font;\n      const baseCharSpacing = font.vertical ? -textState.charSpacing : textState.charSpacing;\n      if (!chars) {\n        const charSpacing = baseCharSpacing + extraSpacing;\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n        if (keepWhiteSpace) {\n          compareWithLastPosition(0);\n        }\n        return;\n      }\n      const glyphs = font.charsToGlyphs(chars);\n      const scale = textState.fontMatrix[0] * textState.fontSize;\n      for (let i = 0, ii = glyphs.length; i < ii; i++) {\n        const glyph = glyphs[i];\n        const {\n          category,\n          originalCharCode\n        } = glyph;\n        if (category.isInvisibleFormatMark) {\n          continue;\n        }\n        let charSpacing = baseCharSpacing + (i + 1 === ii ? extraSpacing : 0);\n        let glyphWidth = glyph.width;\n        if (font.vertical) {\n          glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n        }\n        let scaledDim = glyphWidth * scale;\n        if (originalCharCode === 0x20) {\n          charSpacing += textState.wordSpacing;\n        }\n        if (!keepWhiteSpace && category.isWhitespace) {\n          if (!font.vertical) {\n            charSpacing += scaledDim;\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            charSpacing += -scaledDim;\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n          saveLastChar(\" \");\n          continue;\n        }\n        if (!category.isZeroWidthDiacritic && !compareWithLastPosition(scaledDim)) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(scaledDim * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, scaledDim);\n          }\n          continue;\n        }\n        const textChunk = ensureTextContentItem();\n        if (category.isZeroWidthDiacritic) {\n          scaledDim = 0;\n        }\n        if (!font.vertical) {\n          scaledDim *= textState.textHScale;\n          intersector?.addGlyph(getCurrentTextTransform(), scaledDim, 0, glyph.unicode);\n          textState.translateTextMatrix(scaledDim, 0);\n          textChunk.width += scaledDim;\n        } else {\n          intersector?.addGlyph(getCurrentTextTransform(), 0, scaledDim, glyph.unicode);\n          textState.translateTextMatrix(0, scaledDim);\n          scaledDim = Math.abs(scaledDim);\n          textChunk.height += scaledDim;\n        }\n        if (scaledDim) {\n          textChunk.prevTransform = getCurrentTextTransform();\n          textChunk.prevTextRise = textState.textRise;\n        }\n        const glyphUnicode = glyph.unicode;\n        if (saveLastChar(glyphUnicode)) {\n          textChunk.str.push(\" \");\n          intersector?.addExtraChar(\" \");\n        }\n        if (!intersector) {\n          textChunk.str.push(glyphUnicode);\n        }\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n      }\n    }\n    function appendEOL() {\n      intersector?.addExtraChar(\"\\n\");\n      resetLastChars();\n      if (textContentItem.initialized) {\n        textContentItem.hasEOL = true;\n        flushTextContentItem();\n      } else {\n        textContent.items.push({\n          str: \"\",\n          dir: \"ltr\",\n          width: 0,\n          height: 0,\n          transform: getCurrentTextTransform(),\n          fontName: textState.loadedName,\n          hasEOL: true\n        });\n      }\n    }\n    function addFakeSpaces(width, transf, textOrientation) {\n      if (textOrientation * textContentItem.spaceInFlowMin <= width && width <= textOrientation * textContentItem.spaceInFlowMax) {\n        if (textContentItem.initialized) {\n          resetLastChars();\n          textContentItem.str.push(\" \");\n          intersector?.addExtraChar(\" \");\n        }\n        return false;\n      }\n      const fontName = textContentItem.fontName;\n      let height = 0;\n      if (textContentItem.vertical) {\n        height = width;\n        width = 0;\n      }\n      flushTextContentItem();\n      resetLastChars();\n      pushWhitespace({\n        width: Math.abs(width),\n        height: Math.abs(height),\n        transform: transf || getCurrentTextTransform(),\n        fontName\n      });\n      return true;\n    }\n    function flushTextContentItem() {\n      if (!textContentItem.initialized || !textContentItem.str) {\n        return;\n      }\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale;\n      } else {\n        textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale;\n      }\n      textContent.items.push(runBidiTransform(textContentItem));\n      textContentItem.initialized = false;\n      textContentItem.str.length = 0;\n    }\n    function enqueueChunk(batch = false) {\n      const length = textContent.items.length;\n      if (length === 0) {\n        return;\n      }\n      if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n        return;\n      }\n      sink.enqueue(textContent, length);\n      textContent.items = [];\n      textContent.styles = Object.create(null);\n    }\n    const timeSlotManager = new TimeSlotManager();\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        enqueueChunk(true);\n        Promise.all([promise, sink.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n      const operation = {};\n      let stop,\n        name,\n        isValidName,\n        args = [];\n      while (!(stop = timeSlotManager.check())) {\n        args.length = 0;\n        operation.args = args;\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n        textState = stateManager.state;\n        currentTextState ||= textState.clone();\n        const fn = operation.fn;\n        args = operation.args;\n        switch (fn | 0) {\n          case OPS.setFont:\n            const fontNameArg = args[0].name,\n              fontSizeArg = args[1];\n            if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n              break;\n            }\n            textState.fontName = fontNameArg;\n            textState.fontSize = fontSizeArg;\n            next(handleSetFont(fontNameArg, null));\n            return;\n          case OPS.setTextRise:\n            textState.textRise = args[0];\n            break;\n          case OPS.setHScale:\n            textState.textHScale = args[0] / 100;\n            break;\n          case OPS.setLeading:\n            textState.leading = args[0];\n            break;\n          case OPS.moveText:\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n          case OPS.setLeadingMoveText:\n            textState.leading = -args[1];\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n          case OPS.nextLine:\n            textState.carriageReturn();\n            break;\n          case OPS.setTextMatrix:\n            textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            updateAdvanceScale();\n            break;\n          case OPS.setCharSpacing:\n            textState.charSpacing = args[0];\n            break;\n          case OPS.setWordSpacing:\n            textState.wordSpacing = args[0];\n            break;\n          case OPS.beginText:\n            textState.textMatrix = IDENTITY_MATRIX.slice();\n            textState.textLineMatrix = IDENTITY_MATRIX.slice();\n            break;\n          case OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            const spaceFactor = (textState.font.vertical ? 1 : -1) * textState.fontSize / 1000;\n            const elements = args[0];\n            for (let i = 0, ii = elements.length; i < ii; i++) {\n              const item = elements[i];\n              if (typeof item === \"string\") {\n                showSpacedTextBuffer.push(item);\n              } else if (typeof item === \"number\" && item !== 0) {\n                const str = showSpacedTextBuffer.join(\"\");\n                showSpacedTextBuffer.length = 0;\n                buildTextContentItem({\n                  chars: str,\n                  extraSpacing: item * spaceFactor\n                });\n              }\n            }\n            if (showSpacedTextBuffer.length > 0) {\n              const str = showSpacedTextBuffer.join(\"\");\n              showSpacedTextBuffer.length = 0;\n              buildTextContentItem({\n                chars: str,\n                extraSpacing: 0\n              });\n            }\n            break;\n          case OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0\n            });\n            break;\n          case OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0\n            });\n            break;\n          case OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            textState.wordSpacing = args[0];\n            textState.charSpacing = args[1];\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[2],\n              extraSpacing: 0\n            });\n            break;\n          case OPS.paintXObject:\n            flushTextContentItem();\n            xobjs ??= resources.get(\"XObject\") || Dict.empty;\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n            if (isValidName && emptyXObjectCache.getByName(name)) {\n              break;\n            }\n            next(new Promise(function (resolveXObject, rejectXObject) {\n              if (!isValidName) {\n                throw new FormatError(\"XObject must be referred to by name.\");\n              }\n              let xobj = xobjs.getRaw(name);\n              if (xobj instanceof Ref) {\n                if (emptyXObjectCache.getByRef(xobj)) {\n                  resolveXObject();\n                  return;\n                }\n                const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n                if (globalImage) {\n                  resolveXObject();\n                  return;\n                }\n                xobj = xref.fetch(xobj);\n              }\n              if (!(xobj instanceof BaseStream)) {\n                throw new FormatError(\"XObject should be a stream\");\n              }\n              const {\n                dict\n              } = xobj;\n              const type = dict.get(\"Subtype\");\n              if (!(type instanceof Name)) {\n                throw new FormatError(\"XObject should have a Name subtype\");\n              }\n              if (type.name !== \"Form\") {\n                emptyXObjectCache.set(name, dict.objId, true);\n                resolveXObject();\n                return;\n              }\n              const currentState = stateManager.state.clone();\n              const xObjStateManager = new StateManager(currentState);\n              const matrix = lookupMatrix(dict.getArray(\"Matrix\"), null);\n              if (matrix) {\n                xObjStateManager.transform(matrix);\n              }\n              const localResources = dict.get(\"Resources\");\n              enqueueChunk();\n              const sinkWrapper = textSinkWrapper(sink);\n              self.getTextContent({\n                stream: xobj,\n                task,\n                resources: localResources instanceof Dict ? localResources : resources,\n                stateManager: xObjStateManager,\n                includeMarkedContent,\n                sink: sinkWrapper,\n                seenStyles,\n                viewBox,\n                lang,\n                markedContentData,\n                disableNormalization,\n                keepWhiteSpace,\n                prevRefs: seenRefs\n              }).then(function () {\n                if (!sinkWrapper.enqueueInvoked) {\n                  emptyXObjectCache.set(name, dict.objId, true);\n                }\n                resolveXObject();\n              }, rejectXObject);\n            }).catch(function (reason) {\n              if (reason instanceof AbortException) {\n                return;\n              }\n              if (self.options.ignoreErrors) {\n                warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n                return;\n              }\n              throw reason;\n            }));\n            return;\n          case OPS.setGState:\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n            if (isValidName && emptyGStateCache.getByName(name)) {\n              break;\n            }\n            next(new Promise(function (resolveGState, rejectGState) {\n              if (!isValidName) {\n                throw new FormatError(\"GState must be referred to by name.\");\n              }\n              const extGState = resources.get(\"ExtGState\");\n              if (!(extGState instanceof Dict)) {\n                throw new FormatError(\"ExtGState should be a dictionary.\");\n              }\n              const gState = extGState.get(name);\n              if (!(gState instanceof Dict)) {\n                throw new FormatError(\"GState should be a dictionary.\");\n              }\n              const gStateFont = gState.get(\"Font\");\n              if (!gStateFont) {\n                emptyGStateCache.set(name, gState.objId, true);\n                resolveGState();\n                return;\n              }\n              flushTextContentItem();\n              textState.fontName = null;\n              textState.fontSize = gStateFont[1];\n              handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState);\n            }).catch(function (reason) {\n              if (reason instanceof AbortException) {\n                return;\n              }\n              if (self.options.ignoreErrors) {\n                warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n                return;\n              }\n              throw reason;\n            }));\n            return;\n          case OPS.beginMarkedContent:\n            flushTextContentItem();\n            if (includeMarkedContent) {\n              markedContentData.level++;\n              textContent.items.push({\n                type: \"beginMarkedContent\",\n                tag: args[0] instanceof Name ? args[0].name : null\n              });\n            }\n            break;\n          case OPS.beginMarkedContentProps:\n            flushTextContentItem();\n            if (includeMarkedContent) {\n              markedContentData.level++;\n              const mcid = args[1] instanceof Dict ? args[1].get(\"MCID\") : null;\n              textContent.items.push({\n                type: \"beginMarkedContentProps\",\n                id: Number.isInteger(mcid) ? `${self.idFactory.getPageObjId()}_mc${mcid}` : null,\n                tag: args[0] instanceof Name ? args[0].name : null\n              });\n            }\n            break;\n          case OPS.endMarkedContent:\n            flushTextContentItem();\n            if (includeMarkedContent) {\n              if (markedContentData.level === 0) {\n                break;\n              }\n              markedContentData.level--;\n              textContent.items.push({\n                type: \"endMarkedContent\"\n              });\n            }\n            break;\n        }\n        if (textContent.items.length >= sink.desiredSize) {\n          stop = true;\n          break;\n        }\n      }\n      if (stop) {\n        next(deferred);\n        return;\n      }\n      flushTextContentItem();\n      enqueueChunk();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof AbortException) {\n        return;\n      }\n      if (this.options.ignoreErrors) {\n        warn(`getTextContent - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n        flushTextContentItem();\n        enqueueChunk();\n        return;\n      }\n      throw reason;\n    });\n  }\n  async extractDataStructures(dict, properties) {\n    const xref = this.xref;\n    let cidToGidBytes;\n    const toUnicodePromise = this.readToUnicode(properties.toUnicode);\n    if (properties.composite) {\n      const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n      if (cidSystemInfo instanceof Dict && !properties.cidSystemInfo) {\n        properties.cidSystemInfo = {\n          registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n          ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n          supplement: cidSystemInfo.get(\"Supplement\")\n        };\n      }\n      try {\n        const cidToGidMap = dict.get(\"CIDToGIDMap\");\n        if (cidToGidMap instanceof BaseStream) {\n          cidToGidBytes = cidToGidMap.getBytes();\n        }\n      } catch (ex) {\n        if (!this.options.ignoreErrors) {\n          throw ex;\n        }\n        warn(`extractDataStructures - ignoring CIDToGIDMap data: \"${ex}\".`);\n      }\n    }\n    const differences = [];\n    let baseEncodingName = null;\n    let encoding;\n    if (dict.has(\"Encoding\")) {\n      encoding = dict.get(\"Encoding\");\n      if (encoding instanceof Dict) {\n        baseEncodingName = encoding.get(\"BaseEncoding\");\n        baseEncodingName = baseEncodingName instanceof Name ? baseEncodingName.name : null;\n        if (encoding.has(\"Differences\")) {\n          const diffEncoding = encoding.get(\"Differences\");\n          let index = 0;\n          for (const entry of diffEncoding) {\n            const data = xref.fetchIfRef(entry);\n            if (typeof data === \"number\") {\n              index = data;\n            } else if (data instanceof Name) {\n              differences[index++] = data.name;\n            } else {\n              throw new FormatError(`Invalid entry in 'Differences' array: ${data}`);\n            }\n          }\n        }\n      } else if (encoding instanceof Name) {\n        baseEncodingName = encoding.name;\n      } else {\n        const msg = \"Encoding is not a Name nor a Dict\";\n        if (!this.options.ignoreErrors) {\n          throw new FormatError(msg);\n        }\n        warn(msg);\n      }\n      if (baseEncodingName !== \"MacRomanEncoding\" && baseEncodingName !== \"MacExpertEncoding\" && baseEncodingName !== \"WinAnsiEncoding\") {\n        baseEncodingName = null;\n      }\n    }\n    const nonEmbeddedFont = !properties.file || properties.isInternalFont,\n      isSymbolsFontName = getSymbolsFonts()[properties.name];\n    if (baseEncodingName && nonEmbeddedFont && isSymbolsFontName) {\n      baseEncodingName = null;\n    }\n    if (baseEncodingName === \"WinAnsiEncoding\" && nonEmbeddedFont && properties.name?.charCodeAt(0) >= 0xb7) {\n      const fontName = properties.name;\n      const chineseFontNames = [\"\\xCB\\xCE\\xCC\\xE5\", \"\\xBA\\xDA\\xCC\\xE5\", \"\\xBF\\xAC\\xCC\\xE5\", \"\\xB7\\xC2\\xCB\\xCE\", \"\\xBF\\xAC\\xCC\\xE5_GB2312\", \"\\xB7\\xC2\\xCB\\xCE_GB2312\", \"\\xC1\\xA5\\xCA\\xE9\", \"\\xD0\\xC2\\xCB\\xCE\", \"\\xB7\\xC2\\xCB\\xCE\\xCC\\xE5\", \"\\xD0\\xA1\\xB1\\xEA\\xCB\\xCE\"];\n      if (chineseFontNames.includes(fontName)) {\n        baseEncodingName = null;\n        properties.defaultEncoding = \"Adobe-GB1-UCS2\";\n        properties.composite = true;\n        properties.cidEncoding = Name.get(\"GBK-EUC-H\");\n        const cMap = await CMapFactory.create({\n          encoding: properties.cidEncoding,\n          fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n          useCMap: null\n        });\n        properties.cMap = cMap;\n        properties.vertical = properties.cMap.vertical;\n        properties.cidSystemInfo = {\n          registry: \"Adobe\",\n          ordering: \"GB1\",\n          supplement: 0\n        };\n      }\n    }\n    if (baseEncodingName) {\n      properties.defaultEncoding = getEncoding(baseEncodingName);\n    } else {\n      let isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n      const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n      if (properties.type === \"TrueType\" && isSymbolicFont && isNonsymbolicFont && differences.length !== 0) {\n        properties.flags &= ~FontFlags.Symbolic;\n        isSymbolicFont = false;\n      }\n      encoding = StandardEncoding;\n      if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n        encoding = WinAnsiEncoding;\n      }\n      if (isSymbolicFont || isSymbolsFontName) {\n        encoding = MacRomanEncoding;\n        if (nonEmbeddedFont) {\n          if (/Symbol/i.test(properties.name)) {\n            encoding = SymbolSetEncoding;\n          } else if (/Dingbats/i.test(properties.name)) {\n            encoding = ZapfDingbatsEncoding;\n          } else if (/Wingdings/i.test(properties.name)) {\n            encoding = WinAnsiEncoding;\n          }\n        }\n      }\n      properties.defaultEncoding = encoding;\n    }\n    properties.differences = differences;\n    properties.baseEncodingName = baseEncodingName;\n    properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n    properties.dict = dict;\n    properties.toUnicode = await toUnicodePromise;\n    const builtToUnicode = await this.buildToUnicode(properties);\n    properties.toUnicode = builtToUnicode;\n    if (cidToGidBytes) {\n      properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);\n    }\n    return properties;\n  }\n  _simpleFontToUnicode(properties, forceGlyphs = false) {\n    assert(!properties.composite, \"Must be a simple font.\");\n    const toUnicode = [];\n    const encoding = properties.defaultEncoding.slice();\n    const baseEncodingName = properties.baseEncodingName;\n    const differences = properties.differences;\n    for (const charcode in differences) {\n      const glyphName = differences[charcode];\n      if (glyphName === \".notdef\") {\n        continue;\n      }\n      encoding[charcode] = glyphName;\n    }\n    const glyphsUnicodeMap = getGlyphsUnicode();\n    for (const charcode in encoding) {\n      let glyphName = encoding[charcode];\n      if (glyphName === \"\") {\n        continue;\n      }\n      let unicode = glyphsUnicodeMap[glyphName];\n      if (unicode !== undefined) {\n        toUnicode[charcode] = String.fromCharCode(unicode);\n        continue;\n      }\n      let code = 0;\n      switch (glyphName[0]) {\n        case \"G\":\n          if (glyphName.length === 3) {\n            code = parseInt(glyphName.substring(1), 16);\n          }\n          break;\n        case \"g\":\n          if (glyphName.length === 5) {\n            code = parseInt(glyphName.substring(1), 16);\n          }\n          break;\n        case \"C\":\n        case \"c\":\n          if (glyphName.length >= 3 && glyphName.length <= 4) {\n            const codeStr = glyphName.substring(1);\n            if (forceGlyphs) {\n              code = parseInt(codeStr, 16);\n              break;\n            }\n            code = +codeStr;\n            if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n              return this._simpleFontToUnicode(properties, true);\n            }\n          }\n          break;\n        case \"u\":\n          unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n          if (unicode !== -1) {\n            code = unicode;\n          }\n          break;\n        default:\n          switch (glyphName) {\n            case \"f_h\":\n            case \"f_t\":\n            case \"T_h\":\n              toUnicode[charcode] = glyphName.replaceAll(\"_\", \"\");\n              continue;\n          }\n          break;\n      }\n      if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n        if (baseEncodingName && code === +charcode) {\n          const baseEncoding = getEncoding(baseEncodingName);\n          if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n            toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n            continue;\n          }\n        }\n        toUnicode[charcode] = String.fromCodePoint(code);\n      }\n    }\n    return toUnicode;\n  }\n  async buildToUnicode(properties) {\n    properties.hasIncludedToUnicodeMap = properties.toUnicode?.length > 0;\n    if (properties.hasIncludedToUnicodeMap) {\n      if (!properties.composite && properties.hasEncoding) {\n        properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n      }\n      return properties.toUnicode;\n    }\n    if (!properties.composite) {\n      return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n    }\n    if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof IdentityCMap) || properties.cidSystemInfo?.registry === \"Adobe\" && (properties.cidSystemInfo.ordering === \"GB1\" || properties.cidSystemInfo.ordering === \"CNS1\" || properties.cidSystemInfo.ordering === \"Japan1\" || properties.cidSystemInfo.ordering === \"Korea1\"))) {\n      const {\n        registry,\n        ordering\n      } = properties.cidSystemInfo;\n      const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n      const ucs2CMap = await CMapFactory.create({\n        encoding: ucs2CMapName,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      const toUnicode = [],\n        buf = [];\n      properties.cMap.forEach(function (charcode, cid) {\n        if (cid > 0xffff) {\n          throw new FormatError(\"Max size of CID is 65,535\");\n        }\n        const ucs2 = ucs2CMap.lookup(cid);\n        if (ucs2) {\n          buf.length = 0;\n          for (let i = 0, ii = ucs2.length; i < ii; i += 2) {\n            buf.push((ucs2.charCodeAt(i) << 8) + ucs2.charCodeAt(i + 1));\n          }\n          toUnicode[charcode] = String.fromCharCode(...buf);\n        }\n      });\n      return new ToUnicodeMap(toUnicode);\n    }\n    return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n  }\n  async readToUnicode(cmapObj) {\n    if (!cmapObj) {\n      return null;\n    }\n    if (cmapObj instanceof Name) {\n      const cmap = await CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      if (cmap instanceof IdentityCMap) {\n        return new IdentityToUnicodeMap(0, 0xffff);\n      }\n      return new ToUnicodeMap(cmap.getMap());\n    }\n    if (cmapObj instanceof BaseStream) {\n      try {\n        const cmap = await CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n          useCMap: null\n        });\n        if (cmap instanceof IdentityCMap) {\n          return new IdentityToUnicodeMap(0, 0xffff);\n        }\n        const map = new Array(cmap.length);\n        cmap.forEach(function (charCode, token) {\n          if (typeof token === \"number\") {\n            map[charCode] = String.fromCodePoint(token);\n            return;\n          }\n          if (token.length % 2 !== 0) {\n            token = \"\\u0000\" + token;\n          }\n          const str = [];\n          for (let k = 0; k < token.length; k += 2) {\n            const w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n            if ((w1 & 0xf800) !== 0xd800) {\n              str.push(w1);\n              continue;\n            }\n            k += 2;\n            const w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n            str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n          }\n          map[charCode] = String.fromCodePoint(...str);\n        });\n        return new ToUnicodeMap(map);\n      } catch (reason) {\n        if (reason instanceof AbortException) {\n          return null;\n        }\n        if (this.options.ignoreErrors) {\n          warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n          return null;\n        }\n        throw reason;\n      }\n    }\n    return null;\n  }\n  readCidToGidMap(glyphsData, toUnicode) {\n    const result = [];\n    for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n      const glyphID = glyphsData[j++] << 8 | glyphsData[j];\n      const code = j >> 1;\n      if (glyphID === 0 && !toUnicode.has(code)) {\n        continue;\n      }\n      result[code] = glyphID;\n    }\n    return result;\n  }\n  extractWidths(dict, descriptor, properties) {\n    const xref = this.xref;\n    let glyphsWidths = [];\n    let defaultWidth = 0;\n    const glyphsVMetrics = [];\n    let defaultVMetrics;\n    if (properties.composite) {\n      const dw = dict.get(\"DW\");\n      defaultWidth = typeof dw === \"number\" ? Math.ceil(dw) : 1000;\n      const widths = dict.get(\"W\");\n      if (Array.isArray(widths)) {\n        for (let i = 0, ii = widths.length; i < ii; i++) {\n          let start = xref.fetchIfRef(widths[i++]);\n          if (!Number.isInteger(start)) {\n            break;\n          }\n          const code = xref.fetchIfRef(widths[i]);\n          if (Array.isArray(code)) {\n            for (const c of code) {\n              const width = xref.fetchIfRef(c);\n              if (typeof width === \"number\") {\n                glyphsWidths[start] = width;\n              }\n              start++;\n            }\n          } else if (Number.isInteger(code)) {\n            const width = xref.fetchIfRef(widths[++i]);\n            if (typeof width !== \"number\") {\n              continue;\n            }\n            for (let j = start; j <= code; j++) {\n              glyphsWidths[j] = width;\n            }\n          } else {\n            break;\n          }\n        }\n      }\n      if (properties.vertical) {\n        const dw2 = dict.getArray(\"DW2\");\n        let vmetrics = isNumberArray(dw2, 2) ? dw2 : [880, -1000];\n        defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n        vmetrics = dict.get(\"W2\");\n        if (Array.isArray(vmetrics)) {\n          for (let i = 0, ii = vmetrics.length; i < ii; i++) {\n            let start = xref.fetchIfRef(vmetrics[i++]);\n            if (!Number.isInteger(start)) {\n              break;\n            }\n            const code = xref.fetchIfRef(vmetrics[i]);\n            if (Array.isArray(code)) {\n              for (let j = 0, jj = code.length; j < jj; j++) {\n                const vmetric = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n                if (isNumberArray(vmetric, null)) {\n                  glyphsVMetrics[start] = vmetric;\n                }\n                start++;\n              }\n            } else if (Number.isInteger(code)) {\n              const vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n              if (!isNumberArray(vmetric, null)) {\n                continue;\n              }\n              for (let j = start; j <= code; j++) {\n                glyphsVMetrics[j] = vmetric;\n              }\n            } else {\n              break;\n            }\n          }\n        }\n      }\n    } else {\n      const widths = dict.get(\"Widths\");\n      if (Array.isArray(widths)) {\n        let j = properties.firstChar;\n        for (const w of widths) {\n          const width = xref.fetchIfRef(w);\n          if (typeof width === \"number\") {\n            glyphsWidths[j] = width;\n          }\n          j++;\n        }\n        const missingWidth = descriptor.get(\"MissingWidth\");\n        defaultWidth = typeof missingWidth === \"number\" ? missingWidth : 0;\n      } else {\n        const baseFontName = dict.get(\"BaseFont\");\n        if (baseFontName instanceof Name) {\n          const metrics = this.getBaseFontMetrics(baseFontName.name);\n          glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n          defaultWidth = metrics.defaultWidth;\n        }\n      }\n    }\n    let isMonospace = true;\n    let firstWidth = defaultWidth;\n    for (const glyph in glyphsWidths) {\n      const glyphWidth = glyphsWidths[glyph];\n      if (!glyphWidth) {\n        continue;\n      }\n      if (!firstWidth) {\n        firstWidth = glyphWidth;\n        continue;\n      }\n      if (firstWidth !== glyphWidth) {\n        isMonospace = false;\n        break;\n      }\n    }\n    if (isMonospace) {\n      properties.flags |= FontFlags.FixedPitch;\n    } else {\n      properties.flags &= ~FontFlags.FixedPitch;\n    }\n    properties.defaultWidth = defaultWidth;\n    properties.widths = glyphsWidths;\n    properties.defaultVMetrics = defaultVMetrics;\n    properties.vmetrics = glyphsVMetrics;\n  }\n  isSerifFont(baseFontName) {\n    const fontNameWoStyle = baseFontName.split(\"-\", 1)[0];\n    return fontNameWoStyle in getSerifFonts() || /serif/i.test(fontNameWoStyle);\n  }\n  getBaseFontMetrics(name) {\n    let defaultWidth = 0;\n    let widths = Object.create(null);\n    let monospace = false;\n    let fontName = normalizeFontName(name);\n    const stdFontMap = getStdFontMap();\n    fontName = stdFontMap[fontName] || fontName;\n    const Metrics = getMetrics();\n    const glyphWidths = Metrics[fontName] ?? Metrics[this.isSerifFont(name) ? \"Times-Roman\" : \"Helvetica\"];\n    if (typeof glyphWidths === \"number\") {\n      defaultWidth = glyphWidths;\n      monospace = true;\n    } else {\n      widths = glyphWidths();\n    }\n    return {\n      defaultWidth,\n      monospace,\n      widths\n    };\n  }\n  buildCharCodeToWidth(widthsByGlyphName, properties) {\n    const widths = Object.create(null);\n    const differences = properties.differences;\n    const encoding = properties.defaultEncoding;\n    for (let charCode = 0; charCode < 256; charCode++) {\n      if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n        widths[charCode] = widthsByGlyphName[differences[charCode]];\n        continue;\n      }\n      if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n        widths[charCode] = widthsByGlyphName[encoding[charCode]];\n        continue;\n      }\n    }\n    return widths;\n  }\n  preEvaluateFont(dict) {\n    const baseDict = dict;\n    let type = dict.get(\"Subtype\");\n    if (!(type instanceof Name)) {\n      throw new FormatError(\"invalid font Subtype\");\n    }\n    let composite = false;\n    let hash;\n    if (type.name === \"Type0\") {\n      const df = dict.get(\"DescendantFonts\");\n      if (!df) {\n        throw new FormatError(\"Descendant fonts are not specified\");\n      }\n      dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n      if (!(dict instanceof Dict)) {\n        throw new FormatError(\"Descendant font is not a dictionary.\");\n      }\n      type = dict.get(\"Subtype\");\n      if (!(type instanceof Name)) {\n        throw new FormatError(\"invalid font Subtype\");\n      }\n      composite = true;\n    }\n    let firstChar = dict.get(\"FirstChar\");\n    if (!Number.isInteger(firstChar)) {\n      firstChar = 0;\n    }\n    let lastChar = dict.get(\"LastChar\");\n    if (!Number.isInteger(lastChar)) {\n      lastChar = composite ? 0xffff : 0xff;\n    }\n    const descriptor = dict.get(\"FontDescriptor\");\n    const toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n    if (descriptor) {\n      hash = new MurmurHash3_64();\n      const encoding = baseDict.getRaw(\"Encoding\");\n      if (encoding instanceof Name) {\n        hash.update(encoding.name);\n      } else if (encoding instanceof Ref) {\n        hash.update(encoding.toString());\n      } else if (encoding instanceof Dict) {\n        for (const entry of encoding.getRawValues()) {\n          if (entry instanceof Name) {\n            hash.update(entry.name);\n          } else if (entry instanceof Ref) {\n            hash.update(entry.toString());\n          } else if (Array.isArray(entry)) {\n            const diffLength = entry.length,\n              diffBuf = new Array(diffLength);\n            for (let j = 0; j < diffLength; j++) {\n              const diffEntry = entry[j];\n              if (diffEntry instanceof Name) {\n                diffBuf[j] = diffEntry.name;\n              } else if (typeof diffEntry === \"number\" || diffEntry instanceof Ref) {\n                diffBuf[j] = diffEntry.toString();\n              }\n            }\n            hash.update(diffBuf.join());\n          }\n        }\n      }\n      hash.update(`${firstChar}-${lastChar}`);\n      if (toUnicode instanceof BaseStream) {\n        const stream = toUnicode.stream || toUnicode;\n        const uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n        hash.update(uint8array);\n      } else if (toUnicode instanceof Name) {\n        hash.update(toUnicode.name);\n      }\n      const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n      if (Array.isArray(widths)) {\n        const widthsBuf = [];\n        for (const entry of widths) {\n          if (typeof entry === \"number\" || entry instanceof Ref) {\n            widthsBuf.push(entry.toString());\n          }\n        }\n        hash.update(widthsBuf.join());\n      }\n      if (composite) {\n        hash.update(\"compositeFont\");\n        const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n        if (Array.isArray(compositeWidths)) {\n          const widthsBuf = [];\n          for (const entry of compositeWidths) {\n            if (typeof entry === \"number\" || entry instanceof Ref) {\n              widthsBuf.push(entry.toString());\n            } else if (Array.isArray(entry)) {\n              const subWidthsBuf = [];\n              for (const element of entry) {\n                if (typeof element === \"number\" || element instanceof Ref) {\n                  subWidthsBuf.push(element.toString());\n                }\n              }\n              widthsBuf.push(`[${subWidthsBuf.join()}]`);\n            }\n          }\n          hash.update(widthsBuf.join());\n        }\n        const cidToGidMap = dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n        if (cidToGidMap instanceof Name) {\n          hash.update(cidToGidMap.name);\n        } else if (cidToGidMap instanceof Ref) {\n          hash.update(cidToGidMap.toString());\n        } else if (cidToGidMap instanceof BaseStream) {\n          hash.update(cidToGidMap.peekBytes());\n        }\n      }\n      if (type.name === \"Type3\") {\n        const charProcs = baseDict.get(\"CharProcs\");\n        if (charProcs instanceof Dict) {\n          for (const [key, entry] of charProcs.getRawEntries()) {\n            hash.update(entry instanceof Ref ? `${key}\\0${entry}` : key);\n          }\n        }\n      }\n    }\n    return {\n      descriptor,\n      dict,\n      baseDict,\n      composite,\n      type: type.name,\n      firstChar,\n      lastChar,\n      toUnicode,\n      hash: hash ? hash.hexdigest() : \"\"\n    };\n  }\n  async translateFont({\n    descriptor,\n    dict,\n    baseDict,\n    composite,\n    type,\n    firstChar,\n    lastChar,\n    toUnicode,\n    cssFontInfo\n  }) {\n    const isType3Font = type === \"Type3\";\n    if (!descriptor) {\n      if (isType3Font) {\n        descriptor = Dict.empty;\n      } else if (composite) {\n        descriptor = Dict.empty;\n      } else {\n        let baseFontName = dict.get(\"BaseFont\");\n        if (!(baseFontName instanceof Name)) {\n          throw new FormatError(\"Base font is not specified\");\n        }\n        baseFontName = normalizeFontName(baseFontName.name);\n        const metrics = this.getBaseFontMetrics(baseFontName);\n        const fontNameWoStyle = baseFontName.split(\"-\", 1)[0];\n        const flags = (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) | (metrics.monospace ? FontFlags.FixedPitch : 0) | (getSymbolsFonts()[fontNameWoStyle] ? FontFlags.Symbolic : FontFlags.Nonsymbolic);\n        const properties = {\n          type,\n          name: baseFontName,\n          loadedName: baseDict.loadedName,\n          systemFontInfo: null,\n          widths: metrics.widths,\n          defaultWidth: metrics.defaultWidth,\n          isSimulatedFlags: true,\n          flags,\n          firstChar,\n          lastChar,\n          toUnicode,\n          xHeight: 0,\n          capHeight: 0,\n          italicAngle: 0,\n          isType3Font\n        };\n        const widths = dict.get(\"Widths\");\n        const standardFontName = getStandardFontName(baseFontName);\n        let file = null;\n        if (standardFontName) {\n          file = await this.fetchStandardFontData(standardFontName);\n          properties.isInternalFont = !!file;\n        }\n        if (!properties.isInternalFont && this.options.useSystemFonts) {\n          properties.systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, baseFontName, standardFontName, type);\n        }\n        const newProperties = await this.extractDataStructures(dict, properties);\n        if (Array.isArray(widths)) {\n          const glyphWidths = [];\n          let j = firstChar;\n          for (const w of widths) {\n            const width = this.xref.fetchIfRef(w);\n            if (typeof width === \"number\") {\n              glyphWidths[j] = width;\n            }\n            j++;\n          }\n          newProperties.widths = glyphWidths;\n        } else {\n          newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);\n        }\n        return new Font(baseFontName, file, newProperties, this.options);\n      }\n    }\n    let fontName = descriptor.get(\"FontName\");\n    let baseFont = dict.get(\"BaseFont\");\n    if (typeof fontName === \"string\") {\n      fontName = Name.get(fontName);\n    }\n    if (typeof baseFont === \"string\") {\n      baseFont = Name.get(baseFont);\n    }\n    const fontNameStr = fontName?.name;\n    const baseFontStr = baseFont?.name;\n    if (isType3Font) {\n      if (!fontNameStr) {\n        fontName = Name.get(type);\n      }\n    } else if (fontNameStr !== baseFontStr) {\n      info(`The FontDescriptor's FontName is \"${fontNameStr}\" but ` + `should be the same as the Font's BaseFont \"${baseFontStr}\".`);\n      if (fontNameStr && baseFontStr && (baseFontStr.startsWith(fontNameStr) || !isKnownFontName(fontNameStr) && isKnownFontName(baseFontStr))) {\n        fontName = null;\n      }\n      fontName ||= baseFont;\n    }\n    if (!(fontName instanceof Name)) {\n      throw new FormatError(\"invalid font name\");\n    }\n    let fontFile, fontFileN, subtype, length1, length2, length3;\n    try {\n      for (const n of [\"FontFile\", \"FontFile2\", \"FontFile3\"]) {\n        fontFile = descriptor.get(n);\n        if (fontFile) {\n          fontFileN = n;\n          break;\n        }\n      }\n      if (fontFile) {\n        if (!(fontFile instanceof BaseStream)) {\n          throw new FormatError(\"FontFile should be a stream\");\n        } else {\n          if (fontFile.isAsync) {\n            const bytes = await fontFile.asyncGetBytes();\n            if (bytes) {\n              fontFile = new Stream(bytes, 0, bytes.length, fontFile.dict);\n            }\n          }\n          if (fontFile.isEmpty) {\n            throw new FormatError(\"FontFile is empty\");\n          }\n        }\n      }\n    } catch (ex) {\n      if (!this.options.ignoreErrors) {\n        throw ex;\n      }\n      warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n      fontFile = null;\n    }\n    let isInternalFont = false;\n    let glyphScaleFactors = null;\n    let systemFontInfo = null;\n    if (fontFile) {\n      if (fontFile.dict) {\n        const subtypeEntry = fontFile.dict.get(\"Subtype\");\n        if (subtypeEntry instanceof Name) {\n          subtype = subtypeEntry.name;\n        }\n        length1 = fontFile.dict.get(\"Length1\");\n        length2 = fontFile.dict.get(\"Length2\");\n        length3 = fontFile.dict.get(\"Length3\");\n      }\n    } else if (cssFontInfo) {\n      const standardFontName = getXfaFontName(fontName.name);\n      if (standardFontName) {\n        cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n        cssFontInfo.metrics = standardFontName.metrics || null;\n        glyphScaleFactors = standardFontName.factors || null;\n        fontFile = await this.fetchStandardFontData(standardFontName.name);\n        isInternalFont = !!fontFile;\n        baseDict = dict = getXfaFontDict(fontName.name);\n        composite = true;\n      }\n    } else if (!isType3Font) {\n      const standardFontName = getStandardFontName(fontName.name);\n      if (standardFontName) {\n        fontFile = await this.fetchStandardFontData(standardFontName);\n        isInternalFont = !!fontFile;\n      }\n      if (!isInternalFont && this.options.useSystemFonts) {\n        systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, fontName.name, standardFontName, type);\n      }\n    }\n    const fontMatrix = lookupMatrix(dict.getArray(\"FontMatrix\"), FONT_IDENTITY_MATRIX);\n    const bbox = lookupNormalRect(descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"), isType3Font ? [0, 0, 0, 0] : undefined);\n    let ascent = descriptor.get(\"Ascent\");\n    if (typeof ascent !== \"number\") {\n      ascent = undefined;\n    }\n    let descent = descriptor.get(\"Descent\");\n    if (typeof descent !== \"number\") {\n      descent = undefined;\n    }\n    let xHeight = descriptor.get(\"XHeight\");\n    if (typeof xHeight !== \"number\") {\n      xHeight = 0;\n    }\n    let capHeight = descriptor.get(\"CapHeight\");\n    if (typeof capHeight !== \"number\") {\n      capHeight = 0;\n    }\n    let flags = descriptor.get(\"Flags\");\n    if (!Number.isInteger(flags)) {\n      flags = 0;\n    }\n    let italicAngle = descriptor.get(\"ItalicAngle\");\n    if (typeof italicAngle !== \"number\") {\n      italicAngle = 0;\n    }\n    const properties = {\n      type,\n      name: fontName.name,\n      subtype,\n      file: fontFile,\n      fontFileN,\n      length1,\n      length2,\n      length3,\n      isInternalFont,\n      loadedName: baseDict.loadedName,\n      composite,\n      fixedPitch: false,\n      fontMatrix,\n      firstChar,\n      lastChar,\n      toUnicode,\n      bbox,\n      ascent,\n      descent,\n      xHeight,\n      capHeight,\n      flags,\n      italicAngle,\n      isType3Font,\n      cssFontInfo,\n      scaleFactors: glyphScaleFactors,\n      systemFontInfo\n    };\n    if (composite) {\n      const cidEncoding = baseDict.get(\"Encoding\");\n      if (cidEncoding instanceof Name) {\n        properties.cidEncoding = cidEncoding.name;\n      }\n      const cMap = await CMapFactory.create({\n        encoding: cidEncoding,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      properties.cMap = cMap;\n      properties.vertical = properties.cMap.vertical;\n    }\n    const newProperties = await this.extractDataStructures(dict, properties);\n    this.extractWidths(dict, descriptor, newProperties);\n    const font = new Font(fontName.name, fontFile, newProperties, this.options);\n    if (font.missingFile && !font.systemFontInfo && !isType3Font && this.options.useSystemFonts) {\n      const standardFontName = getStandardFontName(fontName.name);\n      const substitution = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, fontName.name, standardFontName, type);\n      if (substitution) {\n        if (substitution.guessFallback) {\n          substitution.guessFallback = false;\n          substitution.css += `,${font.fallbackName}`;\n        }\n        font.systemFontInfo = substitution;\n      }\n    }\n    return font;\n  }\n  static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n    function buildPath(fontChar) {\n      const glyphName = `${font.loadedName}_path_${fontChar}`;\n      try {\n        if (font.renderer.hasBuiltPath(fontChar)) {\n          return;\n        }\n        const buffer = compileFontPathInfo(font.renderer.getPathJs(fontChar));\n        handler.send(\"commonobj\", [glyphName, \"FontPath\", buffer], [buffer]);\n      } catch (reason) {\n        if (evaluatorOptions.ignoreErrors) {\n          warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n          return;\n        }\n        throw reason;\n      }\n    }\n    for (const glyph of glyphs) {\n      buildPath(glyph.fontChar);\n      const accent = glyph.accent;\n      if (accent?.fontChar) {\n        buildPath(accent.fontChar);\n      }\n    }\n  }\n  static get fallbackFontDict() {\n    const dict = new Dict();\n    dict.set(\"BaseFont\", Name.get(\"Helvetica\"));\n    dict.set(\"Type\", Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n    return shadow(this, \"fallbackFontDict\", dict);\n  }\n}\nclass TranslatedFont {\n  #sent = false;\n  #type3Loaded = null;\n  constructor({\n    loadedName,\n    font,\n    dict\n  }) {\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this.type3Dependencies = font.isType3Font ? new Set() : null;\n  }\n  send(handler) {\n    if (this.#sent) {\n      return;\n    }\n    this.#sent = true;\n    const fontData = this.font.exportData(),\n      transfers = fontData.buffer ? [fontData.buffer] : null;\n    handler.send(\"commonobj\", [this.loadedName, \"Font\", fontData], transfers);\n  }\n  fallback(handler, evaluatorOptions) {\n    if (!this.font.data) {\n      return;\n    }\n    this.font.disableFontFace = true;\n    PartialEvaluator.buildFontPaths(this.font, this.font.glyphCacheValues, handler, evaluatorOptions);\n  }\n  loadType3Data(evaluator, resources, task, seenRefs = null) {\n    if (this.#type3Loaded) {\n      return this.#type3Loaded;\n    }\n    const {\n      font,\n      type3Dependencies\n    } = this;\n    assert(font.isType3Font, \"Must be a Type3 font.\");\n    const type3Evaluator = evaluator.clone({\n      ignoreErrors: false\n    });\n    const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n    if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n      type3FontRefs.put(this.dict.objId);\n    }\n    type3Evaluator.type3FontRefs = type3FontRefs;\n    let loadCharProcsPromise = Promise.resolve();\n    const charProcs = this.dict.get(\"CharProcs\");\n    const fontResources = this.dict.get(\"Resources\") || resources;\n    const charProcOperatorList = Object.create(null);\n    const [x0, y0, x1, y1] = font.bbox,\n      width = x1 - x0,\n      height = y1 - y0;\n    const fontBBoxSize = Math.hypot(width, height);\n    for (const key of charProcs.getKeys()) {\n      loadCharProcsPromise = loadCharProcsPromise.then(() => {\n        const glyphStream = charProcs.get(key);\n        const operatorList = new OperatorList();\n        return type3Evaluator.getOperatorList({\n          stream: glyphStream,\n          task,\n          resources: fontResources,\n          operatorList,\n          prevRefs: seenRefs\n        }).then(() => {\n          switch (operatorList.fnArray[0]) {\n            case OPS.setCharWidthAndBounds:\n              this.#removeType3ColorOperators(operatorList, fontBBoxSize);\n              break;\n            case OPS.setCharWidth:\n              if (!fontBBoxSize) {\n                this.#guessType3FontBBox(operatorList);\n              }\n              break;\n          }\n          charProcOperatorList[key] = operatorList.getIR();\n          for (const dependency of operatorList.dependencies) {\n            type3Dependencies.add(dependency);\n          }\n        }).catch(function (reason) {\n          warn(`Type3 font resource \"${key}\" is not available.`);\n          const dummyOperatorList = new OperatorList();\n          charProcOperatorList[key] = dummyOperatorList.getIR();\n        });\n      });\n    }\n    this.#type3Loaded = loadCharProcsPromise.then(() => {\n      font.charProcOperatorList = charProcOperatorList;\n      if (this._bbox) {\n        font.isCharBBox = true;\n        font.bbox = this._bbox;\n      }\n    });\n    return this.#type3Loaded;\n  }\n  #removeType3ColorOperators(operatorList, fontBBoxSize = NaN) {\n    const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2)),\n      width = charBBox[2] - charBBox[0],\n      height = charBBox[3] - charBBox[1];\n    const charBBoxSize = Math.hypot(width, height);\n    if (width === 0 || height === 0) {\n      operatorList.fnArray.splice(0, 1);\n      operatorList.argsArray.splice(0, 1);\n    } else if (fontBBoxSize === 0 || Math.round(charBBoxSize / fontBBoxSize) >= 10) {\n      this._bbox ??= BBOX_INIT.slice();\n      Util.rectBoundingBox(...charBBox, this._bbox);\n    }\n    let i = 0,\n      ii = operatorList.length;\n    while (i < ii) {\n      switch (operatorList.fnArray[i]) {\n        case OPS.setCharWidthAndBounds:\n          break;\n        case OPS.setStrokeColorSpace:\n        case OPS.setFillColorSpace:\n        case OPS.setStrokeColor:\n        case OPS.setStrokeColorN:\n        case OPS.setFillColor:\n        case OPS.setFillColorN:\n        case OPS.setStrokeGray:\n        case OPS.setFillGray:\n        case OPS.setStrokeRGBColor:\n        case OPS.setFillRGBColor:\n        case OPS.setStrokeCMYKColor:\n        case OPS.setFillCMYKColor:\n        case OPS.shadingFill:\n        case OPS.setRenderingIntent:\n          operatorList.fnArray.splice(i, 1);\n          operatorList.argsArray.splice(i, 1);\n          ii--;\n          continue;\n        case OPS.setGState:\n          const [gStateObj] = operatorList.argsArray[i];\n          let j = 0,\n            jj = gStateObj.length;\n          while (j < jj) {\n            const [gStateKey] = gStateObj[j];\n            switch (gStateKey) {\n              case \"TR\":\n              case \"TR2\":\n              case \"HT\":\n              case \"BG\":\n              case \"BG2\":\n              case \"UCR\":\n              case \"UCR2\":\n                gStateObj.splice(j, 1);\n                jj--;\n                continue;\n            }\n            j++;\n          }\n          break;\n      }\n      i++;\n    }\n  }\n  #guessType3FontBBox(operatorList) {\n    let i = 1;\n    const ii = operatorList.length;\n    while (i < ii) {\n      switch (operatorList.fnArray[i]) {\n        case OPS.constructPath:\n          const minMax = operatorList.argsArray[i][2];\n          this._bbox ??= BBOX_INIT.slice();\n          Util.rectBoundingBox(...minMax, this._bbox);\n          break;\n      }\n      i++;\n    }\n  }\n}\nclass StateManager {\n  constructor(initialState = new EvalState()) {\n    this.state = initialState;\n    this.stateStack = [];\n  }\n  save() {\n    const old = this.state;\n    this.stateStack.push(this.state);\n    this.state = old.clone();\n  }\n  restore() {\n    const prev = this.stateStack.pop();\n    if (prev) {\n      this.state = prev;\n    }\n  }\n  transform(args) {\n    this.state.ctm = Util.transform(this.state.ctm, args);\n  }\n}\nclass TextState {\n  ctm = new Float32Array(IDENTITY_MATRIX);\n  fontName = null;\n  fontSize = 0;\n  loadedName = null;\n  font = null;\n  fontMatrix = FONT_IDENTITY_MATRIX;\n  textMatrix = IDENTITY_MATRIX.slice();\n  textLineMatrix = IDENTITY_MATRIX.slice();\n  charSpacing = 0;\n  wordSpacing = 0;\n  leading = 0;\n  textHScale = 1;\n  textRise = 0;\n  setTextMatrix(a, b, c, d, e, f) {\n    const m = this.textMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n  setTextLineMatrix(a, b, c, d, e, f) {\n    const m = this.textLineMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n  translateTextMatrix(x, y) {\n    const m = this.textMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n  translateTextLineMatrix(x, y) {\n    const m = this.textLineMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n  carriageReturn() {\n    this.translateTextLineMatrix(0, -this.leading);\n    this.textMatrix = this.textLineMatrix.slice();\n  }\n  clone() {\n    const clone = Object.assign(Object.create(this), this);\n    clone.textMatrix = this.textMatrix.slice();\n    clone.textLineMatrix = this.textLineMatrix.slice();\n    clone.fontMatrix = this.fontMatrix.slice();\n    return clone;\n  }\n}\nclass EvalState {\n  ctm = new Float32Array(IDENTITY_MATRIX);\n  font = null;\n  textRenderingMode = TextRenderingMode.FILL;\n  _fillColorSpace = ColorSpaceUtils.gray;\n  _strokeColorSpace = ColorSpaceUtils.gray;\n  patternFillColorSpace = null;\n  patternStrokeColorSpace = null;\n  currentPointX = 0;\n  currentPointY = 0;\n  pathMinMax = F32_BBOX_INIT.slice();\n  pathBuffer = [];\n  get fillColorSpace() {\n    return this._fillColorSpace;\n  }\n  set fillColorSpace(colorSpace) {\n    this._fillColorSpace = this.patternFillColorSpace = colorSpace;\n  }\n  get strokeColorSpace() {\n    return this._strokeColorSpace;\n  }\n  set strokeColorSpace(colorSpace) {\n    this._strokeColorSpace = this.patternStrokeColorSpace = colorSpace;\n  }\n  clone({\n    newPath = false\n  } = {}) {\n    const clone = Object.create(this);\n    if (newPath) {\n      clone.pathBuffer = [];\n      clone.pathMinMax = F32_BBOX_INIT.slice();\n    }\n    return clone;\n  }\n}\nclass EvaluatorPreprocessor {\n  static get opMap() {\n    return shadow(this, \"opMap\", Object.assign(Object.create(null), {\n      w: {\n        id: OPS.setLineWidth,\n        numArgs: 1,\n        variableArgs: false\n      },\n      J: {\n        id: OPS.setLineCap,\n        numArgs: 1,\n        variableArgs: false\n      },\n      j: {\n        id: OPS.setLineJoin,\n        numArgs: 1,\n        variableArgs: false\n      },\n      M: {\n        id: OPS.setMiterLimit,\n        numArgs: 1,\n        variableArgs: false\n      },\n      d: {\n        id: OPS.setDash,\n        numArgs: 2,\n        variableArgs: false\n      },\n      ri: {\n        id: OPS.setRenderingIntent,\n        numArgs: 1,\n        variableArgs: false\n      },\n      i: {\n        id: OPS.setFlatness,\n        numArgs: 1,\n        variableArgs: false\n      },\n      gs: {\n        id: OPS.setGState,\n        numArgs: 1,\n        variableArgs: false\n      },\n      q: {\n        id: OPS.save,\n        numArgs: 0,\n        variableArgs: false\n      },\n      Q: {\n        id: OPS.restore,\n        numArgs: 0,\n        variableArgs: false\n      },\n      cm: {\n        id: OPS.transform,\n        numArgs: 6,\n        variableArgs: false\n      },\n      m: {\n        id: OPS.moveTo,\n        numArgs: 2,\n        variableArgs: false\n      },\n      l: {\n        id: OPS.lineTo,\n        numArgs: 2,\n        variableArgs: false\n      },\n      c: {\n        id: OPS.curveTo,\n        numArgs: 6,\n        variableArgs: false\n      },\n      v: {\n        id: OPS.curveTo2,\n        numArgs: 4,\n        variableArgs: false\n      },\n      y: {\n        id: OPS.curveTo3,\n        numArgs: 4,\n        variableArgs: false\n      },\n      h: {\n        id: OPS.closePath,\n        numArgs: 0,\n        variableArgs: false\n      },\n      re: {\n        id: OPS.rectangle,\n        numArgs: 4,\n        variableArgs: false\n      },\n      S: {\n        id: OPS.stroke,\n        numArgs: 0,\n        variableArgs: false\n      },\n      s: {\n        id: OPS.closeStroke,\n        numArgs: 0,\n        variableArgs: false\n      },\n      f: {\n        id: OPS.fill,\n        numArgs: 0,\n        variableArgs: false\n      },\n      F: {\n        id: OPS.fill,\n        numArgs: 0,\n        variableArgs: false\n      },\n      \"f*\": {\n        id: OPS.eoFill,\n        numArgs: 0,\n        variableArgs: false\n      },\n      B: {\n        id: OPS.fillStroke,\n        numArgs: 0,\n        variableArgs: false\n      },\n      \"B*\": {\n        id: OPS.eoFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      },\n      b: {\n        id: OPS.closeFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      },\n      \"b*\": {\n        id: OPS.closeEOFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      },\n      n: {\n        id: OPS.endPath,\n        numArgs: 0,\n        variableArgs: false\n      },\n      W: {\n        id: OPS.clip,\n        numArgs: 0,\n        variableArgs: false\n      },\n      \"W*\": {\n        id: OPS.eoClip,\n        numArgs: 0,\n        variableArgs: false\n      },\n      BT: {\n        id: OPS.beginText,\n        numArgs: 0,\n        variableArgs: false\n      },\n      ET: {\n        id: OPS.endText,\n        numArgs: 0,\n        variableArgs: false\n      },\n      Tc: {\n        id: OPS.setCharSpacing,\n        numArgs: 1,\n        variableArgs: false\n      },\n      Tw: {\n        id: OPS.setWordSpacing,\n        numArgs: 1,\n        variableArgs: false\n      },\n      Tz: {\n        id: OPS.setHScale,\n        numArgs: 1,\n        variableArgs: false\n      },\n      TL: {\n        id: OPS.setLeading,\n        numArgs: 1,\n        variableArgs: false\n      },\n      Tf: {\n        id: OPS.setFont,\n        numArgs: 2,\n        variableArgs: false\n      },\n      Tr: {\n        id: OPS.setTextRenderingMode,\n        numArgs: 1,\n        variableArgs: false\n      },\n      Ts: {\n        id: OPS.setTextRise,\n        numArgs: 1,\n        variableArgs: false\n      },\n      Td: {\n        id: OPS.moveText,\n        numArgs: 2,\n        variableArgs: false\n      },\n      TD: {\n        id: OPS.setLeadingMoveText,\n        numArgs: 2,\n        variableArgs: false\n      },\n      Tm: {\n        id: OPS.setTextMatrix,\n        numArgs: 6,\n        variableArgs: false\n      },\n      \"T*\": {\n        id: OPS.nextLine,\n        numArgs: 0,\n        variableArgs: false\n      },\n      Tj: {\n        id: OPS.showText,\n        numArgs: 1,\n        variableArgs: false\n      },\n      TJ: {\n        id: OPS.showSpacedText,\n        numArgs: 1,\n        variableArgs: false\n      },\n      \"'\": {\n        id: OPS.nextLineShowText,\n        numArgs: 1,\n        variableArgs: false\n      },\n      '\"': {\n        id: OPS.nextLineSetSpacingShowText,\n        numArgs: 3,\n        variableArgs: false\n      },\n      d0: {\n        id: OPS.setCharWidth,\n        numArgs: 2,\n        variableArgs: false\n      },\n      d1: {\n        id: OPS.setCharWidthAndBounds,\n        numArgs: 6,\n        variableArgs: false\n      },\n      CS: {\n        id: OPS.setStrokeColorSpace,\n        numArgs: 1,\n        variableArgs: false\n      },\n      cs: {\n        id: OPS.setFillColorSpace,\n        numArgs: 1,\n        variableArgs: false\n      },\n      SC: {\n        id: OPS.setStrokeColor,\n        numArgs: 4,\n        variableArgs: true\n      },\n      SCN: {\n        id: OPS.setStrokeColorN,\n        numArgs: 33,\n        variableArgs: true\n      },\n      sc: {\n        id: OPS.setFillColor,\n        numArgs: 4,\n        variableArgs: true\n      },\n      scn: {\n        id: OPS.setFillColorN,\n        numArgs: 33,\n        variableArgs: true\n      },\n      G: {\n        id: OPS.setStrokeGray,\n        numArgs: 1,\n        variableArgs: false\n      },\n      g: {\n        id: OPS.setFillGray,\n        numArgs: 1,\n        variableArgs: false\n      },\n      RG: {\n        id: OPS.setStrokeRGBColor,\n        numArgs: 3,\n        variableArgs: false\n      },\n      rg: {\n        id: OPS.setFillRGBColor,\n        numArgs: 3,\n        variableArgs: false\n      },\n      K: {\n        id: OPS.setStrokeCMYKColor,\n        numArgs: 4,\n        variableArgs: false\n      },\n      k: {\n        id: OPS.setFillCMYKColor,\n        numArgs: 4,\n        variableArgs: false\n      },\n      sh: {\n        id: OPS.shadingFill,\n        numArgs: 1,\n        variableArgs: false\n      },\n      BI: {\n        id: OPS.beginInlineImage,\n        numArgs: 0,\n        variableArgs: false\n      },\n      ID: {\n        id: OPS.beginImageData,\n        numArgs: 0,\n        variableArgs: false\n      },\n      EI: {\n        id: OPS.endInlineImage,\n        numArgs: 1,\n        variableArgs: false\n      },\n      Do: {\n        id: OPS.paintXObject,\n        numArgs: 1,\n        variableArgs: false\n      },\n      MP: {\n        id: OPS.markPoint,\n        numArgs: 1,\n        variableArgs: false\n      },\n      DP: {\n        id: OPS.markPointProps,\n        numArgs: 2,\n        variableArgs: false\n      },\n      BMC: {\n        id: OPS.beginMarkedContent,\n        numArgs: 1,\n        variableArgs: false\n      },\n      BDC: {\n        id: OPS.beginMarkedContentProps,\n        numArgs: 2,\n        variableArgs: false\n      },\n      EMC: {\n        id: OPS.endMarkedContent,\n        numArgs: 0,\n        variableArgs: false\n      },\n      BX: {\n        id: OPS.beginCompat,\n        numArgs: 0,\n        variableArgs: false\n      },\n      EX: {\n        id: OPS.endCompat,\n        numArgs: 0,\n        variableArgs: false\n      },\n      BM: null,\n      BD: null,\n      true: null,\n      fa: null,\n      fal: null,\n      fals: null,\n      false: null,\n      nu: null,\n      nul: null,\n      null: null\n    }));\n  }\n  static MAX_INVALID_PATH_OPS = 10;\n  constructor(stream, xref, stateManager = new StateManager()) {\n    this.parser = new Parser({\n      lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n      xref\n    });\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._isPathOp = false;\n    this._numInvalidPathOPS = 0;\n  }\n  get savedStatesDepth() {\n    return this.stateManager.stateStack.length;\n  }\n  read(operation) {\n    let args = operation.args;\n    while (true) {\n      const obj = this.parser.getObj();\n      if (obj instanceof Cmd) {\n        const cmd = obj.cmd;\n        const opSpec = EvaluatorPreprocessor.opMap[cmd];\n        if (!opSpec) {\n          warn(`Unknown command \"${cmd}\".`);\n          continue;\n        }\n        const fn = opSpec.id;\n        const numArgs = opSpec.numArgs;\n        let argsLength = args !== null ? args.length : 0;\n        if (!this._isPathOp) {\n          this._numInvalidPathOPS = 0;\n        }\n        this._isPathOp = fn >= OPS.moveTo && fn <= OPS.endPath;\n        if (!opSpec.variableArgs) {\n          if (argsLength !== numArgs) {\n            const nonProcessedArgs = this.nonProcessedArgs;\n            while (argsLength > numArgs) {\n              nonProcessedArgs.push(args.shift());\n              argsLength--;\n            }\n            while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n              if (args === null) {\n                args = [];\n              }\n              args.unshift(nonProcessedArgs.pop());\n              argsLength++;\n            }\n          }\n          if (argsLength < numArgs) {\n            const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`;\n            if (this._isPathOp && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) {\n              throw new FormatError(`Invalid ${partialMsg}`);\n            }\n            warn(`Skipping ${partialMsg}`);\n            if (args !== null) {\n              args.length = 0;\n            }\n            continue;\n          }\n        } else if (argsLength > numArgs) {\n          info(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`);\n        }\n        this.preprocessCommand(fn, args);\n        operation.fn = fn;\n        operation.args = args;\n        return true;\n      }\n      if (obj === EOF) {\n        return false;\n      }\n      if (obj !== null) {\n        if (args === null) {\n          args = [];\n        }\n        args.push(obj);\n        if (args.length > 33) {\n          throw new FormatError(\"Too many arguments\");\n        }\n      }\n    }\n  }\n  preprocessCommand(fn, args) {\n    switch (fn | 0) {\n      case OPS.save:\n        this.stateManager.save();\n        break;\n      case OPS.restore:\n        this.stateManager.restore();\n        break;\n      case OPS.transform:\n        this.stateManager.transform(args);\n        break;\n    }\n  }\n}\n\n;// ./src/core/default_appearance.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n  constructor(str) {\n    super(new StringStream(str));\n  }\n  parse() {\n    const operation = {\n      fn: 0,\n      args: []\n    };\n    const result = {\n      fontSize: 0,\n      fontName: \"\",\n      fontColor: new Uint8ClampedArray(3)\n    };\n    try {\n      while (true) {\n        operation.args.length = 0;\n        if (!this.read(operation)) {\n          break;\n        }\n        if (this.savedStatesDepth !== 0) {\n          continue;\n        }\n        const {\n          fn,\n          args\n        } = operation;\n        switch (fn | 0) {\n          case OPS.setFont:\n            const [fontName, fontSize] = args;\n            if (fontName instanceof Name) {\n              result.fontName = fontName.name;\n            }\n            if (typeof fontSize === \"number\" && fontSize > 0) {\n              result.fontSize = fontSize;\n            }\n            break;\n          case OPS.setFillRGBColor:\n            ColorSpaceUtils.rgb.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillGray:\n            ColorSpaceUtils.gray.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillCMYKColor:\n            ColorSpaceUtils.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n        }\n      }\n    } catch (reason) {\n      warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n    }\n    return result;\n  }\n}\nfunction parseDefaultAppearance(str) {\n  return new DefaultAppearanceEvaluator(str).parse();\n}\nclass AppearanceStreamEvaluator extends EvaluatorPreprocessor {\n  constructor(stream, xref, globalColorSpaceCache) {\n    super(stream);\n    this.stream = stream;\n    this.xref = xref;\n    this.globalColorSpaceCache = globalColorSpaceCache;\n    this.resources = stream.dict?.get(\"Resources\");\n  }\n  parse() {\n    const operation = {\n      fn: 0,\n      args: []\n    };\n    let result = {\n      scaleFactor: 1,\n      fontSize: 0,\n      fontName: \"\",\n      fontColor: new Uint8ClampedArray(3),\n      fillColorSpace: ColorSpaceUtils.gray\n    };\n    let breakLoop = false;\n    const stack = [];\n    try {\n      while (true) {\n        operation.args.length = 0;\n        if (breakLoop || !this.read(operation)) {\n          break;\n        }\n        const {\n          fn,\n          args\n        } = operation;\n        switch (fn | 0) {\n          case OPS.save:\n            stack.push({\n              scaleFactor: result.scaleFactor,\n              fontSize: result.fontSize,\n              fontName: result.fontName,\n              fontColor: result.fontColor.slice(),\n              fillColorSpace: result.fillColorSpace\n            });\n            break;\n          case OPS.restore:\n            result = stack.pop() || result;\n            break;\n          case OPS.setTextMatrix:\n            result.scaleFactor *= Math.hypot(args[0], args[1]);\n            break;\n          case OPS.setFont:\n            const [fontName, fontSize] = args;\n            if (fontName instanceof Name) {\n              result.fontName = fontName.name;\n            }\n            if (typeof fontSize === \"number\" && fontSize > 0) {\n              result.fontSize = fontSize * result.scaleFactor;\n            }\n            break;\n          case OPS.setFillColorSpace:\n            result.fillColorSpace = ColorSpaceUtils.parse({\n              cs: args[0],\n              xref: this.xref,\n              resources: this.resources,\n              pdfFunctionFactory: this._pdfFunctionFactory,\n              globalColorSpaceCache: this.globalColorSpaceCache,\n              localColorSpaceCache: this._localColorSpaceCache\n            });\n            break;\n          case OPS.setFillColor:\n            const cs = result.fillColorSpace;\n            cs.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillRGBColor:\n            ColorSpaceUtils.rgb.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillGray:\n            ColorSpaceUtils.gray.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillCMYKColor:\n            ColorSpaceUtils.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.showText:\n          case OPS.showSpacedText:\n          case OPS.nextLineShowText:\n          case OPS.nextLineSetSpacingShowText:\n            breakLoop = true;\n            break;\n        }\n      }\n    } catch (reason) {\n      warn(`parseAppearanceStream - ignoring errors: \"${reason}\".`);\n    }\n    this.stream.reset();\n    delete result.scaleFactor;\n    delete result.fillColorSpace;\n    return result;\n  }\n  get _localColorSpaceCache() {\n    return shadow(this, \"_localColorSpaceCache\", new LocalColorSpaceCache());\n  }\n  get _pdfFunctionFactory() {\n    return shadow(this, \"_pdfFunctionFactory\", new PDFFunctionFactory({\n      xref: this.xref\n    }));\n  }\n}\nfunction parseAppearanceStream(stream, xref, globalColorSpaceCache) {\n  return new AppearanceStreamEvaluator(stream, xref, globalColorSpaceCache).parse();\n}\nfunction getPdfColor(color, isFill) {\n  if (color[0] === color[1] && color[1] === color[2]) {\n    const gray = color[0] / 255;\n    return `${numberToString(gray)} ${isFill ? \"g\" : \"G\"}`;\n  }\n  return Array.from(color, c => numberToString(c / 255)).join(\" \") + ` ${isFill ? \"rg\" : \"RG\"}`;\n}\nfunction createDefaultAppearance({\n  fontSize,\n  fontName,\n  fontColor\n}) {\n  return `/${escapePDFName(fontName)} ${fontSize} Tf ${getPdfColor(fontColor, true)}`;\n}\nclass FakeUnicodeFont {\n  static #fontNameId = 1;\n  constructor(xref, fontFamily) {\n    this.xref = xref;\n    this.widths = null;\n    this.firstChar = Infinity;\n    this.lastChar = -Infinity;\n    this.fontFamily = fontFamily;\n    const canvas = new OffscreenCanvas(1, 1);\n    this.ctxMeasure = canvas.getContext(\"2d\", {\n      willReadFrequently: true\n    });\n    this.fontName = Name.get(`InvalidPDFjsFont_${fontFamily}_${FakeUnicodeFont.#fontNameId++}`);\n  }\n  get fontDescriptorRef() {\n    if (!FakeUnicodeFont._fontDescriptorRef) {\n      const fontDescriptor = new Dict(this.xref);\n      fontDescriptor.setIfName(\"Type\", \"FontDescriptor\");\n      fontDescriptor.set(\"FontName\", this.fontName);\n      fontDescriptor.set(\"FontFamily\", \"MyriadPro Regular\");\n      fontDescriptor.set(\"FontBBox\", [0, 0, 0, 0]);\n      fontDescriptor.setIfName(\"FontStretch\", \"Normal\");\n      fontDescriptor.set(\"FontWeight\", 400);\n      fontDescriptor.set(\"ItalicAngle\", 0);\n      FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(fontDescriptor);\n    }\n    return FakeUnicodeFont._fontDescriptorRef;\n  }\n  get descendantFontRef() {\n    const descendantFont = new Dict(this.xref);\n    descendantFont.set(\"BaseFont\", this.fontName);\n    descendantFont.setIfName(\"Type\", \"Font\");\n    descendantFont.setIfName(\"Subtype\", \"CIDFontType0\");\n    descendantFont.setIfName(\"CIDToGIDMap\", \"Identity\");\n    descendantFont.set(\"FirstChar\", this.firstChar);\n    descendantFont.set(\"LastChar\", this.lastChar);\n    descendantFont.set(\"FontDescriptor\", this.fontDescriptorRef);\n    descendantFont.set(\"DW\", 1000);\n    const widths = [];\n    const chars = [...this.widths].sort();\n    let currentChar = null;\n    let currentWidths = null;\n    for (const [char, width] of chars) {\n      if (!currentChar) {\n        currentChar = char;\n        currentWidths = [width];\n        continue;\n      }\n      if (char === currentChar + currentWidths.length) {\n        currentWidths.push(width);\n      } else {\n        widths.push(currentChar, currentWidths);\n        currentChar = char;\n        currentWidths = [width];\n      }\n    }\n    if (currentChar) {\n      widths.push(currentChar, currentWidths);\n    }\n    descendantFont.set(\"W\", widths);\n    const cidSystemInfo = new Dict(this.xref);\n    cidSystemInfo.set(\"Ordering\", \"Identity\");\n    cidSystemInfo.set(\"Registry\", \"Adobe\");\n    cidSystemInfo.set(\"Supplement\", 0);\n    descendantFont.set(\"CIDSystemInfo\", cidSystemInfo);\n    return this.xref.getNewPersistentRef(descendantFont);\n  }\n  get baseFontRef() {\n    const baseFont = new Dict(this.xref);\n    baseFont.set(\"BaseFont\", this.fontName);\n    baseFont.setIfName(\"Type\", \"Font\");\n    baseFont.setIfName(\"Subtype\", \"Type0\");\n    baseFont.setIfName(\"Encoding\", \"Identity-H\");\n    baseFont.set(\"DescendantFonts\", [this.descendantFontRef]);\n    baseFont.setIfName(\"ToUnicode\", \"Identity-H\");\n    return this.xref.getNewPersistentRef(baseFont);\n  }\n  get resources() {\n    const resources = new Dict(this.xref);\n    const font = new Dict(this.xref);\n    font.set(this.fontName.name, this.baseFontRef);\n    resources.set(\"Font\", font);\n    return resources;\n  }\n  _createContext() {\n    this.widths = new Map();\n    this.ctxMeasure.font = `1000px ${this.fontFamily}`;\n    return this.ctxMeasure;\n  }\n  createFontResources(text) {\n    const ctx = this._createContext();\n    for (const line of text.split(/\\r\\n?|\\n/)) {\n      for (const char of line.split(\"\")) {\n        const code = char.charCodeAt(0);\n        if (this.widths.has(code)) {\n          continue;\n        }\n        const metrics = ctx.measureText(char);\n        const width = Math.ceil(metrics.width);\n        this.widths.set(code, width);\n        this.firstChar = Math.min(code, this.firstChar);\n        this.lastChar = Math.max(code, this.lastChar);\n      }\n    }\n    return this.resources;\n  }\n  static getFirstPositionInfo(rect, rotation, fontSize) {\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n    const lineHeight = LINE_FACTOR * fontSize;\n    const lineDescent = LINE_DESCENT_FACTOR * fontSize;\n    return {\n      coords: [0, h + lineDescent - lineHeight],\n      bbox: [0, 0, w, h],\n      matrix: rotation !== 0 ? getRotationMatrix(rotation, h, lineHeight) : undefined\n    };\n  }\n  createAppearance(text, rect, rotation, fontSize, bgColor, strokeAlpha) {\n    const ctx = this._createContext();\n    const lines = [];\n    let maxWidth = -Infinity;\n    for (const line of text.split(/\\r\\n?|\\n/)) {\n      lines.push(line);\n      const lineWidth = ctx.measureText(line).width;\n      maxWidth = Math.max(maxWidth, lineWidth);\n      for (const code of codePointIter(line)) {\n        const char = String.fromCodePoint(code);\n        let width = this.widths.get(code);\n        if (width === undefined) {\n          const metrics = ctx.measureText(char);\n          width = Math.ceil(metrics.width);\n          this.widths.set(code, width);\n          this.firstChar = Math.min(code, this.firstChar);\n          this.lastChar = Math.max(code, this.lastChar);\n        }\n      }\n    }\n    maxWidth *= fontSize / 1000;\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n    const hscale = maxWidth > w ? w / maxWidth : 1;\n    let vscale = 1;\n    const lineHeight = LINE_FACTOR * fontSize;\n    const lineDescent = LINE_DESCENT_FACTOR * fontSize;\n    const maxHeight = lineHeight * lines.length;\n    if (maxHeight > h) {\n      vscale = h / maxHeight;\n    }\n    const fscale = Math.min(hscale, vscale);\n    const newFontSize = fontSize * fscale;\n    const buffer = [\"q\", `0 0 ${numberToString(w)} ${numberToString(h)} re W n`, `BT`, `1 0 0 1 0 ${numberToString(h + lineDescent)} Tm 0 Tc ${getPdfColor(bgColor, true)}`, `/${this.fontName.name} ${numberToString(newFontSize)} Tf`];\n    const {\n      resources\n    } = this;\n    strokeAlpha = typeof strokeAlpha === \"number\" && strokeAlpha >= 0 && strokeAlpha <= 1 ? strokeAlpha : 1;\n    if (strokeAlpha !== 1) {\n      buffer.push(\"/R0 gs\");\n      const extGState = new Dict(this.xref);\n      const r0 = new Dict(this.xref);\n      r0.set(\"ca\", strokeAlpha);\n      r0.set(\"CA\", strokeAlpha);\n      r0.setIfName(\"Type\", \"ExtGState\");\n      extGState.set(\"R0\", r0);\n      resources.set(\"ExtGState\", extGState);\n    }\n    const vShift = numberToString(lineHeight);\n    for (const line of lines) {\n      buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`);\n    }\n    buffer.push(\"ET\", \"Q\");\n    const appearance = buffer.join(\"\\n\");\n    const appearanceStreamDict = new Dict(this.xref);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    appearanceStreamDict.set(\"Resources\", resources);\n    if (rotation) {\n      const matrix = getRotationMatrix(rotation, w, h);\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n}\n\n;// ./src/shared/scripting_utils.js\n/* unused harmony import specifier */ var scripting_utils_MathClamp;\n\n\n\nfunction makeColorComp(n) {\n  return Math.floor(scripting_utils_MathClamp(n, 0, 1) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n  return scripting_utils_MathClamp(x, 0, 1) * 255;\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 = [\"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 = [\"HH:MM\", \"h:MM tt\", \"HH:MM:ss\", \"h:MM:ss tt\"];\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.stringify.js\nvar es_json_stringify = __webpack_require__(3110);\n;// ./src/core/name_number_tree.js\n\n\n\n\n\nclass NameOrNumberTree {\n  constructor(root, xref, type) {\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n  getAll(isRaw = false) {\n    const map = new Map();\n    if (!this.root) {\n      return map;\n    }\n    const xref = this.xref;\n    const processed = new RefSet();\n    if (this.root instanceof Ref) {\n      processed.put(this.root);\n    }\n    const queue = [this.root];\n    for (const node of queue) {\n      const obj = xref.fetchIfRef(node);\n      if (!(obj instanceof Dict)) {\n        continue;\n      }\n      if (obj.has(\"Kids\")) {\n        const kids = obj.get(\"Kids\");\n        if (!Array.isArray(kids)) {\n          continue;\n        }\n        for (const kid of kids) {\n          if (kid instanceof Ref) {\n            if (processed.has(kid)) {\n              throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n            }\n            processed.put(kid);\n          }\n          queue.push(kid);\n        }\n        continue;\n      }\n      const entries = obj.get(this._type);\n      if (!Array.isArray(entries)) {\n        continue;\n      }\n      for (let i = 0, ii = entries.length; i < ii; i += 2) {\n        map.set(isRaw ? entries[i] : xref.fetchIfRef(entries[i]), isRaw ? entries[i + 1] : xref.fetchIfRef(entries[i + 1]));\n      }\n    }\n    return map;\n  }\n  getRaw(key) {\n    if (!this.root) {\n      return null;\n    }\n    const xref = this.xref;\n    let kidsOrEntries = xref.fetchIfRef(this.root);\n    let loopCount = 0;\n    const MAX_LEVELS = 10;\n    while (kidsOrEntries.has(\"Kids\")) {\n      if (++loopCount > MAX_LEVELS) {\n        warn(`Search depth limit reached for \"${this._type}\" tree.`);\n        return null;\n      }\n      const kids = kidsOrEntries.get(\"Kids\");\n      if (!Array.isArray(kids)) {\n        return null;\n      }\n      let l = 0,\n        r = kids.length - 1;\n      while (l <= r) {\n        const m = l + r >> 1;\n        const kid = xref.fetchIfRef(kids[m]);\n        const limits = kid.get(\"Limits\");\n        if (key < xref.fetchIfRef(limits[0])) {\n          r = m - 1;\n        } else if (key > xref.fetchIfRef(limits[1])) {\n          l = m + 1;\n        } else {\n          kidsOrEntries = kid;\n          break;\n        }\n      }\n      if (l > r) {\n        return null;\n      }\n    }\n    const entries = kidsOrEntries.get(this._type);\n    if (Array.isArray(entries)) {\n      let l = 0,\n        r = entries.length - 2;\n      while (l <= r) {\n        const tmp = l + r >> 1,\n          m = tmp + (tmp & 1);\n        const currentKey = xref.fetchIfRef(entries[m]);\n        if (key < currentKey) {\n          r = m - 2;\n        } else if (key > currentKey) {\n          l = m + 2;\n        } else {\n          return entries[m + 1];\n        }\n      }\n    }\n    return null;\n  }\n  get(key) {\n    return this.xref.fetchIfRef(this.getRaw(key));\n  }\n}\nclass NameTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Names\");\n  }\n}\nclass NumberTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Nums\");\n  }\n}\n\n;// ./src/core/cleanup_helper.js\n\n\n\n\nfunction clearGlobalCaches() {\n  clearPatternCaches();\n  clearPrimitiveCaches();\n  clearUnicodeCaches();\n  WasmImage.cleanup();\n}\n\n;// ./src/core/file_spec.js\n\n\n\n\nclass FileSpec {\n  constructor(root) {\n    if (!(root instanceof Dict)) {\n      return;\n    }\n    this.root = root;\n    if (root.has(\"FS\")) {\n      this.fs = root.get(\"FS\");\n    }\n    if (root.has(\"RF\")) {\n      warn(\"Related file specifications are not supported\");\n    }\n  }\n  get filename() {\n    const item = FileSpec.pickPlatformItem(this.root);\n    if (item && typeof item === \"string\") {\n      return stringToPDFString(item, true).replaceAll(\"\\\\\\\\\", \"\\\\\").replaceAll(\"\\\\/\", \"/\").replaceAll(\"\\\\\", \"/\");\n    }\n    return \"\";\n  }\n  get description() {\n    const desc = this.root?.get(\"Desc\");\n    if (desc && typeof desc === \"string\") {\n      return stringToPDFString(desc);\n    }\n    return \"\";\n  }\n  get serializable() {\n    const {\n      filename,\n      description\n    } = this;\n    return {\n      rawFilename: filename,\n      filename: stripPath(filename) || \"unnamed\",\n      description\n    };\n  }\n  static pickPlatformItem(dict, raw = false) {\n    if (dict instanceof Dict) {\n      for (const key of [\"UF\", \"F\", \"Unix\", \"Mac\", \"DOS\"]) {\n        if (dict.has(key)) {\n          return raw ? dict.getRaw(key) : dict.get(key);\n        }\n      }\n    }\n    return null;\n  }\n  static hasEmbeddedFile(fileSpecDict) {\n    return this.pickPlatformItem(fileSpecDict.get(\"EF\")) instanceof BaseStream;\n  }\n  static readContent(dict) {\n    if (!(dict instanceof Dict)) {\n      return null;\n    }\n    const ef = this.pickPlatformItem(dict.get(\"EF\"));\n    if (!(ef instanceof BaseStream)) {\n      warn(\"Embedded file specification points to non-existing/invalid content\");\n      return null;\n    }\n    return this.readStreamContent(ef);\n  }\n  static readStreamContent(stream) {\n    const encrypt = stream.dict?.xref?.encrypt;\n    if (encrypt?.encryptionKey === null) {\n      throw new PasswordException(\"No password given\", PasswordResponses.NEED_PASSWORD);\n    }\n    return stream.getBytes();\n  }\n}\n\n;// ./src/core/xml_parser.js\n\n\n\n\n\nconst XMLParserErrorCode = {\n  NoError: 0,\n  EndOfDocument: -1,\n  UnterminatedCdat: -2,\n  UnterminatedXmlDeclaration: -3,\n  UnterminatedDoctypeDeclaration: -4,\n  UnterminatedComment: -5,\n  MalformedElement: -6,\n  OutOfMemory: -7,\n  UnterminatedAttributeValue: -8,\n  UnterminatedElement: -9,\n  ElementNeverBegun: -10\n};\nfunction isWhitespace(s, index) {\n  const ch = s[index];\n  return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\nfunction isWhitespaceString(s) {\n  for (let i = 0, ii = s.length; i < ii; i++) {\n    if (!isWhitespace(s, i)) {\n      return false;\n    }\n  }\n  return true;\n}\nclass XMLParserBase {\n  static get _entityRegex() {\n    return shadow(this, \"_entityRegex\", /&(?:#x([^;]+)|#([^;]+)|([^;]+));/g);\n  }\n  _resolveEntities(s) {\n    return s.replaceAll(XMLParserBase._entityRegex, (_, hex, dec, entity) => {\n      if (hex) {\n        return String.fromCodePoint(parseInt(hex, 16));\n      }\n      if (dec) {\n        return String.fromCodePoint(parseInt(dec, 10));\n      }\n      switch (entity) {\n        case \"lt\":\n          return \"<\";\n        case \"gt\":\n          return \">\";\n        case \"amp\":\n          return \"&\";\n        case \"quot\":\n          return '\"';\n        case \"apos\":\n          return \"'\";\n      }\n      return this.onResolveEntity(entity);\n    });\n  }\n  _parseContent(s, start) {\n    const attributes = [];\n    let pos = start;\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n    while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n      ++pos;\n    }\n    const name = s.substring(start, pos);\n    skipWs();\n    while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n      skipWs();\n      let attrName = \"\",\n        attrValue = \"\";\n      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n        attrName += s[pos];\n        ++pos;\n      }\n      skipWs();\n      if (s[pos] !== \"=\") {\n        return null;\n      }\n      ++pos;\n      skipWs();\n      const attrEndChar = s[pos];\n      if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n        return null;\n      }\n      const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n      if (attrEndIndex < 0) {\n        return null;\n      }\n      attrValue = s.substring(pos, attrEndIndex);\n      attributes.push({\n        name: attrName,\n        value: this._resolveEntities(attrValue)\n      });\n      pos = attrEndIndex + 1;\n      skipWs();\n    }\n    return {\n      name,\n      attributes,\n      parsed: pos - start\n    };\n  }\n  _parseProcessingInstruction(s, start) {\n    let pos = start;\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n    while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"?\" && s[pos] !== \"/\") {\n      ++pos;\n    }\n    const name = s.substring(start, pos);\n    skipWs();\n    const attrStart = pos;\n    while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n      ++pos;\n    }\n    const value = s.substring(attrStart, pos);\n    return {\n      name,\n      value,\n      parsed: pos - start\n    };\n  }\n  parseXml(s) {\n    let i = 0;\n    while (i < s.length) {\n      const ch = s[i];\n      let j = i;\n      if (ch === \"<\") {\n        ++j;\n        const ch2 = s[j];\n        let q;\n        switch (ch2) {\n          case \"/\":\n            ++j;\n            q = s.indexOf(\">\", j);\n            if (q < 0) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onEndElement(s.substring(j, q));\n            j = q + 1;\n            break;\n          case \"?\":\n            ++j;\n            const pi = this._parseProcessingInstruction(s, j);\n            if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n              this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n              return;\n            }\n            this.onPi(pi.name, pi.value);\n            j += pi.parsed + 2;\n            break;\n          case \"!\":\n            if (s.substring(j + 1, j + 3) === \"--\") {\n              q = s.indexOf(\"-->\", j + 3);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedComment);\n                return;\n              }\n              this.onComment(s.substring(j + 3, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n              q = s.indexOf(\"]]>\", j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedCdat);\n                return;\n              }\n              this.onCdata(s.substring(j + 8, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n              const q2 = s.indexOf(\"[\", j + 8);\n              let complexDoctype = false;\n              q = s.indexOf(\">\", j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                return;\n              }\n              if (q2 > 0 && q > q2) {\n                q = s.indexOf(\"]>\", j + 8);\n                if (q < 0) {\n                  this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                  return;\n                }\n                complexDoctype = true;\n              }\n              const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n              this.onDoctype(doctypeContent);\n              j = q + (complexDoctype ? 2 : 1);\n            } else {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            break;\n          default:\n            const content = this._parseContent(s, j);\n            if (content === null) {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            let isClosed = false;\n            if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n              isClosed = true;\n            } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onBeginElement(content.name, content.attributes, isClosed);\n            j += content.parsed + (isClosed ? 2 : 1);\n            break;\n        }\n      } else {\n        while (j < s.length && s[j] !== \"<\") {\n          j++;\n        }\n        const text = s.substring(i, j);\n        this.onText(this._resolveEntities(text));\n      }\n      i = j;\n    }\n  }\n  onResolveEntity(name) {\n    return `&${name};`;\n  }\n  onPi(name, value) {}\n  onComment(text) {}\n  onCdata(text) {}\n  onDoctype(doctypeContent) {}\n  onText(text) {}\n  onBeginElement(name, attributes, isEmpty) {}\n  onEndElement(name) {}\n  onError(code) {}\n}\nclass SimpleDOMNode {\n  constructor(nodeName, nodeValue) {\n    this.nodeName = nodeName;\n    this.nodeValue = nodeValue;\n    Object.defineProperty(this, \"parentNode\", {\n      value: null,\n      writable: true\n    });\n  }\n  get firstChild() {\n    return this.childNodes?.[0];\n  }\n  get nextSibling() {\n    const childNodes = this.parentNode.childNodes;\n    if (!childNodes) {\n      return undefined;\n    }\n    const index = childNodes.indexOf(this);\n    if (index === -1) {\n      return undefined;\n    }\n    return childNodes[index + 1];\n  }\n  get textContent() {\n    if (!this.childNodes) {\n      return this.nodeValue || \"\";\n    }\n    return this.childNodes.map(child => child.textContent).join(\"\");\n  }\n  get children() {\n    return this.childNodes || [];\n  }\n  hasChildNodes() {\n    return this.childNodes?.length > 0;\n  }\n  searchNode(paths, pos) {\n    if (pos >= paths.length) {\n      return this;\n    }\n    const component = paths[pos];\n    if (component.name.startsWith(\"#\") && pos < paths.length - 1) {\n      return this.searchNode(paths, pos + 1);\n    }\n    const stack = [];\n    let node = this;\n    while (true) {\n      if (component.name === node.nodeName) {\n        if (component.pos === 0) {\n          const res = node.searchNode(paths, pos + 1);\n          if (res !== null) {\n            return res;\n          }\n        } else if (stack.length === 0) {\n          return null;\n        } else {\n          const [parent] = stack.pop();\n          let siblingPos = 0;\n          for (const child of parent.childNodes) {\n            if (component.name === child.nodeName) {\n              if (siblingPos === component.pos) {\n                return child.searchNode(paths, pos + 1);\n              }\n              siblingPos++;\n            }\n          }\n          return node.searchNode(paths, pos + 1);\n        }\n      }\n      if (node.childNodes?.length > 0) {\n        stack.push([node, 0]);\n        node = node.childNodes[0];\n      } else if (stack.length === 0) {\n        return null;\n      } else {\n        while (stack.length !== 0) {\n          const [parent, currentPos] = stack.pop();\n          const newPos = currentPos + 1;\n          if (newPos < parent.childNodes.length) {\n            stack.push([parent, newPos]);\n            node = parent.childNodes[newPos];\n            break;\n          }\n        }\n        if (stack.length === 0) {\n          return null;\n        }\n      }\n    }\n  }\n  dump(buffer) {\n    if (this.nodeName === \"#text\") {\n      buffer.push(encodeToXmlString(this.nodeValue));\n      return;\n    }\n    buffer.push(`<${this.nodeName}`);\n    if (this.attributes) {\n      for (const attribute of this.attributes) {\n        buffer.push(` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`);\n      }\n    }\n    if (this.hasChildNodes()) {\n      buffer.push(\">\");\n      for (const child of this.childNodes) {\n        child.dump(buffer);\n      }\n      buffer.push(`</${this.nodeName}>`);\n    } else if (this.nodeValue) {\n      buffer.push(`>${encodeToXmlString(this.nodeValue)}</${this.nodeName}>`);\n    } else {\n      buffer.push(\"/>\");\n    }\n  }\n}\nclass SimpleXMLParser extends XMLParserBase {\n  constructor({\n    hasAttributes = false,\n    lowerCaseName = false\n  }) {\n    super();\n    this._currentFragment = null;\n    this._stack = null;\n    this._errorCode = XMLParserErrorCode.NoError;\n    this._hasAttributes = hasAttributes;\n    this._lowerCaseName = lowerCaseName;\n  }\n  parseFromString(data) {\n    this._currentFragment = [];\n    this._stack = [];\n    this._errorCode = XMLParserErrorCode.NoError;\n    this.parseXml(data);\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n    const [documentElement] = this._currentFragment;\n    if (!documentElement) {\n      return undefined;\n    }\n    return {\n      documentElement\n    };\n  }\n  onText(text) {\n    if (isWhitespaceString(text)) {\n      return;\n    }\n    const node = new SimpleDOMNode(\"#text\", text);\n    this._currentFragment.push(node);\n  }\n  onCdata(text) {\n    const node = new SimpleDOMNode(\"#text\", text);\n    this._currentFragment.push(node);\n  }\n  onBeginElement(name, attributes, isEmpty) {\n    if (this._lowerCaseName) {\n      name = name.toLowerCase();\n    }\n    const node = new SimpleDOMNode(name);\n    node.childNodes = [];\n    if (this._hasAttributes) {\n      node.attributes = attributes;\n    }\n    this._currentFragment.push(node);\n    if (isEmpty) {\n      return;\n    }\n    this._stack.push(this._currentFragment);\n    this._currentFragment = node.childNodes;\n  }\n  onEndElement(name) {\n    this._currentFragment = this._stack.pop() || [];\n    const lastElement = this._currentFragment.at(-1);\n    if (!lastElement) {\n      return null;\n    }\n    for (const childNode of lastElement.childNodes) {\n      childNode.parentNode = lastElement;\n    }\n    return lastElement;\n  }\n  onError(code) {\n    this._errorCode = code;\n  }\n}\n\n;// ./src/core/metadata_parser.js\n\n\n\n\n\n\n\nclass MetadataParser {\n  constructor(data) {\n    data = this._repair(data);\n    const parser = new SimpleXMLParser({\n      lowerCaseName: true\n    });\n    const xmlDocument = parser.parseFromString(data);\n    this._metadataMap = new Map();\n    this._data = data;\n    if (xmlDocument) {\n      this._parse(xmlDocument);\n    }\n  }\n  _repair(data) {\n    return data.replace(/^[^<]+/, \"\").replaceAll(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n      const bytes = codes.replaceAll(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n        return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n      }).replaceAll(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n        switch (name) {\n          case \"amp\":\n            return \"&\";\n          case \"apos\":\n            return \"'\";\n          case \"gt\":\n            return \">\";\n          case \"lt\":\n            return \"<\";\n          case \"quot\":\n            return '\"';\n        }\n        throw new Error(`_repair: ${name} isn't defined.`);\n      });\n      const charBuf = [\">\"];\n      for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n        const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n        if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n          charBuf.push(String.fromCharCode(code));\n        } else {\n          charBuf.push(\"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\");\n        }\n      }\n      return charBuf.join(\"\");\n    });\n  }\n  _getSequence(entry) {\n    const name = entry.nodeName;\n    if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n      return null;\n    }\n    return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n  }\n  _parseArray(entry) {\n    if (!entry.hasChildNodes()) {\n      return;\n    }\n    const [seqNode] = entry.childNodes;\n    const sequence = this._getSequence(seqNode) || [];\n    this._metadataMap.set(entry.nodeName, sequence.map(node => node.textContent.trim()));\n  }\n  _parse(xmlDocument) {\n    let rdf = xmlDocument.documentElement;\n    if (rdf.nodeName !== \"rdf:rdf\") {\n      rdf = rdf.firstChild;\n      while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n        rdf = rdf.nextSibling;\n      }\n    }\n    if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n      return;\n    }\n    for (const desc of rdf.childNodes) {\n      if (desc.nodeName !== \"rdf:description\") {\n        continue;\n      }\n      for (const entry of desc.childNodes) {\n        const name = entry.nodeName;\n        switch (name) {\n          case \"#text\":\n            continue;\n          case \"dc:creator\":\n          case \"dc:subject\":\n            this._parseArray(entry);\n            continue;\n        }\n        this._metadataMap.set(name, entry.textContent.trim());\n      }\n    }\n  }\n  get serializable() {\n    return {\n      parsedData: this._metadataMap,\n      rawData: this._data\n    };\n  }\n}\n\n;// ./src/core/struct_tree.js\n\n\n\n\n\n\n\n\n\n\nconst MAX_DEPTH = 40;\nconst StructElementType = {\n  PAGE_CONTENT: 1,\n  STREAM_CONTENT: 2,\n  OBJECT: 3,\n  ANNOTATION: 4,\n  ELEMENT: 5\n};\nclass StructTreeRoot {\n  kidRefToPosition = undefined;\n  parentTree = null;\n  roleMap = new Map();\n  structParentIds = null;\n  constructor(xref, rootDict, rootRef) {\n    this.xref = xref;\n    this.dict = rootDict;\n    this.ref = rootRef instanceof Ref ? rootRef : null;\n    const roleMap = rootDict.get(\"RoleMap\");\n    if (roleMap instanceof Dict) {\n      for (const [key, value] of roleMap) {\n        if (value instanceof Name) {\n          this.roleMap.set(key, value.name);\n        }\n      }\n    }\n    const parentTree = rootDict.getRaw(\"ParentTree\");\n    if (parentTree) {\n      this.parentTree = new NumberTree(parentTree, xref);\n    }\n  }\n  getKidPosition(kidRef) {\n    if (this.kidRefToPosition === undefined) {\n      const obj = this.dict.get(\"K\");\n      if (Array.isArray(obj)) {\n        const map = this.kidRefToPosition = new Map();\n        for (let i = 0, ii = obj.length; i < ii; i++) {\n          const ref = obj[i];\n          if (ref) {\n            map.set(ref.toString(), i);\n          }\n        }\n      } else if (obj instanceof Dict) {\n        this.kidRefToPosition = new Map([[obj.objId, 0]]);\n      } else if (!obj) {\n        this.kidRefToPosition = new Map();\n      } else {\n        this.kidRefToPosition = null;\n      }\n    }\n    return this.kidRefToPosition ? this.kidRefToPosition.get(kidRef) ?? NaN : -1;\n  }\n  #addIdToPage(pageRef, id, type) {\n    if (!(pageRef instanceof Ref) || id < 0) {\n      return;\n    }\n    this.structParentIds ||= new RefSetCache();\n    let ids = this.structParentIds.get(pageRef);\n    if (!ids) {\n      ids = [];\n      this.structParentIds.put(pageRef, ids);\n    }\n    ids.push([id, type]);\n  }\n  addAnnotationIdToPage(pageRef, id) {\n    this.#addIdToPage(pageRef, id, StructElementType.ANNOTATION);\n  }\n  static async canCreateStructureTree({\n    catalogRef,\n    pdfManager,\n    newAnnotationsByPage\n  }) {\n    if (!(catalogRef instanceof Ref)) {\n      warn(\"Cannot save the struct tree: no catalog reference.\");\n      return false;\n    }\n    let nextKey = 0;\n    let hasNothingToUpdate = true;\n    for (const [pageIndex, elements] of newAnnotationsByPage) {\n      const {\n        ref: pageRef\n      } = await pdfManager.getPage(pageIndex);\n      if (!(pageRef instanceof Ref)) {\n        warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`);\n        hasNothingToUpdate = true;\n        break;\n      }\n      for (const element of elements) {\n        if (element.accessibilityData?.type) {\n          element.parentTreeId = nextKey++;\n          hasNothingToUpdate = false;\n        }\n      }\n    }\n    if (hasNothingToUpdate) {\n      for (const elements of newAnnotationsByPage.values()) {\n        for (const element of elements) {\n          delete element.parentTreeId;\n        }\n      }\n      return false;\n    }\n    return true;\n  }\n  static async createStructureTree({\n    newAnnotationsByPage,\n    xref,\n    catalogRef,\n    pdfManager,\n    changes\n  }) {\n    const root = await pdfManager.ensureCatalog(\"cloneDict\");\n    const cache = new RefSetCache();\n    cache.put(catalogRef, root);\n    const structTreeRootRef = xref.getNewTemporaryRef();\n    root.set(\"StructTreeRoot\", structTreeRootRef);\n    const structTreeRoot = new Dict(xref);\n    structTreeRoot.set(\"Type\", Name.get(\"StructTreeRoot\"));\n    const parentTreeRef = xref.getNewTemporaryRef();\n    structTreeRoot.set(\"ParentTree\", parentTreeRef);\n    const kids = [];\n    structTreeRoot.set(\"K\", kids);\n    cache.put(structTreeRootRef, structTreeRoot);\n    const parentTree = new Dict(xref);\n    const nums = [];\n    parentTree.set(\"Nums\", nums);\n    const nextKey = await this.#writeKids({\n      newAnnotationsByPage,\n      structTreeRootRef,\n      structTreeRoot: null,\n      kids,\n      nums,\n      xref,\n      pdfManager,\n      changes,\n      cache\n    });\n    structTreeRoot.set(\"ParentTreeNextKey\", nextKey);\n    cache.put(parentTreeRef, parentTree);\n    for (const [ref, obj] of cache.items()) {\n      changes.put(ref, {\n        data: obj\n      });\n    }\n  }\n  async canUpdateStructTree({\n    pdfManager,\n    newAnnotationsByPage\n  }) {\n    if (!this.ref) {\n      warn(\"Cannot update the struct tree: no root reference.\");\n      return false;\n    }\n    let nextKey = this.dict.get(\"ParentTreeNextKey\");\n    if (!Number.isInteger(nextKey) || nextKey < 0) {\n      warn(\"Cannot update the struct tree: invalid next key.\");\n      return false;\n    }\n    const parentTree = this.dict.get(\"ParentTree\");\n    if (!(parentTree instanceof Dict)) {\n      warn(\"Cannot update the struct tree: ParentTree isn't a dict.\");\n      return false;\n    }\n    const nums = parentTree.get(\"Nums\");\n    if (!Array.isArray(nums)) {\n      warn(\"Cannot update the struct tree: nums isn't an array.\");\n      return false;\n    }\n    const numberTree = new NumberTree(parentTree, this.xref);\n    for (const pageIndex of newAnnotationsByPage.keys()) {\n      const {\n        pageDict\n      } = await pdfManager.getPage(pageIndex);\n      if (!pageDict.has(\"StructParents\")) {\n        continue;\n      }\n      const id = pageDict.get(\"StructParents\");\n      if (!Number.isInteger(id) || !Array.isArray(numberTree.get(id))) {\n        warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`);\n        return false;\n      }\n    }\n    let hasNothingToUpdate = true;\n    for (const [pageIndex, elements] of newAnnotationsByPage) {\n      const {\n        pageDict\n      } = await pdfManager.getPage(pageIndex);\n      StructTreeRoot.#collectParents({\n        elements,\n        xref: this.xref,\n        pageDict,\n        numberTree\n      });\n      for (const element of elements) {\n        if (element.accessibilityData?.type) {\n          if (!(element.accessibilityData.structParent >= 0)) {\n            element.parentTreeId = nextKey++;\n          }\n          hasNothingToUpdate = false;\n        }\n      }\n    }\n    if (hasNothingToUpdate) {\n      for (const elements of newAnnotationsByPage.values()) {\n        for (const element of elements) {\n          delete element.parentTreeId;\n          delete element.structTreeParent;\n        }\n      }\n      return false;\n    }\n    return true;\n  }\n  async updateStructureTree({\n    newAnnotationsByPage,\n    pdfManager,\n    changes\n  }) {\n    const {\n      ref: structTreeRootRef,\n      xref\n    } = this;\n    const structTreeRoot = this.dict.clone();\n    const cache = new RefSetCache();\n    cache.put(structTreeRootRef, structTreeRoot);\n    let parentTreeRef = structTreeRoot.getRaw(\"ParentTree\");\n    let parentTree;\n    if (parentTreeRef instanceof Ref) {\n      parentTree = xref.fetch(parentTreeRef);\n    } else {\n      parentTree = parentTreeRef;\n      parentTreeRef = xref.getNewTemporaryRef();\n      structTreeRoot.set(\"ParentTree\", parentTreeRef);\n    }\n    parentTree = parentTree.clone();\n    cache.put(parentTreeRef, parentTree);\n    let nums = parentTree.getRaw(\"Nums\");\n    let numsRef = null;\n    if (nums instanceof Ref) {\n      numsRef = nums;\n      nums = xref.fetch(numsRef);\n    }\n    nums = nums.slice();\n    if (!numsRef) {\n      parentTree.set(\"Nums\", nums);\n    }\n    const newNextKey = await StructTreeRoot.#writeKids({\n      newAnnotationsByPage,\n      structTreeRootRef,\n      structTreeRoot: this,\n      kids: null,\n      nums,\n      xref,\n      pdfManager,\n      changes,\n      cache\n    });\n    if (newNextKey === -1) {\n      return;\n    }\n    structTreeRoot.set(\"ParentTreeNextKey\", newNextKey);\n    if (numsRef) {\n      cache.put(numsRef, nums);\n    }\n    for (const [ref, obj] of cache.items()) {\n      changes.put(ref, {\n        data: obj\n      });\n    }\n  }\n  static async #writeKids({\n    newAnnotationsByPage,\n    structTreeRootRef,\n    structTreeRoot,\n    kids,\n    nums,\n    xref,\n    pdfManager,\n    changes,\n    cache\n  }) {\n    const objr = Name.get(\"OBJR\");\n    let nextKey = -1;\n    let structTreePageObjs;\n    for (const [pageIndex, elements] of newAnnotationsByPage) {\n      const page = await pdfManager.getPage(pageIndex);\n      const {\n        ref: pageRef\n      } = page;\n      const isPageRef = pageRef instanceof Ref;\n      for (const {\n        accessibilityData,\n        ref,\n        parentTreeId,\n        structTreeParent\n      } of elements) {\n        if (!accessibilityData?.type) {\n          continue;\n        }\n        const {\n          structParent\n        } = accessibilityData;\n        if (structTreeRoot && Number.isInteger(structParent) && structParent >= 0) {\n          let objs = (structTreePageObjs ||= new Map()).get(pageIndex);\n          if (objs === undefined) {\n            const structTreePage = new StructTreePage(structTreeRoot, page.pageDict);\n            objs = structTreePage.collectObjects(pageRef);\n            structTreePageObjs.set(pageIndex, objs);\n          }\n          const objRef = objs?.get(structParent);\n          if (objRef) {\n            const tagDict = xref.fetch(objRef).clone();\n            StructTreeRoot.#writeProperties(tagDict, accessibilityData);\n            changes.put(objRef, {\n              data: tagDict\n            });\n            continue;\n          }\n        }\n        nextKey = Math.max(nextKey, parentTreeId);\n        const tagRef = xref.getNewTemporaryRef();\n        const tagDict = new Dict(xref);\n        StructTreeRoot.#writeProperties(tagDict, accessibilityData);\n        await this.#updateParentTag({\n          structTreeParent,\n          tagDict,\n          newTagRef: tagRef,\n          structTreeRootRef,\n          fallbackKids: kids,\n          xref,\n          cache\n        });\n        const objDict = new Dict(xref);\n        tagDict.set(\"K\", objDict);\n        objDict.set(\"Type\", objr);\n        if (isPageRef) {\n          objDict.set(\"Pg\", pageRef);\n        }\n        objDict.set(\"Obj\", ref);\n        cache.put(tagRef, tagDict);\n        nums.push(parentTreeId, tagRef);\n      }\n    }\n    return nextKey + 1;\n  }\n  static #writeProperties(tagDict, {\n    type,\n    title,\n    lang,\n    alt,\n    expanded,\n    actualText\n  }) {\n    tagDict.set(\"S\", Name.get(type));\n    if (title) {\n      tagDict.set(\"T\", stringToAsciiOrUTF16BE(title));\n    }\n    if (lang) {\n      tagDict.set(\"Lang\", stringToAsciiOrUTF16BE(lang));\n    }\n    if (alt) {\n      tagDict.set(\"Alt\", stringToAsciiOrUTF16BE(alt));\n    }\n    if (expanded) {\n      tagDict.set(\"E\", stringToAsciiOrUTF16BE(expanded));\n    }\n    if (actualText) {\n      tagDict.set(\"ActualText\", stringToAsciiOrUTF16BE(actualText));\n    }\n  }\n  static #collectParents({\n    elements,\n    xref,\n    pageDict,\n    numberTree\n  }) {\n    const idToElements = new Map();\n    for (const element of elements) {\n      if (element.structTreeParentId) {\n        const id = parseInt(element.structTreeParentId.split(\"_mc\")[1], 10);\n        idToElements.getOrInsertComputed(id, makeArr).push(element);\n      }\n    }\n    const id = pageDict.get(\"StructParents\");\n    if (!Number.isInteger(id)) {\n      return;\n    }\n    const parentArray = numberTree.get(id);\n    const updateElement = (kid, pageKid, kidRef) => {\n      const elems = idToElements.get(kid);\n      if (elems) {\n        const parentRef = pageKid.getRaw(\"P\");\n        const parentDict = xref.fetchIfRef(parentRef);\n        if (parentRef instanceof Ref && parentDict instanceof Dict) {\n          const params = {\n            ref: kidRef,\n            dict: pageKid\n          };\n          for (const element of elems) {\n            element.structTreeParent = params;\n          }\n        }\n        return true;\n      }\n      return false;\n    };\n    for (const kidRef of parentArray) {\n      if (!(kidRef instanceof Ref)) {\n        continue;\n      }\n      const pageKid = xref.fetch(kidRef);\n      const k = pageKid.get(\"K\");\n      if (Number.isInteger(k)) {\n        updateElement(k, pageKid, kidRef);\n        continue;\n      }\n      if (!Array.isArray(k)) {\n        continue;\n      }\n      for (let kid of k) {\n        kid = xref.fetchIfRef(kid);\n        if (Number.isInteger(kid) && updateElement(kid, pageKid, kidRef)) {\n          break;\n        }\n        if (!(kid instanceof Dict)) {\n          continue;\n        }\n        if (!isName(kid.get(\"Type\"), \"MCR\")) {\n          break;\n        }\n        const mcid = kid.get(\"MCID\");\n        if (Number.isInteger(mcid) && updateElement(mcid, pageKid, kidRef)) {\n          break;\n        }\n      }\n    }\n  }\n  static async #updateParentTag({\n    structTreeParent,\n    tagDict,\n    newTagRef,\n    structTreeRootRef,\n    fallbackKids,\n    xref,\n    cache\n  }) {\n    let ref = null;\n    let parentRef;\n    if (structTreeParent) {\n      ({\n        ref\n      } = structTreeParent);\n      parentRef = structTreeParent.dict.getRaw(\"P\") || structTreeRootRef;\n    } else {\n      parentRef = structTreeRootRef;\n    }\n    tagDict.set(\"P\", parentRef);\n    const parentDict = xref.fetchIfRef(parentRef);\n    if (!parentDict) {\n      fallbackKids.push(newTagRef);\n      return;\n    }\n    let cachedParentDict = cache.get(parentRef);\n    if (!cachedParentDict) {\n      cachedParentDict = parentDict.clone();\n      cache.put(parentRef, cachedParentDict);\n    }\n    const parentKidsRaw = cachedParentDict.getRaw(\"K\");\n    let cachedParentKids = parentKidsRaw instanceof Ref ? cache.get(parentKidsRaw) : null;\n    if (!cachedParentKids) {\n      cachedParentKids = xref.fetchIfRef(parentKidsRaw);\n      cachedParentKids = Array.isArray(cachedParentKids) ? cachedParentKids.slice() : [parentKidsRaw];\n      const parentKidsRef = xref.getNewTemporaryRef();\n      cachedParentDict.set(\"K\", parentKidsRef);\n      cache.put(parentKidsRef, cachedParentKids);\n    }\n    const index = cachedParentKids.indexOf(ref);\n    cachedParentKids.splice(index >= 0 ? index + 1 : cachedParentKids.length, 0, newTagRef);\n  }\n}\nclass StructElementNode {\n  constructor(tree, dict) {\n    this.tree = tree;\n    this.xref = tree.xref;\n    this.dict = dict;\n    this.kids = [];\n    this.parseKids();\n  }\n  get role() {\n    const nameObj = this.dict.get(\"S\");\n    const name = nameObj instanceof Name ? nameObj.name : \"\";\n    const {\n      root\n    } = this.tree;\n    return root.roleMap.get(name) ?? name;\n  }\n  get mathML() {\n    let AFs = this.dict.get(\"AF\") || [];\n    if (!Array.isArray(AFs)) {\n      AFs = [AFs];\n    }\n    for (let af of AFs) {\n      af = this.xref.fetchIfRef(af);\n      if (!isDict(af, \"Filespec\") || !isName(af.get(\"AFRelationship\"), \"Supplement\")) {\n        continue;\n      }\n      const fileStream = FileSpec.pickPlatformItem(af.get(\"EF\"));\n      if (!(fileStream instanceof BaseStream) || !isDict(fileStream.dict, \"EmbeddedFile\") || !isName(fileStream.dict.get(\"Subtype\"), \"application/mathml+xml\")) {\n        continue;\n      }\n      return stringToUTF8String(fileStream.getString());\n    }\n    const A = this.dict.get(\"A\");\n    if (A instanceof Dict) {\n      const O = A.get(\"O\");\n      if (isName(O, \"MSFT_Office\")) {\n        const mathml = A.get(\"MSFT_MathML\");\n        return mathml ? stringToPDFString(mathml) : null;\n      }\n    }\n    return null;\n  }\n  parseKids() {\n    let pageObjId = null;\n    const objRef = this.dict.getRaw(\"Pg\");\n    if (objRef instanceof Ref) {\n      pageObjId = objRef.toString();\n    }\n    const kids = this.dict.get(\"K\");\n    if (Array.isArray(kids)) {\n      for (const kid of kids) {\n        const element = this.parseKid(pageObjId, this.xref.fetchIfRef(kid));\n        if (element) {\n          this.kids.push(element);\n        }\n      }\n    } else {\n      const element = this.parseKid(pageObjId, kids);\n      if (element) {\n        this.kids.push(element);\n      }\n    }\n  }\n  parseKid(pageObjId, kid) {\n    if (Number.isInteger(kid)) {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n      return new StructElement({\n        type: StructElementType.PAGE_CONTENT,\n        mcid: kid,\n        pageObjId\n      });\n    }\n    if (!(kid instanceof Dict)) {\n      return null;\n    }\n    const pageRef = kid.getRaw(\"Pg\");\n    if (pageRef instanceof Ref) {\n      pageObjId = pageRef.toString();\n    }\n    const type = kid.get(\"Type\") instanceof Name ? kid.get(\"Type\").name : null;\n    if (type === \"MCR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n      const kidRef = kid.getRaw(\"Stm\");\n      return new StructElement({\n        type: StructElementType.STREAM_CONTENT,\n        refObjId: kidRef instanceof Ref ? kidRef.toString() : null,\n        pageObjId,\n        mcid: kid.get(\"MCID\")\n      });\n    }\n    if (type === \"OBJR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n      const kidRef = kid.getRaw(\"Obj\");\n      return new StructElement({\n        type: StructElementType.OBJECT,\n        refObjId: kidRef instanceof Ref ? kidRef.toString() : null,\n        pageObjId\n      });\n    }\n    return new StructElement({\n      type: StructElementType.ELEMENT,\n      dict: kid\n    });\n  }\n}\nclass StructElement {\n  constructor({\n    type,\n    dict = null,\n    mcid = null,\n    pageObjId = null,\n    refObjId = null\n  }) {\n    this.type = type;\n    this.dict = dict;\n    this.mcid = mcid;\n    this.pageObjId = pageObjId;\n    this.refObjId = refObjId;\n    this.parentNode = null;\n  }\n}\nclass StructTreePage {\n  constructor(structTreeRoot, pageDict) {\n    this.root = structTreeRoot;\n    this.xref = structTreeRoot?.xref ?? null;\n    this.rootDict = structTreeRoot?.dict ?? null;\n    this.pageDict = pageDict;\n    this.nodes = [];\n  }\n  collectObjects(pageRef) {\n    if (!this.root || !this.rootDict || !(pageRef instanceof Ref)) {\n      return null;\n    }\n    const parentTree = this.rootDict.get(\"ParentTree\");\n    if (!parentTree) {\n      return null;\n    }\n    const ids = this.root.structParentIds?.get(pageRef);\n    if (!ids) {\n      return null;\n    }\n    const map = new Map();\n    const numberTree = new NumberTree(parentTree, this.xref);\n    for (const [elemId] of ids) {\n      const obj = numberTree.getRaw(elemId);\n      if (obj instanceof Ref) {\n        map.set(elemId, obj);\n      }\n    }\n    return map;\n  }\n  parse(pageRef) {\n    if (!this.root || !this.rootDict || !(pageRef instanceof Ref)) {\n      return;\n    }\n    const {\n      parentTree\n    } = this.root;\n    if (!parentTree) {\n      return;\n    }\n    const id = this.pageDict.get(\"StructParents\");\n    const ids = this.root.structParentIds?.get(pageRef);\n    if (!Number.isInteger(id) && !ids) {\n      return;\n    }\n    const map = new Map();\n    if (Number.isInteger(id)) {\n      const parentArray = parentTree.get(id);\n      if (Array.isArray(parentArray)) {\n        for (const ref of parentArray) {\n          if (ref instanceof Ref) {\n            this.addNode(this.xref.fetch(ref), map);\n          }\n        }\n      }\n    }\n    if (!ids) {\n      return;\n    }\n    for (const [elemId, type] of ids) {\n      const obj = parentTree.get(elemId);\n      if (obj) {\n        const elem = this.addNode(this.xref.fetchIfRef(obj), map);\n        if (elem?.kids?.length === 1 && elem.kids[0].type === StructElementType.OBJECT) {\n          elem.kids[0].type = type;\n        }\n      }\n    }\n  }\n  addNode(dict, map, level = 0) {\n    if (level > MAX_DEPTH) {\n      warn(\"StructTree MAX_DEPTH reached.\");\n      return null;\n    }\n    if (!(dict instanceof Dict)) {\n      return null;\n    }\n    if (map.has(dict)) {\n      return map.get(dict);\n    }\n    const element = new StructElementNode(this, dict);\n    map.set(dict, element);\n    switch (element.role) {\n      case \"L\":\n      case \"LBody\":\n      case \"LI\":\n      case \"Table\":\n      case \"THead\":\n      case \"TBody\":\n      case \"TFoot\":\n      case \"TR\":\n        {\n          for (const kid of element.kids) {\n            if (kid.type === StructElementType.ELEMENT) {\n              this.addNode(kid.dict, map, level - 1);\n            }\n          }\n        }\n    }\n    const parent = dict.get(\"P\");\n    if (!(parent instanceof Dict) || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n      if (!this.addTopLevelNode(dict, element)) {\n        map.delete(dict);\n      }\n      return element;\n    }\n    const parentNode = this.addNode(parent, map, level + 1);\n    if (!parentNode) {\n      return element;\n    }\n    let save = false;\n    for (const kid of parentNode.kids) {\n      if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n        kid.parentNode = element;\n        save = true;\n      }\n    }\n    if (!save) {\n      map.delete(dict);\n    }\n    return element;\n  }\n  addTopLevelNode(dict, element) {\n    const index = this.root.getKidPosition(dict.objId);\n    if (isNaN(index)) {\n      return false;\n    }\n    if (index !== -1) {\n      this.nodes[index] = element;\n    }\n    return true;\n  }\n  get serializable() {\n    function nodeToSerializable(node, parent, level = 0) {\n      if (level > MAX_DEPTH) {\n        warn(\"StructTree too deep to be fully serialized.\");\n        return;\n      }\n      const obj = Object.create(null);\n      obj.role = node.role;\n      obj.children = [];\n      parent.children.push(obj);\n      let alt = node.dict.get(\"Alt\");\n      if (typeof alt !== \"string\") {\n        alt = node.dict.get(\"ActualText\");\n      }\n      if (typeof alt === \"string\") {\n        obj.alt = stringToPDFString(alt);\n      }\n      if (obj.role === \"Formula\") {\n        try {\n          const {\n            mathML\n          } = node;\n          if (mathML) {\n            obj.mathML = mathML;\n          }\n        } catch (ex) {\n          if (ex instanceof MissingDataException) {\n            throw ex;\n          }\n          warn(`Ignoring mathML: \"${ex}\".`);\n        }\n      }\n      const a = node.dict.get(\"A\");\n      if (a instanceof Dict) {\n        const bbox = lookupNormalRect(a.getArray(\"BBox\"), null);\n        if (bbox) {\n          obj.bbox = bbox;\n        } else {\n          const width = a.get(\"Width\");\n          const height = a.get(\"Height\");\n          if (typeof width === \"number\" && width > 0 && typeof height === \"number\" && height > 0) {\n            obj.bbox = [0, 0, width, height];\n          }\n        }\n      }\n      const lang = node.dict.get(\"Lang\");\n      if (typeof lang === \"string\") {\n        obj.lang = stringToPDFString(lang);\n      }\n      for (const kid of node.kids) {\n        const kidElement = kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n        if (kidElement) {\n          nodeToSerializable(kidElement, obj, level + 1);\n          continue;\n        } else if (kid.type === StructElementType.PAGE_CONTENT || kid.type === StructElementType.STREAM_CONTENT) {\n          obj.children.push({\n            type: \"content\",\n            id: `p${kid.pageObjId}_mc${kid.mcid}`\n          });\n        } else if (kid.type === StructElementType.OBJECT) {\n          obj.children.push({\n            type: \"object\",\n            id: kid.refObjId\n          });\n        } else if (kid.type === StructElementType.ANNOTATION) {\n          obj.children.push({\n            type: \"annotation\",\n            id: `${AnnotationPrefix}${kid.refObjId}`\n          });\n        }\n      }\n    }\n    const root = Object.create(null);\n    root.children = [];\n    root.role = \"Root\";\n    for (const child of this.nodes) {\n      if (!child) {\n        continue;\n      }\n      nodeToSerializable(child, root);\n    }\n    return root;\n  }\n}\n\n;// ./src/core/catalog.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\nconst isRef = v => v instanceof Ref;\nconst isValidExplicitDest = _isValidExplicitDest.bind(null, isRef, isName);\nfunction fetchDest(dest) {\n  if (dest instanceof Dict) {\n    dest = dest.get(\"D\");\n  }\n  return isValidExplicitDest(dest) ? dest : null;\n}\nfunction fetchRemoteDest(action) {\n  let dest = action.get(\"D\");\n  if (dest) {\n    if (dest instanceof Name) {\n      dest = dest.name;\n    }\n    if (typeof dest === \"string\") {\n      return stringToPDFString(dest, true);\n    } else if (isValidExplicitDest(dest)) {\n      return JSON.stringify(dest);\n    }\n  }\n  return null;\n}\nclass Catalog {\n  #actualNumPages = null;\n  #annotationAttachmentIdByRef = new RefSetCache();\n  #annotationAttachmentRefById = new Map();\n  #catDict = null;\n  builtInCMapCache = new Map();\n  fontCache = new RefSetCache();\n  globalColorSpaceCache = new GlobalColorSpaceCache();\n  globalImageCache = new GlobalImageCache();\n  nonBlendModesSet = new RefSet();\n  pageDictCache = new RefSetCache();\n  pageIndexCache = new RefSetCache();\n  pageKidsCountCache = new RefSetCache();\n  standardFontDataCache = new Map();\n  systemFontCache = new Map();\n  constructor(pdfManager, xref) {\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.#catDict = xref.getCatalogObj();\n    if (!(this.#catDict instanceof Dict)) {\n      throw new FormatError(\"Catalog object is not a dictionary.\");\n    }\n    this.toplevelPagesDict;\n  }\n  cloneDict() {\n    return this.#catDict.clone();\n  }\n  getAttachmentIdForAnnotation(ref) {\n    let id = this.#annotationAttachmentIdByRef.get(ref);\n    if (id) {\n      return id;\n    }\n    const baseId = `attachmentRef:${ref.toString()}`;\n    id = baseId;\n    let i = 1;\n    while (this.#annotationAttachmentRefById.has(id) || this.attachments?.has(id)) {\n      id = `${baseId}-${i++}`;\n    }\n    this.#annotationAttachmentIdByRef.put(ref, id);\n    this.#annotationAttachmentRefById.set(id, ref);\n    return id;\n  }\n  get version() {\n    const version = this.#catDict.get(\"Version\");\n    if (version instanceof Name) {\n      if (PDF_VERSION_REGEXP.test(version.name)) {\n        return shadow(this, \"version\", version.name);\n      }\n      warn(`Invalid PDF catalog version: ${version.name}`);\n    }\n    return shadow(this, \"version\", null);\n  }\n  get lang() {\n    const lang = this.#catDict.get(\"Lang\");\n    return shadow(this, \"lang\", lang && typeof lang === \"string\" ? stringToPDFString(lang) : null);\n  }\n  get needsRendering() {\n    const needsRendering = this.#catDict.get(\"NeedsRendering\");\n    return shadow(this, \"needsRendering\", typeof needsRendering === \"boolean\" ? needsRendering : false);\n  }\n  get collection() {\n    let collection = null;\n    try {\n      const obj = this.#catDict.get(\"Collection\");\n      if (obj instanceof Dict && obj.size > 0) {\n        collection = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n    }\n    return shadow(this, \"collection\", collection);\n  }\n  get acroForm() {\n    let acroForm = null;\n    try {\n      const obj = this.#catDict.get(\"AcroForm\");\n      if (obj instanceof Dict && obj.size > 0) {\n        acroForm = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n    }\n    return shadow(this, \"acroForm\", acroForm);\n  }\n  get acroFormRef() {\n    const value = this.#catDict.getRaw(\"AcroForm\");\n    return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n  }\n  get metadata() {\n    const streamRef = this.#catDict.getRaw(\"Metadata\");\n    if (!(streamRef instanceof Ref)) {\n      return shadow(this, \"metadata\", null);\n    }\n    let metadata = null;\n    try {\n      const stream = this.xref.fetch(streamRef, !this.xref.encrypt?.encryptMetadata);\n      if (stream instanceof BaseStream && isDict(stream.dict, \"Metadata\") && isName(stream.dict.get(\"Subtype\"), \"XML\")) {\n        const data = stringToUTF8String(stream.getString());\n        if (data) {\n          metadata = new MetadataParser(data).serializable;\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(`Skipping invalid Metadata: \"${ex}\".`);\n    }\n    return shadow(this, \"metadata\", metadata);\n  }\n  get markInfo() {\n    let markInfo = null;\n    try {\n      markInfo = this.#readMarkInfo();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read mark info.\");\n    }\n    return shadow(this, \"markInfo\", markInfo);\n  }\n  #readMarkInfo() {\n    const obj = this.#catDict.get(\"MarkInfo\");\n    if (!(obj instanceof Dict)) {\n      return null;\n    }\n    const markInfo = {\n      Marked: false,\n      UserProperties: false,\n      Suspects: false\n    };\n    for (const key in markInfo) {\n      const value = obj.get(key);\n      if (typeof value === \"boolean\") {\n        markInfo[key] = value;\n      }\n    }\n    return markInfo;\n  }\n  get hasStructTree() {\n    return this.#catDict.has(\"StructTreeRoot\");\n  }\n  get structTreeRoot() {\n    let structTree = null;\n    try {\n      structTree = this.#readStructTreeRoot();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable read to structTreeRoot info.\");\n    }\n    return shadow(this, \"structTreeRoot\", structTree);\n  }\n  #readStructTreeRoot() {\n    const rawObj = this.#catDict.getRaw(\"StructTreeRoot\"),\n      obj = this.xref.fetchIfRef(rawObj);\n    return obj instanceof Dict ? new StructTreeRoot(this.xref, obj, rawObj) : null;\n  }\n  get toplevelPagesDict() {\n    const pagesObj = this.#catDict.get(\"Pages\");\n    if (!(pagesObj instanceof Dict)) {\n      throw new FormatError(\"Invalid top-level pages dictionary.\");\n    }\n    return shadow(this, \"toplevelPagesDict\", pagesObj);\n  }\n  get documentOutline() {\n    let obj = null;\n    try {\n      obj = this.#readDocumentOutline();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read document outline.\");\n    }\n    return shadow(this, \"documentOutline\", obj);\n  }\n  #readDocumentOutline(options = {}) {\n    let obj = this.#catDict.get(\"Outlines\");\n    if (!(obj instanceof Dict)) {\n      return null;\n    }\n    obj = obj.getRaw(\"First\");\n    if (!(obj instanceof Ref)) {\n      return null;\n    }\n    const root = {\n      items: []\n    };\n    const queue = [{\n      obj,\n      parent: root\n    }];\n    const processed = new RefSet();\n    processed.put(obj);\n    const xref = this.xref,\n      blackColor = new Uint8ClampedArray(3);\n    while (queue.length > 0) {\n      const i = queue.shift();\n      const outlineDict = xref.fetchIfRef(i.obj);\n      if (outlineDict === null) {\n        continue;\n      }\n      if (!outlineDict.has(\"Title\")) {\n        warn(\"Invalid outline item encountered.\");\n      }\n      const data = {\n        url: null,\n        dest: null,\n        action: null\n      };\n      Catalog.parseDestDictionary({\n        destDict: outlineDict,\n        resultObj: data,\n        docBaseUrl: this.baseUrl,\n        docAttachments: this.attachments\n      });\n      const title = outlineDict.get(\"Title\");\n      const flags = outlineDict.get(\"F\") || 0;\n      const color = outlineDict.getArray(\"C\");\n      const count = outlineDict.get(\"Count\");\n      let rgbColor = blackColor;\n      if (isNumberArray(color, 3) && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n        rgbColor = ColorSpaceUtils.rgb.getRgb(color, 0);\n      }\n      const outlineItem = {\n        action: data.action,\n        attachmentId: data.attachmentId,\n        attachment: data.attachment,\n        dest: data.dest,\n        url: data.url,\n        unsafeUrl: data.unsafeUrl,\n        newWindow: data.newWindow,\n        setOCGState: data.setOCGState,\n        title: typeof title === \"string\" ? stringToPDFString(title) : \"\",\n        color: rgbColor,\n        count: Number.isInteger(count) ? count : undefined,\n        bold: !!(flags & 2),\n        italic: !!(flags & 1),\n        items: []\n      };\n      if (options.keepRawDict) {\n        outlineItem.rawDict = outlineDict;\n      }\n      i.parent.items.push(outlineItem);\n      obj = outlineDict.getRaw(\"First\");\n      if (obj instanceof Ref && !processed.has(obj)) {\n        queue.push({\n          obj,\n          parent: outlineItem\n        });\n        processed.put(obj);\n      }\n      obj = outlineDict.getRaw(\"Next\");\n      if (obj instanceof Ref && !processed.has(obj)) {\n        queue.push({\n          obj,\n          parent: i.parent\n        });\n        processed.put(obj);\n      }\n    }\n    return root.items.length > 0 ? root.items : null;\n  }\n  get documentOutlineForEditor() {\n    let obj = null;\n    try {\n      obj = this.#readDocumentOutline({\n        keepRawDict: true\n      });\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read document outline.\");\n    }\n    return shadow(this, \"documentOutlineForEditor\", obj);\n  }\n  get permissions() {\n    let permissions = null;\n    try {\n      permissions = this.#readPermissions();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read permissions.\");\n    }\n    return shadow(this, \"permissions\", permissions);\n  }\n  #readPermissions() {\n    const encrypt = this.xref.trailer.get(\"Encrypt\");\n    if (!(encrypt instanceof Dict)) {\n      return null;\n    }\n    let flags = encrypt.get(\"P\");\n    if (typeof flags !== \"number\") {\n      return null;\n    }\n    flags += 2 ** 32;\n    const permissions = [];\n    for (const key in PermissionFlag) {\n      const value = PermissionFlag[key];\n      if (flags & value) {\n        permissions.push(value);\n      }\n    }\n    return permissions;\n  }\n  get optionalContentConfig() {\n    let config = null;\n    try {\n      const properties = this.#catDict.get(\"OCProperties\");\n      if (!properties) {\n        return shadow(this, \"optionalContentConfig\", null);\n      }\n      const defaultConfig = properties.get(\"D\");\n      if (!defaultConfig) {\n        return shadow(this, \"optionalContentConfig\", null);\n      }\n      const groupsData = properties.get(\"OCGs\");\n      if (!Array.isArray(groupsData)) {\n        return shadow(this, \"optionalContentConfig\", null);\n      }\n      const groupRefCache = new RefSetCache();\n      for (const groupRef of groupsData) {\n        if (!(groupRef instanceof Ref) || groupRefCache.has(groupRef)) {\n          continue;\n        }\n        groupRefCache.put(groupRef, this.#readOptionalContentGroup(groupRef));\n      }\n      config = this.#readOptionalContentConfig(defaultConfig, groupRefCache);\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Unable to read optional content config: ${ex}`);\n    }\n    return shadow(this, \"optionalContentConfig\", config);\n  }\n  #readOptionalContentGroup(groupRef) {\n    const group = this.xref.fetch(groupRef);\n    const obj = {\n      id: groupRef.toString(),\n      name: null,\n      intent: null,\n      usage: {\n        print: null,\n        view: null\n      },\n      rbGroups: []\n    };\n    const name = group.get(\"Name\");\n    if (typeof name === \"string\") {\n      obj.name = stringToPDFString(name);\n    }\n    let intent = group.getArray(\"Intent\");\n    if (!Array.isArray(intent)) {\n      intent = [intent];\n    }\n    if (intent.every(i => i instanceof Name)) {\n      obj.intent = intent.map(i => i.name);\n    }\n    const usage = group.get(\"Usage\");\n    if (!(usage instanceof Dict)) {\n      return obj;\n    }\n    const usageObj = obj.usage;\n    const print = usage.get(\"Print\");\n    if (print instanceof Dict) {\n      const printState = print.get(\"PrintState\");\n      if (printState instanceof Name) {\n        switch (printState.name) {\n          case \"ON\":\n          case \"OFF\":\n            usageObj.print = {\n              printState: printState.name\n            };\n        }\n      }\n    }\n    const view = usage.get(\"View\");\n    if (view instanceof Dict) {\n      const viewState = view.get(\"ViewState\");\n      if (viewState instanceof Name) {\n        switch (viewState.name) {\n          case \"ON\":\n          case \"OFF\":\n            usageObj.view = {\n              viewState: viewState.name\n            };\n        }\n      }\n    }\n    return obj;\n  }\n  #readOptionalContentConfig(config, groupRefCache) {\n    function parseOnOff(refs) {\n      const onParsed = [];\n      if (Array.isArray(refs)) {\n        for (const value of refs) {\n          if (value instanceof Ref && groupRefCache.has(value)) {\n            onParsed.push(value.toString());\n          }\n        }\n      }\n      return onParsed;\n    }\n    function parseOrder(refs, nestedLevels = 0) {\n      if (!Array.isArray(refs)) {\n        return null;\n      }\n      const order = [];\n      for (const value of refs) {\n        if (value instanceof Ref && groupRefCache.has(value)) {\n          parsedOrderRefs.put(value);\n          order.push(value.toString());\n          continue;\n        }\n        const nestedOrder = parseNestedOrder(value, nestedLevels);\n        if (nestedOrder) {\n          order.push(nestedOrder);\n        }\n      }\n      if (nestedLevels > 0) {\n        return order;\n      }\n      const hiddenGroups = [];\n      for (const [groupRef] of groupRefCache.items()) {\n        if (parsedOrderRefs.has(groupRef)) {\n          continue;\n        }\n        hiddenGroups.push(groupRef.toString());\n      }\n      if (hiddenGroups.length) {\n        order.push({\n          name: null,\n          order: hiddenGroups\n        });\n      }\n      return order;\n    }\n    function parseNestedOrder(ref, nestedLevels) {\n      if (++nestedLevels > MAX_NESTED_LEVELS) {\n        warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n        return null;\n      }\n      const value = xref.fetchIfRef(ref);\n      if (!Array.isArray(value)) {\n        return null;\n      }\n      const nestedName = xref.fetchIfRef(value[0]);\n      if (typeof nestedName !== \"string\") {\n        return null;\n      }\n      const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n      if (!nestedOrder?.length) {\n        return null;\n      }\n      return {\n        name: stringToPDFString(nestedName),\n        order: nestedOrder\n      };\n    }\n    function parseRBGroups(rbGroups) {\n      if (!Array.isArray(rbGroups)) {\n        return;\n      }\n      for (const value of rbGroups) {\n        const rbGroup = xref.fetchIfRef(value);\n        if (!Array.isArray(rbGroup) || !rbGroup.length) {\n          continue;\n        }\n        const parsedRbGroup = new Set();\n        for (const ref of rbGroup) {\n          if (ref instanceof Ref && groupRefCache.has(ref) && !parsedRbGroup.has(ref.toString())) {\n            parsedRbGroup.add(ref.toString());\n            groupRefCache.get(ref).rbGroups.push(parsedRbGroup);\n          }\n        }\n      }\n    }\n    const xref = this.xref,\n      parsedOrderRefs = new RefSet(),\n      MAX_NESTED_LEVELS = 10;\n    parseRBGroups(config.get(\"RBGroups\"));\n    return {\n      name: typeof config.get(\"Name\") === \"string\" ? stringToPDFString(config.get(\"Name\")) : null,\n      creator: typeof config.get(\"Creator\") === \"string\" ? stringToPDFString(config.get(\"Creator\")) : null,\n      baseState: config.get(\"BaseState\") instanceof Name ? config.get(\"BaseState\").name : null,\n      on: parseOnOff(config.get(\"ON\")),\n      off: parseOnOff(config.get(\"OFF\")),\n      order: parseOrder(config.get(\"Order\")),\n      groups: [...groupRefCache]\n    };\n  }\n  setActualNumPages(num = null) {\n    this.#actualNumPages = num;\n  }\n  get hasActualNumPages() {\n    return this.#actualNumPages !== null;\n  }\n  get _pagesCount() {\n    const obj = this.toplevelPagesDict.get(\"Count\");\n    if (!Number.isInteger(obj)) {\n      throw new FormatError(\"Page count in top-level pages dictionary is not an integer.\");\n    }\n    return shadow(this, \"_pagesCount\", obj);\n  }\n  get numPages() {\n    return this.#actualNumPages ?? this._pagesCount;\n  }\n  get destinations() {\n    const rawDests = this.#readDests(),\n      dests = Object.create(null);\n    for (const obj of rawDests) {\n      if (obj instanceof NameTree) {\n        for (const [key, value] of obj.getAll()) {\n          const dest = fetchDest(value);\n          if (dest) {\n            dests[stringToPDFString(key, true)] = dest;\n          }\n        }\n      } else if (obj instanceof Dict) {\n        for (const [key, value] of obj) {\n          const dest = fetchDest(value);\n          if (dest) {\n            dests[stringToPDFString(key, true)] ||= dest;\n          }\n        }\n      }\n    }\n    return shadow(this, \"destinations\", dests);\n  }\n  getDestination(id) {\n    if (Object.hasOwn(this, \"destinations\")) {\n      return this.destinations[id] ?? null;\n    }\n    const rawDests = this.#readDests();\n    for (const obj of rawDests) {\n      if (obj instanceof NameTree || obj instanceof Dict) {\n        const dest = fetchDest(obj.get(id));\n        if (dest) {\n          return dest;\n        }\n      }\n    }\n    if (rawDests.length) {\n      const dest = this.destinations[id];\n      if (dest) {\n        return dest;\n      }\n    }\n    return null;\n  }\n  #readDests() {\n    const obj = this.#catDict.get(\"Names\");\n    const rawDests = [];\n    if (obj?.has(\"Dests\")) {\n      rawDests.push(new NameTree(obj.getRaw(\"Dests\"), this.xref));\n    }\n    if (this.#catDict.has(\"Dests\")) {\n      rawDests.push(this.#catDict.get(\"Dests\"));\n    }\n    return rawDests;\n  }\n  get rawPageLabels() {\n    const obj = this.#catDict.getRaw(\"PageLabels\");\n    if (!obj) {\n      return null;\n    }\n    const numberTree = new NumberTree(obj, this.xref);\n    return numberTree.getAll();\n  }\n  get pageLabels() {\n    let obj = null;\n    try {\n      obj = this.#readPageLabels();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read page labels.\");\n    }\n    return shadow(this, \"pageLabels\", obj);\n  }\n  #readPageLabels() {\n    const nums = this.rawPageLabels;\n    if (!nums) {\n      return null;\n    }\n    const pageLabels = new Array(this.numPages);\n    let style = null,\n      prefix = \"\";\n    let currentLabel = \"\",\n      currentIndex = 1;\n    for (let i = 0, ii = this.numPages; i < ii; i++) {\n      const labelDict = nums.get(i);\n      if (labelDict !== undefined) {\n        if (!(labelDict instanceof Dict)) {\n          throw new FormatError(\"PageLabel is not a dictionary.\");\n        }\n        if (labelDict.has(\"Type\") && !isName(labelDict.get(\"Type\"), \"PageLabel\")) {\n          throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n        }\n        if (labelDict.has(\"S\")) {\n          const s = labelDict.get(\"S\");\n          if (!(s instanceof Name)) {\n            throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n          }\n          style = s.name;\n        } else {\n          style = null;\n        }\n        if (labelDict.has(\"P\")) {\n          const p = labelDict.get(\"P\");\n          if (typeof p !== \"string\") {\n            throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n          }\n          prefix = stringToPDFString(p);\n        } else {\n          prefix = \"\";\n        }\n        if (labelDict.has(\"St\")) {\n          const st = labelDict.get(\"St\");\n          if (!(Number.isInteger(st) && st >= 1)) {\n            throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n          }\n          currentIndex = st;\n        } else {\n          currentIndex = 1;\n        }\n      }\n      switch (style) {\n        case \"D\":\n          currentLabel = currentIndex;\n          break;\n        case \"R\":\n        case \"r\":\n          currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n          break;\n        case \"A\":\n        case \"a\":\n          const LIMIT = 26;\n          const A_UPPER_CASE = 0x41,\n            A_LOWER_CASE = 0x61;\n          const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n          const letterIndex = currentIndex - 1;\n          const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n          currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n          break;\n        default:\n          if (style) {\n            throw new FormatError(`Invalid style \"${style}\" in PageLabel dictionary.`);\n          }\n          currentLabel = \"\";\n      }\n      pageLabels[i] = prefix + currentLabel;\n      currentIndex++;\n    }\n    return pageLabels;\n  }\n  get pageLayout() {\n    const obj = this.#catDict.get(\"PageLayout\");\n    let pageLayout = \"\";\n    if (obj instanceof Name) {\n      switch (obj.name) {\n        case \"SinglePage\":\n        case \"OneColumn\":\n        case \"TwoColumnLeft\":\n        case \"TwoColumnRight\":\n        case \"TwoPageLeft\":\n        case \"TwoPageRight\":\n          pageLayout = obj.name;\n      }\n    }\n    return shadow(this, \"pageLayout\", pageLayout);\n  }\n  get pageMode() {\n    const obj = this.#catDict.get(\"PageMode\");\n    let pageMode = \"UseNone\";\n    if (obj instanceof Name) {\n      switch (obj.name) {\n        case \"UseNone\":\n        case \"UseOutlines\":\n        case \"UseThumbs\":\n        case \"FullScreen\":\n        case \"UseOC\":\n        case \"UseAttachments\":\n          pageMode = obj.name;\n      }\n    }\n    return shadow(this, \"pageMode\", pageMode);\n  }\n  get viewerPreferences() {\n    const obj = this.#catDict.get(\"ViewerPreferences\");\n    if (!(obj instanceof Dict)) {\n      return shadow(this, \"viewerPreferences\", null);\n    }\n    let prefs = null;\n    for (const [key, value] of obj) {\n      let prefValue;\n      switch (key) {\n        case \"HideToolbar\":\n        case \"HideMenubar\":\n        case \"HideWindowUI\":\n        case \"FitWindow\":\n        case \"CenterWindow\":\n        case \"DisplayDocTitle\":\n        case \"PickTrayByPDFSize\":\n          if (typeof value === \"boolean\") {\n            prefValue = value;\n          }\n          break;\n        case \"NonFullScreenPageMode\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"UseNone\":\n              case \"UseOutlines\":\n              case \"UseThumbs\":\n              case \"UseOC\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"UseNone\";\n            }\n          }\n          break;\n        case \"Direction\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"L2R\":\n              case \"R2L\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"L2R\";\n            }\n          }\n          break;\n        case \"ViewArea\":\n        case \"ViewClip\":\n        case \"PrintArea\":\n        case \"PrintClip\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"MediaBox\":\n              case \"CropBox\":\n              case \"BleedBox\":\n              case \"TrimBox\":\n              case \"ArtBox\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"CropBox\";\n            }\n          }\n          break;\n        case \"PrintScaling\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"None\":\n              case \"AppDefault\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"AppDefault\";\n            }\n          }\n          break;\n        case \"Duplex\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"Simplex\":\n              case \"DuplexFlipShortEdge\":\n              case \"DuplexFlipLongEdge\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"None\";\n            }\n          }\n          break;\n        case \"PrintPageRange\":\n          if (Array.isArray(value) && value.length % 2 === 0) {\n            const isValid = value.every((page, i, arr) => Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages);\n            if (isValid) {\n              prefValue = value;\n            }\n          }\n          break;\n        case \"NumCopies\":\n          if (Number.isInteger(value) && value > 0) {\n            prefValue = value;\n          }\n          break;\n        default:\n          warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n          continue;\n      }\n      if (prefValue === undefined) {\n        warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n        continue;\n      }\n      prefs ??= Object.create(null);\n      prefs[key] = prefValue;\n    }\n    return shadow(this, \"viewerPreferences\", prefs);\n  }\n  get openAction() {\n    const obj = this.#catDict.get(\"OpenAction\");\n    const openAction = Object.create(null);\n    if (obj instanceof Dict) {\n      const destDict = new Dict(this.xref);\n      destDict.set(\"A\", obj);\n      const resultObj = {\n        url: null,\n        dest: null,\n        action: null\n      };\n      Catalog.parseDestDictionary({\n        destDict,\n        resultObj\n      });\n      if (Array.isArray(resultObj.dest)) {\n        openAction.dest = resultObj.dest;\n      } else if (resultObj.action) {\n        openAction.action = resultObj.action;\n      }\n    } else if (isValidExplicitDest(obj)) {\n      openAction.dest = obj;\n    }\n    return shadow(this, \"openAction\", objectSize(openAction) > 0 ? openAction : null);\n  }\n  get attachments() {\n    const obj = this.#catDict.get(\"Names\");\n    let attachments = null;\n    if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n      const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        (attachments ??= new Map()).set(stringToPDFString(key, true), new FileSpec(value).serializable);\n      }\n    }\n    return shadow(this, \"attachments\", attachments);\n  }\n  #attachmentContentByName(id) {\n    const obj = this.#catDict.get(\"Names\");\n    if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n      const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        if (stringToPDFString(key, true) === id) {\n          return FileSpec.readContent(value);\n        }\n      }\n    }\n    return undefined;\n  }\n  attachmentContent(id) {\n    const namedContent = this.#attachmentContentByName(id);\n    if (namedContent !== undefined) {\n      return namedContent;\n    }\n    const ref = this.#annotationAttachmentRefById.get(id);\n    if (ref) {\n      const target = this.xref.fetch(ref);\n      if (target instanceof BaseStream) {\n        return FileSpec.readStreamContent(target);\n      }\n      return target instanceof Dict ? FileSpec.readContent(target) : null;\n    }\n    return null;\n  }\n  get rawEmbeddedFiles() {\n    const obj = this.#catDict.get(\"Names\");\n    if (!(obj instanceof Dict) || !obj.has(\"EmbeddedFiles\")) {\n      return null;\n    }\n    const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n    return nameTree.getAll(true);\n  }\n  get xfaImages() {\n    const obj = this.#catDict.get(\"Names\");\n    let xfaImages = null;\n    if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n      const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        if (value instanceof BaseStream) {\n          xfaImages ??= new Map();\n          xfaImages.set(stringToPDFString(key, true), value.getBytes());\n        }\n      }\n    }\n    return shadow(this, \"xfaImages\", xfaImages);\n  }\n  #collectJavaScript() {\n    const obj = this.#catDict.get(\"Names\");\n    let javaScript = null;\n    function appendIfJavaScriptDict(name, jsDict) {\n      if (!(jsDict instanceof Dict)) {\n        return;\n      }\n      if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n        return;\n      }\n      let js = jsDict.get(\"JS\");\n      if (js instanceof BaseStream) {\n        js = js.getString();\n      } else if (typeof js !== \"string\") {\n        return;\n      }\n      js = stringToPDFString(js, true).replaceAll(\"\\x00\", \"\");\n      if (js) {\n        (javaScript ||= new Map()).set(name, js);\n      }\n    }\n    if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n      const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        appendIfJavaScriptDict(stringToPDFString(key, true), value);\n      }\n    }\n    const openAction = this.#catDict.get(\"OpenAction\");\n    if (openAction) {\n      appendIfJavaScriptDict(\"OpenAction\", openAction);\n    }\n    return javaScript;\n  }\n  get jsActions() {\n    const javaScript = this.#collectJavaScript();\n    let actions = collectActions(this.xref, this.#catDict, DocumentActionEventType);\n    if (javaScript) {\n      actions ||= Object.create(null);\n      for (const [key, val] of javaScript) {\n        if (key in actions) {\n          actions[key].push(val);\n        } else {\n          actions[key] = [val];\n        }\n      }\n    }\n    return shadow(this, \"jsActions\", actions);\n  }\n  async cleanup(manuallyTriggered = false) {\n    clearGlobalCaches();\n    this.globalColorSpaceCache.clear();\n    this.globalImageCache.clear(manuallyTriggered);\n    this.pageKidsCountCache.clear();\n    this.pageIndexCache.clear();\n    this.pageDictCache.clear();\n    this.nonBlendModesSet.clear();\n    for (const {\n      dict\n    } of await Promise.all(this.fontCache)) {\n      delete dict.cacheKey;\n    }\n    this.fontCache.clear();\n    this.builtInCMapCache.clear();\n    this.standardFontDataCache.clear();\n    this.systemFontCache.clear();\n  }\n  async getPageDict(pageIndex) {\n    const nodesToVisit = [this.toplevelPagesDict];\n    const visitedNodes = new RefSet();\n    const pagesRef = this.#catDict.getRaw(\"Pages\");\n    if (pagesRef instanceof Ref) {\n      visitedNodes.put(pagesRef);\n    }\n    const xref = this.xref,\n      pageKidsCountCache = this.pageKidsCountCache,\n      pageIndexCache = this.pageIndexCache,\n      pageDictCache = this.pageDictCache;\n    let currentPageIndex = 0;\n    while (nodesToVisit.length) {\n      const currentNode = nodesToVisit.pop();\n      if (currentNode instanceof Ref) {\n        const count = pageKidsCountCache.get(currentNode);\n        if (count >= 0 && currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n        if (visitedNodes.has(currentNode)) {\n          throw new FormatError(\"Pages tree contains circular reference.\");\n        }\n        visitedNodes.put(currentNode);\n        const obj = await (pageDictCache.get(currentNode) || xref.fetchAsync(currentNode));\n        if (obj instanceof Dict) {\n          let type = obj.getRaw(\"Type\");\n          if (type instanceof Ref) {\n            type = await xref.fetchAsync(type);\n          }\n          if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n            if (!pageKidsCountCache.has(currentNode)) {\n              pageKidsCountCache.put(currentNode, 1);\n            }\n            if (!pageIndexCache.has(currentNode)) {\n              pageIndexCache.put(currentNode, currentPageIndex);\n            }\n            if (currentPageIndex === pageIndex) {\n              return [obj, currentNode];\n            }\n            currentPageIndex++;\n            continue;\n          }\n        }\n        nodesToVisit.push(obj);\n        continue;\n      }\n      if (!(currentNode instanceof Dict)) {\n        throw new FormatError(\"Page dictionary kid reference points to wrong type of object.\");\n      }\n      const {\n        objId\n      } = currentNode;\n      let count = currentNode.getRaw(\"Count\");\n      if (count instanceof Ref) {\n        count = await xref.fetchAsync(count);\n      }\n      if (Number.isInteger(count) && count >= 0) {\n        if (objId && !pageKidsCountCache.has(objId)) {\n          pageKidsCountCache.put(objId, count);\n        }\n        if (currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n      }\n      let kids = currentNode.getRaw(\"Kids\");\n      if (kids instanceof Ref) {\n        kids = await xref.fetchAsync(kids);\n      }\n      if (!Array.isArray(kids)) {\n        let type = currentNode.getRaw(\"Type\");\n        if (type instanceof Ref) {\n          type = await xref.fetchAsync(type);\n        }\n        if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n          if (currentPageIndex === pageIndex) {\n            return [currentNode, null];\n          }\n          currentPageIndex++;\n          continue;\n        }\n        throw new FormatError(\"Page dictionary kids object is not an array.\");\n      }\n      for (let last = kids.length - 1; last >= 0; last--) {\n        const lastKid = kids[last];\n        nodesToVisit.push(lastKid);\n        if (currentNode === this.toplevelPagesDict && lastKid instanceof Ref && !pageDictCache.has(lastKid)) {\n          pageDictCache.put(lastKid, xref.fetchAsync(lastKid));\n        }\n      }\n    }\n    throw new Error(`Page index ${pageIndex} not found.`);\n  }\n  async getAllPageDicts(recoveryMode = false) {\n    const {\n      ignoreErrors\n    } = this.pdfManager.evaluatorOptions;\n    const queue = [{\n      currentNode: this.toplevelPagesDict,\n      posInKids: 0\n    }];\n    const visitedNodes = new RefSet();\n    const pagesRef = this.#catDict.getRaw(\"Pages\");\n    if (pagesRef instanceof Ref) {\n      visitedNodes.put(pagesRef);\n    }\n    const map = new Map(),\n      xref = this.xref,\n      pageIndexCache = this.pageIndexCache;\n    let pageIndex = 0;\n    function addPageDict(pageDict, pageRef) {\n      if (pageRef && !pageIndexCache.has(pageRef)) {\n        pageIndexCache.put(pageRef, pageIndex);\n      }\n      map.set(pageIndex++, [pageDict, pageRef]);\n    }\n    function addPageError(error) {\n      if (error instanceof XRefEntryException && !recoveryMode) {\n        throw error;\n      }\n      if (recoveryMode && ignoreErrors && pageIndex === 0) {\n        warn(`getAllPageDicts - Skipping invalid first page: \"${error}\".`);\n        error = Dict.empty;\n      }\n      map.set(pageIndex++, [error, null]);\n    }\n    while (queue.length > 0) {\n      const queueItem = queue.at(-1);\n      const {\n        currentNode,\n        posInKids\n      } = queueItem;\n      let kids = currentNode.getRaw(\"Kids\");\n      if (kids instanceof Ref) {\n        try {\n          kids = await xref.fetchAsync(kids);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n      if (!Array.isArray(kids)) {\n        let type = currentNode.getRaw(\"Type\");\n        if (type instanceof Ref) {\n          try {\n            type = await xref.fetchAsync(type);\n          } catch (ex) {\n            addPageError(ex);\n            break;\n          }\n        }\n        if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n          addPageDict(currentNode, null);\n          break;\n        }\n        addPageError(new FormatError(\"Page dictionary kids object is not an array.\"));\n        break;\n      }\n      if (posInKids >= kids.length) {\n        queue.pop();\n        continue;\n      }\n      const kidObj = kids[posInKids];\n      let obj;\n      if (kidObj instanceof Ref) {\n        if (visitedNodes.has(kidObj)) {\n          addPageError(new FormatError(\"Pages tree contains circular reference.\"));\n          break;\n        }\n        visitedNodes.put(kidObj);\n        try {\n          obj = await xref.fetchAsync(kidObj);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      } else {\n        obj = kidObj;\n      }\n      if (!(obj instanceof Dict)) {\n        addPageError(new FormatError(\"Page dictionary kid reference points to wrong type of object.\"));\n        break;\n      }\n      let type = obj.getRaw(\"Type\");\n      if (type instanceof Ref) {\n        try {\n          type = await xref.fetchAsync(type);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n      if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n        addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n      } else {\n        queue.push({\n          currentNode: obj,\n          posInKids: 0\n        });\n      }\n      queueItem.posInKids++;\n    }\n    return map;\n  }\n  async getPageIndex(pageRef) {\n    const cachedPageIndex = this.pageIndexCache.get(pageRef);\n    if (cachedPageIndex !== undefined) {\n      return cachedPageIndex;\n    }\n    const xref = this.xref;\n    let total = 0,\n      ref = pageRef;\n    while (true) {\n      const node = await xref.fetchAsync(ref);\n      if (isRefsEqual(ref, pageRef) && !isDict(node, \"Page\") && !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))) {\n        throw new FormatError(\"The reference does not point to a /Page dictionary.\");\n      }\n      if (!node) {\n        break;\n      }\n      if (!(node instanceof Dict)) {\n        throw new FormatError(\"Node must be a dictionary.\");\n      }\n      const parentRef = node.getRaw(\"Parent\");\n      const parent = await node.getAsync(\"Parent\");\n      if (!parent) {\n        break;\n      }\n      if (!(parent instanceof Dict)) {\n        throw new FormatError(\"Parent must be a dictionary.\");\n      }\n      const kids = await parent.getAsync(\"Kids\");\n      if (!kids) {\n        break;\n      }\n      if (!Array.isArray(kids)) {\n        throw new FormatError(\"Kids must be an array.\");\n      }\n      const kidPromises = [];\n      let found = false;\n      for (const kid of kids) {\n        if (!(kid instanceof Ref)) {\n          throw new FormatError(\"Kid must be a reference.\");\n        }\n        if (isRefsEqual(kid, ref)) {\n          found = true;\n          break;\n        }\n        kidPromises.push(xref.fetchAsync(kid).then(obj => {\n          if (!(obj instanceof Dict)) {\n            throw new FormatError(\"Kid node must be a dictionary.\");\n          }\n          if (obj.has(\"Count\")) {\n            const count = obj.get(\"Count\");\n            if (Number.isInteger(count) && count >= 0) {\n              total += count;\n              return;\n            }\n            throw new FormatError(\"Count must be a (positive) integer.\");\n          }\n          total++;\n        }));\n      }\n      if (!found) {\n        throw new FormatError(\"Kid reference not found in parent's kids.\");\n      }\n      await Promise.all(kidPromises);\n      ref = parentRef;\n    }\n    this.pageIndexCache.put(pageRef, total);\n    return total;\n  }\n  get baseUrl() {\n    const uri = this.#catDict.get(\"URI\");\n    if (uri instanceof Dict) {\n      const base = uri.get(\"Base\");\n      if (typeof base === \"string\") {\n        const absoluteUrl = createValidAbsoluteUrl(base, null, {\n          tryConvertEncoding: true\n        });\n        if (absoluteUrl) {\n          return shadow(this, \"baseUrl\", absoluteUrl.href);\n        }\n      }\n    }\n    return shadow(this, \"baseUrl\", this.pdfManager.docBaseUrl);\n  }\n  static #getDestFromStructElement(xref, seRef) {\n    const seDict = xref.fetchIfRef(seRef);\n    if (!(seDict instanceof Dict)) {\n      return null;\n    }\n    let pageRef = null;\n    const directPg = seDict.getRaw(\"Pg\");\n    if (directPg instanceof Ref) {\n      pageRef = directPg;\n    }\n    if (!pageRef) {\n      const queue = [seDict];\n      while (queue.length > 0 && !pageRef) {\n        const node = queue.shift();\n        const kids = node.get(\"K\");\n        let kidsArr;\n        if (Array.isArray(kids)) {\n          kidsArr = kids;\n        } else if (kids) {\n          kidsArr = [kids];\n        } else {\n          continue;\n        }\n        for (const kid of kidsArr) {\n          const kidObj = xref.fetchIfRef(kid);\n          if (!(kidObj instanceof Dict)) {\n            continue;\n          }\n          const pg = kidObj.getRaw(\"Pg\");\n          if (pg instanceof Ref) {\n            pageRef = pg;\n            break;\n          }\n          queue.push(kidObj);\n        }\n      }\n    }\n    if (!pageRef) {\n      const MAX_DEPTH = 40;\n      let current = seDict;\n      for (let depth = 0; depth < MAX_DEPTH; depth++) {\n        const parentRaw = current.getRaw(\"P\");\n        if (!(parentRaw instanceof Ref)) {\n          break;\n        }\n        const parentDict = xref.fetch(parentRaw);\n        if (!(parentDict instanceof Dict)) {\n          break;\n        }\n        if (isName(parentDict.get(\"Type\"), \"StructTreeRoot\")) {\n          break;\n        }\n        const pg = parentDict.getRaw(\"Pg\");\n        if (pg instanceof Ref) {\n          pageRef = pg;\n          break;\n        }\n        current = parentDict;\n      }\n    }\n    if (!pageRef) {\n      return null;\n    }\n    let x = null,\n      y = null;\n    const attrs = seDict.get(\"A\");\n    if (attrs instanceof Dict) {\n      const bbox = lookupRect(attrs.getArray(\"BBox\"), null);\n      if (bbox) {\n        x = bbox[0];\n        y = bbox[3];\n      }\n    }\n    return [pageRef, {\n      name: \"XYZ\"\n    }, x, y, null];\n  }\n  static parseDestDictionary({\n    destDict,\n    resultObj,\n    docBaseUrl = null,\n    docAttachments = null\n  }) {\n    if (!(destDict instanceof Dict)) {\n      warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n      return;\n    }\n    let action = destDict.get(\"A\"),\n      url,\n      dest;\n    if (!(action instanceof Dict)) {\n      if (destDict.has(\"Dest\")) {\n        action = destDict.get(\"Dest\");\n      } else {\n        action = destDict.get(\"AA\");\n        if (action instanceof Dict) {\n          if (action.has(\"D\")) {\n            action = action.get(\"D\");\n          } else if (action.has(\"U\")) {\n            action = action.get(\"U\");\n          }\n        }\n      }\n    }\n    if (action instanceof Dict) {\n      const actionType = action.get(\"S\");\n      if (!(actionType instanceof Name)) {\n        warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n        return;\n      }\n      const actionName = actionType.name;\n      switch (actionName) {\n        case \"ResetForm\":\n          const flags = action.get(\"Flags\");\n          const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n          const fields = [];\n          const refs = [];\n          for (const obj of action.get(\"Fields\") || []) {\n            if (obj instanceof Ref) {\n              refs.push(obj.toString());\n            } else if (typeof obj === \"string\") {\n              fields.push(stringToPDFString(obj));\n            }\n          }\n          resultObj.resetForm = {\n            fields,\n            refs,\n            include\n          };\n          break;\n        case \"URI\":\n          url = action.get(\"URI\");\n          if (url instanceof Name) {\n            url = \"/\" + url.name;\n          }\n          break;\n        case \"GoTo\":\n          dest = action.get(\"D\");\n          break;\n        case \"Launch\":\n        case \"GoToR\":\n          const urlDict = action.get(\"F\");\n          if (urlDict instanceof Dict) {\n            url = new FileSpec(urlDict).filename;\n          } else if (typeof urlDict === \"string\") {\n            url = urlDict;\n          } else {\n            break;\n          }\n          const remoteDest = fetchRemoteDest(action);\n          if (remoteDest) {\n            url = url.split(\"#\", 1)[0] + \"#\" + remoteDest;\n          }\n          const newWindow = action.get(\"NewWindow\");\n          if (typeof newWindow === \"boolean\") {\n            resultObj.newWindow = newWindow;\n          }\n          break;\n        case \"GoToE\":\n          const target = action.get(\"T\");\n          let id = null;\n          if (target instanceof Dict) {\n            const relationship = target.get(\"R\");\n            const name = target.get(\"N\");\n            if (isName(relationship, \"C\") && typeof name === \"string\") {\n              id = stringToPDFString(name, true);\n            }\n          }\n          if (docAttachments && id) {\n            resultObj.attachmentId = id;\n            resultObj.attachment = docAttachments.get(id);\n            const attachmentDest = fetchRemoteDest(action);\n            if (attachmentDest) {\n              resultObj.attachmentDest = attachmentDest;\n            }\n          } else {\n            warn(`parseDestDictionary - unimplemented \"GoToE\" action.`);\n          }\n          break;\n        case \"Named\":\n          const namedAction = action.get(\"N\");\n          if (namedAction instanceof Name) {\n            resultObj.action = namedAction.name;\n          }\n          break;\n        case \"SetOCGState\":\n          const state = action.get(\"State\");\n          const preserveRB = action.get(\"PreserveRB\");\n          if (!Array.isArray(state) || state.length === 0) {\n            break;\n          }\n          const stateArr = [];\n          for (const elem of state) {\n            if (elem instanceof Name) {\n              switch (elem.name) {\n                case \"ON\":\n                case \"OFF\":\n                case \"Toggle\":\n                  stateArr.push(elem.name);\n                  break;\n              }\n            } else if (elem instanceof Ref) {\n              stateArr.push(elem.toString());\n            }\n          }\n          if (stateArr.length !== state.length) {\n            break;\n          }\n          resultObj.setOCGState = {\n            state: stateArr,\n            preserveRB: typeof preserveRB === \"boolean\" ? preserveRB : true\n          };\n          break;\n        case \"JavaScript\":\n          const jsAction = action.get(\"JS\");\n          let js;\n          if (jsAction instanceof BaseStream) {\n            js = jsAction.getString();\n          } else if (typeof jsAction === \"string\") {\n            js = jsAction;\n          }\n          const jsURL = js && recoverJsURL(stringToPDFString(js, true));\n          if (jsURL) {\n            url = jsURL.url;\n            resultObj.newWindow = jsURL.newWindow;\n            break;\n          }\n        default:\n          if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n            break;\n          }\n          warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n          break;\n      }\n    } else if (destDict.has(\"Dest\")) {\n      dest = destDict.get(\"Dest\");\n    }\n    if (typeof url === \"string\") {\n      const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n        addDefaultProtocol: true,\n        tryConvertEncoding: true\n      });\n      if (absoluteUrl) {\n        resultObj.url = absoluteUrl.href;\n      }\n      resultObj.unsafeUrl = url;\n    }\n    if (dest) {\n      if (dest instanceof Name) {\n        dest = dest.name;\n      }\n      if (typeof dest === \"string\") {\n        resultObj.dest = stringToPDFString(dest, true);\n      } else if (isValidExplicitDest(dest)) {\n        resultObj.dest = dest;\n      }\n    }\n    if (!resultObj.dest && !resultObj.url && !resultObj.action && !resultObj.attachment && !resultObj.setOCGState && !resultObj.resetForm) {\n      const seRef = destDict.getRaw(\"SE\");\n      if (seRef instanceof Ref) {\n        try {\n          const seDest = Catalog.#getDestFromStructElement(destDict.xref, seRef);\n          if (seDest) {\n            resultObj.dest = seDest;\n          }\n        } catch (ex) {\n          if (ex instanceof MissingDataException) {\n            throw ex;\n          }\n          info(\"SE parsing failed.\");\n        }\n      }\n    }\n  }\n}\n\n;// ./src/core/editor/pdf_images.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst FLATE_COLOR_COUNT_THRESHOLD = 16384;\nfunction createImageDict(xref, width, height, colorSpace) {\n  const image = new Dict(xref);\n  image.set(\"Type\", Name.get(\"XObject\"));\n  image.set(\"Subtype\", Name.get(\"Image\"));\n  image.set(\"BitsPerComponent\", 8);\n  image.setIfName(\"ColorSpace\", colorSpace);\n  image.set(\"Width\", width);\n  image.set(\"Height\", height);\n  return image;\n}\nfunction createRawImage(buffer, dict) {\n  return new Stream(buffer, 0, buffer.length, dict);\n}\nfunction paethPredictor(left, above, upperLeft) {\n  const p = left + above - upperLeft;\n  const pa = Math.abs(p - left);\n  const pb = Math.abs(p - above);\n  const pc = Math.abs(p - upperLeft);\n  if (pa <= pb && pa <= pc) {\n    return left;\n  }\n  return pb <= pc ? above : upperLeft;\n}\nfunction applyPNGOptimumFilter(data, width, height, bytesPerPixel) {\n  const rowSize = width * bytesPerPixel;\n  const out = new Uint8Array(height * (rowSize + 1));\n  const candidates = [new Uint8Array(rowSize), new Uint8Array(rowSize), new Uint8Array(rowSize), new Uint8Array(rowSize), new Uint8Array(rowSize)];\n  for (let y = 0; y < height; y++) {\n    const rowOffset = y * rowSize;\n    const prevRowOffset = rowOffset - rowSize;\n    const scores = [0, 0, 0, 0, 0];\n    for (let x = 0; x < rowSize; x++) {\n      const offset = rowOffset + x;\n      const cur = data[offset];\n      const left = x >= bytesPerPixel ? data[offset - bytesPerPixel] : 0;\n      const above = y > 0 ? data[prevRowOffset + x] : 0;\n      const upperLeft = y > 0 && x >= bytesPerPixel ? data[prevRowOffset + x - bytesPerPixel] : 0;\n      candidates[0][x] = cur;\n      candidates[1][x] = cur - left & 0xff;\n      candidates[2][x] = cur - above & 0xff;\n      candidates[3][x] = cur - (left + above >> 1) & 0xff;\n      candidates[4][x] = cur - paethPredictor(left, above, upperLeft) & 0xff;\n      for (let f = 0; f < 5; f++) {\n        const v = candidates[f][x];\n        scores[f] += v < 128 ? v : 256 - v;\n      }\n    }\n    let bestFilter = 0;\n    for (let f = 1; f < 5; f++) {\n      if (scores[f] < scores[bestFilter]) {\n        bestFilter = f;\n      }\n    }\n    const outOffset = y * (rowSize + 1);\n    out[outOffset] = bestFilter;\n    out.set(candidates[bestFilter], outOffset + 1);\n  }\n  return out;\n}\nasync function deflate(bytes) {\n  const cs = new CompressionStream(\"deflate\");\n  const writer = cs.writable.getWriter();\n  const writePromise = (async () => {\n    try {\n      await writer.ready;\n      await writer.write(bytes);\n      await writer.ready;\n      await writer.close();\n    } catch (reason) {\n      await writer.abort(reason).catch(() => {});\n      throw reason;\n    }\n  })();\n  const [compressed] = await Promise.all([new Response(cs.readable).bytes(), writePromise.then(() => null)]);\n  return compressed;\n}\nasync function createPNGLikeImage(buffer, width, height, dict) {\n  const bytesPerPixel = buffer.length / (width * height);\n  let compressed;\n  if (typeof CompressionStream === \"function\") {\n    try {\n      const filtered = applyPNGOptimumFilter(buffer, width, height, bytesPerPixel);\n      compressed = await deflate(filtered);\n    } catch {}\n  }\n  if (!compressed) {\n    return createRawImage(buffer, dict);\n  }\n  dict.setIfName(\"Filter\", \"FlateDecode\");\n  const decodeParms = new Dict(dict.xref);\n  decodeParms.set(\"Predictor\", 15);\n  decodeParms.set(\"Columns\", width);\n  decodeParms.set(\"Colors\", bytesPerPixel);\n  decodeParms.set(\"BitsPerComponent\", 8);\n  dict.set(\"DecodeParms\", decodeParms);\n  return createRawImage(compressed, dict);\n}\nasync function createImage(bitmap, xref, {\n  closeBitmap = false\n} = {}) {\n  const {\n    width,\n    height\n  } = bitmap;\n  if (!Number.isInteger(width) || !Number.isInteger(height) || width <= 0 || height <= 0) {\n    if (closeBitmap) {\n      bitmap.close?.();\n    }\n    throw new Error(`createImage: invalid bitmap dimensions ${width}x${height}`);\n  }\n  const canvas = new OffscreenCanvas(width, height);\n  const ctx = canvas.getContext(\"2d\", {\n    alpha: true,\n    willReadFrequently: true\n  });\n  let data;\n  try {\n    ctx.drawImage(bitmap, 0, 0);\n    data = ctx.getImageData(0, 0, width, height).data;\n  } finally {\n    if (closeBitmap) {\n      bitmap.close?.();\n    }\n  }\n  const buf32 = new Uint32Array(data.buffer, data.byteOffset, data.byteLength >> 2);\n  const isLE = FeatureTest.isLittleEndian;\n  const rgbMask = isLE ? 0x00ffffff : 0xffffff00;\n  const colorCounter = new Set();\n  let hasAlpha = false;\n  let useFlate = true;\n  for (let i = 0, ii = buf32.length; i < ii; i++) {\n    const v = buf32[i];\n    if ((isLE ? v >>> 24 : v & 0xff) !== 0xff) {\n      hasAlpha = true;\n      break;\n    }\n    if (useFlate) {\n      colorCounter.add((v & rgbMask) >>> 0);\n      if (colorCounter.size > FLATE_COLOR_COUNT_THRESHOLD) {\n        useFlate = false;\n        colorCounter.clear();\n      }\n    }\n  }\n  if (hasAlpha) {\n    useFlate = true;\n  }\n  const image = createImageDict(xref, width, height, \"DeviceRGB\");\n  let imageStreamPromise;\n  let imageRenderStream = null;\n  if (useFlate) {\n    const rgbBuffer = new Uint8Array(width * height * 3);\n    for (let i = 0, j = 0, ii = data.length; i < ii; i += 4, j += 3) {\n      rgbBuffer[j] = data[i];\n      rgbBuffer[j + 1] = data[i + 1];\n      rgbBuffer[j + 2] = data[i + 2];\n    }\n    imageStreamPromise = createPNGLikeImage(rgbBuffer, width, height, image);\n    imageRenderStream = createRawImage(rgbBuffer, createImageDict(xref, width, height, \"DeviceRGB\"));\n  } else {\n    image.setIfName(\"Filter\", \"DCTDecode\");\n    imageStreamPromise = canvas.convertToBlob({\n      type: \"image/jpeg\",\n      quality: 1\n    }).then(blob => blob.bytes()).then(bytes => createRawImage(bytes, image));\n  }\n  let smaskStreamPromise = Promise.resolve(null);\n  let smaskRenderStream = null;\n  if (hasAlpha) {\n    const alphaBuffer = new Uint8Array(buf32.length);\n    if (isLE) {\n      for (let i = 0, ii = buf32.length; i < ii; i++) {\n        alphaBuffer[i] = buf32[i] >>> 24;\n      }\n    } else {\n      for (let i = 0, ii = buf32.length; i < ii; i++) {\n        alphaBuffer[i] = buf32[i] & 0xff;\n      }\n    }\n    const smask = createImageDict(xref, width, height, \"DeviceGray\");\n    const smaskRenderDict = createImageDict(xref, width, height, \"DeviceGray\");\n    smaskStreamPromise = createPNGLikeImage(alphaBuffer, width, height, smask);\n    smaskRenderStream = createRawImage(alphaBuffer, smaskRenderDict);\n  }\n  const [imageStream, smaskStream] = await Promise.all([imageStreamPromise, smaskStreamPromise]);\n  return {\n    imageStream,\n    imageRenderStream,\n    smaskStream,\n    smaskRenderStream,\n    width,\n    height\n  };\n}\n\n;// ./src/core/object_loader.js\n\n\n\n\n\nfunction mayHaveChildren(value) {\n  return value instanceof Ref || value instanceof Dict || value instanceof BaseStream || Array.isArray(value);\n}\nfunction addChildren(node, nodesToVisit) {\n  if (node instanceof Dict) {\n    node = node.getRawValues();\n  } else if (node instanceof BaseStream) {\n    node = node.dict.getRawValues();\n  } else if (!Array.isArray(node)) {\n    return;\n  }\n  for (const rawValue of node) {\n    if (mayHaveChildren(rawValue)) {\n      nodesToVisit.push(rawValue);\n    }\n  }\n}\nclass ObjectLoader {\n  refSet = new RefSet();\n  constructor(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n  }\n  async load() {\n    const {\n      keys,\n      dict\n    } = this;\n    const nodesToVisit = [];\n    for (const key of keys) {\n      const rawValue = dict.getRaw(key);\n      if (rawValue !== undefined) {\n        nodesToVisit.push(rawValue);\n      }\n    }\n    await this.#walk(nodesToVisit);\n    this.refSet = null;\n  }\n  async #walk(nodesToVisit) {\n    const nodesToRevisit = [];\n    const pendingRequests = [];\n    while (nodesToVisit.length) {\n      let currentNode = nodesToVisit.pop();\n      if (currentNode instanceof Ref) {\n        if (this.refSet.has(currentNode)) {\n          continue;\n        }\n        try {\n          this.refSet.put(currentNode);\n          currentNode = this.xref.fetch(currentNode);\n        } catch (ex) {\n          if (!(ex instanceof MissingDataException)) {\n            warn(`ObjectLoader.#walk - requesting all data: \"${ex}\".`);\n            await this.xref.stream.manager.requestAllChunks();\n            return;\n          }\n          nodesToRevisit.push(currentNode);\n          pendingRequests.push({\n            begin: ex.begin,\n            end: ex.end\n          });\n        }\n      }\n      if (currentNode instanceof BaseStream) {\n        const baseStreams = currentNode.getBaseStreams();\n        if (baseStreams) {\n          let foundMissingData = false;\n          for (const stream of baseStreams) {\n            if (stream.isDataLoaded) {\n              continue;\n            }\n            foundMissingData = true;\n            pendingRequests.push({\n              begin: stream.start,\n              end: stream.end\n            });\n          }\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n      }\n      addChildren(currentNode, nodesToVisit);\n    }\n    if (pendingRequests.length) {\n      await this.xref.stream.manager.requestRanges(pendingRequests);\n      for (const node of nodesToRevisit) {\n        if (node instanceof Ref) {\n          this.refSet.remove(node);\n        }\n      }\n      await this.#walk(nodesToRevisit);\n    }\n  }\n  static async load(obj, keys, xref) {\n    if (xref.stream.isDataLoaded) {\n      return;\n    }\n    const objLoader = new ObjectLoader(obj, keys, xref);\n    await objLoader.load();\n  }\n}\n\n;// ./src/core/xfa/symbol_utils.js\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js\nvar es_iterator_flat_map = __webpack_require__(531);\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/core/xfa/namespaces.js\nconst $buildXFAObject = Symbol();\nconst NamespaceIds = {\n  config: {\n    id: 0,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\")\n  },\n  connectionSet: {\n    id: 1,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\")\n  },\n  datasets: {\n    id: 2,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\")\n  },\n  form: {\n    id: 3,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\")\n  },\n  localeSet: {\n    id: 4,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\")\n  },\n  pdf: {\n    id: 5,\n    check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\"\n  },\n  signature: {\n    id: 6,\n    check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\"\n  },\n  sourceSet: {\n    id: 7,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\")\n  },\n  stylesheet: {\n    id: 8,\n    check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\"\n  },\n  template: {\n    id: 9,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\")\n  },\n  xdc: {\n    id: 10,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\")\n  },\n  xdp: {\n    id: 11,\n    check: ns => ns === \"http://ns.adobe.com/xdp/\"\n  },\n  xfdf: {\n    id: 12,\n    check: ns => ns === \"http://ns.adobe.com/xfdf/\"\n  },\n  xhtml: {\n    id: 13,\n    check: ns => ns === \"http://www.w3.org/1999/xhtml\"\n  },\n  xmpmeta: {\n    id: 14,\n    check: ns => ns === \"http://ns.adobe.com/xmpmeta/\"\n  }\n};\n\n;// ./src/core/xfa/utils.js\n\n\n\n\n\n\n\nconst dimConverters = {\n  pt: x => x,\n  cm: x => x / 2.54 * 72,\n  mm: x => x / (10 * 2.54) * 72,\n  in: x => x * 72,\n  px: x => x\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\nfunction stripQuotes(str) {\n  if (str.startsWith(\"'\") || str.startsWith('\"')) {\n    return str.slice(1, -1);\n  }\n  return str;\n}\nfunction getInteger({\n  data,\n  defaultValue,\n  validate\n}) {\n  if (!data) {\n    return defaultValue;\n  }\n  data = data.trim();\n  const n = parseInt(data, 10);\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n  return defaultValue;\n}\nfunction getFloat({\n  data,\n  defaultValue,\n  validate\n}) {\n  if (!data) {\n    return defaultValue;\n  }\n  data = data.trim();\n  const n = parseFloat(data);\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n  return defaultValue;\n}\nfunction getKeyword({\n  data,\n  defaultValue,\n  validate\n}) {\n  if (!data) {\n    return defaultValue;\n  }\n  data = data.trim();\n  if (validate(data)) {\n    return data;\n  }\n  return defaultValue;\n}\nfunction getStringOption(data, options) {\n  return getKeyword({\n    data,\n    defaultValue: options[0],\n    validate: k => options.includes(k)\n  });\n}\nfunction getMeasurement(str, def = \"0\") {\n  def ||= \"0\";\n  if (!str) {\n    return getMeasurement(def);\n  }\n  const match = str.trim().match(measurementPattern);\n  if (!match) {\n    return getMeasurement(def);\n  }\n  const [, valueStr, unit] = match;\n  const value = parseFloat(valueStr);\n  if (isNaN(value)) {\n    return getMeasurement(def);\n  }\n  if (value === 0) {\n    return 0;\n  }\n  const conv = dimConverters[unit];\n  if (conv) {\n    return conv(value);\n  }\n  return value;\n}\nfunction getRatio(data) {\n  if (!data) {\n    return {\n      num: 1,\n      den: 1\n    };\n  }\n  const ratio = data.split(\":\", 2).map(x => parseFloat(x.trim())).filter(x => !isNaN(x));\n  if (ratio.length === 1) {\n    ratio.push(1);\n  }\n  if (ratio.length === 0) {\n    return {\n      num: 1,\n      den: 1\n    };\n  }\n  const [num, den] = ratio;\n  return {\n    num,\n    den\n  };\n}\nfunction getRelevant(data) {\n  if (!data) {\n    return [];\n  }\n  return data.trim().split(/\\s+/).map(e => ({\n    excluded: e[0] === \"-\",\n    viewname: e.substring(1)\n  }));\n}\nfunction getColor(data, def = [0, 0, 0]) {\n  let [r, g, b] = def;\n  if (!data) {\n    return {\n      r,\n      g,\n      b\n    };\n  }\n  const color = data.split(\",\", 3).map(c => MathClamp(parseInt(c.trim(), 10), 0, 255)).map(c => isNaN(c) ? 0 : c);\n  if (color.length < 3) {\n    return {\n      r,\n      g,\n      b\n    };\n  }\n  [r, g, b] = color;\n  return {\n    r,\n    g,\n    b\n  };\n}\nfunction getBBox(data) {\n  const def = -1;\n  if (!data) {\n    return {\n      x: def,\n      y: def,\n      width: def,\n      height: def\n    };\n  }\n  const bbox = data.split(\",\", 4).map(m => getMeasurement(m.trim(), \"-1\"));\n  if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n    return {\n      x: def,\n      y: def,\n      width: def,\n      height: def\n    };\n  }\n  const [x, y, width, height] = bbox;\n  return {\n    x,\n    y,\n    width,\n    height\n  };\n}\nclass HTMLResult {\n  static get FAILURE() {\n    return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n  }\n  static get EMPTY() {\n    return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n  }\n  constructor(success, html, bbox, breakNode) {\n    this.success = success;\n    this.html = html;\n    this.bbox = bbox;\n    this.breakNode = breakNode;\n  }\n  isBreak() {\n    return !!this.breakNode;\n  }\n  static breakNode(node) {\n    return new HTMLResult(false, null, null, node);\n  }\n  static success(html, bbox = null) {\n    return new HTMLResult(true, html, bbox, null);\n  }\n}\n\n;// ./src/core/xfa/fonts.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass FontFinder {\n  constructor(pdfFonts) {\n    this.fonts = new Map();\n    this.cache = new Map();\n    this.warned = new Set();\n    this.defaultFont = null;\n    this.add(pdfFonts);\n  }\n  add(pdfFonts, reallyMissingFonts = null) {\n    for (const pdfFont of pdfFonts) {\n      this.addPdfFont(pdfFont);\n    }\n    for (const pdfFont of this.fonts.values()) {\n      if (!pdfFont.regular) {\n        pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n      }\n    }\n    if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n      return;\n    }\n    const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n    for (const missing of reallyMissingFonts) {\n      this.fonts.set(missing, myriad);\n    }\n  }\n  addPdfFont(pdfFont) {\n    const cssFontInfo = pdfFont.cssFontInfo;\n    const name = cssFontInfo.fontFamily;\n    const font = this.fonts.getOrInsertComputed(name, makeObj);\n    this.defaultFont ??= font;\n    let property = \"\";\n    const fontWeight = parseFloat(cssFontInfo.fontWeight);\n    if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n      property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n    } else if (fontWeight >= 700) {\n      property = \"bold\";\n    }\n    if (!property) {\n      if (pdfFont.name.includes(\"Bold\") || pdfFont.psName?.includes(\"Bold\")) {\n        property = \"bold\";\n      }\n      if (pdfFont.name.includes(\"Italic\") || pdfFont.name.endsWith(\"It\") || pdfFont.psName?.includes(\"Italic\") || pdfFont.psName?.endsWith(\"It\")) {\n        property += \"italic\";\n      }\n    }\n    if (!property) {\n      property = \"regular\";\n    }\n    font[property] = pdfFont;\n  }\n  getDefault() {\n    return this.defaultFont;\n  }\n  find(fontName, mustWarn = true) {\n    let font = this.fonts.get(fontName) || this.cache.get(fontName);\n    if (font) {\n      return font;\n    }\n    const pattern = /[,\\-_ ]|bolditalic|bold|italic|regular|it/gi;\n    let name = fontName.replaceAll(pattern, \"\");\n    font = this.fonts.get(name);\n    if (font) {\n      this.cache.set(fontName, font);\n      return font;\n    }\n    name = name.toLowerCase();\n    const maybe = [];\n    for (const [family, pdfFont] of this.fonts) {\n      if (family.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n        maybe.push(pdfFont);\n      }\n    }\n    if (maybe.length === 0) {\n      for (const pdfFont of this.fonts.values()) {\n        if (pdfFont.regular.name?.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n    if (maybe.length === 0) {\n      name = name.replaceAll(/psmt|mt/gi, \"\");\n      for (const [family, pdfFont] of this.fonts) {\n        if (family.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n    if (maybe.length === 0) {\n      for (const pdfFont of this.fonts.values()) {\n        if (pdfFont.regular.name?.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n    if (maybe.length >= 1) {\n      if (maybe.length !== 1 && mustWarn) {\n        warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n      }\n      this.cache.set(fontName, maybe[0]);\n      return maybe[0];\n    }\n    if (mustWarn && !this.warned.has(fontName)) {\n      this.warned.add(fontName);\n      warn(`XFA - Cannot find the font: ${fontName}`);\n    }\n    return null;\n  }\n}\nfunction selectFont(xfaFont, typeface) {\n  if (xfaFont.posture === \"italic\") {\n    if (xfaFont.weight === \"bold\") {\n      return typeface.bolditalic;\n    }\n    return typeface.italic;\n  } else if (xfaFont.weight === \"bold\") {\n    return typeface.bold;\n  }\n  return typeface.regular;\n}\nfunction fonts_getMetrics(xfaFont, real = false) {\n  let pdfFont = null;\n  if (xfaFont) {\n    const name = stripQuotes(xfaFont.typeface);\n    const typeface = xfaFont[$globalData].fontFinder.find(name);\n    pdfFont = selectFont(xfaFont, typeface);\n  }\n  if (!pdfFont) {\n    return {\n      lineHeight: 12,\n      lineGap: 2,\n      lineNoGap: 10\n    };\n  }\n  const size = xfaFont.size || 10;\n  const lineHeight = pdfFont.lineHeight ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight) : 1.2;\n  const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n  return {\n    lineHeight: lineHeight * size,\n    lineGap: lineGap * size,\n    lineNoGap: Math.max(1, lineHeight - lineGap) * size\n  };\n}\n\n;// ./src/core/xfa/text.js\n\n\n\n\nconst WIDTH_FACTOR = 1.02;\nclass FontInfo {\n  constructor(xfaFont, margin, lineHeight, fontFinder) {\n    this.lineHeight = lineHeight;\n    this.paraMargin = margin || {\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0\n    };\n    if (!xfaFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n    this.xfaFont = {\n      typeface: xfaFont.typeface,\n      posture: xfaFont.posture,\n      weight: xfaFont.weight,\n      size: xfaFont.size,\n      letterSpacing: xfaFont.letterSpacing\n    };\n    const typeface = fontFinder.find(xfaFont.typeface);\n    if (!typeface) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n    this.pdfFont = selectFont(xfaFont, typeface);\n    if (!this.pdfFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n    }\n  }\n  defaultFont(fontFinder) {\n    const font = fontFinder.find(\"Helvetica\", false) || fontFinder.find(\"Myriad Pro\", false) || fontFinder.find(\"Arial\", false) || fontFinder.getDefault();\n    if (font?.regular) {\n      const pdfFont = font.regular;\n      const info = pdfFont.cssFontInfo;\n      const xfaFont = {\n        typeface: info.fontFamily,\n        posture: \"normal\",\n        weight: \"normal\",\n        size: 10,\n        letterSpacing: 0\n      };\n      return [pdfFont, xfaFont];\n    }\n    const xfaFont = {\n      typeface: \"Courier\",\n      posture: \"normal\",\n      weight: \"normal\",\n      size: 10,\n      letterSpacing: 0\n    };\n    return [null, xfaFont];\n  }\n}\nclass FontSelector {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder) {\n    this.fontFinder = fontFinder;\n    this.stack = [new FontInfo(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder)];\n  }\n  pushData(xfaFont, margin, lineHeight) {\n    const lastFont = this.stack.at(-1);\n    for (const name of [\"typeface\", \"posture\", \"weight\", \"size\", \"letterSpacing\"]) {\n      xfaFont[name] ||= lastFont.xfaFont[name];\n    }\n    for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n      if (isNaN(margin[name])) {\n        margin[name] = lastFont.paraMargin[name];\n      }\n    }\n    const fontInfo = new FontInfo(xfaFont, margin, lineHeight || lastFont.lineHeight, this.fontFinder);\n    fontInfo.pdfFont ||= lastFont.pdfFont;\n    this.stack.push(fontInfo);\n  }\n  popFont() {\n    this.stack.pop();\n  }\n  topFont() {\n    return this.stack.at(-1);\n  }\n}\nclass TextMeasure {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n    this.glyphs = [];\n    this.fontSelector = new FontSelector(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts);\n    this.extraHeight = 0;\n  }\n  pushData(xfaFont, margin, lineHeight) {\n    this.fontSelector.pushData(xfaFont, margin, lineHeight);\n  }\n  popFont(xfaFont) {\n    return this.fontSelector.popFont();\n  }\n  addPara() {\n    const lastFont = this.fontSelector.topFont();\n    this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n  }\n  addString(str) {\n    if (!str) {\n      return;\n    }\n    const lastFont = this.fontSelector.topFont();\n    const fontSize = lastFont.xfaFont.size;\n    if (lastFont.pdfFont) {\n      const letterSpacing = lastFont.xfaFont.letterSpacing;\n      const pdfFont = lastFont.pdfFont;\n      const fontLineHeight = pdfFont.lineHeight || 1.2;\n      const lineHeight = lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n      const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n      const noGap = fontLineHeight - lineGap;\n      const firstLineHeight = Math.max(1, noGap) * fontSize;\n      const scale = fontSize / 1000;\n      const fallbackWidth = pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n      for (const line of str.split(/[\\u2029\\n]/)) {\n        const encodedLine = pdfFont.encodeString(line).join(\"\");\n        const glyphs = pdfFont.charsToGlyphs(encodedLine);\n        for (const glyph of glyphs) {\n          const width = glyph.width || fallbackWidth;\n          this.glyphs.push([width * scale + letterSpacing, lineHeight, firstLineHeight, glyph.unicode, false]);\n        }\n        this.glyphs.push([0, 0, 0, \"\\n\", true]);\n      }\n      this.glyphs.pop();\n      return;\n    }\n    for (const line of str.split(/[\\u2029\\n]/)) {\n      for (const char of line.split(\"\")) {\n        this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n      }\n      this.glyphs.push([0, 0, 0, \"\\n\", true]);\n    }\n    this.glyphs.pop();\n  }\n  compute(maxWidth) {\n    let lastSpacePos = -1,\n      lastSpaceWidth = 0,\n      width = 0,\n      height = 0,\n      currentLineWidth = 0,\n      currentLineHeight = 0;\n    let isBroken = false;\n    let isFirstLine = true;\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] = this.glyphs[i];\n      const isSpace = char === \" \";\n      const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n      if (isEOL) {\n        width = Math.max(width, currentLineWidth);\n        currentLineWidth = 0;\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n        lastSpacePos = -1;\n        lastSpaceWidth = 0;\n        isFirstLine = false;\n        continue;\n      }\n      if (isSpace) {\n        if (currentLineWidth + glyphWidth > maxWidth) {\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = 0;\n          height += currentLineHeight;\n          currentLineHeight = glyphHeight;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n          isBroken = true;\n          isFirstLine = false;\n        } else {\n          currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n          lastSpaceWidth = currentLineWidth;\n          currentLineWidth += glyphWidth;\n          lastSpacePos = i;\n        }\n        continue;\n      }\n      if (currentLineWidth + glyphWidth > maxWidth) {\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n        if (lastSpacePos !== -1) {\n          i = lastSpacePos;\n          width = Math.max(width, lastSpaceWidth);\n          currentLineWidth = 0;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n        } else {\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = glyphWidth;\n        }\n        isBroken = true;\n        isFirstLine = false;\n        continue;\n      }\n      currentLineWidth += glyphWidth;\n      currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n    }\n    width = Math.max(width, currentLineWidth);\n    height += currentLineHeight + this.extraHeight;\n    return {\n      width: WIDTH_FACTOR * width,\n      height,\n      isBroken\n    };\n  }\n}\n\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;// ./src/core/xfa/som.js\n\n\n\n\n\n\n\n\n\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n  dot: 0,\n  dotDot: 1,\n  dotHash: 2,\n  dotBracket: 3,\n  dotParen: 4\n};\nconst shortcuts = new Map([[\"$data\", (root, current) => root.datasets ? root.datasets.data : root], [\"$record\", (root, current) => (root.datasets ? root.datasets.data : root)[$getChildren]()[0]], [\"$template\", (root, current) => root.template], [\"$connectionSet\", (root, current) => root.connectionSet], [\"$form\", (root, current) => root.form], [\"$layout\", (root, current) => root.layout], [\"$host\", (root, current) => root.host], [\"$dataWindow\", (root, current) => root.dataWindow], [\"$event\", (root, current) => root.event], [\"!\", (root, current) => root.datasets], [\"$xfa\", (root, current) => root], [\"xfa\", (root, current) => root], [\"$\", (root, current) => current]]);\nconst somCache = new WeakMap();\nfunction parseIndex(index) {\n  index = index.trim();\n  if (index === \"*\") {\n    return Infinity;\n  }\n  return parseInt(index, 10) || 0;\n}\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n  let match = expr.match(namePattern);\n  if (!match) {\n    return null;\n  }\n  let [name] = match;\n  const parsed = [{\n    name,\n    cacheName: \".\" + name,\n    index: 0,\n    js: null,\n    formCalc: null,\n    operator: operators.dot\n  }];\n  let pos = name.length;\n  while (pos < expr.length) {\n    const spos = pos;\n    const char = expr.charAt(pos++);\n    if (char === \"[\") {\n      match = expr.slice(pos).match(indexPattern);\n      if (!match) {\n        warn(\"XFA - Invalid index in SOM expression\");\n        return null;\n      }\n      parsed.at(-1).index = parseIndex(match[0]);\n      pos += match[0].length + 1;\n      continue;\n    }\n    let operator;\n    switch (expr.charAt(pos)) {\n      case \".\":\n        if (!dotDotAllowed) {\n          return null;\n        }\n        pos++;\n        operator = operators.dotDot;\n        break;\n      case \"#\":\n        pos++;\n        operator = operators.dotHash;\n        break;\n      case \"[\":\n        if (noExpr) {\n          warn(\"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\");\n          return null;\n        }\n        operator = operators.dotBracket;\n        break;\n      case \"(\":\n        if (noExpr) {\n          warn(\"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\");\n          return null;\n        }\n        operator = operators.dotParen;\n        break;\n      default:\n        operator = operators.dot;\n        break;\n    }\n    match = expr.slice(pos).match(namePattern);\n    if (!match) {\n      break;\n    }\n    [name] = match;\n    pos += name.length;\n    parsed.push({\n      name,\n      cacheName: expr.slice(spos, pos),\n      operator,\n      index: 0,\n      js: null,\n      formCalc: null\n    });\n  }\n  return parsed;\n}\nfunction searchNode(root, container, expr, dotDotAllowed = true, useCache = true) {\n  const parsed = parseExpression(expr, dotDotAllowed);\n  if (!parsed) {\n    return null;\n  }\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n  let isQualified;\n  if (fn) {\n    isQualified = true;\n    root = [fn(root, container)];\n    i = 1;\n  } else {\n    isQualified = container === null;\n    root = [container || root];\n  }\n  for (let ii = parsed.length; i < ii; i++) {\n    const {\n      name,\n      cacheName,\n      operator,\n      index\n    } = parsed[i];\n    const nodes = [];\n    for (const node of root) {\n      if (!node.isXFAObject) {\n        continue;\n      }\n      let children, cached;\n      if (useCache) {\n        cached = somCache.getOrInsertComputed(node, makeMap);\n        children = cached.get(cacheName);\n      }\n      if (!children) {\n        switch (operator) {\n          case operators.dot:\n            children = node[$getChildrenByName](name, false);\n            break;\n          case operators.dotDot:\n            children = node[$getChildrenByName](name, true);\n            break;\n          case operators.dotHash:\n            children = node[$getChildrenByClass](name);\n            children = children.isXFAObjectArray ? children.children : [children];\n            break;\n          default:\n            break;\n        }\n        if (useCache) {\n          cached.set(cacheName, children);\n        }\n      }\n      if (children.length > 0) {\n        nodes.push(children);\n      }\n    }\n    if (nodes.length === 0 && !isQualified && i === 0) {\n      const parent = container[$getParent]();\n      container = parent;\n      if (!container) {\n        return null;\n      }\n      i = -1;\n      root = [container];\n      continue;\n    }\n    root = isFinite(index) ? nodes.filter(node => index < node.length).map(node => node[index]) : nodes.flat();\n  }\n  if (root.length === 0) {\n    return null;\n  }\n  return root;\n}\nfunction createDataNode(root, container, expr) {\n  const parsed = parseExpression(expr);\n  if (!parsed) {\n    return null;\n  }\n  if (parsed.some(x => x.operator === operators.dotDot)) {\n    return null;\n  }\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n  if (fn) {\n    root = fn(root, container);\n    i = 1;\n  } else {\n    root = container || root;\n  }\n  for (let ii = parsed.length; i < ii; i++) {\n    const {\n      name,\n      operator,\n      index\n    } = parsed[i];\n    if (!isFinite(index)) {\n      parsed[i].index = 0;\n      return root.createNodes(parsed.slice(i));\n    }\n    let children;\n    switch (operator) {\n      case operators.dot:\n        children = root[$getChildrenByName](name, false);\n        break;\n      case operators.dotDot:\n        children = root[$getChildrenByName](name, true);\n        break;\n      case operators.dotHash:\n        children = root[$getChildrenByClass](name);\n        children = children.isXFAObjectArray ? children.children : [children];\n        break;\n      default:\n        break;\n    }\n    if (children.length === 0) {\n      return root.createNodes(parsed.slice(i));\n    }\n    if (index < children.length) {\n      const child = children[index];\n      if (!child.isXFAObject) {\n        warn(`XFA - Cannot create a node.`);\n        return null;\n      }\n      root = child;\n    } else {\n      parsed[i].index = index - children.length;\n      return root.createNodes(parsed.slice(i));\n    }\n  }\n  return null;\n}\n\n;// ./src/core/xfa/xfa_object.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\nlet uid = 0;\nconst NS_DATASETS = NamespaceIds.datasets.id;\nclass XFAObject {\n  constructor(nsId, name, hasChildren = false) {\n    this[$namespaceId] = nsId;\n    this[$nodeName] = name;\n    this[_hasChildren] = hasChildren;\n    this[_parent] = null;\n    this[_children] = [];\n    this[$uid] = `${name}${uid++}`;\n    this[$globalData] = null;\n  }\n  get isXFAObject() {\n    return true;\n  }\n  get isXFAObjectArray() {\n    return false;\n  }\n  createNodes(path) {\n    let root = this,\n      node = null;\n    for (const {\n      name,\n      index\n    } of path) {\n      for (let i = 0, ii = isFinite(index) ? index : 0; i <= ii; i++) {\n        const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n        node = new XmlObject(nsId, name);\n        root[$appendChild](node);\n      }\n      root = node;\n    }\n    return node;\n  }\n  [$onChild](child) {\n    if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n      return false;\n    }\n    const name = child[$nodeName];\n    const node = this[name];\n    if (node instanceof XFAObjectArray) {\n      if (node.push(child)) {\n        this[$appendChild](child);\n        return true;\n      }\n    } else {\n      if (node !== null) {\n        this[$removeChild](node);\n      }\n      this[name] = child;\n      this[$appendChild](child);\n      return true;\n    }\n    let id = \"\";\n    if (this.id) {\n      id = ` (id: ${this.id})`;\n    } else if (this.name) {\n      id = ` (name: ${this.name} ${this.h.value})`;\n    }\n    warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n    return false;\n  }\n  [$onChildCheck](child) {\n    return Object.hasOwn(this, child[$nodeName]) && child[$namespaceId] === this[$namespaceId];\n  }\n  [$isNsAgnostic]() {\n    return false;\n  }\n  [$acceptWhitespace]() {\n    return false;\n  }\n  [$isCDATAXml]() {\n    return false;\n  }\n  [$isBindable]() {\n    return false;\n  }\n  [$popPara]() {\n    if (this.para) {\n      this[$getTemplateRoot]()[$extra].paraStack.pop();\n    }\n  }\n  [$pushPara]() {\n    this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n  }\n  [$setId](ids) {\n    if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n      ids.set(this.id, this);\n    }\n  }\n  [$getTemplateRoot]() {\n    return this[$globalData].template;\n  }\n  [$isSplittable]() {\n    return false;\n  }\n  [$isThereMoreWidth]() {\n    return false;\n  }\n  [$appendChild](child) {\n    child[_parent] = this;\n    this[_children].push(child);\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n  [$removeChild](child) {\n    const i = this[_children].indexOf(child);\n    this[_children].splice(i, 1);\n  }\n  [$hasSettableValue]() {\n    return Object.hasOwn(this, \"value\");\n  }\n  [$setValue](_) {}\n  [$onText](_) {}\n  [$finalize]() {}\n  [$clean](builder) {\n    delete this[_hasChildren];\n    if (this[$cleanup]) {\n      builder.clean(this[$cleanup]);\n      delete this[$cleanup];\n    }\n  }\n  [$indexOf](child) {\n    return this[_children].indexOf(child);\n  }\n  [$insertAt](i, child) {\n    child[_parent] = this;\n    this[_children].splice(i, 0, child);\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n  [$isTransparent]() {\n    return !this.name;\n  }\n  [$lastAttribute]() {\n    return \"\";\n  }\n  [$text]() {\n    if (this[_children].length === 0) {\n      return this[$content];\n    }\n    return this[_children].map(c => c[$text]()).join(\"\");\n  }\n  get [_attributeNames]() {\n    const proto = Object.getPrototypeOf(this);\n    if (!proto._attributes) {\n      const attributes = proto._attributes = new Set();\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (this[name] === null || this[name] instanceof XFAObject || this[name] instanceof XFAObjectArray) {\n          break;\n        }\n        attributes.add(name);\n      }\n    }\n    return shadow(this, _attributeNames, proto._attributes);\n  }\n  [$isDescendent](parent) {\n    let node = this;\n    while (node) {\n      if (node === parent) {\n        return true;\n      }\n      node = node[$getParent]();\n    }\n    return false;\n  }\n  [$getParent]() {\n    return this[_parent];\n  }\n  [$getSubformParent]() {\n    return this[$getParent]();\n  }\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n    return this[name];\n  }\n  [$dump]() {\n    const dumped = Object.create(null);\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const value = this[name];\n      if (value === null) {\n        continue;\n      }\n      if (value instanceof XFAObject) {\n        dumped[name] = value[$dump]();\n      } else if (value instanceof XFAObjectArray) {\n        if (!value.isEmpty()) {\n          dumped[name] = value.dump();\n        }\n      } else {\n        dumped[name] = value;\n      }\n    }\n    return dumped;\n  }\n  [$toStyle]() {\n    return null;\n  }\n  [$toHTML]() {\n    return HTMLResult.EMPTY;\n  }\n  *[$getContainedChildren]() {\n    for (const node of this[$getChildren]()) {\n      yield node;\n    }\n  }\n  *[_filteredChildrenGenerator](filter, include) {\n    for (const node of this[$getContainedChildren]()) {\n      if (!filter || include === filter.has(node[$nodeName])) {\n        const availableSpace = this[$getAvailableSpace]();\n        const res = node[$toHTML](availableSpace);\n        if (!res.success) {\n          this[$extra].failingNode = node;\n        }\n        yield res;\n      }\n    }\n  }\n  [$flushHTML]() {\n    return null;\n  }\n  [$addHTML](html, bbox) {\n    this[$extra].children.push(html);\n  }\n  [$getAvailableSpace]() {}\n  [$childrenToHTML]({\n    filter = null,\n    include = true\n  }) {\n    if (!this[$extra].generator) {\n      this[$extra].generator = this[_filteredChildrenGenerator](filter, include);\n    } else {\n      const availableSpace = this[$getAvailableSpace]();\n      const res = this[$extra].failingNode[$toHTML](availableSpace);\n      if (!res.success) {\n        return res;\n      }\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n      delete this[$extra].failingNode;\n    }\n    while (true) {\n      const gen = this[$extra].generator.next();\n      if (gen.done) {\n        break;\n      }\n      const res = gen.value;\n      if (!res.success) {\n        return res;\n      }\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n    }\n    this[$extra].generator = null;\n    return HTMLResult.EMPTY;\n  }\n  [$setSetAttributes](attributes) {\n    this[_setAttributes] = new Set(Object.keys(attributes));\n  }\n  [_getUnsetAttributes](protoAttributes) {\n    const allAttr = this[_attributeNames];\n    const setAttr = this[_setAttributes];\n    return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n  }\n  [$resolvePrototypes](ids, ancestors = new Set()) {\n    for (const child of this[_children]) {\n      child[_resolvePrototypesHelper](ids, ancestors);\n    }\n  }\n  [_resolvePrototypesHelper](ids, ancestors) {\n    const proto = this[_getPrototype](ids, ancestors);\n    if (proto) {\n      this[_applyPrototype](proto, ids, ancestors);\n    } else {\n      this[$resolvePrototypes](ids, ancestors);\n    }\n  }\n  [_getPrototype](ids, ancestors) {\n    const {\n      use,\n      usehref\n    } = this;\n    if (!use && !usehref) {\n      return null;\n    }\n    let proto = null;\n    let somExpression = null;\n    let id = null;\n    let ref = use;\n    if (usehref) {\n      ref = usehref;\n      if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\"#som(\".length, -1);\n      } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\".#som(\".length, -1);\n      } else if (usehref.startsWith(\"#\")) {\n        id = usehref.slice(1);\n      } else if (usehref.startsWith(\".#\")) {\n        id = usehref.slice(2);\n      }\n    } else if (use.startsWith(\"#\")) {\n      id = use.slice(1);\n    } else {\n      somExpression = use;\n    }\n    this.use = this.usehref = \"\";\n    if (id) {\n      proto = ids.get(id);\n    } else {\n      proto = searchNode(ids.get($root), this, somExpression, true, false);\n      if (proto) {\n        proto = proto[0];\n      }\n    }\n    if (!proto) {\n      warn(`XFA - Invalid prototype reference: ${ref}.`);\n      return null;\n    }\n    if (proto[$nodeName] !== this[$nodeName]) {\n      warn(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`);\n      return null;\n    }\n    if (ancestors.has(proto)) {\n      warn(`XFA - Cycle detected in prototypes use.`);\n      return null;\n    }\n    ancestors.add(proto);\n    const protoProto = proto[_getPrototype](ids, ancestors);\n    if (protoProto) {\n      proto[_applyPrototype](protoProto, ids, ancestors);\n    }\n    proto[$resolvePrototypes](ids, ancestors);\n    ancestors.delete(proto);\n    return proto;\n  }\n  [_applyPrototype](proto, ids, ancestors) {\n    if (ancestors.has(proto)) {\n      warn(`XFA - Cycle detected in prototypes use.`);\n      return;\n    }\n    if (!this[$content] && proto[$content]) {\n      this[$content] = proto[$content];\n    }\n    const newAncestors = new Set(ancestors);\n    newAncestors.add(proto);\n    for (const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])) {\n      this[unsetAttrName] = proto[unsetAttrName];\n      if (this[_setAttributes]) {\n        this[_setAttributes].add(unsetAttrName);\n      }\n    }\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        continue;\n      }\n      const value = this[name];\n      const protoValue = proto[name];\n      if (value instanceof XFAObjectArray) {\n        for (const child of value[_children]) {\n          child[_resolvePrototypesHelper](ids, ancestors);\n        }\n        for (let i = value[_children].length, ii = protoValue[_children].length; i < ii; i++) {\n          const child = proto[_children][i][$clone]();\n          if (value.push(child)) {\n            child[_parent] = this;\n            this[_children].push(child);\n            child[_resolvePrototypesHelper](ids, ancestors);\n          } else {\n            break;\n          }\n        }\n        continue;\n      }\n      if (value !== null) {\n        value[$resolvePrototypes](ids, ancestors);\n        if (protoValue) {\n          value[_applyPrototype](protoValue, ids, ancestors);\n        }\n        continue;\n      }\n      if (protoValue !== null) {\n        const child = protoValue[$clone]();\n        child[_parent] = this;\n        this[name] = child;\n        this[_children].push(child);\n        child[_resolvePrototypesHelper](ids, ancestors);\n      }\n    }\n  }\n  static [_cloneAttribute](obj) {\n    if (Array.isArray(obj)) {\n      return obj.map(x => XFAObject[_cloneAttribute](x));\n    }\n    if (typeof obj === \"object\" && obj !== null) {\n      return Object.assign({}, obj);\n    }\n    return obj;\n  }\n  [$clone]() {\n    const clone = Object.create(Object.getPrototypeOf(this));\n    for (const $symbol of Object.getOwnPropertySymbols(this)) {\n      try {\n        clone[$symbol] = this[$symbol];\n      } catch {\n        shadow(clone, $symbol, this[$symbol]);\n      }\n    }\n    clone[$uid] = `${clone[$nodeName]}${uid++}`;\n    clone[_children] = [];\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        clone[name] = XFAObject[_cloneAttribute](this[name]);\n        continue;\n      }\n      const value = this[name];\n      clone[name] = value instanceof XFAObjectArray ? new XFAObjectArray(value[_max]) : null;\n    }\n    for (const child of this[_children]) {\n      const name = child[$nodeName];\n      const clonedChild = child[$clone]();\n      clone[_children].push(clonedChild);\n      clonedChild[_parent] = clone;\n      if (clone[name] === null) {\n        clone[name] = clonedChild;\n      } else {\n        clone[name][_children].push(clonedChild);\n      }\n    }\n    return clone;\n  }\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n  [$getChildrenByClass](name) {\n    return this[name];\n  }\n  [$getChildrenByName](name, allTransparent, first = true) {\n    return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n  }\n  *[$getChildrenByNameIt](name, allTransparent, first = true) {\n    if (name === \"parent\") {\n      yield this[_parent];\n      return;\n    }\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n      if (child.name === name) {\n        yield child;\n      }\n      if (allTransparent || child[$isTransparent]()) {\n        yield* child[$getChildrenByNameIt](name, allTransparent, false);\n      }\n    }\n    if (first && this[_attributeNames].has(name)) {\n      yield new XFAAttribute(this, name, this[name]);\n    }\n  }\n}\nclass XFAObjectArray {\n  constructor(max = Infinity) {\n    this[_max] = max;\n    this[_children] = [];\n  }\n  get isXFAObject() {\n    return false;\n  }\n  get isXFAObjectArray() {\n    return true;\n  }\n  push(child) {\n    const len = this[_children].length;\n    if (len <= this[_max]) {\n      this[_children].push(child);\n      return true;\n    }\n    warn(`XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`);\n    return false;\n  }\n  isEmpty() {\n    return this[_children].length === 0;\n  }\n  dump() {\n    return this[_children].length === 1 ? this[_children][0][$dump]() : this[_children].map(x => x[$dump]());\n  }\n  [$clone]() {\n    const clone = new XFAObjectArray(this[_max]);\n    clone[_children] = this[_children].map(c => c[$clone]());\n    return clone;\n  }\n  get children() {\n    return this[_children];\n  }\n  clear() {\n    this[_children].length = 0;\n  }\n}\nclass XFAAttribute {\n  constructor(node, name, value) {\n    this[_parent] = node;\n    this[$nodeName] = name;\n    this[$content] = value;\n    this[$consumed] = false;\n    this[$uid] = `attribute${uid++}`;\n  }\n  [$getParent]() {\n    return this[_parent];\n  }\n  [$isDataValue]() {\n    return true;\n  }\n  [$getDataValue]() {\n    return this[$content].trim();\n  }\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n  [$text]() {\n    return this[$content];\n  }\n  [$isDescendent](parent) {\n    return this[_parent] === parent || this[_parent][$isDescendent](parent);\n  }\n}\nclass XmlObject extends XFAObject {\n  constructor(nsId, name, attributes = {}) {\n    super(nsId, name);\n    this[$content] = \"\";\n    this[_dataValue] = null;\n    if (name !== \"#text\") {\n      const map = new Map();\n      this[_attributes] = map;\n      for (const [attrName, value] of Object.entries(attributes)) {\n        map.set(attrName, new XFAAttribute(this, attrName, value));\n      }\n      if (Object.hasOwn(attributes, $nsAttributes)) {\n        const dataNode = attributes[$nsAttributes].xfa.dataNode;\n        if (dataNode !== undefined) {\n          if (dataNode === \"dataGroup\") {\n            this[_dataValue] = false;\n          } else if (dataNode === \"dataValue\") {\n            this[_dataValue] = true;\n          }\n        }\n      }\n    }\n    this[$consumed] = false;\n  }\n  [$toString](buf) {\n    const tagName = this[$nodeName];\n    if (tagName === \"#text\") {\n      buf.push(encodeToXmlString(this[$content]));\n      return;\n    }\n    const utf8TagName = utf8StringToString(tagName);\n    const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n    buf.push(`<${prefix}${utf8TagName}`);\n    for (const [name, value] of this[_attributes]) {\n      const utf8Name = utf8StringToString(name);\n      buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n    }\n    if (this[_dataValue] !== null) {\n      if (this[_dataValue]) {\n        buf.push(` xfa:dataNode=\"dataValue\"`);\n      } else {\n        buf.push(` xfa:dataNode=\"dataGroup\"`);\n      }\n    }\n    if (!this[$content] && this[_children].length === 0) {\n      buf.push(\"/>\");\n      return;\n    }\n    buf.push(\">\");\n    if (this[$content]) {\n      if (typeof this[$content] === \"string\") {\n        buf.push(encodeToXmlString(this[$content]));\n      } else {\n        this[$content][$toString](buf);\n      }\n    } else {\n      for (const child of this[_children]) {\n        child[$toString](buf);\n      }\n    }\n    buf.push(`</${prefix}${utf8TagName}>`);\n  }\n  [$onChild](child) {\n    if (this[$content]) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      this[$content] = \"\";\n    }\n    this[$appendChild](child);\n    return true;\n  }\n  [$onText](str) {\n    this[$content] += str;\n  }\n  [$finalize]() {\n    if (this[$content] && this[_children].length > 0) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      delete this[$content];\n    }\n  }\n  [$toHTML]() {\n    if (this[$nodeName] === \"#text\") {\n      return HTMLResult.success({\n        name: \"#text\",\n        value: this[$content]\n      });\n    }\n    return HTMLResult.EMPTY;\n  }\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n  [$getAttributes]() {\n    return this[_attributes];\n  }\n  [$getChildrenByClass](name) {\n    const value = this[_attributes].get(name);\n    if (value !== undefined) {\n      return value;\n    }\n    return this[$getChildren](name);\n  }\n  *[$getChildrenByNameIt](name, allTransparent) {\n    const value = this[_attributes].get(name);\n    if (value) {\n      yield value;\n    }\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n      if (allTransparent) {\n        yield* child[$getChildrenByNameIt](name, allTransparent);\n      }\n    }\n  }\n  *[$getAttributeIt](name, skipConsumed) {\n    const value = this[_attributes].get(name);\n    if (value && (!skipConsumed || !value[$consumed])) {\n      yield value;\n    }\n    for (const child of this[_children]) {\n      yield* child[$getAttributeIt](name, skipConsumed);\n    }\n  }\n  *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n        yield child;\n      }\n      if (allTransparent) {\n        yield* child[$getRealChildrenByNameIt](name, allTransparent, skipConsumed);\n      }\n    }\n  }\n  [$isDataValue]() {\n    if (this[_dataValue] === null) {\n      return this[_children].length === 0 || this[_children][0][$namespaceId] === NamespaceIds.xhtml.id;\n    }\n    return this[_dataValue];\n  }\n  [$getDataValue]() {\n    if (this[_dataValue] === null) {\n      if (this[_children].length === 0) {\n        return this[$content].trim();\n      }\n      if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n        return this[_children][0][$text]().trim();\n      }\n      return null;\n    }\n    return this[$content].trim();\n  }\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n  [$dump](hasNS = false) {\n    const dumped = Object.create(null);\n    if (hasNS) {\n      dumped.$ns = this[$namespaceId];\n    }\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n    dumped.$name = this[$nodeName];\n    dumped.children = [];\n    for (const child of this[_children]) {\n      dumped.children.push(child[$dump](hasNS));\n    }\n    dumped.attributes = Object.create(null);\n    for (const [name, value] of this[_attributes]) {\n      dumped.attributes[name] = value[$content];\n    }\n    return dumped;\n  }\n}\nclass ContentObject extends XFAObject {\n  constructor(nsId, name) {\n    super(nsId, name);\n    this[$content] = \"\";\n  }\n  [$onText](text) {\n    this[$content] += text;\n  }\n  [$finalize]() {}\n}\nclass OptionObject extends ContentObject {\n  constructor(nsId, name, options) {\n    super(nsId, name);\n    this[_options] = options;\n  }\n  [$finalize]() {\n    this[$content] = getKeyword({\n      data: this[$content],\n      defaultValue: this[_options][0],\n      validate: k => this[_options].includes(k)\n    });\n  }\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_options];\n  }\n}\nclass StringObject extends ContentObject {\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n  }\n}\nclass IntegerObject extends ContentObject {\n  constructor(nsId, name, defaultValue, validator) {\n    super(nsId, name);\n    this[_defaultValue] = defaultValue;\n    this[_validator] = validator;\n  }\n  [$finalize]() {\n    this[$content] = getInteger({\n      data: this[$content],\n      defaultValue: this[_defaultValue],\n      validate: this[_validator]\n    });\n  }\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_defaultValue];\n    delete this[_validator];\n  }\n}\nclass Option01 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 0, n => n === 1);\n  }\n}\nclass Option10 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 1, n => n === 0);\n  }\n}\n\n;// ./src/core/xfa/html_utils.js\n\n\n\n\n\n\n\n\n\n\n\nfunction measureToString(m) {\n  if (typeof m === \"string\") {\n    return \"0px\";\n  }\n  return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\nconst converters = {\n  anchorType(node, style) {\n    const parent = node[$getSubformParent]();\n    if (!parent || parent.layout && parent.layout !== \"position\") {\n      return;\n    }\n    if (!(\"transform\" in style)) {\n      style.transform = \"\";\n    }\n    switch (node.anchorType) {\n      case \"bottomCenter\":\n        style.transform += \"translate(-50%, -100%)\";\n        break;\n      case \"bottomLeft\":\n        style.transform += \"translate(0,-100%)\";\n        break;\n      case \"bottomRight\":\n        style.transform += \"translate(-100%,-100%)\";\n        break;\n      case \"middleCenter\":\n        style.transform += \"translate(-50%,-50%)\";\n        break;\n      case \"middleLeft\":\n        style.transform += \"translate(0,-50%)\";\n        break;\n      case \"middleRight\":\n        style.transform += \"translate(-100%,-50%)\";\n        break;\n      case \"topCenter\":\n        style.transform += \"translate(-50%,0)\";\n        break;\n      case \"topRight\":\n        style.transform += \"translate(-100%,0)\";\n        break;\n    }\n  },\n  dimensions(node, style) {\n    const parent = node[$getSubformParent]();\n    let width = node.w;\n    const height = node.h;\n    if (parent.layout?.includes(\"row\")) {\n      const extra = parent[$extra];\n      const colSpan = node.colSpan;\n      let w;\n      if (colSpan === -1) {\n        w = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn));\n        extra.currentColumn = 0;\n      } else {\n        w = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan));\n        extra.currentColumn = (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n      }\n      if (!isNaN(w)) {\n        width = node.w = w;\n      }\n    }\n    style.width = width !== \"\" ? measureToString(width) : \"auto\";\n    style.height = height !== \"\" ? measureToString(height) : \"auto\";\n  },\n  position(node, style) {\n    const parent = node[$getSubformParent]();\n    if (parent?.layout && parent.layout !== \"position\") {\n      return;\n    }\n    style.position = \"absolute\";\n    style.left = measureToString(node.x);\n    style.top = measureToString(node.y);\n  },\n  rotate(node, style) {\n    if (node.rotate) {\n      if (!(\"transform\" in style)) {\n        style.transform = \"\";\n      }\n      style.transform += `rotate(-${node.rotate}deg)`;\n      style.transformOrigin = \"top left\";\n    }\n  },\n  presence(node, style) {\n    switch (node.presence) {\n      case \"invisible\":\n        style.visibility = \"hidden\";\n        break;\n      case \"hidden\":\n      case \"inactive\":\n        style.display = \"none\";\n        break;\n    }\n  },\n  hAlign(node, style) {\n    if (node[$nodeName] === \"para\") {\n      switch (node.hAlign) {\n        case \"justifyAll\":\n          style.textAlign = \"justify-all\";\n          break;\n        case \"radix\":\n          style.textAlign = \"left\";\n          break;\n        default:\n          style.textAlign = node.hAlign;\n      }\n    } else {\n      switch (node.hAlign) {\n        case \"left\":\n          style.alignSelf = \"start\";\n          break;\n        case \"center\":\n          style.alignSelf = \"center\";\n          break;\n        case \"right\":\n          style.alignSelf = \"end\";\n          break;\n      }\n    }\n  },\n  margin(node, style) {\n    if (node.margin) {\n      style.margin = node.margin[$toStyle]().margin;\n    }\n  }\n};\nfunction setMinMaxDimensions(node, style) {\n  const parent = node[$getSubformParent]();\n  if (parent.layout === \"position\") {\n    if (node.minW > 0) {\n      style.minWidth = measureToString(node.minW);\n    }\n    if (node.maxW > 0) {\n      style.maxWidth = measureToString(node.maxW);\n    }\n    if (node.minH > 0) {\n      style.minHeight = measureToString(node.minH);\n    }\n    if (node.maxH > 0) {\n      style.maxHeight = measureToString(node.maxH);\n    }\n  }\n}\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n  const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n  if (typeof text === \"string\") {\n    measure.addString(text);\n  } else {\n    text[$pushGlyphs](measure);\n  }\n  return measure.compute(width);\n}\nfunction layoutNode(node, availableSpace) {\n  let height = null;\n  let width = null;\n  let isBroken = false;\n  if ((!node.w || !node.h) && node.value) {\n    let marginH = 0;\n    let marginV = 0;\n    if (node.margin) {\n      marginH = node.margin.leftInset + node.margin.rightInset;\n      marginV = node.margin.topInset + node.margin.bottomInset;\n    }\n    let lineHeight = null;\n    let margin = null;\n    if (node.para) {\n      margin = Object.create(null);\n      lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n      margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n      margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n      margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n      margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n    }\n    let font = node.font;\n    if (!font) {\n      const root = node[$getTemplateRoot]();\n      let parent = node[$getParent]();\n      while (parent && parent !== root) {\n        if (parent.font) {\n          font = parent.font;\n          break;\n        }\n        parent = parent[$getParent]();\n      }\n    }\n    const maxWidth = (node.w || availableSpace.width) - marginH;\n    const fontFinder = node[$globalData].fontFinder;\n    if (node.value.exData && node.value.exData[$content] && node.value.exData.contentType === \"text/html\") {\n      const res = layoutText(node.value.exData[$content], font, margin, lineHeight, fontFinder, maxWidth);\n      width = res.width;\n      height = res.height;\n      isBroken = res.isBroken;\n    } else {\n      const text = node.value[$text]();\n      if (text) {\n        const res = layoutText(text, font, margin, lineHeight, fontFinder, maxWidth);\n        width = res.width;\n        height = res.height;\n        isBroken = res.isBroken;\n      }\n    }\n    if (width !== null && !node.w) {\n      width += marginH;\n    }\n    if (height !== null && !node.h) {\n      height += marginV;\n    }\n  }\n  return {\n    w: width,\n    h: height,\n    isBroken\n  };\n}\nfunction computeBbox(node, html, availableSpace) {\n  let bbox;\n  if (node.w !== \"\" && node.h !== \"\") {\n    bbox = [node.x, node.y, node.w, node.h];\n  } else {\n    if (!availableSpace) {\n      return null;\n    }\n    let width = node.w;\n    if (width === \"\") {\n      if (node.maxW === 0) {\n        const parent = node[$getSubformParent]();\n        width = parent.layout === \"position\" && parent.w !== \"\" ? 0 : node.minW;\n      } else {\n        width = Math.min(node.maxW, availableSpace.width);\n      }\n      html.attributes.style.width = measureToString(width);\n    }\n    let height = node.h;\n    if (height === \"\") {\n      if (node.maxH === 0) {\n        const parent = node[$getSubformParent]();\n        height = parent.layout === \"position\" && parent.h !== \"\" ? 0 : node.minH;\n      } else {\n        height = Math.min(node.maxH, availableSpace.height);\n      }\n      html.attributes.style.height = measureToString(height);\n    }\n    bbox = [node.x, node.y, width, height];\n  }\n  return bbox;\n}\nfunction fixDimensions(node) {\n  const parent = node[$getSubformParent]();\n  if (parent.layout?.includes(\"row\")) {\n    const extra = parent[$extra];\n    const colSpan = node.colSpan;\n    let width;\n    if (colSpan === -1) {\n      width = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn));\n    } else {\n      width = Math.sumPrecise(extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan));\n    }\n    if (!isNaN(width)) {\n      node.w = width;\n    }\n  }\n  if (parent.layout && parent.layout !== \"position\") {\n    node.x = node.y = 0;\n  }\n  if (node.layout === \"table\") {\n    if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n      node.w = Math.sumPrecise(node.columnWidths);\n    }\n  }\n}\nfunction layoutClass(node) {\n  switch (node.layout) {\n    case \"position\":\n      return \"xfaPosition\";\n    case \"lr-tb\":\n      return \"xfaLrTb\";\n    case \"rl-row\":\n      return \"xfaRlRow\";\n    case \"rl-tb\":\n      return \"xfaRlTb\";\n    case \"row\":\n      return \"xfaRow\";\n    case \"table\":\n      return \"xfaTable\";\n    case \"tb\":\n      return \"xfaTb\";\n    default:\n      return \"xfaPosition\";\n  }\n}\nfunction toStyle(node, ...names) {\n  const style = Object.create(null);\n  for (const name of names) {\n    const value = node[name];\n    if (value === null) {\n      continue;\n    }\n    if (Object.hasOwn(converters, name)) {\n      converters[name](node, style);\n      continue;\n    }\n    if (value instanceof XFAObject) {\n      const newStyle = value[$toStyle]();\n      if (newStyle) {\n        Object.assign(style, newStyle);\n      } else {\n        warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n      }\n    }\n  }\n  return style;\n}\nfunction createWrapper(node, html) {\n  const {\n    attributes\n  } = html;\n  const {\n    style\n  } = attributes;\n  const wrapper = {\n    name: \"div\",\n    attributes: {\n      class: [\"xfaWrapper\"],\n      style: Object.create(null)\n    },\n    children: []\n  };\n  attributes.class.push(\"xfaWrapped\");\n  if (node.border) {\n    const {\n      widths,\n      insets\n    } = node.border[$extra];\n    let width, height;\n    let top = insets[0];\n    let left = insets[3];\n    const insetsH = insets[0] + insets[2];\n    const insetsW = insets[1] + insets[3];\n    switch (node.border.hand) {\n      case \"even\":\n        top -= widths[0] / 2;\n        left -= widths[3] / 2;\n        width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n        height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n        break;\n      case \"left\":\n        top -= widths[0];\n        left -= widths[3];\n        width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n        height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n        break;\n      case \"right\":\n        width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n        height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n        break;\n    }\n    const classNames = [\"xfaBorder\"];\n    if (isPrintOnly(node.border)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n    const border = {\n      name: \"div\",\n      attributes: {\n        class: classNames,\n        style: {\n          top: `${top}px`,\n          left: `${left}px`,\n          width,\n          height\n        }\n      },\n      children: []\n    };\n    for (const key of [\"border\", \"borderWidth\", \"borderColor\", \"borderRadius\", \"borderStyle\"]) {\n      if (style[key] !== undefined) {\n        border.attributes.style[key] = style[key];\n        delete style[key];\n      }\n    }\n    wrapper.children.push(border, html);\n  } else {\n    wrapper.children.push(html);\n  }\n  for (const key of [\"background\", \"backgroundClip\", \"top\", \"left\", \"width\", \"height\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\", \"transform\", \"transformOrigin\", \"visibility\"]) {\n    if (style[key] !== undefined) {\n      wrapper.attributes.style[key] = style[key];\n      delete style[key];\n    }\n  }\n  wrapper.attributes.style.position = style.position === \"absolute\" ? \"absolute\" : \"relative\";\n  delete style.position;\n  if (style.alignSelf) {\n    wrapper.attributes.style.alignSelf = style.alignSelf;\n    delete style.alignSelf;\n  }\n  return wrapper;\n}\nfunction fixTextIndent(styles) {\n  const indent = getMeasurement(styles.textIndent, \"0px\");\n  if (indent >= 0) {\n    return;\n  }\n  const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n  const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n  const padding = getMeasurement(styles[name], \"0px\");\n  styles[name] = `${padding - indent}px`;\n}\nfunction setAccess(node, classNames) {\n  switch (node.access) {\n    case \"nonInteractive\":\n      classNames.push(\"xfaNonInteractive\");\n      break;\n    case \"readOnly\":\n      classNames.push(\"xfaReadOnly\");\n      break;\n    case \"protected\":\n      classNames.push(\"xfaDisabled\");\n      break;\n  }\n}\nfunction isPrintOnly(node) {\n  return node.relevant.length > 0 && !node.relevant[0].excluded && node.relevant[0].viewname === \"print\";\n}\nfunction getCurrentPara(node) {\n  const stack = node[$getTemplateRoot]()[$extra].paraStack;\n  return stack.length ? stack.at(-1) : null;\n}\nfunction setPara(node, nodeStyle, value) {\n  if (value.attributes.class?.includes(\"xfaRich\")) {\n    if (nodeStyle) {\n      if (node.h === \"\") {\n        nodeStyle.height = \"auto\";\n      }\n      if (node.w === \"\") {\n        nodeStyle.width = \"auto\";\n      }\n    }\n    const para = getCurrentPara(node);\n    if (para) {\n      const valueStyle = value.attributes.style;\n      valueStyle.display = \"flex\";\n      valueStyle.flexDirection = \"column\";\n      switch (para.vAlign) {\n        case \"top\":\n          valueStyle.justifyContent = \"start\";\n          break;\n        case \"bottom\":\n          valueStyle.justifyContent = \"end\";\n          break;\n        case \"middle\":\n          valueStyle.justifyContent = \"center\";\n          break;\n      }\n      const paraStyle = para[$toStyle]();\n      for (const [key, val] of Object.entries(paraStyle)) {\n        if (!(key in valueStyle)) {\n          valueStyle[key] = val;\n        }\n      }\n    }\n  }\n}\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n  if (!fontFinder) {\n    delete style.fontFamily;\n    return;\n  }\n  const name = stripQuotes(xfaFont.typeface);\n  style.fontFamily = `\"${name}\"`;\n  const typeface = fontFinder.find(name);\n  if (typeface) {\n    const {\n      fontFamily\n    } = typeface.regular.cssFontInfo;\n    if (fontFamily !== name) {\n      style.fontFamily = `\"${fontFamily}\"`;\n    }\n    const para = getCurrentPara(node);\n    if (para && para.lineHeight !== \"\") {\n      return;\n    }\n    if (style.lineHeight) {\n      return;\n    }\n    const pdfFont = selectFont(xfaFont, typeface);\n    if (pdfFont) {\n      style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n    }\n  }\n}\nfunction fixURL(str) {\n  const absoluteUrl = createValidAbsoluteUrl(str, null, {\n    addDefaultProtocol: true,\n    tryConvertEncoding: true\n  });\n  return absoluteUrl ? absoluteUrl.href : null;\n}\n\n;// ./src/core/xfa/layout.js\n\n\n\n\n\nfunction createLine(node, children) {\n  return {\n    name: \"div\",\n    attributes: {\n      class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"]\n    },\n    children\n  };\n}\nfunction flushHTML(node) {\n  if (!node[$extra]) {\n    return null;\n  }\n  const attributes = node[$extra].attributes;\n  const html = {\n    name: \"div\",\n    attributes,\n    children: node[$extra].children\n  };\n  if (node[$extra].failingNode) {\n    const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n    if (htmlFromFailing) {\n      if (node.layout.endsWith(\"-tb\")) {\n        html.children.push(createLine(node, [htmlFromFailing]));\n      } else {\n        html.children.push(htmlFromFailing);\n      }\n    }\n  }\n  if (html.children.length === 0) {\n    return null;\n  }\n  return html;\n}\nfunction addHTML(node, html, bbox) {\n  const extra = node[$extra];\n  const availableSpace = extra.availableSpace;\n  const [x, y, w, h] = bbox;\n  switch (node.layout) {\n    case \"position\":\n      {\n        extra.width = Math.max(extra.width, x + w);\n        extra.height = Math.max(extra.height, y + h);\n        extra.children.push(html);\n        break;\n      }\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (!extra.line || extra.attempt === 1) {\n        extra.line = createLine(node, []);\n        extra.children.push(extra.line);\n        extra.numberInLine = 0;\n      }\n      extra.numberInLine += 1;\n      extra.line.children.push(html);\n      if (extra.attempt === 0) {\n        extra.currentWidth += w;\n        extra.height = Math.max(extra.height, extra.prevHeight + h);\n      } else {\n        extra.currentWidth = w;\n        extra.prevHeight = extra.height;\n        extra.height += h;\n        extra.attempt = 0;\n      }\n      extra.width = Math.max(extra.width, extra.currentWidth);\n      break;\n    case \"rl-row\":\n    case \"row\":\n      {\n        extra.children.push(html);\n        extra.width += w;\n        extra.height = Math.max(extra.height, h);\n        const height = measureToString(extra.height);\n        for (const child of extra.children) {\n          child.attributes.style.height = height;\n        }\n        break;\n      }\n    case \"table\":\n      {\n        extra.width = MathClamp(w, extra.width, availableSpace.width);\n        extra.height += h;\n        extra.children.push(html);\n        break;\n      }\n    case \"tb\":\n      {\n        extra.width = MathClamp(w, extra.width, availableSpace.width);\n        extra.height += h;\n        extra.children.push(html);\n        break;\n      }\n  }\n}\nfunction getAvailableSpace(node) {\n  const availableSpace = node[$extra].availableSpace;\n  const marginV = node.margin ? node.margin.topInset + node.margin.bottomInset : 0;\n  const marginH = node.margin ? node.margin.leftInset + node.margin.rightInset : 0;\n  switch (node.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (node[$extra].attempt === 0) {\n        return {\n          width: availableSpace.width - marginH - node[$extra].currentWidth,\n          height: availableSpace.height - marginV - node[$extra].prevHeight\n        };\n      }\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[$extra].height\n      };\n    case \"rl-row\":\n    case \"row\":\n      const width = Math.sumPrecise(node[$extra].columnWidths.slice(node[$extra].currentColumn));\n      return {\n        width,\n        height: availableSpace.height - marginH\n      };\n    case \"table\":\n    case \"tb\":\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[$extra].height\n      };\n    case \"position\":\n    default:\n      return availableSpace;\n  }\n}\nfunction getTransformedBBox(node) {\n  let w = node.w === \"\" ? NaN : node.w;\n  let h = node.h === \"\" ? NaN : node.h;\n  let [centerX, centerY] = [0, 0];\n  switch (node.anchorType || \"\") {\n    case \"bottomCenter\":\n      [centerX, centerY] = [w / 2, h];\n      break;\n    case \"bottomLeft\":\n      [centerX, centerY] = [0, h];\n      break;\n    case \"bottomRight\":\n      [centerX, centerY] = [w, h];\n      break;\n    case \"middleCenter\":\n      [centerX, centerY] = [w / 2, h / 2];\n      break;\n    case \"middleLeft\":\n      [centerX, centerY] = [0, h / 2];\n      break;\n    case \"middleRight\":\n      [centerX, centerY] = [w, h / 2];\n      break;\n    case \"topCenter\":\n      [centerX, centerY] = [w / 2, 0];\n      break;\n    case \"topRight\":\n      [centerX, centerY] = [w, 0];\n      break;\n  }\n  let x, y;\n  switch (node.rotate || 0) {\n    case 0:\n      [x, y] = [-centerX, -centerY];\n      break;\n    case 90:\n      [x, y] = [-centerY, centerX];\n      [w, h] = [h, -w];\n      break;\n    case 180:\n      [x, y] = [centerX, centerY];\n      [w, h] = [-w, -h];\n      break;\n    case 270:\n      [x, y] = [centerY, -centerX];\n      [w, h] = [-h, w];\n      break;\n  }\n  return [node.x + x + Math.min(0, w), node.y + y + Math.min(0, h), Math.abs(w), Math.abs(h)];\n}\nfunction checkDimensions(node, space) {\n  if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n    return true;\n  }\n  if (node.w === 0 || node.h === 0) {\n    return true;\n  }\n  const ERROR = 2;\n  const parent = node[$getSubformParent]();\n  const attempt = parent[$extra]?.attempt || 0;\n  const [, y, w, h] = getTransformedBBox(node);\n  switch (parent.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (attempt === 0) {\n        if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n          if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n            return false;\n          }\n          if (node.w !== \"\") {\n            if (Math.round(w - space.width) <= ERROR) {\n              return true;\n            }\n            if (parent[$extra].numberInLine === 0) {\n              return space.height > ERROR;\n            }\n            return false;\n          }\n          return space.width > ERROR;\n        }\n        if (node.w !== \"\") {\n          return Math.round(w - space.width) <= ERROR;\n        }\n        return space.width > ERROR;\n      }\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n      if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n        return false;\n      }\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n      if (parent[$isThereMoreWidth]()) {\n        return false;\n      }\n      return space.height > ERROR;\n    case \"table\":\n    case \"tb\":\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n      if (node.h !== \"\" && !node[$isSplittable]()) {\n        return Math.round(h - space.height) <= ERROR;\n      }\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n      if (parent[$isThereMoreWidth]()) {\n        return false;\n      }\n      return space.height > ERROR;\n    case \"position\":\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n      if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n        return true;\n      }\n      const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n      return h + y > area.h;\n    case \"rl-row\":\n    case \"row\":\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n      if (node.h !== \"\") {\n        return Math.round(h - space.height) <= ERROR;\n      }\n      return true;\n    default:\n      return true;\n  }\n}\n\n;// ./src/core/xfa/template.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\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\nconst MAX_EMPTY_PAGES = 3;\nconst DEFAULT_TAB_INDEX = 5000;\nconst HEADING_PATTERN = /^H(\\d+)$/;\nconst MIMES = new Set([\"image/gif\", \"image/jpeg\", \"image/jpg\", \"image/pjpeg\", \"image/png\", \"image/apng\", \"image/x-png\", \"image/bmp\", \"image/x-ms-bmp\", \"image/tiff\", \"image/tif\", \"application/octet-stream\"]);\nconst IMAGES_HEADERS = [[[0x42, 0x4d], \"image/bmp\"], [[0xff, 0xd8, 0xff], \"image/jpeg\"], [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"], [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"], [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"], [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"]];\nfunction getBorderDims(node) {\n  if (!node || !node.border) {\n    return {\n      w: 0,\n      h: 0\n    };\n  }\n  const borderExtra = node.border[$getExtra]();\n  if (!borderExtra) {\n    return {\n      w: 0,\n      h: 0\n    };\n  }\n  return {\n    w: borderExtra.widths[0] + borderExtra.widths[2] + borderExtra.insets[0] + borderExtra.insets[2],\n    h: borderExtra.widths[1] + borderExtra.widths[3] + borderExtra.insets[1] + borderExtra.insets[3]\n  };\n}\nfunction hasMargin(node) {\n  return node.margin && (node.margin.topInset || node.margin.rightInset || node.margin.bottomInset || node.margin.leftInset);\n}\nfunction _setValue(templateNode, value) {\n  if (!templateNode.value) {\n    const nodeValue = new Value({});\n    templateNode[$appendChild](nodeValue);\n    templateNode.value = nodeValue;\n  }\n  templateNode.value[$setValue](value);\n}\nfunction* getContainedChildren(node) {\n  for (const child of node[$getChildren]()) {\n    if (child instanceof SubformSet) {\n      yield* child[$getContainedChildren]();\n      continue;\n    }\n    yield child;\n  }\n}\nfunction isRequired(node) {\n  return node.validate?.nullTest === \"error\";\n}\nfunction setTabIndex(node) {\n  while (node) {\n    if (!node.traversal) {\n      node[$tabIndex] = node[$getParent]()[$tabIndex];\n      return;\n    }\n    if (node[$tabIndex]) {\n      return;\n    }\n    let next = null;\n    for (const child of node.traversal[$getChildren]()) {\n      if (child.operation === \"next\") {\n        next = child;\n        break;\n      }\n    }\n    if (!next || !next.ref) {\n      node[$tabIndex] = node[$getParent]()[$tabIndex];\n      return;\n    }\n    const root = node[$getTemplateRoot]();\n    node[$tabIndex] = ++root[$tabIndex];\n    const ref = root[$searchNode](next.ref, node);\n    if (!ref) {\n      return;\n    }\n    node = ref[0];\n  }\n}\nfunction applyAssist(obj, attributes) {\n  const assist = obj.assist;\n  if (assist) {\n    const assistTitle = assist[$toHTML]();\n    if (assistTitle) {\n      attributes.title = assistTitle;\n    }\n    const role = assist.role;\n    const match = role.match(HEADING_PATTERN);\n    if (match) {\n      const ariaRole = \"heading\";\n      const ariaLevel = match[1];\n      attributes.role = ariaRole;\n      attributes[\"aria-level\"] = ariaLevel;\n    }\n  }\n  if (obj.layout === \"table\") {\n    attributes.role = \"table\";\n  } else if (obj.layout === \"row\") {\n    attributes.role = \"row\";\n  } else {\n    const parent = obj[$getParent]();\n    if (parent.layout === \"row\") {\n      attributes.role = parent.assist?.role === \"TH\" ? \"columnheader\" : \"cell\";\n    }\n  }\n}\nfunction ariaLabel(obj) {\n  if (!obj.assist) {\n    return null;\n  }\n  const assist = obj.assist;\n  if (assist.speak && assist.speak[$content] !== \"\") {\n    return assist.speak[$content];\n  }\n  if (assist.toolTip) {\n    return assist.toolTip[$content];\n  }\n  return null;\n}\nfunction valueToHtml(value) {\n  return HTMLResult.success({\n    name: \"div\",\n    attributes: {\n      class: [\"xfaRich\"],\n      style: Object.create(null)\n    },\n    children: [{\n      name: \"span\",\n      attributes: {\n        style: Object.create(null)\n      },\n      value\n    }]\n  });\n}\nfunction setFirstUnsplittable(node) {\n  const root = node[$getTemplateRoot]();\n  if (root[$extra].firstUnsplittable === null) {\n    root[$extra].firstUnsplittable = node;\n    root[$extra].noLayoutFailure = true;\n  }\n}\nfunction unsetFirstUnsplittable(node) {\n  const root = node[$getTemplateRoot]();\n  if (root[$extra].firstUnsplittable === node) {\n    root[$extra].noLayoutFailure = false;\n  }\n}\nfunction handleBreak(node) {\n  if (node[$extra]) {\n    return false;\n  }\n  node[$extra] = Object.create(null);\n  if (node.targetType === \"auto\") {\n    return false;\n  }\n  const root = node[$getTemplateRoot]();\n  let target = null;\n  if (node.target) {\n    target = root[$searchNode](node.target, node[$getParent]());\n    if (!target) {\n      return false;\n    }\n    target = target[0];\n  }\n  const {\n    currentPageArea,\n    currentContentArea\n  } = root[$extra];\n  if (node.targetType === \"pageArea\") {\n    if (!(target instanceof PageArea)) {\n      target = null;\n    }\n    if (node.startNew) {\n      node[$extra].target = target || currentPageArea;\n      return true;\n    } else if (target && target !== currentPageArea) {\n      node[$extra].target = target;\n      return true;\n    }\n    return false;\n  }\n  if (!(target instanceof ContentArea)) {\n    target = null;\n  }\n  const pageArea = target && target[$getParent]();\n  let index;\n  let nextPageArea = pageArea;\n  if (node.startNew) {\n    if (target) {\n      const contentAreas = pageArea.contentArea.children;\n      const indexForCurrent = contentAreas.indexOf(currentContentArea);\n      const indexForTarget = contentAreas.indexOf(target);\n      if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n        nextPageArea = null;\n      }\n      index = indexForTarget - 1;\n    } else {\n      index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n    }\n  } else if (target && target !== currentContentArea) {\n    const contentAreas = pageArea.contentArea.children;\n    index = contentAreas.indexOf(target) - 1;\n    nextPageArea = pageArea === currentPageArea ? null : pageArea;\n  } else {\n    return false;\n  }\n  node[$extra].target = nextPageArea;\n  node[$extra].index = index;\n  return true;\n}\nfunction handleOverflow(node, extraNode, space) {\n  const root = node[$getTemplateRoot]();\n  const saved = root[$extra].noLayoutFailure;\n  const savedMethod = extraNode[$getSubformParent];\n  extraNode[$getSubformParent] = () => node;\n  root[$extra].noLayoutFailure = true;\n  const res = extraNode[$toHTML](space);\n  node[$addHTML](res.html, res.bbox);\n  root[$extra].noLayoutFailure = saved;\n  extraNode[$getSubformParent] = savedMethod;\n}\nclass AppearanceFilter extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"appearanceFilter\");\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Arc extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"arc\", true);\n    this.circular = getInteger({\n      data: attributes.circular,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.startAngle = getFloat({\n      data: attributes.startAngle,\n      defaultValue: 0,\n      validate: x => true\n    });\n    this.sweepAngle = getFloat({\n      data: attributes.sweepAngle,\n      defaultValue: 360,\n      validate: x => true\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n    this.fill = null;\n  }\n  [$toHTML]() {\n    const edge = this.edge || new Edge({});\n    const edgeStyle = edge[$toStyle]();\n    const style = Object.create(null);\n    if (this.fill?.presence === \"visible\") {\n      Object.assign(style, this.fill[$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n    style.strokeWidth = measureToString(edge.presence === \"visible\" ? edge.thickness : 0);\n    style.stroke = edgeStyle.color;\n    let arc;\n    const attributes = {\n      xmlns: SVG_NS,\n      style: {\n        width: \"100%\",\n        height: \"100%\",\n        overflow: \"visible\"\n      }\n    };\n    if (this.sweepAngle === 360) {\n      arc = {\n        name: \"ellipse\",\n        attributes: {\n          xmlns: SVG_NS,\n          cx: \"50%\",\n          cy: \"50%\",\n          rx: \"50%\",\n          ry: \"50%\",\n          style\n        }\n      };\n    } else {\n      const startAngle = this.startAngle * Math.PI / 180;\n      const sweepAngle = this.sweepAngle * Math.PI / 180;\n      const largeArc = this.sweepAngle > 180 ? 1 : 0;\n      const [x1, y1, x2, y2] = [50 * (1 + Math.cos(startAngle)), 50 * (1 - Math.sin(startAngle)), 50 * (1 + Math.cos(startAngle + sweepAngle)), 50 * (1 - Math.sin(startAngle + sweepAngle))];\n      arc = {\n        name: \"path\",\n        attributes: {\n          xmlns: SVG_NS,\n          d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n          vectorEffect: \"non-scaling-stroke\",\n          style\n        }\n      };\n      Object.assign(attributes, {\n        viewBox: \"0 0 100 100\",\n        preserveAspectRatio: \"none\"\n      });\n    }\n    const svg = {\n      name: \"svg\",\n      children: [arc],\n      attributes\n    };\n    const parent = this[$getParent]()[$getParent]();\n    if (hasMargin(parent)) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n    svg.attributes.style.position = \"absolute\";\n    return HTMLResult.success(svg);\n  }\n}\nclass Area extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"area\", true);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n    this.area = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n  }\n  *[$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n  [$isTransparent]() {\n    return true;\n  }\n  [$isBindable]() {\n    return true;\n  }\n  [$addHTML](html, bbox) {\n    const [x, y, w, h] = bbox;\n    this[$extra].width = Math.max(this[$extra].width, x + w);\n    this[$extra].height = Math.max(this[$extra].height, y + h);\n    this[$extra].children.push(html);\n  }\n  [$getAvailableSpace]() {\n    return this[$extra].availableSpace;\n  }\n  [$toHTML](availableSpace) {\n    const style = toStyle(this, \"position\");\n    const attributes = {\n      style,\n      id: this[$uid],\n      class: [\"xfaArea\"]\n    };\n    if (isPrintOnly(this)) {\n      attributes.class.push(\"xfaPrintOnly\");\n    }\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n    const children = [];\n    this[$extra] = {\n      children,\n      width: 0,\n      height: 0,\n      availableSpace\n    };\n    const result = this[$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"exclGroup\", \"subform\", \"subformSet\"]),\n      include: true\n    });\n    if (!result.success) {\n      if (result.isBreak()) {\n        return result;\n      }\n      delete this[$extra];\n      return HTMLResult.FAILURE;\n    }\n    style.width = measureToString(this[$extra].width);\n    style.height = measureToString(this[$extra].height);\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n    delete this[$extra];\n    return HTMLResult.success(html, bbox);\n  }\n}\nclass Assist extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"assist\", true);\n    this.id = attributes.id || \"\";\n    this.role = attributes.role || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.speak = null;\n    this.toolTip = null;\n  }\n  [$toHTML]() {\n    return this.toolTip?.[$content] || null;\n  }\n}\nclass Barcode extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"barcode\", true);\n    this.charEncoding = getKeyword({\n      data: attributes.charEncoding ? attributes.charEncoding.toLowerCase() : \"\",\n      defaultValue: \"\",\n      validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-\\d{2}/)\n    });\n    this.checksum = getStringOption(attributes.checksum, [\"none\", \"1mod10\", \"1mod10_1mod11\", \"2mod10\", \"auto\"]);\n    this.dataColumnCount = getInteger({\n      data: attributes.dataColumnCount,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.dataLength = getInteger({\n      data: attributes.dataLength,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.dataPrep = getStringOption(attributes.dataPrep, [\"none\", \"flateCompress\"]);\n    this.dataRowCount = getInteger({\n      data: attributes.dataRowCount,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.endChar = attributes.endChar || \"\";\n    this.errorCorrectionLevel = getInteger({\n      data: attributes.errorCorrectionLevel,\n      defaultValue: -1,\n      validate: x => x >= 0 && x <= 8\n    });\n    this.id = attributes.id || \"\";\n    this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n    this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n    this.printCheckDigit = getInteger({\n      data: attributes.printCheckDigit,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n    this.startChar = attributes.startChar || \"\";\n    this.textLocation = getStringOption(attributes.textLocation, [\"below\", \"above\", \"aboveEmbedded\", \"belowEmbedded\", \"none\"]);\n    this.truncate = getInteger({\n      data: attributes.truncate,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.type = getStringOption(attributes.type ? attributes.type.toLowerCase() : \"\", [\"aztec\", \"codabar\", \"code2of5industrial\", \"code2of5interleaved\", \"code2of5matrix\", \"code2of5standard\", \"code3of9\", \"code3of9extended\", \"code11\", \"code49\", \"code93\", \"code128\", \"code128a\", \"code128b\", \"code128c\", \"code128sscc\", \"datamatrix\", \"ean8\", \"ean8add2\", \"ean8add5\", \"ean13\", \"ean13add2\", \"ean13add5\", \"ean13pwcd\", \"fim\", \"logmars\", \"maxicode\", \"msi\", \"pdf417\", \"pdf417macro\", \"plessey\", \"postauscust2\", \"postauscust3\", \"postausreplypaid\", \"postausstandard\", \"postukrm4scc\", \"postusdpbc\", \"postusimb\", \"postusstandard\", \"postus5zip\", \"qrcode\", \"rfid\", \"rss14\", \"rss14expanded\", \"rss14limited\", \"rss14stacked\", \"rss14stackedomni\", \"rss14truncated\", \"telepen\", \"ucc128\", \"ucc128random\", \"ucc128sscc\", \"upca\", \"upcaadd2\", \"upcaadd5\", \"upcapwcd\", \"upce\", \"upceadd2\", \"upceadd5\", \"upcean2\", \"upcean5\", \"upsmaxicode\"]);\n    this.upsMode = getStringOption(attributes.upsMode, [\"usCarrier\", \"internationalCarrier\", \"secureSymbol\", \"standardSymbol\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n    this.encrypt = null;\n    this.extras = null;\n  }\n}\nclass Bind extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bind\", true);\n    this.match = getStringOption(attributes.match, [\"once\", \"dataRef\", \"global\", \"none\"]);\n    this.ref = attributes.ref || \"\";\n    this.picture = null;\n  }\n}\nclass BindItems extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bindItems\");\n    this.connection = attributes.connection || \"\";\n    this.labelRef = attributes.labelRef || \"\";\n    this.ref = attributes.ref || \"\";\n    this.valueRef = attributes.valueRef || \"\";\n  }\n}\nclass Bookend extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bookend\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass BooleanElement extends Option01 {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"boolean\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n  }\n}\nclass Border extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"border\", true);\n    this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new XFAObjectArray(4);\n    this.edge = new XFAObjectArray(4);\n    this.extras = null;\n    this.fill = null;\n    this.margin = null;\n  }\n  [$getExtra]() {\n    if (!this[$extra]) {\n      const edges = this.edge.children.slice();\n      if (edges.length < 4) {\n        const defaultEdge = edges.at(-1) || new Edge({});\n        for (let i = edges.length; i < 4; i++) {\n          edges.push(defaultEdge);\n        }\n      }\n      const widths = edges.map(edge => edge.thickness);\n      const insets = [0, 0, 0, 0];\n      if (this.margin) {\n        insets[0] = this.margin.topInset;\n        insets[1] = this.margin.rightInset;\n        insets[2] = this.margin.bottomInset;\n        insets[3] = this.margin.leftInset;\n      }\n      this[$extra] = {\n        widths,\n        insets,\n        edges\n      };\n    }\n    return this[$extra];\n  }\n  [$toStyle]() {\n    const {\n      edges\n    } = this[$getExtra]();\n    const edgeStyles = edges.map(node => {\n      const style = node[$toStyle]();\n      style.color ||= \"#000000\";\n      return style;\n    });\n    const style = Object.create(null);\n    if (this.margin) {\n      Object.assign(style, this.margin[$toStyle]());\n    }\n    if (this.fill?.presence === \"visible\") {\n      Object.assign(style, this.fill[$toStyle]());\n    }\n    if (this.corner.children.some(node => node.radius !== 0)) {\n      const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n      if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n        const last = cornerStyles.at(-1);\n        for (let i = cornerStyles.length; i < 4; i++) {\n          cornerStyles.push(last);\n        }\n      }\n      style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n    }\n    switch (this.presence) {\n      case \"invisible\":\n      case \"hidden\":\n        style.borderStyle = \"\";\n        break;\n      case \"inactive\":\n        style.borderStyle = \"none\";\n        break;\n      default:\n        style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n        break;\n    }\n    style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n    style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n    return style;\n  }\n}\nclass Break extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"break\", true);\n    this.after = getStringOption(attributes.after, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n    this.afterTarget = attributes.afterTarget || \"\";\n    this.before = getStringOption(attributes.before, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n    this.beforeTarget = attributes.beforeTarget || \"\";\n    this.bookendLeader = attributes.bookendLeader || \"\";\n    this.bookendTrailer = attributes.bookendTrailer || \"\";\n    this.id = attributes.id || \"\";\n    this.overflowLeader = attributes.overflowLeader || \"\";\n    this.overflowTarget = attributes.overflowTarget || \"\";\n    this.overflowTrailer = attributes.overflowTrailer || \"\";\n    this.startNew = getInteger({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n}\nclass BreakAfter extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakAfter\", true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = getInteger({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = getStringOption(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\"]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n}\nclass BreakBefore extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakBefore\", true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = getInteger({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = getStringOption(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\"]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n  [$toHTML](availableSpace) {\n    this[$extra] = {};\n    return HTMLResult.FAILURE;\n  }\n}\nclass Button extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"button\", true);\n    this.highlight = getStringOption(attributes.highlight, [\"inverted\", \"none\", \"outline\", \"push\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n  [$toHTML](availableSpace) {\n    const parent = this[$getParent]();\n    const grandpa = parent[$getParent]();\n    const htmlButton = {\n      name: \"button\",\n      attributes: {\n        id: this[$uid],\n        class: [\"xfaButton\"],\n        style: {}\n      },\n      children: []\n    };\n    for (const event of grandpa.event.children) {\n      if (event.activity !== \"click\" || !event.script) {\n        continue;\n      }\n      const jsURL = recoverJsURL(event.script[$content]);\n      if (!jsURL) {\n        continue;\n      }\n      const href = fixURL(jsURL.url);\n      if (!href) {\n        continue;\n      }\n      htmlButton.children.push({\n        name: \"a\",\n        attributes: {\n          id: \"link\" + this[$uid],\n          href,\n          newWindow: jsURL.newWindow,\n          class: [\"xfaLink\"],\n          style: {}\n        },\n        children: []\n      });\n    }\n    return HTMLResult.success(htmlButton);\n  }\n}\nclass Calculate extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"calculate\", true);\n    this.id = attributes.id || \"\";\n    this.override = getStringOption(attributes.override, [\"disabled\", \"error\", \"ignore\", \"warning\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.script = null;\n  }\n}\nclass Caption extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"caption\", true);\n    this.id = attributes.id || \"\";\n    this.placement = getStringOption(attributes.placement, [\"left\", \"bottom\", \"inline\", \"right\", \"top\"]);\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.font = null;\n    this.margin = null;\n    this.para = null;\n    this.value = null;\n  }\n  [$setValue](value) {\n    _setValue(this, value);\n  }\n  [$getExtra](availableSpace) {\n    if (!this[$extra]) {\n      let {\n        width,\n        height\n      } = availableSpace;\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          width = this.reserve <= 0 ? width : this.reserve;\n          break;\n        case \"top\":\n        case \"bottom\":\n          height = this.reserve <= 0 ? height : this.reserve;\n          break;\n      }\n      this[$extra] = layoutNode(this, {\n        width,\n        height\n      });\n    }\n    return this[$extra];\n  }\n  [$toHTML](availableSpace) {\n    if (!this.value) {\n      return HTMLResult.EMPTY;\n    }\n    this[$pushPara]();\n    const value = this.value[$toHTML](availableSpace).html;\n    if (!value) {\n      this[$popPara]();\n      return HTMLResult.EMPTY;\n    }\n    const savedReserve = this.reserve;\n    if (this.reserve <= 0) {\n      const {\n        w,\n        h\n      } = this[$getExtra](availableSpace);\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          this.reserve = w;\n          break;\n        case \"top\":\n        case \"bottom\":\n          this.reserve = h;\n          break;\n      }\n    }\n    const children = [];\n    if (typeof value === \"string\") {\n      children.push({\n        name: \"#text\",\n        value\n      });\n    } else {\n      children.push(value);\n    }\n    const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n    switch (this.placement) {\n      case \"left\":\n      case \"right\":\n        if (this.reserve > 0) {\n          style.width = measureToString(this.reserve);\n        }\n        break;\n      case \"top\":\n      case \"bottom\":\n        if (this.reserve > 0) {\n          style.height = measureToString(this.reserve);\n        }\n        break;\n    }\n    setPara(this, null, value);\n    this[$popPara]();\n    this.reserve = savedReserve;\n    return HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        style,\n        class: [\"xfaCaption\"]\n      },\n      children\n    });\n  }\n}\nclass Certificate extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificate\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Certificates extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificates\", true);\n    this.credentialServerPolicy = getStringOption(attributes.credentialServerPolicy, [\"optional\", \"required\"]);\n    this.id = attributes.id || \"\";\n    this.url = attributes.url || \"\";\n    this.urlPolicy = attributes.urlPolicy || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryption = null;\n    this.issuers = null;\n    this.keyUsage = null;\n    this.oids = null;\n    this.signing = null;\n    this.subjectDNs = null;\n  }\n}\nclass CheckButton extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"checkButton\", true);\n    this.id = attributes.id || \"\";\n    this.mark = getStringOption(attributes.mark, [\"default\", \"check\", \"circle\", \"cross\", \"diamond\", \"square\", \"star\"]);\n    this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n    this.size = getMeasurement(attributes.size, \"10pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n  [$toHTML](availableSpace) {\n    const style = toStyle(this, \"margin\");\n    const size = measureToString(this.size);\n    style.width = style.height = size;\n    let type;\n    let className;\n    let groupId;\n    const field = this[$getParent]()[$getParent]();\n    const items = field.items.children.length && field.items.children[0][$toHTML]().html || [];\n    const exportedValue = {\n      on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n      off: (items[1] !== undefined ? items[1] : \"off\").toString()\n    };\n    const value = field.value?.[$text]() || \"off\";\n    const checked = value === exportedValue.on || undefined;\n    const container = field[$getSubformParent]();\n    const fieldId = field[$uid];\n    let dataId;\n    if (container instanceof ExclGroup) {\n      groupId = container[$uid];\n      type = \"radio\";\n      className = \"xfaRadio\";\n      dataId = container[$data]?.[$uid] || container[$uid];\n    } else {\n      type = \"checkbox\";\n      className = \"xfaCheckbox\";\n      dataId = field[$data]?.[$uid] || field[$uid];\n    }\n    const input = {\n      name: \"input\",\n      attributes: {\n        class: [className],\n        style,\n        fieldId,\n        dataId,\n        type,\n        checked,\n        xfaOn: exportedValue.on,\n        xfaOff: exportedValue.off,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n    if (groupId) {\n      input.attributes.name = groupId;\n    }\n    if (isRequired(field)) {\n      input.attributes[\"aria-required\"] = true;\n      input.attributes.required = true;\n    }\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [input]\n    });\n  }\n}\nclass ChoiceList extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"choiceList\", true);\n    this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n    this.id = attributes.id || \"\";\n    this.open = getStringOption(attributes.open, [\"userControl\", \"always\", \"multiSelect\", \"onEntry\"]);\n    this.textEntry = getInteger({\n      data: attributes.textEntry,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n  [$toHTML](availableSpace) {\n    const style = toStyle(this, \"border\", \"margin\");\n    const ui = this[$getParent]();\n    const field = ui[$getParent]();\n    const fontSize = field.font?.size || 10;\n    const optionStyle = {\n      fontSize: `calc(${fontSize}px * var(--total-scale-factor))`\n    };\n    const children = [];\n    if (field.items.children.length > 0) {\n      const items = field.items;\n      let displayedIndex = 0;\n      let saveIndex = 0;\n      if (items.children.length === 2) {\n        displayedIndex = items.children[0].save;\n        saveIndex = 1 - displayedIndex;\n      }\n      const displayed = items.children[displayedIndex][$toHTML]().html;\n      const values = items.children[saveIndex][$toHTML]().html;\n      let selected = false;\n      const value = field.value?.[$text]() || \"\";\n      for (let i = 0, ii = displayed.length; i < ii; i++) {\n        const option = {\n          name: \"option\",\n          attributes: {\n            value: values[i] || displayed[i],\n            style: optionStyle\n          },\n          value: displayed[i]\n        };\n        if (values[i] === value) {\n          option.attributes.selected = selected = true;\n        }\n        children.push(option);\n      }\n      if (!selected) {\n        children.splice(0, 0, {\n          name: \"option\",\n          attributes: {\n            hidden: true,\n            selected: true\n          },\n          value: \" \"\n        });\n      }\n    }\n    const selectAttributes = {\n      class: [\"xfaSelect\"],\n      fieldId: field[$uid],\n      dataId: field[$data]?.[$uid] || field[$uid],\n      style,\n      \"aria-label\": ariaLabel(field),\n      \"aria-required\": false\n    };\n    if (isRequired(field)) {\n      selectAttributes[\"aria-required\"] = true;\n      selectAttributes.required = true;\n    }\n    if (this.open === \"multiSelect\") {\n      selectAttributes.multiple = true;\n    }\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [{\n        name: \"select\",\n        children,\n        attributes: selectAttributes\n      }]\n    });\n  }\n}\nclass Color extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"color\", true);\n    this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.value = attributes.value ? getColor(attributes.value) : \"\";\n    this.extras = null;\n  }\n  [$hasSettableValue]() {\n    return false;\n  }\n  [$toStyle]() {\n    return this.value ? Util.makeHexColor(this.value.r, this.value.g, this.value.b) : null;\n  }\n}\nclass Comb extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"comb\");\n    this.id = attributes.id || \"\";\n    this.numberOfCells = getInteger({\n      data: attributes.numberOfCells,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Connect extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"connect\", true);\n    this.connection = attributes.connection || \"\";\n    this.id = attributes.id || \"\";\n    this.ref = attributes.ref || \"\";\n    this.usage = getStringOption(attributes.usage, [\"exportAndImport\", \"exportOnly\", \"importOnly\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.picture = null;\n  }\n}\nclass ContentArea extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"contentArea\", true);\n    this.h = getMeasurement(attributes.h);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = getMeasurement(attributes.w);\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n  }\n  [$toHTML](availableSpace) {\n    const left = measureToString(this.x);\n    const top = measureToString(this.y);\n    const style = {\n      left,\n      top,\n      width: measureToString(this.w),\n      height: measureToString(this.h)\n    };\n    const classNames = [\"xfaContentarea\"];\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n    return HTMLResult.success({\n      name: \"div\",\n      children: [],\n      attributes: {\n        style,\n        class: classNames,\n        id: this[$uid]\n      }\n    });\n  }\n}\nclass Corner extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"corner\", true);\n    this.id = attributes.id || \"\";\n    this.inverted = getInteger({\n      data: attributes.inverted,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.radius = getMeasurement(attributes.radius);\n    this.stroke = getStringOption(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n    this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n  [$toStyle]() {\n    const style = toStyle(this, \"visibility\");\n    style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n    return style;\n  }\n}\nclass DateElement extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"date\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    const date = this[$content].trim();\n    this[$content] = date ? new Date(date) : null;\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n  }\n}\nclass DateTime extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTime\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    const date = this[$content].trim();\n    this[$content] = date ? new Date(date) : null;\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n  }\n}\nclass DateTimeEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTimeEdit\", true);\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n  [$toHTML](availableSpace) {\n    const style = toStyle(this, \"border\", \"font\", \"margin\");\n    const field = this[$getParent]()[$getParent]();\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[$uid],\n        dataId: field[$data]?.[$uid] || field[$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n}\nclass Decimal extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"decimal\");\n    this.fracDigits = getInteger({\n      data: attributes.fracDigits,\n      defaultValue: 2,\n      validate: x => true\n    });\n    this.id = attributes.id || \"\";\n    this.leadDigits = getInteger({\n      data: attributes.leadDigits,\n      defaultValue: -1,\n      validate: x => true\n    });\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    const number = parseFloat(this[$content].trim());\n    this[$content] = isNaN(number) ? null : number;\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] !== null ? this[$content].toString() : \"\");\n  }\n}\nclass DefaultUi extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"defaultUi\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n}\nclass Desc extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"desc\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n}\nclass DigestMethod extends OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethod\", [\"\", \"SHA1\", \"SHA256\", \"SHA512\", \"RIPEMD160\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass DigestMethods extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethods\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.digestMethod = new XFAObjectArray();\n  }\n}\nclass Draw extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"draw\", true);\n    this.anchorType = getStringOption(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.rotate = getInteger({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.border = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.value = null;\n    this.setProperty = new XFAObjectArray();\n  }\n  [$setValue](value) {\n    _setValue(this, value);\n  }\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return HTMLResult.EMPTY;\n    }\n    fixDimensions(this);\n    this[$pushPara]();\n    const savedW = this.w;\n    const savedH = this.h;\n    const {\n      w,\n      h,\n      isBroken\n    } = layoutNode(this, availableSpace);\n    if (w && this.w === \"\") {\n      if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n        this[$popPara]();\n        return HTMLResult.FAILURE;\n      }\n      this.w = w;\n    }\n    if (h && this.h === \"\") {\n      this.h = h;\n    }\n    setFirstUnsplittable(this);\n    if (!checkDimensions(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n      this[$popPara]();\n      return HTMLResult.FAILURE;\n    }\n    unsetFirstUnsplittable(this);\n    const style = toStyle(this, \"font\", \"hAlign\", \"dimensions\", \"position\", \"presence\", \"rotate\", \"anchorType\", \"border\", \"margin\");\n    setMinMaxDimensions(this, style);\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n    const classNames = [\"xfaDraw\"];\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n    const attributes = {\n      style,\n      id: this[$uid],\n      class: classNames\n    };\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n    const html = {\n      name: \"div\",\n      attributes,\n      children: []\n    };\n    applyAssist(this, attributes);\n    const bbox = computeBbox(this, html, availableSpace);\n    const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n    if (value === null) {\n      this.w = savedW;\n      this.h = savedH;\n      this[$popPara]();\n      return HTMLResult.success(createWrapper(this, html), bbox);\n    }\n    html.children.push(value);\n    setPara(this, style, value);\n    this.w = savedW;\n    this.h = savedH;\n    this[$popPara]();\n    return HTMLResult.success(createWrapper(this, html), bbox);\n  }\n}\nclass Edge extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"edge\", true);\n    this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n    this.id = attributes.id || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.stroke = getStringOption(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n    this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n  [$toStyle]() {\n    const style = toStyle(this, \"visibility\");\n    Object.assign(style, {\n      linecap: this.cap,\n      width: measureToString(this.thickness),\n      color: this.color ? this.color[$toStyle]() : \"#000000\",\n      style: \"\"\n    });\n    if (this.presence !== \"visible\") {\n      style.style = \"none\";\n    } else {\n      switch (this.stroke) {\n        case \"solid\":\n          style.style = \"solid\";\n          break;\n        case \"dashDot\":\n          style.style = \"dashed\";\n          break;\n        case \"dashDotDot\":\n          style.style = \"dashed\";\n          break;\n        case \"dashed\":\n          style.style = \"dashed\";\n          break;\n        case \"dotted\":\n          style.style = \"dotted\";\n          break;\n        case \"embossed\":\n          style.style = \"ridge\";\n          break;\n        case \"etched\":\n          style.style = \"groove\";\n          break;\n        case \"lowered\":\n          style.style = \"inset\";\n          break;\n        case \"raised\":\n          style.style = \"outset\";\n          break;\n      }\n    }\n    return style;\n  }\n}\nclass Encoding extends OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encoding\", [\"adbe.x509.rsa_sha1\", \"adbe.pkcs7.detached\", \"adbe.pkcs7.sha1\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Encodings extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encodings\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encoding = new XFAObjectArray();\n  }\n}\nclass Encrypt extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encrypt\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = null;\n  }\n}\nclass EncryptData extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptData\", true);\n    this.id = attributes.id || \"\";\n    this.operation = getStringOption(attributes.operation, [\"encrypt\", \"decrypt\"]);\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n}\nclass Encryption extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryption\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new XFAObjectArray();\n  }\n}\nclass EncryptionMethod extends OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethod\", [\"\", \"AES256-CBC\", \"TRIPLEDES-CBC\", \"AES128-CBC\", \"AES192-CBC\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass EncryptionMethods extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethods\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryptionMethod = new XFAObjectArray();\n  }\n}\nclass Event extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"event\", true);\n    this.activity = getStringOption(attributes.activity, [\"click\", \"change\", \"docClose\", \"docReady\", \"enter\", \"exit\", \"full\", \"indexChange\", \"initialize\", \"mouseDown\", \"mouseEnter\", \"mouseExit\", \"mouseUp\", \"postExecute\", \"postOpen\", \"postPrint\", \"postSave\", \"postSign\", \"postSubmit\", \"preExecute\", \"preOpen\", \"prePrint\", \"preSave\", \"preSign\", \"preSubmit\", \"ready\", \"validationState\"]);\n    this.id = attributes.id || \"\";\n    this.listen = getStringOption(attributes.listen, [\"refOnly\", \"refAndDescendents\"]);\n    this.name = attributes.name || \"\";\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.encryptData = null;\n    this.execute = null;\n    this.script = null;\n    this.signData = null;\n    this.submit = null;\n  }\n}\nclass ExData extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exData\");\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.maxLength = getInteger({\n      data: attributes.maxLength,\n      defaultValue: -1,\n      validate: x => x >= -1\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.transferEncoding = getStringOption(attributes.transferEncoding, [\"none\", \"base64\", \"package\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$isCDATAXml]() {\n    return this.contentType === \"text/html\";\n  }\n  [$onChild](child) {\n    if (this.contentType === \"text/html\" && child[$namespaceId] === NamespaceIds.xhtml.id) {\n      this[$content] = child;\n      return true;\n    }\n    if (this.contentType === \"text/xml\") {\n      this[$content] = child;\n      return true;\n    }\n    return false;\n  }\n  [$toHTML](availableSpace) {\n    if (this.contentType !== \"text/html\" || !this[$content]) {\n      return HTMLResult.EMPTY;\n    }\n    return this[$content][$toHTML](availableSpace);\n  }\n}\nclass ExObject extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exObject\", true);\n    this.archive = attributes.archive || \"\";\n    this.classId = attributes.classId || \"\";\n    this.codeBase = attributes.codeBase || \"\";\n    this.codeType = attributes.codeType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n}\nclass ExclGroup extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exclGroup\", true);\n    this.access = getStringOption(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = getStringOption(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.layout = getStringOption(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.connect = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n  }\n  [$isBindable]() {\n    return true;\n  }\n  [$hasSettableValue]() {\n    return true;\n  }\n  [$setValue](value) {\n    for (const field of this.field.children) {\n      if (!field.value) {\n        const nodeValue = new Value({});\n        field[$appendChild](nodeValue);\n        field.value = nodeValue;\n      }\n      field.value[$setValue](value);\n    }\n  }\n  [$isThereMoreWidth]() {\n    return this.layout.endsWith(\"-tb\") && this[$extra].attempt === 0 && this[$extra].numberInLine > 0 || this[$getParent]()[$isThereMoreWidth]();\n  }\n  [$isSplittable]() {\n    const parent = this[$getSubformParent]();\n    if (!parent[$isSplittable]()) {\n      return false;\n    }\n    if (this[$extra]._isSplittable !== undefined) {\n      return this[$extra]._isSplittable;\n    }\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[$extra]._isSplittable = false;\n      return false;\n    }\n    if (parent.layout?.endsWith(\"-tb\") && parent[$extra].numberInLine !== 0) {\n      return false;\n    }\n    this[$extra]._isSplittable = true;\n    return true;\n  }\n  [$flushHTML]() {\n    return flushHTML(this);\n  }\n  [$addHTML](html, bbox) {\n    addHTML(this, html, bbox);\n  }\n  [$getAvailableSpace]() {\n    return getAvailableSpace(this);\n  }\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n    if (this.presence === \"hidden\" || this.presence === \"inactive\" || this.h === 0 || this.w === 0) {\n      return HTMLResult.EMPTY;\n    }\n    fixDimensions(this);\n    const children = [];\n    const attributes = {\n      id: this[$uid],\n      class: []\n    };\n    setAccess(this, attributes.class);\n    this[$extra] ||= Object.create(null);\n    Object.assign(this[$extra], {\n      children,\n      attributes,\n      attempt: 0,\n      line: null,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height)\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0\n    });\n    const isSplittable = this[$isSplittable]();\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n    if (!checkDimensions(this, availableSpace)) {\n      return HTMLResult.FAILURE;\n    }\n    const filter = new Set([\"field\"]);\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[$getSubformParent]().columnWidths;\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[$extra].columnWidths = columnWidths;\n        this[$extra].currentColumn = 0;\n      }\n    }\n    const style = toStyle(this, \"anchorType\", \"dimensions\", \"position\", \"presence\", \"border\", \"margin\", \"hAlign\");\n    const classNames = [\"xfaExclgroup\"];\n    const cl = layoutClass(this);\n    if (cl) {\n      classNames.push(cl);\n    }\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n    attributes.style = style;\n    attributes.class = classNames;\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n    this[$pushPara]();\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n    for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n      if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        this[$extra].numberInLine = 0;\n      }\n      const result = this[$childrenToHTML]({\n        filter,\n        include: true\n      });\n      if (result.success) {\n        break;\n      }\n      if (result.isBreak()) {\n        this[$popPara]();\n        return result;\n      }\n      if (isLrTb && this[$extra].attempt === 0 && this[$extra].numberInLine === 0 && !this[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        this[$extra].attempt = maxRun;\n        break;\n      }\n    }\n    this[$popPara]();\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n    if (this[$extra].attempt === maxRun) {\n      if (!isSplittable) {\n        delete this[$extra];\n      }\n      return HTMLResult.FAILURE;\n    }\n    let marginH = 0;\n    let marginV = 0;\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n    const width = Math.max(this[$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n    if (this.w === \"\") {\n      style.width = measureToString(width);\n    }\n    if (this.h === \"\") {\n      style.height = measureToString(height);\n    }\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    delete this[$extra];\n    return HTMLResult.success(createWrapper(this, html), bbox);\n  }\n}\nclass Execute extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"execute\");\n    this.connection = attributes.connection || \"\";\n    this.executeType = getStringOption(attributes.executeType, [\"import\", \"remerge\"]);\n    this.id = attributes.id || \"\";\n    this.runAt = getStringOption(attributes.runAt, [\"client\", \"both\", \"server\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Extras extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"extras\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.extras = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n}\nclass Field extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"field\", true);\n    this.access = getStringOption(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = getStringOption(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.rotate = getInteger({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.format = null;\n    this.items = new XFAObjectArray(2);\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.validate = null;\n    this.value = null;\n    this.bindItems = new XFAObjectArray();\n    this.connect = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n  }\n  [$isBindable]() {\n    return true;\n  }\n  [$setValue](value) {\n    _setValue(this, value);\n  }\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n    if (!this.ui) {\n      this.ui = new Ui({});\n      this.ui[$globalData] = this[$globalData];\n      this[$appendChild](this.ui);\n      let node;\n      switch (this.items.children.length) {\n        case 0:\n          node = new TextEdit({});\n          this.ui.textEdit = node;\n          break;\n        case 1:\n          node = new CheckButton({});\n          this.ui.checkButton = node;\n          break;\n        case 2:\n          node = new ChoiceList({});\n          this.ui.choiceList = node;\n          break;\n      }\n      this.ui[$appendChild](node);\n    }\n    if (!this.ui || this.presence === \"hidden\" || this.presence === \"inactive\" || this.h === 0 || this.w === 0) {\n      return HTMLResult.EMPTY;\n    }\n    if (this.caption) {\n      delete this.caption[$extra];\n    }\n    this[$pushPara]();\n    const caption = this.caption ? this.caption[$toHTML](availableSpace).html : null;\n    const savedW = this.w;\n    const savedH = this.h;\n    let marginH = 0;\n    let marginV = 0;\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n    let borderDims = null;\n    if (this.w === \"\" || this.h === \"\") {\n      let width = null;\n      let height = null;\n      let uiW = 0;\n      let uiH = 0;\n      if (this.ui.checkButton) {\n        uiW = uiH = this.ui.checkButton.size;\n      } else {\n        const {\n          w,\n          h\n        } = layoutNode(this, availableSpace);\n        if (w !== null) {\n          uiW = w;\n          uiH = h;\n        } else {\n          uiH = fonts_getMetrics(this.font, true).lineNoGap;\n        }\n      }\n      borderDims = getBorderDims(this.ui[$getExtra]());\n      uiW += borderDims.w;\n      uiH += borderDims.h;\n      if (this.caption) {\n        const {\n          w,\n          h,\n          isBroken\n        } = this.caption[$getExtra](availableSpace);\n        if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n          this[$popPara]();\n          return HTMLResult.FAILURE;\n        }\n        width = w;\n        height = h;\n        switch (this.caption.placement) {\n          case \"left\":\n          case \"right\":\n          case \"inline\":\n            width += uiW;\n            break;\n          case \"top\":\n          case \"bottom\":\n            height += uiH;\n            break;\n        }\n      } else {\n        width = uiW;\n        height = uiH;\n      }\n      if (width && this.w === \"\") {\n        width += marginH;\n        this.w = Math.min(this.maxW <= 0 ? Infinity : this.maxW, this.minW + 1 < width ? width : this.minW);\n      }\n      if (height && this.h === \"\") {\n        height += marginV;\n        this.h = Math.min(this.maxH <= 0 ? Infinity : this.maxH, this.minH + 1 < height ? height : this.minH);\n      }\n    }\n    this[$popPara]();\n    fixDimensions(this);\n    setFirstUnsplittable(this);\n    if (!checkDimensions(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n      this[$popPara]();\n      return HTMLResult.FAILURE;\n    }\n    unsetFirstUnsplittable(this);\n    const style = toStyle(this, \"font\", \"dimensions\", \"position\", \"rotate\", \"anchorType\", \"presence\", \"margin\", \"hAlign\");\n    setMinMaxDimensions(this, style);\n    const classNames = [\"xfaField\"];\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n    const attributes = {\n      style,\n      id: this[$uid],\n      class: classNames\n    };\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n    setAccess(this, classNames);\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n    const children = [];\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    const borderStyle = this.border ? this.border[$toStyle]() : null;\n    const bbox = computeBbox(this, html, availableSpace);\n    const ui = this.ui[$toHTML]().html;\n    if (!ui) {\n      Object.assign(style, borderStyle);\n      return HTMLResult.success(createWrapper(this, html), bbox);\n    }\n    if (this[$tabIndex]) {\n      if (ui.children?.[0]) {\n        ui.children[0].attributes.tabindex = this[$tabIndex];\n      } else {\n        ui.attributes.tabindex = this[$tabIndex];\n      }\n    }\n    ui.attributes.style ||= Object.create(null);\n    let aElement = null;\n    if (this.ui.button) {\n      if (ui.children.length === 1) {\n        [aElement] = ui.children.splice(0, 1);\n      }\n      Object.assign(ui.attributes.style, borderStyle);\n    } else {\n      Object.assign(style, borderStyle);\n    }\n    children.push(ui);\n    if (this.value) {\n      if (this.ui.imageEdit) {\n        ui.children.push(this.value[$toHTML]().html);\n      } else if (!this.ui.button) {\n        let value = \"\";\n        if (this.value.exData) {\n          value = this.value.exData[$text]();\n        } else if (this.value.text) {\n          value = this.value.text[$getExtra]();\n        } else {\n          const htmlValue = this.value[$toHTML]().html;\n          if (htmlValue !== null) {\n            value = htmlValue.children[0].value;\n          }\n        }\n        if (this.ui.textEdit && this.value.text?.maxChars) {\n          ui.children[0].attributes.maxLength = this.value.text.maxChars;\n        }\n        if (value) {\n          if (this.ui.numericEdit) {\n            value = parseFloat(value);\n            value = isNaN(value) ? \"\" : value.toString();\n          }\n          if (ui.children[0].name === \"textarea\") {\n            ui.children[0].attributes.textContent = value;\n          } else {\n            ui.children[0].attributes.value = value;\n          }\n        }\n      }\n    }\n    if (!this.ui.imageEdit && ui.children?.[0] && this.h) {\n      borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n      let captionHeight = 0;\n      if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n        captionHeight = this.caption.reserve;\n        if (captionHeight <= 0) {\n          captionHeight = this.caption[$getExtra](availableSpace).h;\n        }\n        const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n        ui.children[0].attributes.style.height = measureToString(inputHeight);\n      } else {\n        ui.children[0].attributes.style.height = \"100%\";\n      }\n    }\n    if (aElement) {\n      ui.children.push(aElement);\n    }\n    if (!caption) {\n      if (ui.attributes.class) {\n        ui.attributes.class.push(\"xfaLeft\");\n      }\n      this.w = savedW;\n      this.h = savedH;\n      return HTMLResult.success(createWrapper(this, html), bbox);\n    }\n    if (this.ui.button) {\n      if (style.padding) {\n        delete style.padding;\n      }\n      if (caption.name === \"div\") {\n        caption.name = \"span\";\n      }\n      ui.children.push(caption);\n      return HTMLResult.success(html, bbox);\n    } else if (this.ui.checkButton) {\n      caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n    }\n    ui.attributes.class ||= [];\n    ui.children.splice(0, 0, caption);\n    switch (this.caption.placement) {\n      case \"left\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n      case \"right\":\n        ui.attributes.class.push(\"xfaRight\");\n        break;\n      case \"top\":\n        ui.attributes.class.push(\"xfaTop\");\n        break;\n      case \"bottom\":\n        ui.attributes.class.push(\"xfaBottom\");\n        break;\n      case \"inline\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n    }\n    this.w = savedW;\n    this.h = savedH;\n    return HTMLResult.success(createWrapper(this, html), bbox);\n  }\n}\nclass Fill extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"fill\", true);\n    this.id = attributes.id || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n    this.linear = null;\n    this.pattern = null;\n    this.radial = null;\n    this.solid = null;\n    this.stipple = null;\n  }\n  [$toStyle]() {\n    const parent = this[$getParent]();\n    const grandpa = parent[$getParent]();\n    const ggrandpa = grandpa[$getParent]();\n    const style = Object.create(null);\n    let propName = \"color\";\n    let altPropName = propName;\n    if (parent instanceof Border) {\n      propName = \"background-color\";\n      altPropName = \"background\";\n      if (ggrandpa instanceof Ui) {\n        style.backgroundColor = \"white\";\n      }\n    }\n    if (parent instanceof Rectangle || parent instanceof Arc) {\n      propName = altPropName = \"fill\";\n      style.fill = \"white\";\n    }\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"extras\" || name === \"color\") {\n        continue;\n      }\n      const obj = this[name];\n      if (!(obj instanceof XFAObject)) {\n        continue;\n      }\n      const color = obj[$toStyle](this.color);\n      if (color) {\n        style[color.startsWith(\"#\") ? propName : altPropName] = color;\n      }\n      return style;\n    }\n    if (this.color?.value) {\n      const color = this.color[$toStyle]();\n      style[color.startsWith(\"#\") ? propName : altPropName] = color;\n    }\n    return style;\n  }\n}\nclass Filter extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"filter\", true);\n    this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\"\", \"required\", \"optional\", \"none\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.version = getInteger({\n      data: this.version,\n      defaultValue: 5,\n      validate: x => x >= 1 && x <= 5\n    });\n    this.appearanceFilter = null;\n    this.certificates = null;\n    this.digestMethods = null;\n    this.encodings = null;\n    this.encryptionMethods = null;\n    this.handler = null;\n    this.lockDocument = null;\n    this.mdp = null;\n    this.reasons = null;\n    this.timeStamp = null;\n  }\n}\nclass Float extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"float\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    const number = parseFloat(this[$content].trim());\n    this[$content] = isNaN(number) ? null : number;\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] !== null ? this[$content].toString() : \"\");\n  }\n}\nclass template_Font extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"font\", true);\n    this.baselineShift = getMeasurement(attributes.baselineShift);\n    this.fontHorizontalScale = getFloat({\n      data: attributes.fontHorizontalScale,\n      defaultValue: 100,\n      validate: x => x >= 0\n    });\n    this.fontVerticalScale = getFloat({\n      data: attributes.fontVerticalScale,\n      defaultValue: 100,\n      validate: x => x >= 0\n    });\n    this.id = attributes.id || \"\";\n    this.kerningMode = getStringOption(attributes.kerningMode, [\"none\", \"pair\"]);\n    this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n    this.lineThrough = getInteger({\n      data: attributes.lineThrough,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\"all\", \"word\"]);\n    this.overline = getInteger({\n      data: attributes.overline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\"all\", \"word\"]);\n    this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n    this.size = getMeasurement(attributes.size, \"10pt\");\n    this.typeface = attributes.typeface || \"Courier\";\n    this.underline = getInteger({\n      data: attributes.underline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\"all\", \"word\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n    this.extras = null;\n    this.fill = null;\n  }\n  [$clean](builder) {\n    super[$clean](builder);\n    this[$globalData].usedTypefaces.add(this.typeface);\n  }\n  [$toStyle]() {\n    const style = toStyle(this, \"fill\");\n    const color = style.color;\n    if (color) {\n      if (color === \"#000000\") {\n        delete style.color;\n      } else if (!color.startsWith(\"#\")) {\n        style.background = color;\n        style.backgroundClip = \"text\";\n        style.color = \"transparent\";\n      }\n    }\n    if (this.baselineShift) {\n      style.verticalAlign = measureToString(this.baselineShift);\n    }\n    style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n    style.letterSpacing = measureToString(this.letterSpacing);\n    if (this.lineThrough !== 0) {\n      style.textDecoration = \"line-through\";\n      if (this.lineThrough === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n    if (this.overline !== 0) {\n      style.textDecoration = \"overline\";\n      if (this.overline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n    style.fontStyle = this.posture;\n    style.fontSize = measureToString(0.99 * this.size);\n    setFontFamily(this, this, this[$globalData].fontFinder, style);\n    if (this.underline !== 0) {\n      style.textDecoration = \"underline\";\n      if (this.underline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n    style.fontWeight = this.weight;\n    return style;\n  }\n}\nclass Format extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"format\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n  }\n}\nclass Handler extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"handler\");\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Hyphenation extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"hyphenation\");\n    this.excludeAllCaps = getInteger({\n      data: attributes.excludeAllCaps,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.excludeInitialCap = getInteger({\n      data: attributes.excludeInitialCap,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hyphenate = getInteger({\n      data: attributes.hyphenate,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.id = attributes.id || \"\";\n    this.pushCharacterCount = getInteger({\n      data: attributes.pushCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0\n    });\n    this.remainCharacterCount = getInteger({\n      data: attributes.remainCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wordCharacterCount = getInteger({\n      data: attributes.wordCharacterCount,\n      defaultValue: 7,\n      validate: x => x >= 0\n    });\n  }\n}\nclass Image extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"image\");\n    this.aspect = getStringOption(attributes.aspect, [\"fit\", \"actual\", \"height\", \"none\", \"width\"]);\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.transferEncoding = getStringOption(attributes.transferEncoding, [\"base64\", \"none\", \"package\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$toHTML]() {\n    if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n      return HTMLResult.EMPTY;\n    }\n    let buffer = this[$globalData].images?.get(this.href);\n    if (!buffer && (this.href || !this[$content])) {\n      return HTMLResult.EMPTY;\n    }\n    if (!buffer && this.transferEncoding === \"base64\") {\n      buffer = Uint8Array.fromBase64(this[$content]);\n    }\n    if (!buffer) {\n      return HTMLResult.EMPTY;\n    }\n    if (!this.contentType) {\n      for (const [header, type] of IMAGES_HEADERS) {\n        if (buffer.length > header.length && header.every((x, i) => x === buffer[i])) {\n          this.contentType = type;\n          break;\n        }\n      }\n      if (!this.contentType) {\n        return HTMLResult.EMPTY;\n      }\n    }\n    const blob = new Blob([buffer], {\n      type: this.contentType\n    });\n    let style;\n    switch (this.aspect) {\n      case \"fit\":\n      case \"actual\":\n        break;\n      case \"height\":\n        style = {\n          height: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n      case \"none\":\n        style = {\n          width: \"100%\",\n          height: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n      case \"width\":\n        style = {\n          width: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n    }\n    const parent = this[$getParent]();\n    return HTMLResult.success({\n      name: \"img\",\n      attributes: {\n        class: [\"xfaImage\"],\n        style,\n        src: URL.createObjectURL(blob),\n        alt: parent ? ariaLabel(parent[$getParent]()) : null\n      }\n    });\n  }\n}\nclass ImageEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"imageEdit\", true);\n    this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n  [$toHTML](availableSpace) {\n    if (this.data === \"embed\") {\n      return HTMLResult.success({\n        name: \"div\",\n        children: [],\n        attributes: {}\n      });\n    }\n    return HTMLResult.EMPTY;\n  }\n}\nclass Integer extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"integer\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    const number = parseInt(this[$content].trim(), 10);\n    this[$content] = isNaN(number) ? null : number;\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] !== null ? this[$content].toString() : \"\");\n  }\n}\nclass Issuers extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"issuers\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new XFAObjectArray();\n  }\n}\nclass Items extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"items\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.ref = attributes.ref || \"\";\n    this.save = getInteger({\n      data: attributes.save,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n  [$toHTML]() {\n    const output = [];\n    for (const child of this[$getChildren]()) {\n      output.push(child[$text]());\n    }\n    return HTMLResult.success(output);\n  }\n}\nclass Keep extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keep\", true);\n    this.id = attributes.id || \"\";\n    const options = [\"none\", \"contentArea\", \"pageArea\"];\n    this.intact = getStringOption(attributes.intact, options);\n    this.next = getStringOption(attributes.next, options);\n    this.previous = getStringOption(attributes.previous, options);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n}\nclass KeyUsage extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keyUsage\");\n    const options = [\"\", \"yes\", \"no\"];\n    this.crlSign = getStringOption(attributes.crlSign, options);\n    this.dataEncipherment = getStringOption(attributes.dataEncipherment, options);\n    this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n    this.digitalSignature = getStringOption(attributes.digitalSignature, options);\n    this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n    this.id = attributes.id || \"\";\n    this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n    this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n    this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n    this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Line extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"line\", true);\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n  }\n  [$toHTML]() {\n    const parent = this[$getParent]()[$getParent]();\n    const edge = this.edge || new Edge({});\n    const edgeStyle = edge[$toStyle]();\n    const style = Object.create(null);\n    const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n    style.strokeWidth = measureToString(thickness);\n    style.stroke = edgeStyle.color;\n    let x1, y1, x2, y2;\n    let width = \"100%\";\n    let height = \"100%\";\n    if (parent.w <= thickness) {\n      [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n      width = style.strokeWidth;\n    } else if (parent.h <= thickness) {\n      [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n      height = style.strokeWidth;\n    } else if (this.slope === \"\\\\\") {\n      [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n    } else {\n      [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n    }\n    const line = {\n      name: \"line\",\n      attributes: {\n        xmlns: SVG_NS,\n        x1,\n        y1,\n        x2,\n        y2,\n        style\n      }\n    };\n    const svg = {\n      name: \"svg\",\n      children: [line],\n      attributes: {\n        xmlns: SVG_NS,\n        width,\n        height,\n        style: {\n          overflow: \"visible\"\n        }\n      }\n    };\n    if (hasMargin(parent)) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n    svg.attributes.style.position = \"absolute\";\n    return HTMLResult.success(svg);\n  }\n}\nclass Linear extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"linear\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"toRight\", \"toBottom\", \"toLeft\", \"toTop\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n  [$toStyle](startColor) {\n    startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n    const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n    const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n    return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n  }\n}\nclass LockDocument extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"lockDocument\");\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n  }\n}\nclass Manifest extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"manifest\", true);\n    this.action = getStringOption(attributes.action, [\"include\", \"all\", \"exclude\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.ref = new XFAObjectArray();\n  }\n}\nclass Margin extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"margin\", true);\n    this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n    this.id = attributes.id || \"\";\n    this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n    this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n    this.topInset = getMeasurement(attributes.topInset, \"0\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n  [$toStyle]() {\n    return {\n      margin: measureToString(this.topInset) + \" \" + measureToString(this.rightInset) + \" \" + measureToString(this.bottomInset) + \" \" + measureToString(this.leftInset)\n    };\n  }\n}\nclass Mdp extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"mdp\");\n    this.id = attributes.id || \"\";\n    this.permissions = getInteger({\n      data: attributes.permissions,\n      defaultValue: 2,\n      validate: x => x === 1 || x === 3\n    });\n    this.signatureType = getStringOption(attributes.signatureType, [\"filler\", \"author\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Medium extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"medium\");\n    this.id = attributes.id || \"\";\n    this.imagingBBox = getBBox(attributes.imagingBBox);\n    this.long = getMeasurement(attributes.long);\n    this.orientation = getStringOption(attributes.orientation, [\"portrait\", \"landscape\"]);\n    this.short = getMeasurement(attributes.short);\n    this.stock = attributes.stock || \"\";\n    this.trayIn = getStringOption(attributes.trayIn, [\"auto\", \"delegate\", \"pageFront\"]);\n    this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Message extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"message\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.text = new XFAObjectArray();\n  }\n}\nclass NumericEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"numericEdit\", true);\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n  [$toHTML](availableSpace) {\n    const style = toStyle(this, \"border\", \"font\", \"margin\");\n    const field = this[$getParent]()[$getParent]();\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[$uid],\n        dataId: field[$data]?.[$uid] || field[$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n}\nclass Occur extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"occur\", true);\n    this.id = attributes.id || \"\";\n    this.initial = attributes.initial !== \"\" ? getInteger({\n      data: attributes.initial,\n      defaultValue: \"\",\n      validate: x => true\n    }) : \"\";\n    this.max = attributes.max !== \"\" ? getInteger({\n      data: attributes.max,\n      defaultValue: -1,\n      validate: x => true\n    }) : \"\";\n    this.min = attributes.min !== \"\" ? getInteger({\n      data: attributes.min,\n      defaultValue: 1,\n      validate: x => true\n    }) : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n  [$clean]() {\n    const parent = this[$getParent]();\n    const originalMin = this.min;\n    if (this.min === \"\") {\n      this.min = parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n    }\n    if (this.max === \"\") {\n      if (originalMin === \"\") {\n        this.max = parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n      } else {\n        this.max = this.min;\n      }\n    }\n    if (this.max !== -1 && this.max < this.min) {\n      this.max = this.min;\n    }\n    if (this.initial === \"\") {\n      this.initial = parent instanceof Template ? 1 : this.min;\n    }\n  }\n}\nclass Oid extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oid\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Oids extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oids\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.oid = new XFAObjectArray();\n  }\n}\nclass Overflow extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"overflow\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.target = attributes.target || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$getExtra]() {\n    if (!this[$extra]) {\n      const parent = this[$getParent]();\n      const root = this[$getTemplateRoot]();\n      const target = root[$searchNode](this.target, parent);\n      const leader = root[$searchNode](this.leader, parent);\n      const trailer = root[$searchNode](this.trailer, parent);\n      this[$extra] = {\n        target: target?.[0] || null,\n        leader: leader?.[0] || null,\n        trailer: trailer?.[0] || null,\n        addLeader: false,\n        addTrailer: false\n      };\n    }\n    return this[$extra];\n  }\n}\nclass PageArea extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageArea\", true);\n    this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\"any\", \"blank\", \"notBlank\"]);\n    this.id = attributes.id || \"\";\n    this.initialNumber = getInteger({\n      data: attributes.initialNumber,\n      defaultValue: 1,\n      validate: x => true\n    });\n    this.name = attributes.name || \"\";\n    this.numbered = getInteger({\n      data: attributes.numbered,\n      defaultValue: 1,\n      validate: x => true\n    });\n    this.oddOrEven = getStringOption(attributes.oddOrEven, [\"any\", \"even\", \"odd\"]);\n    this.pagePosition = getStringOption(attributes.pagePosition, [\"any\", \"first\", \"last\", \"only\", \"rest\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.desc = null;\n    this.extras = null;\n    this.medium = null;\n    this.occur = null;\n    this.area = new XFAObjectArray();\n    this.contentArea = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n  }\n  [$isUsable]() {\n    if (!this[$extra]) {\n      this[$extra] = {\n        numberOfUse: 0\n      };\n      return true;\n    }\n    return !this.occur || this.occur.max === -1 || this[$extra].numberOfUse < this.occur.max;\n  }\n  [$cleanPage]() {\n    delete this[$extra];\n  }\n  [$getNextPage]() {\n    this[$extra] ||= {\n      numberOfUse: 0\n    };\n    const parent = this[$getParent]();\n    if (parent.relation === \"orderedOccurrence\") {\n      if (this[$isUsable]()) {\n        this[$extra].numberOfUse += 1;\n        return this;\n      }\n    }\n    return parent[$getNextPage]();\n  }\n  [$getAvailableSpace]() {\n    return this[$extra].space || {\n      width: 0,\n      height: 0\n    };\n  }\n  [$toHTML]() {\n    this[$extra] ||= {\n      numberOfUse: 1\n    };\n    const children = [];\n    this[$extra].children = children;\n    const style = Object.create(null);\n    if (this.medium && this.medium.short && this.medium.long) {\n      style.width = measureToString(this.medium.short);\n      style.height = measureToString(this.medium.long);\n      this[$extra].space = {\n        width: this.medium.short,\n        height: this.medium.long\n      };\n      if (this.medium.orientation === \"landscape\") {\n        const x = style.width;\n        style.width = style.height;\n        style.height = x;\n        this[$extra].space = {\n          width: this.medium.long,\n          height: this.medium.short\n        };\n      }\n    } else {\n      warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n    }\n    this[$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n      include: true\n    });\n    this[$childrenToHTML]({\n      filter: new Set([\"contentArea\"]),\n      include: true\n    });\n    return HTMLResult.success({\n      name: \"div\",\n      children,\n      attributes: {\n        class: [\"xfaPage\"],\n        id: this[$uid],\n        style,\n        xfaName: this.name\n      }\n    });\n  }\n}\nclass PageSet extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageSet\", true);\n    this.duplexImposition = getStringOption(attributes.duplexImposition, [\"longEdge\", \"shortEdge\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = getStringOption(attributes.relation, [\"orderedOccurrence\", \"duplexPaginated\", \"simplexPaginated\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.occur = null;\n    this.pageArea = new XFAObjectArray();\n    this.pageSet = new XFAObjectArray();\n  }\n  [$cleanPage]() {\n    for (const page of this.pageArea.children) {\n      page[$cleanPage]();\n    }\n    for (const page of this.pageSet.children) {\n      page[$cleanPage]();\n    }\n  }\n  [$isUsable]() {\n    return !this.occur || this.occur.max === -1 || this[$extra].numberOfUse < this.occur.max;\n  }\n  [$getNextPage]() {\n    this[$extra] ||= {\n      numberOfUse: 1,\n      pageIndex: -1,\n      pageSetIndex: -1\n    };\n    if (this.relation === \"orderedOccurrence\") {\n      if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n        this[$extra].pageIndex += 1;\n        const pageArea = this.pageArea.children[this[$extra].pageIndex];\n        return pageArea[$getNextPage]();\n      }\n      if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n        this[$extra].pageSetIndex += 1;\n        return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n      }\n      if (this[$isUsable]()) {\n        this[$extra].numberOfUse += 1;\n        this[$extra].pageIndex = -1;\n        this[$extra].pageSetIndex = -1;\n        return this[$getNextPage]();\n      }\n      const parent = this[$getParent]();\n      if (parent instanceof PageSet) {\n        return parent[$getNextPage]();\n      }\n      this[$cleanPage]();\n      return this[$getNextPage]();\n    }\n    const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n    const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n    const position = pageNumber === 0 ? \"first\" : \"rest\";\n    let page = this.pageArea.children.find(p => p.oddOrEven === parity && p.pagePosition === position);\n    if (page) {\n      return page;\n    }\n    page = this.pageArea.children.find(p => p.oddOrEven === \"any\" && p.pagePosition === position);\n    if (page) {\n      return page;\n    }\n    page = this.pageArea.children.find(p => p.oddOrEven === \"any\" && p.pagePosition === \"any\");\n    if (page) {\n      return page;\n    }\n    return this.pageArea.children[0];\n  }\n}\nclass Para extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"para\", true);\n    this.hAlign = getStringOption(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.lineHeight = attributes.lineHeight ? getMeasurement(attributes.lineHeight, \"0pt\") : \"\";\n    this.marginLeft = attributes.marginLeft ? getMeasurement(attributes.marginLeft, \"0pt\") : \"\";\n    this.marginRight = attributes.marginRight ? getMeasurement(attributes.marginRight, \"0pt\") : \"\";\n    this.orphans = getInteger({\n      data: attributes.orphans,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.preserve = attributes.preserve || \"\";\n    this.radixOffset = attributes.radixOffset ? getMeasurement(attributes.radixOffset, \"0pt\") : \"\";\n    this.spaceAbove = attributes.spaceAbove ? getMeasurement(attributes.spaceAbove, \"0pt\") : \"\";\n    this.spaceBelow = attributes.spaceBelow ? getMeasurement(attributes.spaceBelow, \"0pt\") : \"\";\n    this.tabDefault = attributes.tabDefault ? getMeasurement(this.tabDefault) : \"\";\n    this.tabStops = (attributes.tabStops || \"\").trim().split(/\\s+/).map((x, i) => i % 2 === 1 ? getMeasurement(x) : x);\n    this.textIndent = attributes.textIndent ? getMeasurement(attributes.textIndent, \"0pt\") : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vAlign = getStringOption(attributes.vAlign, [\"top\", \"bottom\", \"middle\"]);\n    this.widows = getInteger({\n      data: attributes.widows,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.hyphenation = null;\n  }\n  [$toStyle]() {\n    const style = toStyle(this, \"hAlign\");\n    if (this.marginLeft !== \"\") {\n      style.paddingLeft = measureToString(this.marginLeft);\n    }\n    if (this.marginRight !== \"\") {\n      style.paddingRight = measureToString(this.marginRight);\n    }\n    if (this.spaceAbove !== \"\") {\n      style.paddingTop = measureToString(this.spaceAbove);\n    }\n    if (this.spaceBelow !== \"\") {\n      style.paddingBottom = measureToString(this.spaceBelow);\n    }\n    if (this.textIndent !== \"\") {\n      style.textIndent = measureToString(this.textIndent);\n      fixTextIndent(style);\n    }\n    if (this.lineHeight > 0) {\n      style.lineHeight = measureToString(this.lineHeight);\n    }\n    if (this.tabDefault !== \"\") {\n      style.tabSize = measureToString(this.tabDefault);\n    }\n    if (this.tabStops.length > 0) {}\n    if (this.hyphenatation) {\n      Object.assign(style, this.hyphenatation[$toStyle]());\n    }\n    return style;\n  }\n}\nclass PasswordEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"passwordEdit\", true);\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.passwordChar = attributes.passwordChar || \"*\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n}\nclass template_Pattern extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pattern\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"crossHatch\", \"crossDiagonal\", \"diagonalLeft\", \"diagonalRight\", \"horizontal\", \"vertical\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n  [$toStyle](startColor) {\n    startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n    const width = 5;\n    const cmd = \"repeating-linear-gradient\";\n    const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`;\n    switch (this.type) {\n      case \"crossHatch\":\n        return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n      case \"crossDiagonal\":\n        return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n      case \"diagonalLeft\":\n        return `${cmd}(45deg,${colors})`;\n      case \"diagonalRight\":\n        return `${cmd}(-45deg,${colors})`;\n      case \"horizontal\":\n        return `${cmd}(to top,${colors})`;\n      case \"vertical\":\n        return `${cmd}(to right,${colors})`;\n    }\n    return \"\";\n  }\n}\nclass Picture extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"picture\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Proto extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"proto\", true);\n    this.appearanceFilter = new XFAObjectArray();\n    this.arc = new XFAObjectArray();\n    this.area = new XFAObjectArray();\n    this.assist = new XFAObjectArray();\n    this.barcode = new XFAObjectArray();\n    this.bindItems = new XFAObjectArray();\n    this.bookend = new XFAObjectArray();\n    this.boolean = new XFAObjectArray();\n    this.border = new XFAObjectArray();\n    this.break = new XFAObjectArray();\n    this.breakAfter = new XFAObjectArray();\n    this.breakBefore = new XFAObjectArray();\n    this.button = new XFAObjectArray();\n    this.calculate = new XFAObjectArray();\n    this.caption = new XFAObjectArray();\n    this.certificate = new XFAObjectArray();\n    this.certificates = new XFAObjectArray();\n    this.checkButton = new XFAObjectArray();\n    this.choiceList = new XFAObjectArray();\n    this.color = new XFAObjectArray();\n    this.comb = new XFAObjectArray();\n    this.connect = new XFAObjectArray();\n    this.contentArea = new XFAObjectArray();\n    this.corner = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.dateTimeEdit = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.defaultUi = new XFAObjectArray();\n    this.desc = new XFAObjectArray();\n    this.digestMethod = new XFAObjectArray();\n    this.digestMethods = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.edge = new XFAObjectArray();\n    this.encoding = new XFAObjectArray();\n    this.encodings = new XFAObjectArray();\n    this.encrypt = new XFAObjectArray();\n    this.encryptData = new XFAObjectArray();\n    this.encryption = new XFAObjectArray();\n    this.encryptionMethod = new XFAObjectArray();\n    this.encryptionMethods = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.execute = new XFAObjectArray();\n    this.extras = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.fill = new XFAObjectArray();\n    this.filter = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.font = new XFAObjectArray();\n    this.format = new XFAObjectArray();\n    this.handler = new XFAObjectArray();\n    this.hyphenation = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.imageEdit = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.issuers = new XFAObjectArray();\n    this.items = new XFAObjectArray();\n    this.keep = new XFAObjectArray();\n    this.keyUsage = new XFAObjectArray();\n    this.line = new XFAObjectArray();\n    this.linear = new XFAObjectArray();\n    this.lockDocument = new XFAObjectArray();\n    this.manifest = new XFAObjectArray();\n    this.margin = new XFAObjectArray();\n    this.mdp = new XFAObjectArray();\n    this.medium = new XFAObjectArray();\n    this.message = new XFAObjectArray();\n    this.numericEdit = new XFAObjectArray();\n    this.occur = new XFAObjectArray();\n    this.oid = new XFAObjectArray();\n    this.oids = new XFAObjectArray();\n    this.overflow = new XFAObjectArray();\n    this.pageArea = new XFAObjectArray();\n    this.pageSet = new XFAObjectArray();\n    this.para = new XFAObjectArray();\n    this.passwordEdit = new XFAObjectArray();\n    this.pattern = new XFAObjectArray();\n    this.picture = new XFAObjectArray();\n    this.radial = new XFAObjectArray();\n    this.reason = new XFAObjectArray();\n    this.reasons = new XFAObjectArray();\n    this.rectangle = new XFAObjectArray();\n    this.ref = new XFAObjectArray();\n    this.script = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n    this.signData = new XFAObjectArray();\n    this.signature = new XFAObjectArray();\n    this.signing = new XFAObjectArray();\n    this.solid = new XFAObjectArray();\n    this.speak = new XFAObjectArray();\n    this.stipple = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n    this.subjectDN = new XFAObjectArray();\n    this.subjectDNs = new XFAObjectArray();\n    this.submit = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.textEdit = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n    this.timeStamp = new XFAObjectArray();\n    this.toolTip = new XFAObjectArray();\n    this.traversal = new XFAObjectArray();\n    this.traverse = new XFAObjectArray();\n    this.ui = new XFAObjectArray();\n    this.validate = new XFAObjectArray();\n    this.value = new XFAObjectArray();\n    this.variables = new XFAObjectArray();\n  }\n}\nclass Radial extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"radial\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n  [$toStyle](startColor) {\n    startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n    const colors = this.type === \"toEdge\" ? `${startColor},${endColor}` : `${endColor},${startColor}`;\n    return `radial-gradient(circle at center, ${colors})`;\n  }\n}\nclass Reason extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reason\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Reasons extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reasons\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.reason = new XFAObjectArray();\n  }\n}\nclass Rectangle extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"rectangle\", true);\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new XFAObjectArray(4);\n    this.edge = new XFAObjectArray(4);\n    this.fill = null;\n  }\n  [$toHTML]() {\n    const edge = this.edge.children.length ? this.edge.children[0] : new Edge({});\n    const edgeStyle = edge[$toStyle]();\n    const style = Object.create(null);\n    if (this.fill?.presence === \"visible\") {\n      Object.assign(style, this.fill[$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n    style.strokeWidth = measureToString(edge.presence === \"visible\" ? edge.thickness : 0);\n    style.stroke = edgeStyle.color;\n    const corner = this.corner.children.length ? this.corner.children[0] : new Corner({});\n    const cornerStyle = corner[$toStyle]();\n    const rect = {\n      name: \"rect\",\n      attributes: {\n        xmlns: SVG_NS,\n        width: \"100%\",\n        height: \"100%\",\n        x: 0,\n        y: 0,\n        rx: cornerStyle.radius,\n        ry: cornerStyle.radius,\n        style\n      }\n    };\n    const svg = {\n      name: \"svg\",\n      children: [rect],\n      attributes: {\n        xmlns: SVG_NS,\n        style: {\n          overflow: \"visible\"\n        },\n        width: \"100%\",\n        height: \"100%\"\n      }\n    };\n    const parent = this[$getParent]()[$getParent]();\n    if (hasMargin(parent)) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n    svg.attributes.style.position = \"absolute\";\n    return HTMLResult.success(svg);\n  }\n}\nclass RefElement extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ref\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Script extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"script\");\n    this.binding = attributes.binding || \"\";\n    this.contentType = attributes.contentType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.runAt = getStringOption(attributes.runAt, [\"client\", \"both\", \"server\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass SetProperty extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"setProperty\");\n    this.connection = attributes.connection || \"\";\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n  }\n}\nclass SignData extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signData\", true);\n    this.id = attributes.id || \"\";\n    this.operation = getStringOption(attributes.operation, [\"sign\", \"clear\", \"verify\"]);\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n}\nclass Signature extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signature\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.filter = null;\n    this.manifest = null;\n    this.margin = null;\n  }\n}\nclass Signing extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signing\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new XFAObjectArray();\n  }\n}\nclass Solid extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"solid\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n  [$toStyle](startColor) {\n    return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n  }\n}\nclass Speak extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"speak\");\n    this.disable = getInteger({\n      data: attributes.disable,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.id = attributes.id || \"\";\n    this.priority = getStringOption(attributes.priority, [\"custom\", \"caption\", \"name\", \"toolTip\"]);\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Stipple extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"stipple\", true);\n    this.id = attributes.id || \"\";\n    this.rate = getInteger({\n      data: attributes.rate,\n      defaultValue: 50,\n      validate: x => x >= 0 && x <= 100\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n  [$toStyle](bgColor) {\n    const alpha = this.rate / 100;\n    return Util.makeHexColor(Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha), Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha), Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha));\n  }\n}\nclass Subform extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subform\", true);\n    this.access = getStringOption(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.allowMacro = getInteger({\n      data: attributes.allowMacro,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.anchorType = getStringOption(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.columnWidths = (attributes.columnWidths || \"\").trim().split(/\\s+/).map(x => x === \"-1\" ? -1 : getMeasurement(x));\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.layout = getStringOption(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n    this.locale = attributes.locale || \"\";\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.mergeMode = getStringOption(attributes.mergeMode, [\"consumeData\", \"matchTemplate\"]);\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.restoreState = getStringOption(attributes.restoreState, [\"manual\", \"auto\"]);\n    this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.bookend = null;\n    this.border = null;\n    this.break = null;\n    this.calculate = null;\n    this.desc = null;\n    this.extras = null;\n    this.keep = null;\n    this.margin = null;\n    this.occur = null;\n    this.overflow = null;\n    this.pageSet = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.variables = null;\n    this.area = new XFAObjectArray();\n    this.breakAfter = new XFAObjectArray();\n    this.breakBefore = new XFAObjectArray();\n    this.connect = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.proto = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n  }\n  [$getSubformParent]() {\n    const parent = this[$getParent]();\n    if (parent instanceof SubformSet) {\n      return parent[$getSubformParent]();\n    }\n    return parent;\n  }\n  [$isBindable]() {\n    return true;\n  }\n  [$isThereMoreWidth]() {\n    return this.layout.endsWith(\"-tb\") && this[$extra].attempt === 0 && this[$extra].numberInLine > 0 || this[$getParent]()[$isThereMoreWidth]();\n  }\n  *[$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n  [$flushHTML]() {\n    return flushHTML(this);\n  }\n  [$addHTML](html, bbox) {\n    addHTML(this, html, bbox);\n  }\n  [$getAvailableSpace]() {\n    return getAvailableSpace(this);\n  }\n  [$isSplittable]() {\n    const parent = this[$getSubformParent]();\n    if (!parent[$isSplittable]()) {\n      return false;\n    }\n    if (this[$extra]._isSplittable !== undefined) {\n      return this[$extra]._isSplittable;\n    }\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[$extra]._isSplittable = false;\n      return false;\n    }\n    if (this.keep && this.keep.intact !== \"none\") {\n      this[$extra]._isSplittable = false;\n      return false;\n    }\n    if (parent.layout?.endsWith(\"-tb\") && parent[$extra].numberInLine !== 0) {\n      return false;\n    }\n    this[$extra]._isSplittable = true;\n    return true;\n  }\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n    if (this.break) {\n      if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n        const node = new BreakAfter({\n          targetType: this.break.after,\n          target: this.break.afterTarget,\n          startNew: this.break.startNew.toString()\n        });\n        node[$globalData] = this[$globalData];\n        this[$appendChild](node);\n        this.breakAfter.push(node);\n      }\n      if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n        const node = new BreakBefore({\n          targetType: this.break.before,\n          target: this.break.beforeTarget,\n          startNew: this.break.startNew.toString()\n        });\n        node[$globalData] = this[$globalData];\n        this[$appendChild](node);\n        this.breakBefore.push(node);\n      }\n      if (this.break.overflowTarget !== \"\") {\n        const node = new Overflow({\n          target: this.break.overflowTarget,\n          leader: this.break.overflowLeader,\n          trailer: this.break.overflowTrailer\n        });\n        node[$globalData] = this[$globalData];\n        this[$appendChild](node);\n        this.overflow.push(node);\n      }\n      this[$removeChild](this.break);\n      this.break = null;\n    }\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return HTMLResult.EMPTY;\n    }\n    if (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) {\n      warn(\"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\");\n    }\n    if (this.breakBefore.children.length >= 1) {\n      const breakBefore = this.breakBefore.children[0];\n      if (handleBreak(breakBefore)) {\n        return HTMLResult.breakNode(breakBefore);\n      }\n    }\n    if (this[$extra]?.afterBreakAfter) {\n      return HTMLResult.EMPTY;\n    }\n    fixDimensions(this);\n    const children = [];\n    const attributes = {\n      id: this[$uid],\n      class: []\n    };\n    setAccess(this, attributes.class);\n    this[$extra] ||= Object.create(null);\n    Object.assign(this[$extra], {\n      children,\n      line: null,\n      attributes,\n      attempt: 0,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height)\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0\n    });\n    const root = this[$getTemplateRoot]();\n    const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n    const isSplittable = this[$isSplittable]();\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n    if (!checkDimensions(this, availableSpace)) {\n      return HTMLResult.FAILURE;\n    }\n    const filter = new Set([\"area\", \"draw\", \"exclGroup\", \"field\", \"subform\", \"subformSet\"]);\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[$getSubformParent]().columnWidths;\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[$extra].columnWidths = columnWidths;\n        this[$extra].currentColumn = 0;\n      }\n    }\n    const style = toStyle(this, \"anchorType\", \"dimensions\", \"position\", \"presence\", \"border\", \"margin\", \"hAlign\");\n    const classNames = [\"xfaSubform\"];\n    const cl = layoutClass(this);\n    if (cl) {\n      classNames.push(cl);\n    }\n    attributes.style = style;\n    attributes.class = classNames;\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n    if (this.overflow) {\n      const overflowExtra = this.overflow[$getExtra]();\n      if (overflowExtra.addLeader) {\n        overflowExtra.addLeader = false;\n        handleOverflow(this, overflowExtra.leader, availableSpace);\n      }\n    }\n    this[$pushPara]();\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n    for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n      if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        this[$extra].numberInLine = 0;\n      }\n      const result = this[$childrenToHTML]({\n        filter,\n        include: true\n      });\n      if (result.success) {\n        break;\n      }\n      if (result.isBreak()) {\n        this[$popPara]();\n        return result;\n      }\n      if (isLrTb && this[$extra].attempt === 0 && this[$extra].numberInLine === 0 && !root[$extra].noLayoutFailure) {\n        this[$extra].attempt = maxRun;\n        break;\n      }\n    }\n    this[$popPara]();\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n    root[$extra].noLayoutFailure = savedNoLayoutFailure;\n    if (this[$extra].attempt === maxRun) {\n      if (this.overflow) {\n        this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n      }\n      if (!isSplittable) {\n        delete this[$extra];\n      }\n      return HTMLResult.FAILURE;\n    }\n    if (this.overflow) {\n      const overflowExtra = this.overflow[$getExtra]();\n      if (overflowExtra.addTrailer) {\n        overflowExtra.addTrailer = false;\n        handleOverflow(this, overflowExtra.trailer, availableSpace);\n      }\n    }\n    let marginH = 0;\n    let marginV = 0;\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n    const width = Math.max(this[$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n    if (this.w === \"\") {\n      style.width = measureToString(width);\n    }\n    if (this.h === \"\") {\n      style.height = measureToString(height);\n    }\n    if ((style.width === \"0px\" || style.height === \"0px\") && children.length === 0) {\n      return HTMLResult.EMPTY;\n    }\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    const result = HTMLResult.success(createWrapper(this, html), bbox);\n    if (this.breakAfter.children.length >= 1) {\n      const breakAfter = this.breakAfter.children[0];\n      if (handleBreak(breakAfter)) {\n        this[$extra].afterBreakAfter = result;\n        return HTMLResult.breakNode(breakAfter);\n      }\n    }\n    delete this[$extra];\n    return result;\n  }\n}\nclass SubformSet extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subformSet\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = getStringOption(attributes.relation, [\"ordered\", \"choice\", \"unordered\"]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.bookend = null;\n    this.break = null;\n    this.desc = null;\n    this.extras = null;\n    this.occur = null;\n    this.overflow = null;\n    this.breakAfter = new XFAObjectArray();\n    this.breakBefore = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n  }\n  *[$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n  [$getSubformParent]() {\n    let parent = this[$getParent]();\n    while (!(parent instanceof Subform)) {\n      parent = parent[$getParent]();\n    }\n    return parent;\n  }\n  [$isBindable]() {\n    return true;\n  }\n}\nclass SubjectDN extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDN\");\n    this.delimiter = attributes.delimiter || \",\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    this[$content] = new Map(this[$content].split(this.delimiter).map(kv => {\n      kv = kv.split(\"=\", 2);\n      kv[0] = kv[0].trim();\n      return kv;\n    }));\n  }\n}\nclass SubjectDNs extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDNs\", true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.subjectDN = new XFAObjectArray();\n  }\n}\nclass Submit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"submit\", true);\n    this.embedPDF = getInteger({\n      data: attributes.embedPDF,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.format = getStringOption(attributes.format, [\"xdp\", \"formdata\", \"pdf\", \"urlencoded\", \"xfd\", \"xml\"]);\n    this.id = attributes.id || \"\";\n    this.target = attributes.target || \"\";\n    this.textEncoding = getKeyword({\n      data: attributes.textEncoding ? attributes.textEncoding.toLowerCase() : \"\",\n      defaultValue: \"\",\n      validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-\\d{2}/)\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.xdpContent = attributes.xdpContent || \"\";\n    this.encrypt = null;\n    this.encryptData = new XFAObjectArray();\n    this.signData = new XFAObjectArray();\n  }\n}\nclass Template extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"template\", true);\n    this.baseProfile = getStringOption(attributes.baseProfile, [\"full\", \"interactiveForms\"]);\n    this.extras = null;\n    this.subform = new XFAObjectArray();\n  }\n  [$finalize]() {\n    if (this.subform.children.length === 0) {\n      warn(\"XFA - No subforms in template node.\");\n    }\n    if (this.subform.children.length >= 2) {\n      warn(\"XFA - Several subforms in template node: please file a bug.\");\n    }\n    this[$tabIndex] = DEFAULT_TAB_INDEX;\n  }\n  [$isSplittable]() {\n    return true;\n  }\n  [$searchNode](expr, container) {\n    if (expr.startsWith(\"#\")) {\n      return [this[$ids].get(expr.slice(1))];\n    }\n    return searchNode(this, container, expr, true, true);\n  }\n  *[$toPages]() {\n    if (!this.subform.children.length) {\n      return HTMLResult.success({\n        name: \"div\",\n        children: []\n      });\n    }\n    this[$extra] = {\n      overflowNode: null,\n      firstUnsplittable: null,\n      currentContentArea: null,\n      currentPageArea: null,\n      noLayoutFailure: false,\n      pageNumber: 1,\n      pagePosition: \"first\",\n      oddOrEven: \"odd\",\n      blankOrNotBlank: \"nonBlank\",\n      paraStack: []\n    };\n    const root = this.subform.children[0];\n    root.pageSet[$cleanPage]();\n    const pageAreas = root.pageSet.pageArea.children;\n    const mainHtml = {\n      name: \"div\",\n      children: []\n    };\n    let pageArea = null;\n    let breakBefore = null;\n    let breakBeforeTarget = null;\n    if (root.breakBefore.children.length >= 1) {\n      breakBefore = root.breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.subform.children.length >= 1 && root.subform.children[0].breakBefore.children.length >= 1) {\n      breakBefore = root.subform.children[0].breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.break?.beforeTarget) {\n      breakBefore = root.break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    } else if (root.subform.children.length >= 1 && root.subform.children[0].break?.beforeTarget) {\n      breakBefore = root.subform.children[0].break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    }\n    if (breakBefore) {\n      const target = this[$searchNode](breakBeforeTarget, breakBefore[$getParent]());\n      if (target instanceof PageArea) {\n        pageArea = target;\n        breakBefore[$extra] = {};\n      }\n    }\n    pageArea ||= pageAreas[0];\n    pageArea[$extra] = {\n      numberOfUse: 1\n    };\n    const pageAreaParent = pageArea[$getParent]();\n    pageAreaParent[$extra] = {\n      numberOfUse: 1,\n      pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n      pageSetIndex: 0\n    };\n    let targetPageArea;\n    let leader = null;\n    let trailer = null;\n    let hasSomething = true;\n    let hasSomethingCounter = 0;\n    let startIndex = 0;\n    while (true) {\n      if (!hasSomething) {\n        mainHtml.children.pop();\n        if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n          warn(\"XFA - Something goes wrong: please file a bug.\");\n          return mainHtml;\n        }\n      } else {\n        hasSomethingCounter = 0;\n      }\n      targetPageArea = null;\n      this[$extra].currentPageArea = pageArea;\n      const page = pageArea[$toHTML]().html;\n      mainHtml.children.push(page);\n      if (leader) {\n        this[$extra].noLayoutFailure = true;\n        page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n        leader = null;\n      }\n      if (trailer) {\n        this[$extra].noLayoutFailure = true;\n        page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n        trailer = null;\n      }\n      const contentAreas = pageArea.contentArea.children;\n      const htmlContentAreas = page.children.filter(node => node.attributes.class.includes(\"xfaContentarea\"));\n      hasSomething = false;\n      this[$extra].firstUnsplittable = null;\n      this[$extra].noLayoutFailure = false;\n      const flush = index => {\n        const html = root[$flushHTML]();\n        if (html) {\n          hasSomething ||= html.children?.length > 0;\n          htmlContentAreas[index].children.push(html);\n        }\n      };\n      for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n        const contentArea = this[$extra].currentContentArea = contentAreas[i];\n        const space = {\n          width: contentArea.w,\n          height: contentArea.h\n        };\n        startIndex = 0;\n        if (leader) {\n          htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n          leader = null;\n        }\n        if (trailer) {\n          htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n          trailer = null;\n        }\n        const html = root[$toHTML](space);\n        if (html.success) {\n          if (html.html) {\n            hasSomething ||= html.html.children?.length > 0;\n            htmlContentAreas[i].children.push(html.html);\n          } else if (!hasSomething && mainHtml.children.length > 1) {\n            mainHtml.children.pop();\n          }\n          return mainHtml;\n        }\n        if (html.isBreak()) {\n          const node = html.breakNode;\n          flush(i);\n          if (node.targetType === \"auto\") {\n            continue;\n          }\n          if (node.leader) {\n            leader = this[$searchNode](node.leader, node[$getParent]());\n            leader = leader ? leader[0] : null;\n          }\n          if (node.trailer) {\n            trailer = this[$searchNode](node.trailer, node[$getParent]());\n            trailer = trailer ? trailer[0] : null;\n          }\n          if (node.targetType === \"pageArea\") {\n            targetPageArea = node[$extra].target;\n            i = Infinity;\n          } else if (!node[$extra].target) {\n            i = node[$extra].index;\n          } else {\n            targetPageArea = node[$extra].target;\n            startIndex = node[$extra].index + 1;\n            i = Infinity;\n          }\n          continue;\n        }\n        if (this[$extra].overflowNode) {\n          const node = this[$extra].overflowNode;\n          this[$extra].overflowNode = null;\n          const overflowExtra = node[$getExtra]();\n          const target = overflowExtra.target;\n          overflowExtra.addLeader = overflowExtra.leader !== null;\n          overflowExtra.addTrailer = overflowExtra.trailer !== null;\n          flush(i);\n          const currentIndex = i;\n          i = Infinity;\n          if (target instanceof PageArea) {\n            targetPageArea = target;\n          } else if (target instanceof ContentArea) {\n            const index = contentAreas.indexOf(target);\n            if (index !== -1) {\n              if (index > currentIndex) {\n                i = index - 1;\n              } else {\n                startIndex = index;\n              }\n            } else {\n              targetPageArea = target[$getParent]();\n              startIndex = targetPageArea.contentArea.children.indexOf(target);\n            }\n          }\n          continue;\n        }\n        flush(i);\n      }\n      this[$extra].pageNumber += 1;\n      if (targetPageArea) {\n        if (targetPageArea[$isUsable]()) {\n          targetPageArea[$extra].numberOfUse += 1;\n        } else {\n          targetPageArea = null;\n        }\n      }\n      pageArea = targetPageArea || pageArea[$getNextPage]();\n      yield null;\n    }\n  }\n}\nclass Text extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"text\");\n    this.id = attributes.id || \"\";\n    this.maxChars = getInteger({\n      data: attributes.maxChars,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$acceptWhitespace]() {\n    return true;\n  }\n  [$onChild](child) {\n    if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n      this[$content] = child;\n      return true;\n    }\n    warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n    return false;\n  }\n  [$onText](str) {\n    if (this[$content] instanceof XFAObject) {\n      return;\n    }\n    super[$onText](str);\n  }\n  [$finalize]() {\n    if (typeof this[$content] === \"string\") {\n      this[$content] = this[$content].replaceAll(\"\\r\\n\", \"\\n\");\n    }\n  }\n  [$getExtra]() {\n    if (typeof this[$content] === \"string\") {\n      return this[$content].split(/[\\u2029\\u2028\\n]/).filter(line => !!line).join(\"\\n\");\n    }\n    return this[$content][$text]();\n  }\n  [$toHTML](availableSpace) {\n    if (typeof this[$content] === \"string\") {\n      const html = valueToHtml(this[$content]).html;\n      if (this[$content].includes(\"\\u2029\")) {\n        html.name = \"div\";\n        html.children = [];\n        this[$content].split(\"\\u2029\").map(para => para.split(/[\\u2028\\n]/).flatMap(line => [{\n          name: \"span\",\n          value: line\n        }, {\n          name: \"br\"\n        }])).forEach(lines => {\n          html.children.push({\n            name: \"p\",\n            children: lines\n          });\n        });\n      } else if (/[\\u2028\\n]/.test(this[$content])) {\n        html.name = \"div\";\n        html.children = [];\n        this[$content].split(/[\\u2028\\n]/).forEach(line => {\n          html.children.push({\n            name: \"span\",\n            value: line\n          }, {\n            name: \"br\"\n          });\n        });\n      }\n      return HTMLResult.success(html);\n    }\n    return this[$content][$toHTML](availableSpace);\n  }\n}\nclass TextEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"textEdit\", true);\n    this.allowRichText = getInteger({\n      data: attributes.allowRichText,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.multiLine = getInteger({\n      data: attributes.multiLine,\n      defaultValue: \"\",\n      validate: x => x === 0 || x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n  [$toHTML](availableSpace) {\n    const style = toStyle(this, \"border\", \"font\", \"margin\");\n    let html;\n    const field = this[$getParent]()[$getParent]();\n    if (this.multiLine === \"\") {\n      this.multiLine = field instanceof Draw ? 1 : 0;\n    }\n    if (this.multiLine === 1) {\n      html = {\n        name: \"textarea\",\n        attributes: {\n          dataId: field[$data]?.[$uid] || field[$uid],\n          fieldId: field[$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false\n        }\n      };\n    } else {\n      html = {\n        name: \"input\",\n        attributes: {\n          type: \"text\",\n          dataId: field[$data]?.[$uid] || field[$uid],\n          fieldId: field[$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false\n        }\n      };\n    }\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n}\nclass Time extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"time\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n  [$finalize]() {\n    const date = this[$content].trim();\n    this[$content] = date ? new Date(date) : null;\n  }\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n  }\n}\nclass TimeStamp extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"timeStamp\");\n    this.id = attributes.id || \"\";\n    this.server = attributes.server || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass ToolTip extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"toolTip\");\n    this.id = attributes.id || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Traversal extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traversal\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.traverse = new XFAObjectArray();\n  }\n}\nclass Traverse extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traverse\", true);\n    this.id = attributes.id || \"\";\n    this.operation = getStringOption(attributes.operation, [\"next\", \"back\", \"down\", \"first\", \"left\", \"right\", \"up\"]);\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.script = null;\n  }\n  get name() {\n    return this.operation;\n  }\n  [$isTransparent]() {\n    return false;\n  }\n}\nclass Ui extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ui\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n    this.barcode = null;\n    this.button = null;\n    this.checkButton = null;\n    this.choiceList = null;\n    this.dateTimeEdit = null;\n    this.defaultUi = null;\n    this.imageEdit = null;\n    this.numericEdit = null;\n    this.passwordEdit = null;\n    this.signature = null;\n    this.textEdit = null;\n  }\n  [$getExtra]() {\n    if (this[$extra] === undefined) {\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (name === \"extras\" || name === \"picture\") {\n          continue;\n        }\n        const obj = this[name];\n        if (!(obj instanceof XFAObject)) {\n          continue;\n        }\n        this[$extra] = obj;\n        return obj;\n      }\n      this[$extra] = null;\n    }\n    return this[$extra];\n  }\n  [$toHTML](availableSpace) {\n    const obj = this[$getExtra]();\n    if (obj) {\n      return obj[$toHTML](availableSpace);\n    }\n    return HTMLResult.EMPTY;\n  }\n}\nclass Validate extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"validate\", true);\n    this.formatTest = getStringOption(attributes.formatTest, [\"warning\", \"disabled\", \"error\"]);\n    this.id = attributes.id || \"\";\n    this.nullTest = getStringOption(attributes.nullTest, [\"disabled\", \"error\", \"warning\"]);\n    this.scriptTest = getStringOption(attributes.scriptTest, [\"error\", \"disabled\", \"warning\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.picture = null;\n    this.script = null;\n  }\n}\nclass Value extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"value\", true);\n    this.id = attributes.id || \"\";\n    this.override = getInteger({\n      data: attributes.override,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.arc = null;\n    this.boolean = null;\n    this.date = null;\n    this.dateTime = null;\n    this.decimal = null;\n    this.exData = null;\n    this.float = null;\n    this.image = null;\n    this.integer = null;\n    this.line = null;\n    this.rectangle = null;\n    this.text = null;\n    this.time = null;\n  }\n  [$setValue](value) {\n    const parent = this[$getParent]();\n    if (parent instanceof Field) {\n      if (parent.ui?.imageEdit) {\n        if (!this.image) {\n          this.image = new Image({});\n          this[$appendChild](this.image);\n        }\n        this.image[$content] = value[$content];\n        return;\n      }\n    }\n    const valueName = value[$nodeName];\n    if (this[valueName] !== null) {\n      this[valueName][$content] = value[$content];\n      return;\n    }\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n      if (obj instanceof XFAObject) {\n        this[name] = null;\n        this[$removeChild](obj);\n      }\n    }\n    this[value[$nodeName]] = value;\n    this[$appendChild](value);\n  }\n  [$text]() {\n    if (this.exData) {\n      if (typeof this.exData[$content] === \"string\") {\n        return this.exData[$content].trim();\n      }\n      return this.exData[$content][$text]().trim();\n    }\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"image\") {\n        continue;\n      }\n      const obj = this[name];\n      if (obj instanceof XFAObject) {\n        return (obj[$content] || \"\").toString().trim();\n      }\n    }\n    return null;\n  }\n  [$toHTML](availableSpace) {\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n      if (!(obj instanceof XFAObject)) {\n        continue;\n      }\n      return obj[$toHTML](availableSpace);\n    }\n    return HTMLResult.EMPTY;\n  }\n}\nclass Variables extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"variables\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.manifest = new XFAObjectArray();\n    this.script = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n  [$isTransparent]() {\n    return true;\n  }\n}\nclass TemplateNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(TemplateNamespace, name)) {\n      const node = TemplateNamespace[name](attributes);\n      node[$setSetAttributes](attributes);\n      return node;\n    }\n    return undefined;\n  }\n  static appearanceFilter(attrs) {\n    return new AppearanceFilter(attrs);\n  }\n  static arc(attrs) {\n    return new Arc(attrs);\n  }\n  static area(attrs) {\n    return new Area(attrs);\n  }\n  static assist(attrs) {\n    return new Assist(attrs);\n  }\n  static barcode(attrs) {\n    return new Barcode(attrs);\n  }\n  static bind(attrs) {\n    return new Bind(attrs);\n  }\n  static bindItems(attrs) {\n    return new BindItems(attrs);\n  }\n  static bookend(attrs) {\n    return new Bookend(attrs);\n  }\n  static boolean(attrs) {\n    return new BooleanElement(attrs);\n  }\n  static border(attrs) {\n    return new Border(attrs);\n  }\n  static break(attrs) {\n    return new Break(attrs);\n  }\n  static breakAfter(attrs) {\n    return new BreakAfter(attrs);\n  }\n  static breakBefore(attrs) {\n    return new BreakBefore(attrs);\n  }\n  static button(attrs) {\n    return new Button(attrs);\n  }\n  static calculate(attrs) {\n    return new Calculate(attrs);\n  }\n  static caption(attrs) {\n    return new Caption(attrs);\n  }\n  static certificate(attrs) {\n    return new Certificate(attrs);\n  }\n  static certificates(attrs) {\n    return new Certificates(attrs);\n  }\n  static checkButton(attrs) {\n    return new CheckButton(attrs);\n  }\n  static choiceList(attrs) {\n    return new ChoiceList(attrs);\n  }\n  static color(attrs) {\n    return new Color(attrs);\n  }\n  static comb(attrs) {\n    return new Comb(attrs);\n  }\n  static connect(attrs) {\n    return new Connect(attrs);\n  }\n  static contentArea(attrs) {\n    return new ContentArea(attrs);\n  }\n  static corner(attrs) {\n    return new Corner(attrs);\n  }\n  static date(attrs) {\n    return new DateElement(attrs);\n  }\n  static dateTime(attrs) {\n    return new DateTime(attrs);\n  }\n  static dateTimeEdit(attrs) {\n    return new DateTimeEdit(attrs);\n  }\n  static decimal(attrs) {\n    return new Decimal(attrs);\n  }\n  static defaultUi(attrs) {\n    return new DefaultUi(attrs);\n  }\n  static desc(attrs) {\n    return new Desc(attrs);\n  }\n  static digestMethod(attrs) {\n    return new DigestMethod(attrs);\n  }\n  static digestMethods(attrs) {\n    return new DigestMethods(attrs);\n  }\n  static draw(attrs) {\n    return new Draw(attrs);\n  }\n  static edge(attrs) {\n    return new Edge(attrs);\n  }\n  static encoding(attrs) {\n    return new Encoding(attrs);\n  }\n  static encodings(attrs) {\n    return new Encodings(attrs);\n  }\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n  static encryptData(attrs) {\n    return new EncryptData(attrs);\n  }\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n  static encryptionMethod(attrs) {\n    return new EncryptionMethod(attrs);\n  }\n  static encryptionMethods(attrs) {\n    return new EncryptionMethods(attrs);\n  }\n  static event(attrs) {\n    return new Event(attrs);\n  }\n  static exData(attrs) {\n    return new ExData(attrs);\n  }\n  static exObject(attrs) {\n    return new ExObject(attrs);\n  }\n  static exclGroup(attrs) {\n    return new ExclGroup(attrs);\n  }\n  static execute(attrs) {\n    return new Execute(attrs);\n  }\n  static extras(attrs) {\n    return new Extras(attrs);\n  }\n  static field(attrs) {\n    return new Field(attrs);\n  }\n  static fill(attrs) {\n    return new Fill(attrs);\n  }\n  static filter(attrs) {\n    return new Filter(attrs);\n  }\n  static float(attrs) {\n    return new Float(attrs);\n  }\n  static font(attrs) {\n    return new template_Font(attrs);\n  }\n  static format(attrs) {\n    return new Format(attrs);\n  }\n  static handler(attrs) {\n    return new Handler(attrs);\n  }\n  static hyphenation(attrs) {\n    return new Hyphenation(attrs);\n  }\n  static image(attrs) {\n    return new Image(attrs);\n  }\n  static imageEdit(attrs) {\n    return new ImageEdit(attrs);\n  }\n  static integer(attrs) {\n    return new Integer(attrs);\n  }\n  static issuers(attrs) {\n    return new Issuers(attrs);\n  }\n  static items(attrs) {\n    return new Items(attrs);\n  }\n  static keep(attrs) {\n    return new Keep(attrs);\n  }\n  static keyUsage(attrs) {\n    return new KeyUsage(attrs);\n  }\n  static line(attrs) {\n    return new Line(attrs);\n  }\n  static linear(attrs) {\n    return new Linear(attrs);\n  }\n  static lockDocument(attrs) {\n    return new LockDocument(attrs);\n  }\n  static manifest(attrs) {\n    return new Manifest(attrs);\n  }\n  static margin(attrs) {\n    return new Margin(attrs);\n  }\n  static mdp(attrs) {\n    return new Mdp(attrs);\n  }\n  static medium(attrs) {\n    return new Medium(attrs);\n  }\n  static message(attrs) {\n    return new Message(attrs);\n  }\n  static numericEdit(attrs) {\n    return new NumericEdit(attrs);\n  }\n  static occur(attrs) {\n    return new Occur(attrs);\n  }\n  static oid(attrs) {\n    return new Oid(attrs);\n  }\n  static oids(attrs) {\n    return new Oids(attrs);\n  }\n  static overflow(attrs) {\n    return new Overflow(attrs);\n  }\n  static pageArea(attrs) {\n    return new PageArea(attrs);\n  }\n  static pageSet(attrs) {\n    return new PageSet(attrs);\n  }\n  static para(attrs) {\n    return new Para(attrs);\n  }\n  static passwordEdit(attrs) {\n    return new PasswordEdit(attrs);\n  }\n  static pattern(attrs) {\n    return new template_Pattern(attrs);\n  }\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n  static proto(attrs) {\n    return new Proto(attrs);\n  }\n  static radial(attrs) {\n    return new Radial(attrs);\n  }\n  static reason(attrs) {\n    return new Reason(attrs);\n  }\n  static reasons(attrs) {\n    return new Reasons(attrs);\n  }\n  static rectangle(attrs) {\n    return new Rectangle(attrs);\n  }\n  static ref(attrs) {\n    return new RefElement(attrs);\n  }\n  static script(attrs) {\n    return new Script(attrs);\n  }\n  static setProperty(attrs) {\n    return new SetProperty(attrs);\n  }\n  static signData(attrs) {\n    return new SignData(attrs);\n  }\n  static signature(attrs) {\n    return new Signature(attrs);\n  }\n  static signing(attrs) {\n    return new Signing(attrs);\n  }\n  static solid(attrs) {\n    return new Solid(attrs);\n  }\n  static speak(attrs) {\n    return new Speak(attrs);\n  }\n  static stipple(attrs) {\n    return new Stipple(attrs);\n  }\n  static subform(attrs) {\n    return new Subform(attrs);\n  }\n  static subformSet(attrs) {\n    return new SubformSet(attrs);\n  }\n  static subjectDN(attrs) {\n    return new SubjectDN(attrs);\n  }\n  static subjectDNs(attrs) {\n    return new SubjectDNs(attrs);\n  }\n  static submit(attrs) {\n    return new Submit(attrs);\n  }\n  static template(attrs) {\n    return new Template(attrs);\n  }\n  static text(attrs) {\n    return new Text(attrs);\n  }\n  static textEdit(attrs) {\n    return new TextEdit(attrs);\n  }\n  static time(attrs) {\n    return new Time(attrs);\n  }\n  static timeStamp(attrs) {\n    return new TimeStamp(attrs);\n  }\n  static toolTip(attrs) {\n    return new ToolTip(attrs);\n  }\n  static traversal(attrs) {\n    return new Traversal(attrs);\n  }\n  static traverse(attrs) {\n    return new Traverse(attrs);\n  }\n  static ui(attrs) {\n    return new Ui(attrs);\n  }\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n  static value(attrs) {\n    return new Value(attrs);\n  }\n  static variables(attrs) {\n    return new Variables(attrs);\n  }\n}\n\n;// ./src/core/xfa/bind.js\n\n\n\n\n\n\n\n\n\n\n\nconst bind_NS_DATASETS = NamespaceIds.datasets.id;\nfunction createText(content) {\n  const node = new Text({});\n  node[$content] = content;\n  return node;\n}\nclass Binder {\n  constructor(root) {\n    this.root = root;\n    this.datasets = root.datasets;\n    this.data = root.datasets?.data || new XmlObject(NamespaceIds.datasets.id, \"data\");\n    this.emptyMerge = this.data[$getChildren]().length === 0;\n    this.root.form = this.form = root.template[$clone]();\n  }\n  _isConsumeData() {\n    return !this.emptyMerge && this._mergeMode;\n  }\n  _isMatchTemplate() {\n    return !this._isConsumeData();\n  }\n  bind() {\n    this._bindElement(this.form, this.data);\n    return this.form;\n  }\n  getData() {\n    return this.data;\n  }\n  _bindValue(formNode, data, picture) {\n    formNode[$data] = data;\n    if (formNode[$hasSettableValue]()) {\n      if (data[$isDataValue]()) {\n        const value = data[$getDataValue]();\n        formNode[$setValue](createText(value));\n      } else if (formNode instanceof Field && formNode.ui?.choiceList?.open === \"multiSelect\") {\n        const value = data[$getChildren]().map(child => child[$content].trim()).join(\"\\n\");\n        formNode[$setValue](createText(value));\n      } else if (this._isConsumeData()) {\n        warn(`XFA - Nodes haven't the same type.`);\n      }\n    } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n      this._bindElement(formNode, data);\n    } else {\n      warn(`XFA - Nodes haven't the same type.`);\n    }\n  }\n  _findDataByNameToConsume(name, isValue, dataNode, global) {\n    if (!name) {\n      return null;\n    }\n    let generator, match;\n    for (let i = 0; i < 3; i++) {\n      generator = dataNode[$getRealChildrenByNameIt](name, false, true);\n      while (true) {\n        match = generator.next().value;\n        if (!match) {\n          break;\n        }\n        if (isValue === match[$isDataValue]()) {\n          return match;\n        }\n      }\n      if (dataNode[$namespaceId] === NamespaceIds.datasets.id && dataNode[$nodeName] === \"data\") {\n        break;\n      }\n      dataNode = dataNode[$getParent]();\n    }\n    if (!global) {\n      return null;\n    }\n    generator = this.data[$getRealChildrenByNameIt](name, true, false);\n    match = generator.next().value;\n    if (match) {\n      return match;\n    }\n    generator = this.data[$getAttributeIt](name, true);\n    match = generator.next().value;\n    if (match?.[$isDataValue]()) {\n      return match;\n    }\n    return null;\n  }\n  _setProperties(formNode, dataNode) {\n    if (!Object.hasOwn(formNode, \"setProperty\")) {\n      return;\n    }\n    for (const {\n      ref,\n      target,\n      connection\n    } of formNode.setProperty.children) {\n      if (connection) {\n        continue;\n      }\n      if (!ref) {\n        continue;\n      }\n      const nodes = searchNode(this.root, dataNode, ref, false, false);\n      if (!nodes) {\n        warn(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n      const [node] = nodes;\n      if (!node[$isDescendent](this.data)) {\n        warn(`XFA - Invalid node: must be a data node.`);\n        continue;\n      }\n      const targetNodes = searchNode(this.root, formNode, target, false, false);\n      if (!targetNodes) {\n        warn(`XFA - Invalid target: ${target}.`);\n        continue;\n      }\n      const [targetNode] = targetNodes;\n      if (!targetNode[$isDescendent](formNode)) {\n        warn(`XFA - Invalid target: must be a property or subproperty.`);\n        continue;\n      }\n      const targetParent = targetNode[$getParent]();\n      if (targetNode instanceof SetProperty || targetParent instanceof SetProperty) {\n        warn(`XFA - Invalid target: cannot be a setProperty or one of its properties.`);\n        continue;\n      }\n      if (targetNode instanceof BindItems || targetParent instanceof BindItems) {\n        warn(`XFA - Invalid target: cannot be a bindItems or one of its properties.`);\n        continue;\n      }\n      const content = node[$text]();\n      const name = targetNode[$nodeName];\n      if (targetNode instanceof XFAAttribute) {\n        const attrs = Object.create(null);\n        attrs[name] = content;\n        const obj = Reflect.construct(Object.getPrototypeOf(targetParent).constructor, [attrs]);\n        targetParent[name] = obj[name];\n        continue;\n      }\n      if (!Object.hasOwn(targetNode, $content)) {\n        warn(`XFA - Invalid node to use in setProperty`);\n        continue;\n      }\n      targetNode[$data] = node;\n      targetNode[$content] = content;\n      targetNode[$finalize]();\n    }\n  }\n  _bindItems(formNode, dataNode) {\n    if (!Object.hasOwn(formNode, \"items\") || !Object.hasOwn(formNode, \"bindItems\") || formNode.bindItems.isEmpty()) {\n      return;\n    }\n    for (const item of formNode.items.children) {\n      formNode[$removeChild](item);\n    }\n    formNode.items.clear();\n    const labels = new Items({});\n    const values = new Items({});\n    formNode[$appendChild](labels);\n    formNode.items.push(labels);\n    formNode[$appendChild](values);\n    formNode.items.push(values);\n    for (const {\n      ref,\n      labelRef,\n      valueRef,\n      connection\n    } of formNode.bindItems.children) {\n      if (connection) {\n        continue;\n      }\n      if (!ref) {\n        continue;\n      }\n      const nodes = searchNode(this.root, dataNode, ref, false, false);\n      if (!nodes) {\n        warn(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n      for (const node of nodes) {\n        if (!node[$isDescendent](this.datasets)) {\n          warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n          continue;\n        }\n        const labelNodes = searchNode(this.root, node, labelRef, true, false);\n        if (!labelNodes) {\n          warn(`XFA - Invalid label: ${labelRef}.`);\n          continue;\n        }\n        const [labelNode] = labelNodes;\n        if (!labelNode[$isDescendent](this.datasets)) {\n          warn(`XFA - Invalid label: must be a datasets child.`);\n          continue;\n        }\n        const valueNodes = searchNode(this.root, node, valueRef, true, false);\n        if (!valueNodes) {\n          warn(`XFA - Invalid value: ${valueRef}.`);\n          continue;\n        }\n        const [valueNode] = valueNodes;\n        if (!valueNode[$isDescendent](this.datasets)) {\n          warn(`XFA - Invalid value: must be a datasets child.`);\n          continue;\n        }\n        const label = createText(labelNode[$text]());\n        const value = createText(valueNode[$text]());\n        labels[$appendChild](label);\n        labels.text.push(label);\n        values[$appendChild](value);\n        values.text.push(value);\n      }\n    }\n  }\n  _bindOccurrences(formNode, matches, picture) {\n    let baseClone;\n    if (matches.length > 1) {\n      baseClone = formNode[$clone]();\n      baseClone[$removeChild](baseClone.occur);\n      baseClone.occur = null;\n    }\n    this._bindValue(formNode, matches[0], picture);\n    this._setProperties(formNode, matches[0]);\n    this._bindItems(formNode, matches[0]);\n    if (matches.length === 1) {\n      return;\n    }\n    const parent = formNode[$getParent]();\n    const name = formNode[$nodeName];\n    const pos = parent[$indexOf](formNode);\n    for (let i = 1, ii = matches.length; i < ii; i++) {\n      const match = matches[i];\n      const clone = baseClone[$clone]();\n      parent[name].push(clone);\n      parent[$insertAt](pos + i, clone);\n      this._bindValue(clone, match, picture);\n      this._setProperties(clone, match);\n      this._bindItems(clone, match);\n    }\n  }\n  _createOccurrences(formNode) {\n    if (!this.emptyMerge) {\n      return;\n    }\n    const {\n      occur\n    } = formNode;\n    if (!occur || occur.initial <= 1) {\n      return;\n    }\n    const parent = formNode[$getParent]();\n    const name = formNode[$nodeName];\n    if (!(parent[name] instanceof XFAObjectArray)) {\n      return;\n    }\n    let currentNumber;\n    if (formNode.name) {\n      currentNumber = parent[name].children.filter(e => e.name === formNode.name).length;\n    } else {\n      currentNumber = parent[name].children.length;\n    }\n    const pos = parent[$indexOf](formNode) + 1;\n    const ii = occur.initial - currentNumber;\n    if (ii) {\n      const nodeClone = formNode[$clone]();\n      nodeClone[$removeChild](nodeClone.occur);\n      nodeClone.occur = null;\n      parent[name].push(nodeClone);\n      parent[$insertAt](pos, nodeClone);\n      for (let i = 1; i < ii; i++) {\n        const clone = nodeClone[$clone]();\n        parent[name].push(clone);\n        parent[$insertAt](pos + i, clone);\n      }\n    }\n  }\n  _getOccurInfo(formNode) {\n    const {\n      name,\n      occur\n    } = formNode;\n    if (!occur || !name) {\n      return [1, 1];\n    }\n    const max = occur.max === -1 ? Infinity : occur.max;\n    return [occur.min, max];\n  }\n  _setAndBind(formNode, dataNode) {\n    this._setProperties(formNode, dataNode);\n    this._bindItems(formNode, dataNode);\n    this._bindElement(formNode, dataNode);\n  }\n  _bindElement(formNode, dataNode) {\n    const uselessNodes = [];\n    this._createOccurrences(formNode);\n    for (const child of formNode[$getChildren]()) {\n      if (child[$data]) {\n        continue;\n      }\n      if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n        this._mergeMode = child.mergeMode === \"consumeData\";\n        const dataChildren = dataNode[$getChildren]();\n        if (dataChildren.length > 0) {\n          this._bindOccurrences(child, [dataChildren[0]], null);\n        } else if (this.emptyMerge) {\n          const nsId = dataNode[$namespaceId] === bind_NS_DATASETS ? -1 : dataNode[$namespaceId];\n          const dataChild = child[$data] = new XmlObject(nsId, child.name || \"root\");\n          dataNode[$appendChild](dataChild);\n          this._bindElement(child, dataChild);\n        }\n        continue;\n      }\n      if (!child[$isBindable]()) {\n        continue;\n      }\n      let global = false;\n      let picture = null;\n      let ref = null;\n      let match = null;\n      if (child.bind) {\n        switch (child.bind.match) {\n          case \"none\":\n            this._setAndBind(child, dataNode);\n            continue;\n          case \"global\":\n            global = true;\n            break;\n          case \"dataRef\":\n            if (!child.bind.ref) {\n              warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n              this._setAndBind(child, dataNode);\n              continue;\n            }\n            ref = child.bind.ref;\n            break;\n          default:\n            break;\n        }\n        if (child.bind.picture) {\n          picture = child.bind.picture[$content];\n        }\n      }\n      const [min, max] = this._getOccurInfo(child);\n      if (ref) {\n        match = searchNode(this.root, dataNode, ref, true, false);\n        if (match === null) {\n          match = createDataNode(this.data, dataNode, ref);\n          if (!match) {\n            continue;\n          }\n          if (this._isConsumeData()) {\n            match[$consumed] = true;\n          }\n          this._setAndBind(child, match);\n          continue;\n        } else {\n          if (this._isConsumeData()) {\n            match = match.filter(node => !node[$consumed]);\n          }\n          if (match.length > max) {\n            match = match.slice(0, max);\n          } else if (match.length === 0) {\n            match = null;\n          }\n          if (match && this._isConsumeData()) {\n            match.forEach(node => {\n              node[$consumed] = true;\n            });\n          }\n        }\n      } else {\n        if (!child.name) {\n          this._setAndBind(child, dataNode);\n          continue;\n        }\n        if (this._isConsumeData()) {\n          const matches = [];\n          while (matches.length < max) {\n            const found = this._findDataByNameToConsume(child.name, child[$hasSettableValue](), dataNode, global);\n            if (!found) {\n              break;\n            }\n            found[$consumed] = true;\n            matches.push(found);\n          }\n          match = matches.length > 0 ? matches : null;\n        } else {\n          match = dataNode[$getRealChildrenByNameIt](child.name, false, this.emptyMerge).next().value;\n          if (!match) {\n            if (min === 0) {\n              uselessNodes.push(child);\n              continue;\n            }\n            const nsId = dataNode[$namespaceId] === bind_NS_DATASETS ? -1 : dataNode[$namespaceId];\n            match = child[$data] = new XmlObject(nsId, child.name);\n            if (this.emptyMerge) {\n              match[$consumed] = true;\n            }\n            dataNode[$appendChild](match);\n            this._setAndBind(child, match);\n            continue;\n          }\n          if (this.emptyMerge) {\n            match[$consumed] = true;\n          }\n          match = [match];\n        }\n      }\n      if (match) {\n        this._bindOccurrences(child, match, picture);\n      } else if (min > 0) {\n        this._setAndBind(child, dataNode);\n      } else {\n        uselessNodes.push(child);\n      }\n    }\n    uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n  }\n}\n\n;// ./src/core/xfa/data.js\n\n\nclass DataHandler {\n  constructor(root, data) {\n    this.data = data;\n    this.dataset = root.datasets || null;\n  }\n  serialize(storage) {\n    const stack = [[-1, this.data[$getChildren]()]];\n    while (stack.length > 0) {\n      const last = stack.at(-1);\n      const [i, children] = last;\n      if (i + 1 === children.length) {\n        stack.pop();\n        continue;\n      }\n      const child = children[++last[0]];\n      const storageEntry = storage.get(child[$uid]);\n      if (storageEntry) {\n        child[$setValue](storageEntry);\n      } else {\n        const attributes = child[$getAttributes]();\n        for (const value of attributes.values()) {\n          const entry = storage.get(value[$uid]);\n          if (entry) {\n            value[$setValue](entry);\n            break;\n          }\n        }\n      }\n      const nodes = child[$getChildren]();\n      if (nodes.length > 0) {\n        stack.push([-1, nodes]);\n      }\n    }\n    const buf = [`<xfa:datasets xmlns:xfa=\"http://www.xfa.org/schema/xfa-data/1.0/\">`];\n    if (this.dataset) {\n      for (const child of this.dataset[$getChildren]()) {\n        if (child[$nodeName] !== \"data\") {\n          child[$toString](buf);\n        }\n      }\n    }\n    this.data[$toString](buf);\n    buf.push(\"</xfa:datasets>\");\n    return buf.join(\"\");\n  }\n}\n\n;// ./src/core/xfa/config.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\nclass Acrobat extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat\", true);\n    this.acrobat7 = null;\n    this.autoSave = null;\n    this.common = null;\n    this.validate = null;\n    this.validateApprovalSignatures = null;\n    this.submitUrl = new XFAObjectArray();\n  }\n}\nclass Acrobat7 extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat7\", true);\n    this.dynamicRender = null;\n  }\n}\nclass ADBE_JSConsole extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n}\nclass ADBE_JSDebugger extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n}\nclass AddSilentPrint extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addSilentPrint\");\n  }\n}\nclass AddViewerPreferences extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addViewerPreferences\");\n  }\n}\nclass AdjustData extends Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adjustData\");\n  }\n}\nclass AdobeExtensionLevel extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n  }\n}\nclass Agent extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"agent\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.common = new XFAObjectArray();\n  }\n}\nclass AlwaysEmbed extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"alwaysEmbed\");\n  }\n}\nclass Amd extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"amd\");\n  }\n}\nclass config_Area extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"area\");\n    this.level = getInteger({\n      data: attributes.level,\n      defaultValue: 0,\n      validate: n => n >= 1 && n <= 3\n    });\n    this.name = getStringOption(attributes.name, [\"\", \"barcode\", \"coreinit\", \"deviceDriver\", \"font\", \"general\", \"layout\", \"merge\", \"script\", \"signature\", \"sourceSet\", \"templateCache\"]);\n  }\n}\nclass Attributes extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n  }\n}\nclass AutoSave extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n  }\n}\nclass Base extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"base\");\n  }\n}\nclass BatchOutput extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"batchOutput\");\n    this.format = getStringOption(attributes.format, [\"none\", \"concat\", \"zip\", \"zipCompress\"]);\n  }\n}\nclass BehaviorOverride extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"behaviorOverride\");\n  }\n  [$finalize]() {\n    this[$content] = new Map(this[$content].trim().split(/\\s+/).filter(x => x.includes(\":\")).map(x => x.split(\":\", 2)));\n  }\n}\nclass Cache extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"cache\", true);\n    this.templateCache = null;\n  }\n}\nclass Change extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"change\");\n  }\n}\nclass Common extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"common\", true);\n    this.data = null;\n    this.locale = null;\n    this.localeSet = null;\n    this.messaging = null;\n    this.suppressBanner = null;\n    this.template = null;\n    this.validationMessaging = null;\n    this.versionControl = null;\n    this.log = new XFAObjectArray();\n  }\n}\nclass Compress extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compress\");\n    this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n  }\n}\nclass CompressLogicalStructure extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressLogicalStructure\");\n  }\n}\nclass CompressObjectStream extends Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressObjectStream\");\n  }\n}\nclass Compression extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compression\", true);\n    this.compressLogicalStructure = null;\n    this.compressObjectStream = null;\n    this.level = null;\n    this.type = null;\n  }\n}\nclass Config extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"config\", true);\n    this.acrobat = null;\n    this.present = null;\n    this.trace = null;\n    this.agent = new XFAObjectArray();\n  }\n}\nclass Conformance extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n  }\n}\nclass ContentCopy extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"contentCopy\");\n  }\n}\nclass Copies extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n  }\n}\nclass Creator extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"creator\");\n  }\n}\nclass CurrentPage extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n  }\n}\nclass Data extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"data\", true);\n    this.adjustData = null;\n    this.attributes = null;\n    this.incrementalLoad = null;\n    this.outputXSL = null;\n    this.range = null;\n    this.record = null;\n    this.startNode = null;\n    this.uri = null;\n    this.window = null;\n    this.xsl = null;\n    this.excludeNS = new XFAObjectArray();\n    this.transform = new XFAObjectArray();\n  }\n}\nclass Debug extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"debug\", true);\n    this.uri = null;\n  }\n}\nclass DefaultTypeface extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"defaultTypeface\");\n    this.writingScript = getStringOption(attributes.writingScript, [\"*\", \"Arabic\", \"Cyrillic\", \"EastEuropeanRoman\", \"Greek\", \"Hebrew\", \"Japanese\", \"Korean\", \"Roman\", \"SimplifiedChinese\", \"Thai\", \"TraditionalChinese\", \"Vietnamese\"]);\n  }\n}\nclass Destination extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"destination\", [\"pdf\", \"pcl\", \"ps\", \"webClient\", \"zpl\"]);\n  }\n}\nclass DocumentAssembly extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"documentAssembly\");\n  }\n}\nclass Driver extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"driver\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\nclass DuplexOption extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"duplexOption\", [\"simplex\", \"duplexFlipLongEdge\", \"duplexFlipShortEdge\"]);\n  }\n}\nclass DynamicRender extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n  }\n}\nclass Embed extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"embed\");\n  }\n}\nclass config_Encrypt extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encrypt\");\n  }\n}\nclass config_Encryption extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryption\", true);\n    this.encrypt = null;\n    this.encryptionLevel = null;\n    this.permissions = null;\n  }\n}\nclass EncryptionLevel extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n  }\n}\nclass Enforce extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"enforce\");\n  }\n}\nclass Equate extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equate\");\n    this.force = getInteger({\n      data: attributes.force,\n      defaultValue: 1,\n      validate: n => n === 0\n    });\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n  }\n}\nclass EquateRange extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equateRange\");\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n    this._unicodeRange = attributes.unicodeRange || \"\";\n  }\n  get unicodeRange() {\n    const ranges = [];\n    const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n    const unicodeRange = this._unicodeRange;\n    for (let range of unicodeRange.split(\",\").map(x => x.trim()).filter(x => !!x)) {\n      range = range.split(\"-\", 2).map(x => {\n        const found = x.match(unicodeRegex);\n        if (!found) {\n          return 0;\n        }\n        return parseInt(found[1], 16);\n      });\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n      ranges.push(range);\n    }\n    return shadow(this, \"unicodeRange\", ranges);\n  }\n}\nclass Exclude extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"exclude\");\n  }\n  [$finalize]() {\n    this[$content] = this[$content].trim().split(/\\s+/).filter(x => x && [\"calculate\", \"close\", \"enter\", \"exit\", \"initialize\", \"ready\", \"validate\"].includes(x));\n  }\n}\nclass ExcludeNS extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"excludeNS\");\n  }\n}\nclass FlipLabel extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n}\nclass config_FontInfo extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"fontInfo\", true);\n    this.embed = null;\n    this.map = null;\n    this.subsetBelow = null;\n    this.alwaysEmbed = new XFAObjectArray();\n    this.defaultTypeface = new XFAObjectArray();\n    this.neverEmbed = new XFAObjectArray();\n  }\n}\nclass FormFieldFilling extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"formFieldFilling\");\n  }\n}\nclass GroupParent extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"groupParent\");\n  }\n}\nclass IfEmpty extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ifEmpty\", [\"dataValue\", \"dataGroup\", \"ignore\", \"remove\"]);\n  }\n}\nclass IncludeXDPContent extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"includeXDPContent\");\n  }\n}\nclass IncrementalLoad extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n  }\n}\nclass IncrementalMerge extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalMerge\");\n  }\n}\nclass Interactive extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"interactive\");\n  }\n}\nclass Jog extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n  }\n}\nclass LabelPrinter extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"labelPrinter\", true);\n    this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\nclass Layout extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n  }\n}\nclass Level extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n  }\n}\nclass Linearized extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"linearized\");\n  }\n}\nclass Locale extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"locale\");\n  }\n}\nclass LocaleSet extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"localeSet\");\n  }\n}\nclass Log extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"log\", true);\n    this.mode = null;\n    this.threshold = null;\n    this.to = null;\n    this.uri = null;\n  }\n}\nclass MapElement extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"map\", true);\n    this.equate = new XFAObjectArray();\n    this.equateRange = new XFAObjectArray();\n  }\n}\nclass MediumInfo extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mediumInfo\", true);\n    this.map = null;\n  }\n}\nclass config_Message extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"message\", true);\n    this.msgId = null;\n    this.severity = null;\n  }\n}\nclass Messaging extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"messaging\", true);\n    this.message = new XFAObjectArray();\n  }\n}\nclass Mode extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n  }\n}\nclass ModifyAnnots extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"modifyAnnots\");\n  }\n}\nclass MsgId extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n  }\n}\nclass NameAttr extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"nameAttr\");\n  }\n}\nclass NeverEmbed extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"neverEmbed\");\n  }\n}\nclass NumberOfCopies extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n  }\n}\nclass OpenAction extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"openAction\", true);\n    this.destination = null;\n  }\n}\nclass Output extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"output\", true);\n    this.to = null;\n    this.type = null;\n    this.uri = null;\n  }\n}\nclass OutputBin extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputBin\");\n  }\n}\nclass OutputXSL extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputXSL\", true);\n    this.uri = null;\n  }\n}\nclass Overprint extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n  }\n}\nclass Packets extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"packets\");\n  }\n  [$finalize]() {\n    if (this[$content] === \"*\") {\n      return;\n    }\n    this[$content] = this[$content].trim().split(/\\s+/).filter(x => [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x));\n  }\n}\nclass PageOffset extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageOffset\");\n    this.x = getInteger({\n      data: attributes.x,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true\n    });\n    this.y = getInteger({\n      data: attributes.y,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true\n    });\n  }\n}\nclass PageRange extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageRange\");\n  }\n  [$finalize]() {\n    const numbers = this[$content].trim().split(/\\s+/).map(x => parseInt(x, 10));\n    const ranges = [];\n    for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n      ranges.push(numbers.slice(i, i + 2));\n    }\n    this[$content] = ranges;\n  }\n}\nclass Pagination extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pagination\", [\"simplex\", \"duplexShortEdge\", \"duplexLongEdge\"]);\n  }\n}\nclass PaginationOverride extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"paginationOverride\", [\"none\", \"forceDuplex\", \"forceDuplexLongEdge\", \"forceDuplexShortEdge\", \"forceSimplex\"]);\n  }\n}\nclass Part extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"part\", 1, n => false);\n  }\n}\nclass Pcl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pcl\", true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.pageOffset = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n}\nclass Pdf extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdf\", true);\n    this.name = attributes.name || \"\";\n    this.adobeExtensionLevel = null;\n    this.batchOutput = null;\n    this.compression = null;\n    this.creator = null;\n    this.encryption = null;\n    this.fontInfo = null;\n    this.interactive = null;\n    this.linearized = null;\n    this.openAction = null;\n    this.pdfa = null;\n    this.producer = null;\n    this.renderPolicy = null;\n    this.scriptModel = null;\n    this.silentPrint = null;\n    this.submitFormat = null;\n    this.tagged = null;\n    this.version = null;\n    this.viewerPreferences = null;\n    this.xdc = null;\n  }\n}\nclass Pdfa extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdfa\", true);\n    this.amd = null;\n    this.conformance = null;\n    this.includeXDPContent = null;\n    this.part = null;\n  }\n}\nclass Permissions extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"permissions\", true);\n    this.accessibleContent = null;\n    this.change = null;\n    this.contentCopy = null;\n    this.documentAssembly = null;\n    this.formFieldFilling = null;\n    this.modifyAnnots = null;\n    this.plaintextMetadata = null;\n    this.print = null;\n    this.printHighQuality = null;\n  }\n}\nclass PickTrayByPDFSize extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n  }\n}\nclass config_Picture extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"picture\");\n  }\n}\nclass PlaintextMetadata extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"plaintextMetadata\");\n  }\n}\nclass Presence extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"presence\", [\"preserve\", \"dissolve\", \"dissolveStructure\", \"ignore\", \"remove\"]);\n  }\n}\nclass Present extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"present\", true);\n    this.behaviorOverride = null;\n    this.cache = null;\n    this.common = null;\n    this.copies = null;\n    this.destination = null;\n    this.incrementalMerge = null;\n    this.layout = null;\n    this.output = null;\n    this.overprint = null;\n    this.pagination = null;\n    this.paginationOverride = null;\n    this.script = null;\n    this.validate = null;\n    this.xdp = null;\n    this.driver = new XFAObjectArray();\n    this.labelPrinter = new XFAObjectArray();\n    this.pcl = new XFAObjectArray();\n    this.pdf = new XFAObjectArray();\n    this.ps = new XFAObjectArray();\n    this.submitUrl = new XFAObjectArray();\n    this.webClient = new XFAObjectArray();\n    this.zpl = new XFAObjectArray();\n  }\n}\nclass Print extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"print\");\n  }\n}\nclass PrintHighQuality extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printHighQuality\");\n  }\n}\nclass PrintScaling extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n  }\n}\nclass PrinterName extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printerName\");\n  }\n}\nclass Producer extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"producer\");\n  }\n}\nclass Ps extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ps\", true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n}\nclass Range extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"range\");\n  }\n  [$finalize]() {\n    this[$content] = this[$content].split(\",\", 2).map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10))).filter(range => range.every(x => !isNaN(x))).map(range => {\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n      return range;\n    });\n  }\n}\nclass Record extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"record\");\n  }\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n    const n = parseInt(this[$content], 10);\n    if (!isNaN(n) && n >= 0) {\n      this[$content] = n;\n    }\n  }\n}\nclass Relevant extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"relevant\");\n  }\n  [$finalize]() {\n    this[$content] = this[$content].trim().split(/\\s+/);\n  }\n}\nclass Rename extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"rename\");\n  }\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n    if (this[$content].toLowerCase().startsWith(\"xml\") || /[\\p{L}_][\\p{L}\\d._\\p{M}-]*/u.test(this[$content])) {\n      warn(\"XFA - Rename: invalid XFA name\");\n    }\n  }\n}\nclass RenderPolicy extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n  }\n}\nclass RunScripts extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n  }\n}\nclass config_Script extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"script\", true);\n    this.currentPage = null;\n    this.exclude = null;\n    this.runScripts = null;\n  }\n}\nclass ScriptModel extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n  }\n}\nclass Severity extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"severity\", [\"ignore\", \"error\", \"information\", \"trace\", \"warning\"]);\n  }\n}\nclass SilentPrint extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"silentPrint\", true);\n    this.addSilentPrint = null;\n    this.printerName = null;\n  }\n}\nclass Staple extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"staple\");\n    this.mode = getStringOption(attributes.mode, [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n}\nclass StartNode extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startNode\");\n  }\n}\nclass StartPage extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n  }\n}\nclass SubmitFormat extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitFormat\", [\"html\", \"delegate\", \"fdf\", \"xml\", \"pdf\"]);\n  }\n}\nclass SubmitUrl extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitUrl\");\n  }\n}\nclass SubsetBelow extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n  }\n}\nclass SuppressBanner extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"suppressBanner\");\n  }\n}\nclass Tagged extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"tagged\");\n  }\n}\nclass config_Template extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"template\", true);\n    this.base = null;\n    this.relevant = null;\n    this.startPage = null;\n    this.uri = null;\n    this.xsl = null;\n  }\n}\nclass Threshold extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"threshold\", [\"trace\", \"error\", \"information\", \"warning\"]);\n  }\n}\nclass To extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"to\", [\"null\", \"memory\", \"stderr\", \"stdout\", \"system\", \"uri\"]);\n  }\n}\nclass TemplateCache extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"templateCache\");\n    this.maxEntries = getInteger({\n      data: attributes.maxEntries,\n      defaultValue: 5,\n      validate: n => n >= 0\n    });\n  }\n}\nclass Trace extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"trace\", true);\n    this.area = new XFAObjectArray();\n  }\n}\nclass Transform extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"transform\", true);\n    this.groupParent = null;\n    this.ifEmpty = null;\n    this.nameAttr = null;\n    this.picture = null;\n    this.presence = null;\n    this.rename = null;\n    this.whitespace = null;\n  }\n}\nclass Type extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"type\", [\"none\", \"ascii85\", \"asciiHex\", \"ccittfax\", \"flate\", \"lzw\", \"runLength\", \"native\", \"xdp\", \"mergedXDP\"]);\n  }\n}\nclass Uri extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"uri\");\n  }\n}\nclass config_Validate extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validate\", [\"preSubmit\", \"prePrint\", \"preExecute\", \"preSave\"]);\n  }\n}\nclass ValidateApprovalSignatures extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n  }\n  [$finalize]() {\n    this[$content] = this[$content].trim().split(/\\s+/).filter(x => [\"docReady\", \"postSign\"].includes(x));\n  }\n}\nclass ValidationMessaging extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validationMessaging\", [\"allMessagesIndividually\", \"allMessagesTogether\", \"firstMessageOnly\", \"noMessages\"]);\n  }\n}\nclass Version extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n  }\n}\nclass VersionControl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"VersionControl\");\n    this.outputBelow = getStringOption(attributes.outputBelow, [\"warn\", \"error\", \"update\"]);\n    this.sourceAbove = getStringOption(attributes.sourceAbove, [\"warn\", \"error\"]);\n    this.sourceBelow = getStringOption(attributes.sourceBelow, [\"update\", \"maintain\"]);\n  }\n}\nclass ViewerPreferences extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"viewerPreferences\", true);\n    this.ADBE_JSConsole = null;\n    this.ADBE_JSDebugger = null;\n    this.addViewerPreferences = null;\n    this.duplexOption = null;\n    this.enforce = null;\n    this.numberOfCopies = null;\n    this.pageRange = null;\n    this.pickTrayByPDFSize = null;\n    this.printScaling = null;\n  }\n}\nclass WebClient extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"webClient\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\nclass Whitespace extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"whitespace\", [\"preserve\", \"ltrim\", \"normalize\", \"rtrim\", \"trim\"]);\n  }\n}\nclass Window extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"window\");\n  }\n  [$finalize]() {\n    const pair = this[$content].split(\",\", 2).map(x => parseInt(x.trim(), 10));\n    if (pair.some(x => isNaN(x))) {\n      this[$content] = [0, 0];\n      return;\n    }\n    if (pair.length === 1) {\n      pair.push(pair[0]);\n    }\n    this[$content] = pair;\n  }\n}\nclass Xdc extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdc\", true);\n    this.uri = new XFAObjectArray();\n    this.xsl = new XFAObjectArray();\n  }\n}\nclass Xdp extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdp\", true);\n    this.packets = null;\n  }\n}\nclass Xsl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xsl\", true);\n    this.debug = null;\n    this.uri = null;\n  }\n}\nclass Zpl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"zpl\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\nclass ConfigNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(ConfigNamespace, name)) {\n      return ConfigNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static acrobat(attrs) {\n    return new Acrobat(attrs);\n  }\n  static acrobat7(attrs) {\n    return new Acrobat7(attrs);\n  }\n  static ADBE_JSConsole(attrs) {\n    return new ADBE_JSConsole(attrs);\n  }\n  static ADBE_JSDebugger(attrs) {\n    return new ADBE_JSDebugger(attrs);\n  }\n  static addSilentPrint(attrs) {\n    return new AddSilentPrint(attrs);\n  }\n  static addViewerPreferences(attrs) {\n    return new AddViewerPreferences(attrs);\n  }\n  static adjustData(attrs) {\n    return new AdjustData(attrs);\n  }\n  static adobeExtensionLevel(attrs) {\n    return new AdobeExtensionLevel(attrs);\n  }\n  static agent(attrs) {\n    return new Agent(attrs);\n  }\n  static alwaysEmbed(attrs) {\n    return new AlwaysEmbed(attrs);\n  }\n  static amd(attrs) {\n    return new Amd(attrs);\n  }\n  static area(attrs) {\n    return new config_Area(attrs);\n  }\n  static attributes(attrs) {\n    return new Attributes(attrs);\n  }\n  static autoSave(attrs) {\n    return new AutoSave(attrs);\n  }\n  static base(attrs) {\n    return new Base(attrs);\n  }\n  static batchOutput(attrs) {\n    return new BatchOutput(attrs);\n  }\n  static behaviorOverride(attrs) {\n    return new BehaviorOverride(attrs);\n  }\n  static cache(attrs) {\n    return new Cache(attrs);\n  }\n  static change(attrs) {\n    return new Change(attrs);\n  }\n  static common(attrs) {\n    return new Common(attrs);\n  }\n  static compress(attrs) {\n    return new Compress(attrs);\n  }\n  static compressLogicalStructure(attrs) {\n    return new CompressLogicalStructure(attrs);\n  }\n  static compressObjectStream(attrs) {\n    return new CompressObjectStream(attrs);\n  }\n  static compression(attrs) {\n    return new Compression(attrs);\n  }\n  static config(attrs) {\n    return new Config(attrs);\n  }\n  static conformance(attrs) {\n    return new Conformance(attrs);\n  }\n  static contentCopy(attrs) {\n    return new ContentCopy(attrs);\n  }\n  static copies(attrs) {\n    return new Copies(attrs);\n  }\n  static creator(attrs) {\n    return new Creator(attrs);\n  }\n  static currentPage(attrs) {\n    return new CurrentPage(attrs);\n  }\n  static data(attrs) {\n    return new Data(attrs);\n  }\n  static debug(attrs) {\n    return new Debug(attrs);\n  }\n  static defaultTypeface(attrs) {\n    return new DefaultTypeface(attrs);\n  }\n  static destination(attrs) {\n    return new Destination(attrs);\n  }\n  static documentAssembly(attrs) {\n    return new DocumentAssembly(attrs);\n  }\n  static driver(attrs) {\n    return new Driver(attrs);\n  }\n  static duplexOption(attrs) {\n    return new DuplexOption(attrs);\n  }\n  static dynamicRender(attrs) {\n    return new DynamicRender(attrs);\n  }\n  static embed(attrs) {\n    return new Embed(attrs);\n  }\n  static encrypt(attrs) {\n    return new config_Encrypt(attrs);\n  }\n  static encryption(attrs) {\n    return new config_Encryption(attrs);\n  }\n  static encryptionLevel(attrs) {\n    return new EncryptionLevel(attrs);\n  }\n  static enforce(attrs) {\n    return new Enforce(attrs);\n  }\n  static equate(attrs) {\n    return new Equate(attrs);\n  }\n  static equateRange(attrs) {\n    return new EquateRange(attrs);\n  }\n  static exclude(attrs) {\n    return new Exclude(attrs);\n  }\n  static excludeNS(attrs) {\n    return new ExcludeNS(attrs);\n  }\n  static flipLabel(attrs) {\n    return new FlipLabel(attrs);\n  }\n  static fontInfo(attrs) {\n    return new config_FontInfo(attrs);\n  }\n  static formFieldFilling(attrs) {\n    return new FormFieldFilling(attrs);\n  }\n  static groupParent(attrs) {\n    return new GroupParent(attrs);\n  }\n  static ifEmpty(attrs) {\n    return new IfEmpty(attrs);\n  }\n  static includeXDPContent(attrs) {\n    return new IncludeXDPContent(attrs);\n  }\n  static incrementalLoad(attrs) {\n    return new IncrementalLoad(attrs);\n  }\n  static incrementalMerge(attrs) {\n    return new IncrementalMerge(attrs);\n  }\n  static interactive(attrs) {\n    return new Interactive(attrs);\n  }\n  static jog(attrs) {\n    return new Jog(attrs);\n  }\n  static labelPrinter(attrs) {\n    return new LabelPrinter(attrs);\n  }\n  static layout(attrs) {\n    return new Layout(attrs);\n  }\n  static level(attrs) {\n    return new Level(attrs);\n  }\n  static linearized(attrs) {\n    return new Linearized(attrs);\n  }\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n  static log(attrs) {\n    return new Log(attrs);\n  }\n  static map(attrs) {\n    return new MapElement(attrs);\n  }\n  static mediumInfo(attrs) {\n    return new MediumInfo(attrs);\n  }\n  static message(attrs) {\n    return new config_Message(attrs);\n  }\n  static messaging(attrs) {\n    return new Messaging(attrs);\n  }\n  static mode(attrs) {\n    return new Mode(attrs);\n  }\n  static modifyAnnots(attrs) {\n    return new ModifyAnnots(attrs);\n  }\n  static msgId(attrs) {\n    return new MsgId(attrs);\n  }\n  static nameAttr(attrs) {\n    return new NameAttr(attrs);\n  }\n  static neverEmbed(attrs) {\n    return new NeverEmbed(attrs);\n  }\n  static numberOfCopies(attrs) {\n    return new NumberOfCopies(attrs);\n  }\n  static openAction(attrs) {\n    return new OpenAction(attrs);\n  }\n  static output(attrs) {\n    return new Output(attrs);\n  }\n  static outputBin(attrs) {\n    return new OutputBin(attrs);\n  }\n  static outputXSL(attrs) {\n    return new OutputXSL(attrs);\n  }\n  static overprint(attrs) {\n    return new Overprint(attrs);\n  }\n  static packets(attrs) {\n    return new Packets(attrs);\n  }\n  static pageOffset(attrs) {\n    return new PageOffset(attrs);\n  }\n  static pageRange(attrs) {\n    return new PageRange(attrs);\n  }\n  static pagination(attrs) {\n    return new Pagination(attrs);\n  }\n  static paginationOverride(attrs) {\n    return new PaginationOverride(attrs);\n  }\n  static part(attrs) {\n    return new Part(attrs);\n  }\n  static pcl(attrs) {\n    return new Pcl(attrs);\n  }\n  static pdf(attrs) {\n    return new Pdf(attrs);\n  }\n  static pdfa(attrs) {\n    return new Pdfa(attrs);\n  }\n  static permissions(attrs) {\n    return new Permissions(attrs);\n  }\n  static pickTrayByPDFSize(attrs) {\n    return new PickTrayByPDFSize(attrs);\n  }\n  static picture(attrs) {\n    return new config_Picture(attrs);\n  }\n  static plaintextMetadata(attrs) {\n    return new PlaintextMetadata(attrs);\n  }\n  static presence(attrs) {\n    return new Presence(attrs);\n  }\n  static present(attrs) {\n    return new Present(attrs);\n  }\n  static print(attrs) {\n    return new Print(attrs);\n  }\n  static printHighQuality(attrs) {\n    return new PrintHighQuality(attrs);\n  }\n  static printScaling(attrs) {\n    return new PrintScaling(attrs);\n  }\n  static printerName(attrs) {\n    return new PrinterName(attrs);\n  }\n  static producer(attrs) {\n    return new Producer(attrs);\n  }\n  static ps(attrs) {\n    return new Ps(attrs);\n  }\n  static range(attrs) {\n    return new Range(attrs);\n  }\n  static record(attrs) {\n    return new Record(attrs);\n  }\n  static relevant(attrs) {\n    return new Relevant(attrs);\n  }\n  static rename(attrs) {\n    return new Rename(attrs);\n  }\n  static renderPolicy(attrs) {\n    return new RenderPolicy(attrs);\n  }\n  static runScripts(attrs) {\n    return new RunScripts(attrs);\n  }\n  static script(attrs) {\n    return new config_Script(attrs);\n  }\n  static scriptModel(attrs) {\n    return new ScriptModel(attrs);\n  }\n  static severity(attrs) {\n    return new Severity(attrs);\n  }\n  static silentPrint(attrs) {\n    return new SilentPrint(attrs);\n  }\n  static staple(attrs) {\n    return new Staple(attrs);\n  }\n  static startNode(attrs) {\n    return new StartNode(attrs);\n  }\n  static startPage(attrs) {\n    return new StartPage(attrs);\n  }\n  static submitFormat(attrs) {\n    return new SubmitFormat(attrs);\n  }\n  static submitUrl(attrs) {\n    return new SubmitUrl(attrs);\n  }\n  static subsetBelow(attrs) {\n    return new SubsetBelow(attrs);\n  }\n  static suppressBanner(attrs) {\n    return new SuppressBanner(attrs);\n  }\n  static tagged(attrs) {\n    return new Tagged(attrs);\n  }\n  static template(attrs) {\n    return new config_Template(attrs);\n  }\n  static templateCache(attrs) {\n    return new TemplateCache(attrs);\n  }\n  static threshold(attrs) {\n    return new Threshold(attrs);\n  }\n  static to(attrs) {\n    return new To(attrs);\n  }\n  static trace(attrs) {\n    return new Trace(attrs);\n  }\n  static transform(attrs) {\n    return new Transform(attrs);\n  }\n  static type(attrs) {\n    return new Type(attrs);\n  }\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n  static validate(attrs) {\n    return new config_Validate(attrs);\n  }\n  static validateApprovalSignatures(attrs) {\n    return new ValidateApprovalSignatures(attrs);\n  }\n  static validationMessaging(attrs) {\n    return new ValidationMessaging(attrs);\n  }\n  static version(attrs) {\n    return new Version(attrs);\n  }\n  static versionControl(attrs) {\n    return new VersionControl(attrs);\n  }\n  static viewerPreferences(attrs) {\n    return new ViewerPreferences(attrs);\n  }\n  static webClient(attrs) {\n    return new WebClient(attrs);\n  }\n  static whitespace(attrs) {\n    return new Whitespace(attrs);\n  }\n  static window(attrs) {\n    return new Window(attrs);\n  }\n  static xdc(attrs) {\n    return new Xdc(attrs);\n  }\n  static xdp(attrs) {\n    return new Xdp(attrs);\n  }\n  static xsl(attrs) {\n    return new Xsl(attrs);\n  }\n  static zpl(attrs) {\n    return new Zpl(attrs);\n  }\n}\n\n;// ./src/core/xfa/connection_set.js\n\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\nclass ConnectionSet extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"connectionSet\", true);\n    this.wsdlConnection = new XFAObjectArray();\n    this.xmlConnection = new XFAObjectArray();\n    this.xsdConnection = new XFAObjectArray();\n  }\n}\nclass EffectiveInputPolicy extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass EffectiveOutputPolicy extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass Operation extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"operation\");\n    this.id = attributes.id || \"\";\n    this.input = attributes.input || \"\";\n    this.name = attributes.name || \"\";\n    this.output = attributes.output || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass RootElement extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"rootElement\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass SoapAction extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAction\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass SoapAddress extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass connection_set_Uri extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"uri\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass WsdlAddress extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\nclass WsdlConnection extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.effectiveInputPolicy = null;\n    this.effectiveOutputPolicy = null;\n    this.operation = null;\n    this.soapAction = null;\n    this.soapAddress = null;\n    this.wsdlAddress = null;\n  }\n}\nclass XmlConnection extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xmlConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.uri = null;\n  }\n}\nclass XsdConnection extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xsdConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.rootElement = null;\n    this.uri = null;\n  }\n}\nclass ConnectionSetNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(ConnectionSetNamespace, name)) {\n      return ConnectionSetNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static connectionSet(attrs) {\n    return new ConnectionSet(attrs);\n  }\n  static effectiveInputPolicy(attrs) {\n    return new EffectiveInputPolicy(attrs);\n  }\n  static effectiveOutputPolicy(attrs) {\n    return new EffectiveOutputPolicy(attrs);\n  }\n  static operation(attrs) {\n    return new Operation(attrs);\n  }\n  static rootElement(attrs) {\n    return new RootElement(attrs);\n  }\n  static soapAction(attrs) {\n    return new SoapAction(attrs);\n  }\n  static soapAddress(attrs) {\n    return new SoapAddress(attrs);\n  }\n  static uri(attrs) {\n    return new connection_set_Uri(attrs);\n  }\n  static wsdlAddress(attrs) {\n    return new WsdlAddress(attrs);\n  }\n  static wsdlConnection(attrs) {\n    return new WsdlConnection(attrs);\n  }\n  static xmlConnection(attrs) {\n    return new XmlConnection(attrs);\n  }\n  static xsdConnection(attrs) {\n    return new XsdConnection(attrs);\n  }\n}\n\n;// ./src/core/xfa/datasets.js\n\n\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\nclass datasets_Data extends XmlObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"data\", attributes);\n  }\n  [$isNsAgnostic]() {\n    return true;\n  }\n}\nclass Datasets extends XFAObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"datasets\", true);\n    this.data = null;\n    this.Signature = null;\n  }\n  [$onChild](child) {\n    const name = child[$nodeName];\n    if (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID || name === \"Signature\" && child[$namespaceId] === NamespaceIds.signature.id) {\n      this[name] = child;\n    }\n    this[$appendChild](child);\n  }\n}\nclass DatasetsNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(DatasetsNamespace, name)) {\n      return DatasetsNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static datasets(attributes) {\n    return new Datasets(attributes);\n  }\n  static data(attributes) {\n    return new datasets_Data(attributes);\n  }\n}\n\n;// ./src/core/xfa/locale_set.js\n\n\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\nclass CalendarSymbols extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"calendarSymbols\", true);\n    this.name = \"gregorian\";\n    this.dayNames = new XFAObjectArray(2);\n    this.eraNames = null;\n    this.meridiemNames = null;\n    this.monthNames = new XFAObjectArray(2);\n  }\n}\nclass CurrencySymbol extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbol\");\n    this.name = getStringOption(attributes.name, [\"symbol\", \"isoname\", \"decimal\"]);\n  }\n}\nclass CurrencySymbols extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbols\", true);\n    this.currencySymbol = new XFAObjectArray(3);\n  }\n}\nclass DatePattern extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePattern\");\n    this.name = getStringOption(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n}\nclass DatePatterns extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePatterns\", true);\n    this.datePattern = new XFAObjectArray(4);\n  }\n}\nclass DateTimeSymbols extends ContentObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n  }\n}\nclass Day extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"day\");\n  }\n}\nclass DayNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dayNames\", true);\n    this.abbr = getInteger({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.day = new XFAObjectArray(7);\n  }\n}\nclass Era extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"era\");\n  }\n}\nclass EraNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"eraNames\", true);\n    this.era = new XFAObjectArray(2);\n  }\n}\nclass locale_set_Locale extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"locale\", true);\n    this.desc = attributes.desc || \"\";\n    this.name = \"isoname\";\n    this.calendarSymbols = null;\n    this.currencySymbols = null;\n    this.datePatterns = null;\n    this.dateTimeSymbols = null;\n    this.numberPatterns = null;\n    this.numberSymbols = null;\n    this.timePatterns = null;\n    this.typeFaces = null;\n  }\n}\nclass locale_set_LocaleSet extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"localeSet\", true);\n    this.locale = new XFAObjectArray();\n  }\n}\nclass Meridiem extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiem\");\n  }\n}\nclass MeridiemNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiemNames\", true);\n    this.meridiem = new XFAObjectArray(2);\n  }\n}\nclass Month extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"month\");\n  }\n}\nclass MonthNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"monthNames\", true);\n    this.abbr = getInteger({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.month = new XFAObjectArray(12);\n  }\n}\nclass NumberPattern extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPattern\");\n    this.name = getStringOption(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n}\nclass NumberPatterns extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPatterns\", true);\n    this.numberPattern = new XFAObjectArray(4);\n  }\n}\nclass NumberSymbol extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbol\");\n    this.name = getStringOption(attributes.name, [\"decimal\", \"grouping\", \"percent\", \"minus\", \"zero\"]);\n  }\n}\nclass NumberSymbols extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbols\", true);\n    this.numberSymbol = new XFAObjectArray(5);\n  }\n}\nclass TimePattern extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePattern\");\n    this.name = getStringOption(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n}\nclass TimePatterns extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePatterns\", true);\n    this.timePattern = new XFAObjectArray(4);\n  }\n}\nclass TypeFace extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFace\", true);\n    this.name = attributes.name | \"\";\n  }\n}\nclass TypeFaces extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFaces\", true);\n    this.typeFace = new XFAObjectArray();\n  }\n}\nclass LocaleSetNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(LocaleSetNamespace, name)) {\n      return LocaleSetNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static calendarSymbols(attrs) {\n    return new CalendarSymbols(attrs);\n  }\n  static currencySymbol(attrs) {\n    return new CurrencySymbol(attrs);\n  }\n  static currencySymbols(attrs) {\n    return new CurrencySymbols(attrs);\n  }\n  static datePattern(attrs) {\n    return new DatePattern(attrs);\n  }\n  static datePatterns(attrs) {\n    return new DatePatterns(attrs);\n  }\n  static dateTimeSymbols(attrs) {\n    return new DateTimeSymbols(attrs);\n  }\n  static day(attrs) {\n    return new Day(attrs);\n  }\n  static dayNames(attrs) {\n    return new DayNames(attrs);\n  }\n  static era(attrs) {\n    return new Era(attrs);\n  }\n  static eraNames(attrs) {\n    return new EraNames(attrs);\n  }\n  static locale(attrs) {\n    return new locale_set_Locale(attrs);\n  }\n  static localeSet(attrs) {\n    return new locale_set_LocaleSet(attrs);\n  }\n  static meridiem(attrs) {\n    return new Meridiem(attrs);\n  }\n  static meridiemNames(attrs) {\n    return new MeridiemNames(attrs);\n  }\n  static month(attrs) {\n    return new Month(attrs);\n  }\n  static monthNames(attrs) {\n    return new MonthNames(attrs);\n  }\n  static numberPattern(attrs) {\n    return new NumberPattern(attrs);\n  }\n  static numberPatterns(attrs) {\n    return new NumberPatterns(attrs);\n  }\n  static numberSymbol(attrs) {\n    return new NumberSymbol(attrs);\n  }\n  static numberSymbols(attrs) {\n    return new NumberSymbols(attrs);\n  }\n  static timePattern(attrs) {\n    return new TimePattern(attrs);\n  }\n  static timePatterns(attrs) {\n    return new TimePatterns(attrs);\n  }\n  static typeFace(attrs) {\n    return new TypeFace(attrs);\n  }\n  static typeFaces(attrs) {\n    return new TypeFaces(attrs);\n  }\n}\n\n;// ./src/core/xfa/signature.js\n\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\nclass signature_Signature extends XFAObject {\n  constructor(attributes) {\n    super(SIGNATURE_NS_ID, \"signature\", true);\n  }\n}\nclass SignatureNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(SignatureNamespace, name)) {\n      return SignatureNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static signature(attributes) {\n    return new signature_Signature(attributes);\n  }\n}\n\n;// ./src/core/xfa/stylesheet.js\n\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\nclass Stylesheet extends XFAObject {\n  constructor(attributes) {\n    super(STYLESHEET_NS_ID, \"stylesheet\", true);\n  }\n}\nclass StylesheetNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(StylesheetNamespace, name)) {\n      return StylesheetNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static stylesheet(attributes) {\n    return new Stylesheet(attributes);\n  }\n}\n\n;// ./src/core/xfa/xdp.js\n\n\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\nclass xdp_Xdp extends XFAObject {\n  constructor(attributes) {\n    super(XDP_NS_ID, \"xdp\", true);\n    this.uuid = attributes.uuid || \"\";\n    this.timeStamp = attributes.timeStamp || \"\";\n    this.config = null;\n    this.connectionSet = null;\n    this.datasets = null;\n    this.localeSet = null;\n    this.stylesheet = new XFAObjectArray();\n    this.template = null;\n  }\n  [$onChildCheck](child) {\n    const ns = NamespaceIds[child[$nodeName]];\n    return ns && child[$namespaceId] === ns.id;\n  }\n}\nclass XdpNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(XdpNamespace, name)) {\n      return XdpNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static xdp(attributes) {\n    return new xdp_Xdp(attributes);\n  }\n}\n\n;// ./src/core/xfa/xhtml.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\nconst VALID_STYLES = new Set([\"color\", \"font\", \"font-family\", \"font-size\", \"font-stretch\", \"font-style\", \"font-weight\", \"margin\", \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"letter-spacing\", \"line-height\", \"orphans\", \"page-break-after\", \"page-break-before\", \"page-break-inside\", \"tab-interval\", \"tab-stop\", \"text-align\", \"text-decoration\", \"text-indent\", \"vertical-align\", \"widows\", \"kerning-mode\", \"xfa-font-horizontal-scale\", \"xfa-font-vertical-scale\", \"xfa-spacerun\", \"xfa-tab-stops\"]);\nconst StyleMapping = new Map([[\"page-break-after\", \"breakAfter\"], [\"page-break-before\", \"breakBefore\"], [\"page-break-inside\", \"breakInside\"], [\"kerning-mode\", value => value === \"none\" ? \"none\" : \"normal\"], [\"xfa-font-horizontal-scale\", value => `scaleX(${Math.max(0, parseInt(value, 10) / 100).toFixed(2)})`], [\"xfa-font-vertical-scale\", value => `scaleY(${Math.max(0, parseInt(value, 10) / 100).toFixed(2)})`], [\"xfa-spacerun\", \"\"], [\"xfa-tab-stops\", \"\"], [\"font-size\", (value, original) => {\n  value = original.fontSize = Math.abs(getMeasurement(value));\n  return measureToString(0.99 * value);\n}], [\"letter-spacing\", value => measureToString(getMeasurement(value))], [\"line-height\", value => measureToString(getMeasurement(value))], [\"margin\", value => measureToString(getMeasurement(value))], [\"margin-bottom\", value => measureToString(getMeasurement(value))], [\"margin-left\", value => measureToString(getMeasurement(value))], [\"margin-right\", value => measureToString(getMeasurement(value))], [\"margin-top\", value => measureToString(getMeasurement(value))], [\"text-indent\", value => measureToString(getMeasurement(value))], [\"font-family\", value => value], [\"vertical-align\", value => measureToString(getMeasurement(value))]]);\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\nfunction mapStyle(styleStr, node, richText) {\n  const style = Object.create(null);\n  if (!styleStr) {\n    return style;\n  }\n  const original = Object.create(null);\n  for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n    const mapping = StyleMapping.get(key);\n    if (mapping === \"\") {\n      continue;\n    }\n    let newValue = value;\n    if (mapping) {\n      newValue = typeof mapping === \"string\" ? mapping : mapping(value, original);\n    }\n    if (key.endsWith(\"scale\")) {\n      style.transform = style.transform ? `${style[key]} ${newValue}` : newValue;\n    } else {\n      style[key.replaceAll(/-([a-z])/gi, (_, x) => x.toUpperCase())] = newValue;\n    }\n  }\n  if (style.fontFamily) {\n    setFontFamily({\n      typeface: style.fontFamily,\n      weight: style.fontWeight || \"normal\",\n      posture: style.fontStyle || \"normal\",\n      size: original.fontSize || 0\n    }, node, node[$globalData].fontFinder, style);\n  }\n  if (richText && style.verticalAlign && style.verticalAlign !== \"0px\" && style.fontSize) {\n    const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n    const VERTICAL_FACTOR = 0.333;\n    const fontSize = getMeasurement(style.fontSize);\n    style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n    style.verticalAlign = measureToString(Math.sign(getMeasurement(style.verticalAlign)) * fontSize * VERTICAL_FACTOR);\n  }\n  if (richText && style.fontSize) {\n    style.fontSize = `calc(${style.fontSize} * var(--total-scale-factor))`;\n  }\n  fixTextIndent(style);\n  return style;\n}\nfunction checkStyle(node) {\n  if (!node.style) {\n    return \"\";\n  }\n  return node.style.split(\";\").filter(s => !!s.trim()).map(s => s.split(\":\", 2).map(t => t.trim())).filter(([key, value]) => {\n    if (key === \"font-family\") {\n      node[$globalData].usedTypefaces.add(value);\n    }\n    return VALID_STYLES.has(key);\n  }).map(kv => kv.join(\":\")).join(\";\");\n}\nconst NoWhites = new Set([\"body\", \"html\"]);\nclass XhtmlObject extends XmlObject {\n  constructor(attributes, name) {\n    super(XHTML_NS_ID, name);\n    this[$richText] = false;\n    this.style = attributes.style || \"\";\n  }\n  [$clean](builder) {\n    super[$clean](builder);\n    this.style = checkStyle(this);\n  }\n  [$acceptWhitespace]() {\n    return !NoWhites.has(this[$nodeName]);\n  }\n  [$onText](str, richText = false) {\n    if (!richText) {\n      str = str.replaceAll(crlfRegExp, \"\");\n      if (!this.style.includes(\"xfa-spacerun:yes\")) {\n        str = str.replaceAll(spacesRegExp, \" \");\n      }\n    } else {\n      this[$richText] = true;\n    }\n    if (str) {\n      this[$content] += str;\n    }\n  }\n  [$pushGlyphs](measure, mustPop = true) {\n    const xfaFont = Object.create(null);\n    const margin = {\n      top: NaN,\n      bottom: NaN,\n      left: NaN,\n      right: NaN\n    };\n    let lineHeight = null;\n    for (const [key, value] of this.style.split(\";\").map(s => s.split(\":\", 2))) {\n      switch (key) {\n        case \"font-family\":\n          xfaFont.typeface = stripQuotes(value);\n          break;\n        case \"font-size\":\n          xfaFont.size = getMeasurement(value);\n          break;\n        case \"font-weight\":\n          xfaFont.weight = value;\n          break;\n        case \"font-style\":\n          xfaFont.posture = value;\n          break;\n        case \"letter-spacing\":\n          xfaFont.letterSpacing = getMeasurement(value);\n          break;\n        case \"margin\":\n          const values = value.split(/ \\t/).map(x => getMeasurement(x));\n          switch (values.length) {\n            case 1:\n              margin.top = margin.bottom = margin.left = margin.right = values[0];\n              break;\n            case 2:\n              margin.top = margin.bottom = values[0];\n              margin.left = margin.right = values[1];\n              break;\n            case 3:\n              margin.top = values[0];\n              margin.bottom = values[2];\n              margin.left = margin.right = values[1];\n              break;\n            case 4:\n              margin.top = values[0];\n              margin.left = values[1];\n              margin.bottom = values[2];\n              margin.right = values[3];\n              break;\n          }\n          break;\n        case \"margin-top\":\n          margin.top = getMeasurement(value);\n          break;\n        case \"margin-bottom\":\n          margin.bottom = getMeasurement(value);\n          break;\n        case \"margin-left\":\n          margin.left = getMeasurement(value);\n          break;\n        case \"margin-right\":\n          margin.right = getMeasurement(value);\n          break;\n        case \"line-height\":\n          lineHeight = getMeasurement(value);\n          break;\n      }\n    }\n    measure.pushData(xfaFont, margin, lineHeight);\n    if (this[$content]) {\n      measure.addString(this[$content]);\n    } else {\n      for (const child of this[$getChildren]()) {\n        if (child[$nodeName] === \"#text\") {\n          measure.addString(child[$content]);\n          continue;\n        }\n        child[$pushGlyphs](measure);\n      }\n    }\n    if (mustPop) {\n      measure.popFont();\n    }\n  }\n  [$toHTML](availableSpace) {\n    const children = [];\n    this[$extra] = {\n      children\n    };\n    this[$childrenToHTML]({});\n    if (children.length === 0 && !this[$content]) {\n      return HTMLResult.EMPTY;\n    }\n    let value;\n    if (this[$richText]) {\n      value = this[$content] ? this[$content].replaceAll(crlfForRichTextRegExp, \"\\n\") : undefined;\n    } else {\n      value = this[$content] || undefined;\n    }\n    return HTMLResult.success({\n      name: this[$nodeName],\n      attributes: {\n        href: this.href,\n        style: mapStyle(this.style, this, this[$richText])\n      },\n      children,\n      value\n    });\n  }\n}\nclass A extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"a\");\n    this.href = fixURL(attributes.href) || \"\";\n  }\n}\nclass B extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"b\");\n  }\n  [$pushGlyphs](measure) {\n    measure.pushFont({\n      weight: \"bold\"\n    });\n    super[$pushGlyphs](measure);\n    measure.popFont();\n  }\n}\nclass Body extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"body\");\n  }\n  [$toHTML](availableSpace) {\n    const res = super[$toHTML](availableSpace);\n    const {\n      html\n    } = res;\n    if (!html) {\n      return HTMLResult.EMPTY;\n    }\n    html.name = \"div\";\n    html.attributes.class = [\"xfaRich\"];\n    return res;\n  }\n}\nclass Br extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"br\");\n  }\n  [$text]() {\n    return \"\\n\";\n  }\n  [$pushGlyphs](measure) {\n    measure.addString(\"\\n\");\n  }\n  [$toHTML](availableSpace) {\n    return HTMLResult.success({\n      name: \"br\"\n    });\n  }\n}\nclass Html extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"html\");\n  }\n  [$toHTML](availableSpace) {\n    const children = [];\n    this[$extra] = {\n      children\n    };\n    this[$childrenToHTML]({});\n    if (children.length === 0) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          class: [\"xfaRich\"],\n          style: {}\n        },\n        value: this[$content] || \"\"\n      });\n    }\n    if (children.length === 1) {\n      const child = children[0];\n      if (child.attributes?.class.includes(\"xfaRich\")) {\n        return HTMLResult.success(child);\n      }\n    }\n    return HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        class: [\"xfaRich\"],\n        style: {}\n      },\n      children\n    });\n  }\n}\nclass I extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"i\");\n  }\n  [$pushGlyphs](measure) {\n    measure.pushFont({\n      posture: \"italic\"\n    });\n    super[$pushGlyphs](measure);\n    measure.popFont();\n  }\n}\nclass Li extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"li\");\n  }\n}\nclass Ol extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ol\");\n  }\n}\nclass P extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"p\");\n  }\n  [$pushGlyphs](measure) {\n    super[$pushGlyphs](measure, false);\n    measure.addString(\"\\n\");\n    measure.addPara();\n    measure.popFont();\n  }\n  [$text]() {\n    const siblings = this[$getParent]()[$getChildren]();\n    if (siblings.at(-1) === this) {\n      return super[$text]();\n    }\n    return super[$text]() + \"\\n\";\n  }\n}\nclass Span extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"span\");\n  }\n}\nclass Sub extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sub\");\n  }\n}\nclass Sup extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sup\");\n  }\n}\nclass Ul extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ul\");\n  }\n}\nclass XhtmlNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (Object.hasOwn(XhtmlNamespace, name)) {\n      return XhtmlNamespace[name](attributes);\n    }\n    return undefined;\n  }\n  static a(attributes) {\n    return new A(attributes);\n  }\n  static b(attributes) {\n    return new B(attributes);\n  }\n  static body(attributes) {\n    return new Body(attributes);\n  }\n  static br(attributes) {\n    return new Br(attributes);\n  }\n  static html(attributes) {\n    return new Html(attributes);\n  }\n  static i(attributes) {\n    return new I(attributes);\n  }\n  static li(attributes) {\n    return new Li(attributes);\n  }\n  static ol(attributes) {\n    return new Ol(attributes);\n  }\n  static p(attributes) {\n    return new P(attributes);\n  }\n  static span(attributes) {\n    return new Span(attributes);\n  }\n  static sub(attributes) {\n    return new Sub(attributes);\n  }\n  static sup(attributes) {\n    return new Sup(attributes);\n  }\n  static ul(attributes) {\n    return new Ul(attributes);\n  }\n}\n\n;// ./src/core/xfa/setup.js\n\n\n\n\n\n\n\n\n\nconst NamespaceSetUp = {\n  config: ConfigNamespace,\n  connection: ConnectionSetNamespace,\n  datasets: DatasetsNamespace,\n  localeSet: LocaleSetNamespace,\n  signature: SignatureNamespace,\n  stylesheet: StylesheetNamespace,\n  template: TemplateNamespace,\n  xdp: XdpNamespace,\n  xhtml: XhtmlNamespace\n};\n\n;// ./src/core/xfa/unknown.js\n\n\nclass UnknownNamespace {\n  constructor(nsId) {\n    this.namespaceId = nsId;\n  }\n  [$buildXFAObject](name, attributes) {\n    return new XmlObject(this.namespaceId, name, attributes);\n  }\n}\n\n;// ./src/core/xfa/builder.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass Root extends XFAObject {\n  constructor(ids) {\n    super(-1, \"root\", Object.create(null));\n    this.element = null;\n    this[$ids] = ids;\n  }\n  [$onChild](child) {\n    this.element = child;\n    return true;\n  }\n  [$finalize]() {\n    super[$finalize]();\n    if (this.element.template instanceof Template) {\n      this[$ids].set($root, this.element);\n      this.element.template[$resolvePrototypes](this[$ids]);\n      this.element.template[$ids] = this[$ids];\n    }\n  }\n}\nclass Empty extends XFAObject {\n  constructor() {\n    super(-1, \"\", Object.create(null));\n  }\n  [$onChild](_) {\n    return false;\n  }\n}\nclass Builder {\n  constructor(rootNameSpace = null) {\n    this._namespaceStack = [];\n    this._nsAgnosticLevel = 0;\n    this._namespacePrefixes = new Map();\n    this._namespaces = new Map();\n    this._nextNsId = Math.max(...Object.values(NamespaceIds).map(({\n      id\n    }) => id));\n    this._currentNamespace = rootNameSpace || new UnknownNamespace(++this._nextNsId);\n  }\n  buildRoot(ids) {\n    return new Root(ids);\n  }\n  build({\n    nsPrefix,\n    name,\n    attributes,\n    namespace,\n    prefixes\n  }) {\n    const hasNamespaceDef = namespace !== null;\n    if (hasNamespaceDef) {\n      this._namespaceStack.push(this._currentNamespace);\n      this._currentNamespace = this._searchNamespace(namespace);\n    }\n    if (prefixes) {\n      this._addNamespacePrefix(prefixes);\n    }\n    if (Object.hasOwn(attributes, $nsAttributes)) {\n      const dataTemplate = NamespaceSetUp.datasets;\n      const nsAttrs = attributes[$nsAttributes];\n      let xfaAttrs = null;\n      for (const [ns, attrs] of Object.entries(nsAttrs)) {\n        const nsToUse = this._getNamespaceToUse(ns);\n        if (nsToUse === dataTemplate) {\n          xfaAttrs = {\n            xfa: attrs\n          };\n          break;\n        }\n      }\n      if (xfaAttrs) {\n        attributes[$nsAttributes] = xfaAttrs;\n      } else {\n        delete attributes[$nsAttributes];\n      }\n    }\n    const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n    const node = namespaceToUse?.[$buildXFAObject](name, attributes) || new Empty();\n    if (node[$isNsAgnostic]()) {\n      this._nsAgnosticLevel++;\n    }\n    if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n      node[$cleanup] = {\n        hasNamespace: hasNamespaceDef,\n        prefixes,\n        nsAgnostic: node[$isNsAgnostic]()\n      };\n    }\n    return node;\n  }\n  isNsAgnostic() {\n    return this._nsAgnosticLevel > 0;\n  }\n  _searchNamespace(nsName) {\n    let ns = this._namespaces.get(nsName);\n    if (ns) {\n      return ns;\n    }\n    for (const [name, {\n      check\n    }] of Object.entries(NamespaceIds)) {\n      if (check(nsName)) {\n        ns = NamespaceSetUp[name];\n        if (ns) {\n          this._namespaces.set(nsName, ns);\n          return ns;\n        }\n        break;\n      }\n    }\n    ns = new UnknownNamespace(++this._nextNsId);\n    this._namespaces.set(nsName, ns);\n    return ns;\n  }\n  _addNamespacePrefix(prefixes) {\n    for (const {\n      prefix,\n      value\n    } of prefixes) {\n      const namespace = this._searchNamespace(value);\n      this._namespacePrefixes.getOrInsertComputed(prefix, makeArr).push(namespace);\n    }\n  }\n  _getNamespaceToUse(prefix) {\n    if (!prefix) {\n      return this._currentNamespace;\n    }\n    const prefixStack = this._namespacePrefixes.get(prefix);\n    if (prefixStack?.length > 0) {\n      return prefixStack.at(-1);\n    }\n    warn(`Unknown namespace prefix: ${prefix}.`);\n    return null;\n  }\n  clean(data) {\n    const {\n      hasNamespace,\n      prefixes,\n      nsAgnostic\n    } = data;\n    if (hasNamespace) {\n      this._currentNamespace = this._namespaceStack.pop();\n    }\n    if (prefixes) {\n      prefixes.forEach(({\n        prefix\n      }) => {\n        this._namespacePrefixes.get(prefix).pop();\n      });\n    }\n    if (nsAgnostic) {\n      this._nsAgnosticLevel--;\n    }\n  }\n}\n\n;// ./src/core/xfa/parser.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass XFAParser extends XMLParserBase {\n  constructor(rootNameSpace = null, richText = false) {\n    super();\n    this._builder = new Builder(rootNameSpace);\n    this._stack = [];\n    this._globalData = {\n      usedTypefaces: new Set()\n    };\n    this._ids = new Map();\n    this._current = this._builder.buildRoot(this._ids);\n    this._errorCode = XMLParserErrorCode.NoError;\n    this._whiteRegex = /^\\s+$/;\n    this._nbsps = /\\xa0+/g;\n    this._richText = richText;\n  }\n  parse(data) {\n    this.parseXml(data);\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n    this._current[$finalize]();\n    return this._current.element;\n  }\n  onText(text) {\n    text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n    if (this._richText || this._current[$acceptWhitespace]()) {\n      this._current[$onText](text, this._richText);\n      return;\n    }\n    if (this._whiteRegex.test(text)) {\n      return;\n    }\n    this._current[$onText](text.trim());\n  }\n  onCdata(text) {\n    this._current[$onText](text);\n  }\n  _mkAttributes(attributes, tagName) {\n    let namespace = null;\n    let prefixes = null;\n    const attributeObj = Object.create({});\n    for (const {\n      name,\n      value\n    } of attributes) {\n      if (name === \"xmlns\") {\n        if (!namespace) {\n          namespace = value;\n        } else {\n          warn(`XFA - multiple namespace definition in <${tagName}>`);\n        }\n      } else if (name.startsWith(\"xmlns:\")) {\n        const prefix = name.substring(\"xmlns:\".length);\n        prefixes ??= [];\n        prefixes.push({\n          prefix,\n          value\n        });\n      } else {\n        const i = name.indexOf(\":\");\n        if (i === -1) {\n          attributeObj[name] = value;\n        } else {\n          const nsAttrs = attributeObj[$nsAttributes] ??= Object.create(null);\n          const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n          const attrs = nsAttrs[ns] ||= Object.create(null);\n          attrs[attrName] = value;\n        }\n      }\n    }\n    return [namespace, prefixes, attributeObj];\n  }\n  _getNameAndPrefix(name, nsAgnostic) {\n    const i = name.indexOf(\":\");\n    if (i === -1) {\n      return [name, null];\n    }\n    return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n  }\n  onBeginElement(tagName, attributes, isEmpty) {\n    const [namespace, prefixes, attributesObj] = this._mkAttributes(attributes, tagName);\n    const [name, nsPrefix] = this._getNameAndPrefix(tagName, this._builder.isNsAgnostic());\n    const node = this._builder.build({\n      nsPrefix,\n      name,\n      attributes: attributesObj,\n      namespace,\n      prefixes\n    });\n    node[$globalData] = this._globalData;\n    if (isEmpty) {\n      node[$finalize]();\n      if (this._current[$onChild](node)) {\n        node[$setId](this._ids);\n      }\n      node[$clean](this._builder);\n      return;\n    }\n    this._stack.push(this._current);\n    this._current = node;\n  }\n  onEndElement(name) {\n    const node = this._current;\n    if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n      const parser = new XFAParser();\n      parser._globalData = this._globalData;\n      const root = parser.parse(node[$content]);\n      node[$content] = null;\n      node[$onChild](root);\n    }\n    node[$finalize]();\n    this._current = this._stack.pop();\n    if (this._current[$onChild](node)) {\n      node[$setId](this._ids);\n    }\n    node[$clean](this._builder);\n  }\n  onError(code) {\n    this._errorCode = code;\n  }\n}\n\n;// ./src/core/xfa/factory.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass XFAFactory {\n  constructor(data) {\n    try {\n      this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n      const binder = new Binder(this.root);\n      this.form = binder.bind();\n      this.dataHandler = new DataHandler(this.root, binder.getData());\n      this.form[$globalData].template = this.form;\n    } catch (e) {\n      warn(`XFA - an error occurred during parsing and binding: ${e}`);\n    }\n  }\n  isValid() {\n    return !!(this.root && this.form);\n  }\n  _createPagesHelper() {\n    const iterator = this.form[$toPages]();\n    return new Promise((resolve, reject) => {\n      const nextIteration = () => {\n        try {\n          const value = iterator.next();\n          if (value.done) {\n            resolve(value.value);\n          } else {\n            setTimeout(nextIteration, 0);\n          }\n        } catch (e) {\n          reject(e);\n        }\n      };\n      setTimeout(nextIteration, 0);\n    });\n  }\n  async _createPages() {\n    try {\n      this.pages = await this._createPagesHelper();\n      this.dims = this.pages.children.map(c => {\n        const {\n          width,\n          height\n        } = c.attributes.style;\n        return [0, 0, parseInt(width, 10), parseInt(height, 10)];\n      });\n    } catch (e) {\n      warn(`XFA - an error occurred during layout: ${e}`);\n    }\n  }\n  getBoundingBox(pageIndex) {\n    return this.dims[pageIndex];\n  }\n  async getNumPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n    return this.dims.length;\n  }\n  setImages(images) {\n    this.form[$globalData].images = images;\n  }\n  setFonts(fonts) {\n    this.form[$globalData].fontFinder = new FontFinder(fonts);\n    const missingFonts = [];\n    for (let typeface of this.form[$globalData].usedTypefaces) {\n      typeface = stripQuotes(typeface);\n      const font = this.form[$globalData].fontFinder.find(typeface);\n      if (!font) {\n        missingFonts.push(typeface);\n      }\n    }\n    if (missingFonts.length > 0) {\n      return missingFonts;\n    }\n    return null;\n  }\n  appendFonts(fonts, reallyMissingFonts) {\n    this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n  }\n  async getPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n    const pages = this.pages;\n    this.pages = null;\n    return pages;\n  }\n  serializeData(storage) {\n    return this.dataHandler.serialize(storage);\n  }\n  static _createDocument(data) {\n    if (!data[\"/xdp:xdp\"]) {\n      return data[\"xdp:xdp\"];\n    }\n    return Object.values(data).join(\"\");\n  }\n  static getRichTextAsHtml(rc) {\n    if (!rc || typeof rc !== \"string\") {\n      return null;\n    }\n    try {\n      let root = new XFAParser(XhtmlNamespace, true).parse(rc);\n      if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n        const newRoot = XhtmlNamespace.body({});\n        newRoot[$appendChild](root);\n        root = newRoot;\n      }\n      const result = root[$toHTML]();\n      if (!result.success) {\n        return null;\n      }\n      const {\n        html\n      } = result;\n      const {\n        attributes\n      } = html;\n      if (attributes) {\n        if (attributes.class) {\n          attributes.class = attributes.class.filter(attr => !attr.startsWith(\"xfa\"));\n        }\n        attributes.dir = \"auto\";\n      }\n      return {\n        html,\n        str: root[$text]()\n      };\n    } catch (e) {\n      warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n    }\n    return null;\n  }\n}\n\n;// ./src/core/annotation.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\nclass AnnotationFactory {\n  static createGlobals(pdfManager) {\n    return Promise.all([pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureDoc(\"xfaDatasets\"), pdfManager.ensureCatalog(\"structTreeRoot\"), pdfManager.ensureCatalog(\"baseUrl\"), pdfManager.ensureCatalog(\"attachments\"), pdfManager.ensureCatalog(\"globalColorSpaceCache\")]).then(([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments, globalColorSpaceCache]) => ({\n      pdfManager,\n      catalog: pdfManager.pdfDocument.catalog,\n      acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n      xfaDatasets,\n      structTreeRoot,\n      baseUrl,\n      attachments,\n      globalColorSpaceCache\n    }), reason => {\n      warn(`createGlobals: \"${reason}\".`);\n      return null;\n    });\n  }\n  static async create(xref, ref, annotationGlobals, idFactory, collectFields, orphanFields, collectByType, pageRef) {\n    const pageIndex = collectFields ? await this._getPageIndex(xref, ref, annotationGlobals.pdfManager) : null;\n    return annotationGlobals.pdfManager.ensure(this, \"_create\", [xref, ref, annotationGlobals, idFactory, collectFields, orphanFields, collectByType, pageIndex, pageRef]);\n  }\n  static _create(xref, ref, annotationGlobals, idFactory, collectFields = false, orphanFields = null, collectByType = null, pageIndex = null, pageRef = null) {\n    const dict = xref.fetchIfRef(ref);\n    if (!(dict instanceof Dict)) {\n      return undefined;\n    }\n    let subtype = dict.get(\"Subtype\");\n    subtype = subtype instanceof Name ? subtype.name : null;\n    if (collectByType && !collectByType.has(AnnotationType[subtype?.toUpperCase()])) {\n      return null;\n    }\n    const {\n      acroForm,\n      pdfManager\n    } = annotationGlobals;\n    const id = ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n    const parameters = {\n      xref,\n      ref,\n      dict,\n      subtype,\n      id,\n      annotationGlobals,\n      collectFields,\n      orphanFields,\n      needAppearances: !collectFields && acroForm.get(\"NeedAppearances\") === true,\n      pageIndex,\n      evaluatorOptions: pdfManager.evaluatorOptions,\n      pageRef\n    };\n    switch (subtype) {\n      case \"Link\":\n        return new LinkAnnotation(parameters);\n      case \"Text\":\n        return new TextAnnotation(parameters);\n      case \"Widget\":\n        let fieldType = getInheritableProperty({\n          dict,\n          key: \"FT\"\n        });\n        fieldType = fieldType instanceof Name ? fieldType.name : null;\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotation(parameters);\n          case \"Btn\":\n            return new ButtonWidgetAnnotation(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotation(parameters);\n          case \"Sig\":\n            return new SignatureWidgetAnnotation(parameters);\n        }\n        warn(`Unimplemented widget field type \"${fieldType}\", ` + \"falling back to base field type.\");\n        return new WidgetAnnotation(parameters);\n      case \"Popup\":\n        return new PopupAnnotation(parameters);\n      case \"FreeText\":\n        return new FreeTextAnnotation(parameters);\n      case \"Line\":\n        return new LineAnnotation(parameters);\n      case \"Square\":\n        return new SquareAnnotation(parameters);\n      case \"Circle\":\n        return new CircleAnnotation(parameters);\n      case \"PolyLine\":\n        return new PolylineAnnotation(parameters);\n      case \"Polygon\":\n        return new PolygonAnnotation(parameters);\n      case \"Caret\":\n        return new CaretAnnotation(parameters);\n      case \"Ink\":\n        return new InkAnnotation(parameters);\n      case \"Highlight\":\n        return new HighlightAnnotation(parameters);\n      case \"Underline\":\n        return new UnderlineAnnotation(parameters);\n      case \"Squiggly\":\n        return new SquigglyAnnotation(parameters);\n      case \"StrikeOut\":\n        return new StrikeOutAnnotation(parameters);\n      case \"Stamp\":\n        return new StampAnnotation(parameters);\n      case \"FileAttachment\":\n        return new FileAttachmentAnnotation(parameters);\n      case \"RichMedia\":\n        return new RichMediaAnnotation(parameters);\n      case \"Screen\":\n        return new ScreenAnnotation(parameters);\n      default:\n        if (!collectFields) {\n          if (!subtype) {\n            warn(\"Annotation is missing the required /Subtype.\");\n          } else {\n            warn(`Unimplemented annotation type \"${subtype}\", ` + \"falling back to base annotation.\");\n          }\n        }\n        return new Annotation(parameters);\n    }\n  }\n  static async _getPageIndex(xref, ref, pdfManager) {\n    try {\n      const annotDict = await xref.fetchIfRefAsync(ref);\n      if (!(annotDict instanceof Dict)) {\n        return -1;\n      }\n      const pageRef = annotDict.getRaw(\"P\");\n      if (pageRef instanceof Ref) {\n        try {\n          const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n          return pageIndex;\n        } catch (ex) {\n          info(`_getPageIndex -- not a valid page reference: \"${ex}\".`);\n        }\n      }\n      if (annotDict.has(\"Kids\")) {\n        return -1;\n      }\n      const numPages = await pdfManager.ensureDoc(\"numPages\");\n      for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n        const page = await pdfManager.getPage(pageIndex);\n        const annotations = await pdfManager.ensure(page, \"annotations\");\n        for (const annotRef of annotations) {\n          if (annotRef instanceof Ref && isRefsEqual(annotRef, ref)) {\n            return pageIndex;\n          }\n        }\n      }\n    } catch (ex) {\n      warn(`_getPageIndex: \"${ex}\".`);\n    }\n    return -1;\n  }\n  static generateImages(annotations, xref, isOffscreenCanvasSupported) {\n    if (!isOffscreenCanvasSupported) {\n      warn(\"generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images.\");\n      return null;\n    }\n    let imagePromises;\n    for (const {\n      bitmapId,\n      bitmap\n    } of annotations) {\n      if (!bitmap) {\n        continue;\n      }\n      imagePromises ||= new Map();\n      imagePromises.set(bitmapId, createImage(bitmap, xref));\n    }\n    return imagePromises;\n  }\n  static async saveNewAnnotations(evaluator, xref, task, annotations, imagePromises, changes) {\n    let baseFontRef;\n    const promises = [];\n    const {\n      isOffscreenCanvasSupported\n    } = evaluator.options;\n    for (const annotation of annotations) {\n      if (annotation.deleted) {\n        continue;\n      }\n      switch (annotation.annotationType) {\n        case AnnotationEditorType.FREETEXT:\n          if (!baseFontRef) {\n            const baseFont = new Dict(xref);\n            baseFont.setIfName(\"BaseFont\", \"Helvetica\");\n            baseFont.setIfName(\"Type\", \"Font\");\n            baseFont.setIfName(\"Subtype\", \"Type1\");\n            baseFont.setIfName(\"Encoding\", \"WinAnsiEncoding\");\n            baseFontRef = xref.getNewTemporaryRef();\n            changes.put(baseFontRef, {\n              data: baseFont\n            });\n          }\n          promises.push(FreeTextAnnotation.createNewAnnotation(xref, annotation, changes, {\n            evaluator,\n            task,\n            baseFontRef\n          }));\n          break;\n        case AnnotationEditorType.HIGHLIGHT:\n          if (annotation.quadPoints) {\n            promises.push(HighlightAnnotation.createNewAnnotation(xref, annotation, changes));\n          } else {\n            promises.push(InkAnnotation.createNewAnnotation(xref, annotation, changes));\n          }\n          break;\n        case AnnotationEditorType.INK:\n          promises.push(InkAnnotation.createNewAnnotation(xref, annotation, changes));\n          break;\n        case AnnotationEditorType.STAMP:\n          const image = isOffscreenCanvasSupported ? await imagePromises?.get(annotation.bitmapId) : null;\n          if (image?.imageStream) {\n            const {\n              imageStream,\n              smaskStream\n            } = image;\n            if (smaskStream) {\n              const smaskRef = xref.getNewTemporaryRef();\n              changes.put(smaskRef, {\n                data: smaskStream\n              });\n              imageStream.dict.set(\"SMask\", smaskRef);\n            }\n            const imageRef = image.imageRef = xref.getNewTemporaryRef();\n            changes.put(imageRef, {\n              data: imageStream\n            });\n            image.imageStream = null;\n            image.imageRenderStream = null;\n            image.smaskStream = null;\n            image.smaskRenderStream = null;\n          }\n          promises.push(StampAnnotation.createNewAnnotation(xref, annotation, changes, {\n            image\n          }));\n          break;\n        case AnnotationEditorType.SIGNATURE:\n          promises.push(StampAnnotation.createNewAnnotation(xref, annotation, changes, {}));\n          break;\n      }\n    }\n    return {\n      annotations: (await Promise.all(promises)).flat()\n    };\n  }\n  static async printNewAnnotations(annotationGlobals, evaluator, task, annotations, imagePromises) {\n    if (!annotations) {\n      return null;\n    }\n    const {\n      options,\n      xref\n    } = evaluator;\n    const promises = [];\n    for (const annotation of annotations) {\n      if (annotation.deleted) {\n        continue;\n      }\n      switch (annotation.annotationType) {\n        case AnnotationEditorType.FREETEXT:\n          promises.push(FreeTextAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, {\n            evaluator,\n            task,\n            evaluatorOptions: options\n          }));\n          break;\n        case AnnotationEditorType.HIGHLIGHT:\n          if (annotation.quadPoints) {\n            promises.push(HighlightAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, {\n              evaluatorOptions: options\n            }));\n          } else {\n            promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, {\n              evaluatorOptions: options\n            }));\n          }\n          break;\n        case AnnotationEditorType.INK:\n          promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, {\n            evaluatorOptions: options\n          }));\n          break;\n        case AnnotationEditorType.STAMP:\n          const image = options.isOffscreenCanvasSupported ? await imagePromises?.get(annotation.bitmapId) : null;\n          if (image?.imageStream) {\n            const {\n              imageStream,\n              imageRenderStream,\n              smaskStream,\n              smaskRenderStream\n            } = image;\n            const imageRef = imageRenderStream || new JpegStream(imageStream, imageStream.length);\n            if (smaskStream || smaskRenderStream) {\n              imageRef.dict.set(\"SMask\", smaskRenderStream || smaskStream);\n            }\n            image.imageRef = imageRef;\n            image.imageStream = null;\n            image.imageRenderStream = null;\n            image.smaskStream = null;\n            image.smaskRenderStream = null;\n          }\n          promises.push(StampAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, {\n            image,\n            evaluatorOptions: options\n          }));\n          break;\n        case AnnotationEditorType.SIGNATURE:\n          promises.push(StampAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, {\n            evaluatorOptions: options\n          }));\n          break;\n      }\n    }\n    return Promise.all(promises);\n  }\n}\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n  if (!Array.isArray(color)) {\n    return defaultColor;\n  }\n  const rgbColor = defaultColor || new Uint8ClampedArray(3);\n  switch (color.length) {\n    case 0:\n      return null;\n    case 1:\n      ColorSpaceUtils.gray.getRgbItem(color, 0, rgbColor, 0);\n      return rgbColor;\n    case 3:\n      ColorSpaceUtils.rgb.getRgbItem(color, 0, rgbColor, 0);\n      return rgbColor;\n    case 4:\n      ColorSpaceUtils.cmyk.getRgbItem(color, 0, rgbColor, 0);\n      return rgbColor;\n    default:\n      return defaultColor;\n  }\n}\nfunction getPdfColorArray(color, defaultValue = null) {\n  return color && Array.from(color, c => c / 255) || defaultValue;\n}\nfunction getQuadPoints(dict, rect) {\n  const quadPoints = dict.getArray(\"QuadPoints\");\n  if (!isNumberArray(quadPoints, null) || quadPoints.length === 0 || quadPoints.length % 8 > 0) {\n    return null;\n  }\n  const newQuadPoints = new Float32Array(quadPoints.length);\n  for (let i = 0, ii = quadPoints.length; i < ii; i += 8) {\n    const [x1, y1, x2, y2, x3, y3, x4, y4] = quadPoints.slice(i, i + 8);\n    const minX = Math.min(x1, x2, x3, x4);\n    const maxX = Math.max(x1, x2, x3, x4);\n    const minY = Math.min(y1, y2, y3, y4);\n    const maxY = Math.max(y1, y2, y3, y4);\n    if (rect !== null && (minX < rect[0] || maxX > rect[2] || minY < rect[1] || maxY > rect[3])) {\n      return null;\n    }\n    newQuadPoints.set([minX, maxY, maxX, maxY, minX, minY, maxX, minY], i);\n  }\n  return newQuadPoints;\n}\nfunction getTransformMatrix(rect, bbox, matrix) {\n  const minMax = F32_BBOX_INIT.slice();\n  Util.axialAlignedBoundingBox(bbox, matrix, minMax);\n  const [minX, minY, maxX, maxY] = minMax;\n  if (minX === maxX || minY === maxY) {\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n  const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\nclass Annotation {\n  appearance = null;\n  _oc = undefined;\n  constructor(params) {\n    const {\n      annotationGlobals,\n      dict,\n      orphanFields,\n      ref,\n      subtype,\n      xref\n    } = params;\n    const parentRef = orphanFields?.get(ref);\n    if (parentRef) {\n      dict.set(\"Parent\", parentRef);\n    }\n    this.setTitle(dict.get(\"T\"));\n    this.setContents(dict.get(\"Contents\"));\n    this.setModificationDate(dict.get(\"M\"));\n    this.setFlags(dict.get(\"F\"));\n    this.setRectangle(dict.getArray(\"Rect\"));\n    this.setColor(dict.getArray(\"C\"));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n    this.#setOptionalContent(xref, dict);\n    const MK = dict.get(\"MK\");\n    this.setBorderAndBackgroundColors(MK);\n    this.setRotation(MK, dict);\n    this.ref = params.ref instanceof Ref ? params.ref : null;\n    this._streams = [];\n    if (this.appearance) {\n      this._streams.push(this.appearance);\n    }\n    const isLocked = !!(this.flags & AnnotationFlag.LOCKED);\n    const isContentLocked = !!(this.flags & AnnotationFlag.LOCKEDCONTENTS);\n    this.data = {\n      annotationType: AnnotationType[subtype?.toUpperCase()],\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      backgroundColor: this.backgroundColor,\n      borderColor: this.borderColor,\n      rotation: this.rotation,\n      contentsObj: this._contents,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      modificationDate: this.modificationDate,\n      oc: this._oc,\n      rect: this.rectangle,\n      subtype,\n      hasOwnCanvas: false,\n      noRotate: !!(this.flags & AnnotationFlag.NOROTATE),\n      noHTML: isLocked && isContentLocked,\n      isEditable: false,\n      structParent: -1\n    };\n    if (annotationGlobals.structTreeRoot) {\n      let structParent = dict.get(\"StructParent\");\n      this.data.structParent = structParent = Number.isInteger(structParent) && structParent >= 0 ? structParent : -1;\n      annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef, structParent);\n    }\n    if (params.collectFields) {\n      const kids = dict.get(\"Kids\");\n      if (Array.isArray(kids)) {\n        const kidIds = [];\n        for (const kid of kids) {\n          if (kid instanceof Ref) {\n            kidIds.push(kid.toString());\n          }\n        }\n        if (kidIds.length !== 0) {\n          this.data.kidIds = kidIds;\n        }\n      }\n      this.data.actions = collectActions(xref, dict, AnnotationActionEventType);\n      this.data.fieldName = this._constructFieldName(dict);\n      this.data.pageIndex = params.pageIndex;\n    }\n    const it = dict.get(\"IT\");\n    if (it instanceof Name) {\n      this.data.it = it.name;\n    }\n    this._isOffscreenCanvasSupported = params.evaluatorOptions.isOffscreenCanvasSupported;\n    this._fallbackFontDict = null;\n    this._needAppearances = false;\n  }\n  _getOperatorListNoAppearance() {\n    return {\n      opList: new OperatorList(),\n      separateForm: false,\n      separateCanvas: false\n    };\n  }\n  _hasFlag(flags, flag) {\n    return !!(flags & flag);\n  }\n  _buildFlags(noView, noPrint) {\n    let {\n      flags\n    } = this;\n    if (noView === undefined) {\n      if (noPrint === undefined) {\n        return undefined;\n      }\n      if (noPrint) {\n        return flags & ~AnnotationFlag.PRINT;\n      }\n      return flags & ~AnnotationFlag.HIDDEN | AnnotationFlag.PRINT;\n    }\n    if (noView) {\n      flags |= AnnotationFlag.PRINT;\n      if (noPrint) {\n        return flags & ~AnnotationFlag.NOVIEW | AnnotationFlag.HIDDEN;\n      }\n      return flags & ~AnnotationFlag.HIDDEN | AnnotationFlag.NOVIEW;\n    }\n    flags &= ~(AnnotationFlag.HIDDEN | AnnotationFlag.NOVIEW);\n    if (noPrint) {\n      return flags & ~AnnotationFlag.PRINT;\n    }\n    return flags | AnnotationFlag.PRINT;\n  }\n  _isViewable(flags) {\n    return !this._hasFlag(flags, AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, AnnotationFlag.NOVIEW);\n  }\n  _isPrintable(flags) {\n    return this._hasFlag(flags, AnnotationFlag.PRINT) && !this._hasFlag(flags, AnnotationFlag.HIDDEN) && !this._hasFlag(flags, AnnotationFlag.INVISIBLE);\n  }\n  mustBeViewed(annotationStorage, _renderForms) {\n    const noView = annotationStorage?.get(this.data.id)?.noView;\n    if (noView !== undefined) {\n      return !noView;\n    }\n    return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n  }\n  mustBePrinted(annotationStorage) {\n    const noPrint = annotationStorage?.get(this.data.id)?.noPrint;\n    if (noPrint !== undefined) {\n      return !noPrint;\n    }\n    return this.printable;\n  }\n  mustBeViewedWhenEditing(isEditing, modifiedIds = null) {\n    return isEditing ? !this.data.isEditable : !modifiedIds?.has(this.data.id);\n  }\n  get viewable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n    if (this.flags === 0) {\n      return true;\n    }\n    return this._isViewable(this.flags);\n  }\n  get printable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n    if (this.flags === 0) {\n      return false;\n    }\n    return this._isPrintable(this.flags);\n  }\n  _parseStringHelper(data) {\n    const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n    const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n    return {\n      str,\n      dir\n    };\n  }\n  setDefaultAppearance(params) {\n    const {\n      dict,\n      annotationGlobals\n    } = params;\n    const defaultAppearance = getInheritableProperty({\n      dict,\n      key: \"DA\"\n    }) || annotationGlobals.acroForm.get(\"DA\");\n    this._defaultAppearance = typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n    this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance);\n  }\n  setTitle(title) {\n    this._title = this._parseStringHelper(title);\n  }\n  setContents(contents) {\n    this._contents = this._parseStringHelper(contents);\n  }\n  setModificationDate(modificationDate) {\n    this.modificationDate = typeof modificationDate === \"string\" ? modificationDate : null;\n  }\n  setFlags(flags) {\n    this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n    if (this.flags & AnnotationFlag.INVISIBLE && this.constructor.name !== \"Annotation\") {\n      this.flags ^= AnnotationFlag.INVISIBLE;\n    }\n  }\n  hasFlag(flag) {\n    return this._hasFlag(this.flags, flag);\n  }\n  setRectangle(rectangle) {\n    this.rectangle = lookupNormalRect(rectangle, [0, 0, 0, 0]);\n  }\n  setColor(color) {\n    this.color = getRgbColor(color);\n  }\n  setLineEndings(lineEndings) {\n    this.lineEndings = [\"None\", \"None\"];\n    if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n      for (let i = 0; i < 2; i++) {\n        const obj = lineEndings[i];\n        if (obj instanceof Name) {\n          switch (obj.name) {\n            case \"None\":\n              continue;\n            case \"Square\":\n            case \"Circle\":\n            case \"Diamond\":\n            case \"OpenArrow\":\n            case \"ClosedArrow\":\n            case \"Butt\":\n            case \"ROpenArrow\":\n            case \"RClosedArrow\":\n            case \"Slash\":\n              this.lineEndings[i] = obj.name;\n              continue;\n          }\n        }\n        warn(`Ignoring invalid lineEnding: ${obj}`);\n      }\n    }\n  }\n  setRotation(mk, dict) {\n    this.rotation = 0;\n    let angle = mk instanceof Dict ? mk.get(\"R\") || 0 : dict.get(\"Rotate\") || 0;\n    if (Number.isInteger(angle) && angle !== 0) {\n      angle %= 360;\n      if (angle < 0) {\n        angle += 360;\n      }\n      if (angle % 90 === 0) {\n        this.rotation = angle;\n      }\n    }\n  }\n  setBorderAndBackgroundColors(mk) {\n    if (mk instanceof Dict) {\n      this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n      this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n    } else {\n      this.borderColor = this.backgroundColor = null;\n    }\n  }\n  setBorderStyle(borderStyle) {\n    this.borderStyle = new AnnotationBorderStyle();\n    if (!(borderStyle instanceof Dict)) {\n      return;\n    }\n    if (borderStyle.has(\"BS\")) {\n      const dict = borderStyle.get(\"BS\");\n      if (dict instanceof Dict) {\n        const dictType = dict.get(\"Type\");\n        if (!dictType || isName(dictType, \"Border\")) {\n          this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n          this.borderStyle.setStyle(dict.get(\"S\"));\n          this.borderStyle.setDashArray(dict.getArray(\"D\"));\n        }\n      }\n    } else if (borderStyle.has(\"Border\")) {\n      const array = borderStyle.getArray(\"Border\");\n      if (Array.isArray(array)) {\n        if (array.length >= 3) {\n          this.borderStyle.setHorizontalCornerRadius(array[0]);\n          this.borderStyle.setVerticalCornerRadius(array[1]);\n          this.borderStyle.setWidth(array[2], this.rectangle);\n          if (array.length === 4) {\n            this.borderStyle.setDashArray(array[3], true);\n          }\n        } else if (array.length === 0) {\n          this.borderStyle.setWidth(0);\n        }\n      }\n    } else {\n      this.borderStyle.setWidth(0);\n    }\n  }\n  setAppearance(dict) {\n    const appearanceStates = dict.get(\"AP\");\n    if (!(appearanceStates instanceof Dict)) {\n      return;\n    }\n    const normalAppearanceState = appearanceStates.get(\"N\");\n    if (normalAppearanceState instanceof BaseStream) {\n      this.appearance = normalAppearanceState;\n      return;\n    }\n    if (!(normalAppearanceState instanceof Dict)) {\n      return;\n    }\n    const as = dict.get(\"AS\");\n    if (!(as instanceof Name)) {\n      return;\n    }\n    const appearance = normalAppearanceState.get(as.name);\n    if (appearance instanceof BaseStream) {\n      this.appearance = appearance;\n    }\n  }\n  #setOptionalContent(xref, dict) {\n    if (dict.has(\"OC\")) {\n      try {\n        this._oc = parseMarkedContentProps(xref, dict.get(\"OC\"), null);\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn(`#setOptionalContent: ${ex}`);\n      }\n    }\n  }\n  async loadResources(keys, appearance) {\n    const resources = await appearance.dict.getAsync(\"Resources\");\n    if (resources) {\n      await ObjectLoader.load(resources, keys, resources.xref);\n    }\n    return resources;\n  }\n  get _ownCanvasRequiresForms() {\n    return false;\n  }\n  async getOperatorList(evaluator, task, intent, annotationStorage) {\n    const {\n      hasOwnCanvas,\n      id,\n      rect\n    } = this.data;\n    let appearance = this.appearance;\n    const isUsingOwnCanvas = !!(hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY && (!this._ownCanvasRequiresForms || intent & RenderingIntentFlag.ANNOTATIONS_FORMS));\n    if (isUsingOwnCanvas && (this.width === 0 || this.height === 0)) {\n      this.data.hasOwnCanvas = false;\n      return this._getOperatorListNoAppearance();\n    }\n    if (!appearance) {\n      if (!isUsingOwnCanvas) {\n        return this._getOperatorListNoAppearance();\n      }\n      appearance = new StringStream(\"\", new Dict());\n    }\n    const appearanceDict = appearance.dict;\n    const resources = await this.loadResources(RESOURCES_KEYS_OPERATOR_LIST, appearance);\n    const bbox = lookupRect(appearanceDict.getArray(\"BBox\"), [0, 0, this.width, this.height]);\n    const matrix = lookupMatrix(appearanceDict.getArray(\"Matrix\"), IDENTITY_MATRIX);\n    const transform = getTransformMatrix(rect, bbox, matrix);\n    const opList = new OperatorList();\n    const optionalContent = this._oc;\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n    opList.addOp(OPS.beginAnnotation, [id, rect, transform, matrix, isUsingOwnCanvas]);\n    await evaluator.getOperatorList({\n      stream: appearance,\n      task,\n      resources,\n      operatorList: opList,\n      fallbackFontDict: this._fallbackFontDict\n    });\n    opList.addOp(OPS.endAnnotation, []);\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.endMarkedContent, []);\n    }\n    this.reset();\n    return {\n      opList,\n      separateForm: false,\n      separateCanvas: isUsingOwnCanvas\n    };\n  }\n  async save(evaluator, task, annotationStorage, changes) {\n    return null;\n  }\n  get overlaysTextContent() {\n    return false;\n  }\n  get hasTextContent() {\n    return false;\n  }\n  async extractTextContent(evaluator, task, viewBox) {\n    if (!this.appearance) {\n      return;\n    }\n    const resources = await this.loadResources(RESOURCES_KEYS_TEXT_CONTENT, this.appearance);\n    const text = [];\n    const buffer = [];\n    let firstPosition = null;\n    const sink = {\n      desiredSize: Math.Infinity,\n      ready: true,\n      enqueue(chunk, size) {\n        for (const item of chunk.items) {\n          if (item.str === undefined) {\n            continue;\n          }\n          firstPosition ||= item.transform.slice(-2);\n          buffer.push(item.str);\n          if (item.hasEOL) {\n            text.push(buffer.join(\"\").trimEnd());\n            buffer.length = 0;\n          }\n        }\n      }\n    };\n    await evaluator.getTextContent({\n      stream: this.appearance,\n      task,\n      resources,\n      includeMarkedContent: true,\n      keepWhiteSpace: true,\n      sink,\n      viewBox\n    });\n    this.reset();\n    if (buffer.length) {\n      text.push(buffer.join(\"\").trimEnd());\n    }\n    if (text.length > 1 || text[0]) {\n      const appearanceDict = this.appearance.dict;\n      const bbox = lookupRect(appearanceDict.getArray(\"BBox\"), null);\n      const matrix = lookupMatrix(appearanceDict.getArray(\"Matrix\"), null);\n      this.data.textPosition = this._transformPoint(firstPosition, bbox, matrix);\n      this.data.textContent = text;\n    }\n  }\n  _transformPoint(coords, bbox, matrix) {\n    const {\n      rect\n    } = this.data;\n    bbox ||= [0, 0, 1, 1];\n    matrix ||= [1, 0, 0, 1, 0, 0];\n    const transform = getTransformMatrix(rect, bbox, matrix);\n    transform[4] -= rect[0];\n    transform[5] -= rect[1];\n    const p = coords.slice();\n    Util.applyTransform(p, transform);\n    Util.applyTransform(p, matrix);\n    return p;\n  }\n  getFieldObject() {\n    if (this.data.kidIds) {\n      return {\n        id: this.data.id,\n        actions: this.data.actions,\n        name: this.data.fieldName,\n        strokeColor: this.data.borderColor,\n        fillColor: this.data.backgroundColor,\n        type: \"\",\n        kidIds: this.data.kidIds,\n        page: this.data.pageIndex,\n        rotation: this.rotation\n      };\n    }\n    return null;\n  }\n  reset() {\n    for (const stream of this._streams) {\n      stream.reset();\n    }\n  }\n  _constructFieldName(dict) {\n    if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n      warn(\"Unknown field name, falling back to empty field name.\");\n      return \"\";\n    }\n    if (!dict.has(\"Parent\")) {\n      return stringToPDFString(dict.get(\"T\"));\n    }\n    const fieldName = [];\n    if (dict.has(\"T\")) {\n      fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n    }\n    let loopDict = dict;\n    const visited = new RefSet();\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n    while (loopDict.has(\"Parent\")) {\n      loopDict = loopDict.get(\"Parent\");\n      if (!(loopDict instanceof Dict) || loopDict.objId && visited.has(loopDict.objId)) {\n        break;\n      }\n      if (loopDict.objId) {\n        visited.put(loopDict.objId);\n      }\n      if (loopDict.has(\"T\")) {\n        fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n      }\n    }\n    return fieldName.join(\".\");\n  }\n  _getAttachmentId(fsDict, fsRef, annotationGlobals) {\n    if (!(fsDict instanceof Dict)) {\n      return undefined;\n    }\n    if (!(fsRef instanceof Ref)) {\n      fsRef = FileSpec.pickPlatformItem(fsDict.get(\"EF\"), true);\n    }\n    return fsRef instanceof Ref ? annotationGlobals.catalog.getAttachmentIdForAnnotation(fsRef) : undefined;\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 AnnotationBorderStyle {\n  width = 1;\n  rawWidth = 1;\n  style = AnnotationBorderStyleType.SOLID;\n  dashArray = [3];\n  horizontalCornerRadius = 0;\n  verticalCornerRadius = 0;\n  setWidth(width, rect = [0, 0, 0, 0]) {\n    if (width instanceof Name) {\n      this.width = 0;\n      return;\n    }\n    if (typeof width === \"number\") {\n      if (width > 0) {\n        this.rawWidth = width;\n        const maxWidth = (rect[2] - rect[0]) / 2;\n        const maxHeight = (rect[3] - rect[1]) / 2;\n        if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {\n          warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n          width = 1;\n        }\n      }\n      this.width = width;\n    }\n  }\n  setStyle(style) {\n    if (!(style instanceof Name)) {\n      return;\n    }\n    switch (style.name) {\n      case \"S\":\n        this.style = AnnotationBorderStyleType.SOLID;\n        break;\n      case \"D\":\n        this.style = AnnotationBorderStyleType.DASHED;\n        break;\n      case \"B\":\n        this.style = AnnotationBorderStyleType.BEVELED;\n        break;\n      case \"I\":\n        this.style = AnnotationBorderStyleType.INSET;\n        break;\n      case \"U\":\n        this.style = AnnotationBorderStyleType.UNDERLINE;\n        break;\n      default:\n        break;\n    }\n  }\n  setDashArray(dashArray, forceStyle = false) {\n    if (Array.isArray(dashArray)) {\n      let isValid = true;\n      let allZeros = true;\n      for (const element of dashArray) {\n        const validNumber = +element >= 0;\n        if (!validNumber) {\n          isValid = false;\n          break;\n        } else if (element > 0) {\n          allZeros = false;\n        }\n      }\n      if (dashArray.length === 0 || isValid && !allZeros) {\n        this.dashArray = dashArray;\n        if (forceStyle) {\n          this.setStyle(Name.get(\"D\"));\n        }\n      } else {\n        this.width = 0;\n      }\n    } else if (dashArray) {\n      this.width = 0;\n    }\n  }\n  setHorizontalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.horizontalCornerRadius = radius;\n    }\n  }\n  setVerticalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.verticalCornerRadius = radius;\n    }\n  }\n}\nclass MarkupAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict\n    } = params;\n    if (dict.has(\"IRT\")) {\n      const rawIRT = dict.getRaw(\"IRT\");\n      this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n      const rt = dict.get(\"RT\");\n      this.data.replyType = rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n    }\n    let popupRef = null;\n    if (this.data.replyType === AnnotationReplyType.GROUP) {\n      const parent = dict.get(\"IRT\");\n      this.setTitle(parent.get(\"T\"));\n      this.data.titleObj = this._title;\n      this.setContents(parent.get(\"Contents\"));\n      this.data.contentsObj = this._contents;\n      if (!parent.has(\"CreationDate\")) {\n        this.data.creationDate = null;\n      } else {\n        this.setCreationDate(parent.get(\"CreationDate\"));\n        this.data.creationDate = this.creationDate;\n      }\n      if (!parent.has(\"M\")) {\n        this.data.modificationDate = null;\n      } else {\n        this.setModificationDate(parent.get(\"M\"));\n        this.data.modificationDate = this.modificationDate;\n      }\n      popupRef = parent.getRaw(\"Popup\");\n      if (!parent.has(\"C\")) {\n        this.data.color = null;\n      } else {\n        this.setColor(parent.getArray(\"C\"));\n        this.data.color = this.color;\n      }\n    } else {\n      this.data.titleObj = this._title;\n      this.setCreationDate(dict.get(\"CreationDate\"));\n      this.data.creationDate = this.creationDate;\n      popupRef = dict.getRaw(\"Popup\");\n      if (!dict.has(\"C\")) {\n        this.data.color = null;\n      }\n    }\n    this.data.popupRef = popupRef instanceof Ref ? popupRef.toString() : null;\n    if (dict.has(\"RC\")) {\n      this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n    }\n  }\n  setCreationDate(creationDate) {\n    this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n  }\n  _setDefaultAppearance({\n    xref,\n    extra,\n    strokeColor,\n    fillColor,\n    blendMode,\n    strokeAlpha,\n    fillAlpha,\n    pointsCallback\n  }) {\n    const bbox = this.data.rect = BBOX_INIT.slice();\n    const buffer = [\"q\"];\n    if (extra) {\n      buffer.push(extra);\n    }\n    if (strokeColor) {\n      buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n    }\n    if (fillColor) {\n      buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n    }\n    const pointsArray = this.data.quadPoints || Float32Array.from([this.rectangle[0], this.rectangle[3], this.rectangle[2], this.rectangle[3], this.rectangle[0], this.rectangle[1], this.rectangle[2], this.rectangle[1]]);\n    for (let i = 0, ii = pointsArray.length; i < ii; i += 8) {\n      const points = pointsCallback(buffer, pointsArray.subarray(i, i + 8));\n      Util.rectBoundingBox(...points, bbox);\n    }\n    buffer.push(\"Q\");\n    const formDict = new Dict(xref);\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    const appearanceStream = new StringStream(buffer.join(\" \"), appearanceStreamDict);\n    formDict.set(\"Fm0\", appearanceStream);\n    const gsDict = new Dict(xref);\n    if (blendMode) {\n      gsDict.setIfName(\"BM\", blendMode);\n    }\n    gsDict.setIfNumber(\"CA\", strokeAlpha);\n    gsDict.setIfNumber(\"ca\", fillAlpha);\n    const stateDict = new Dict(xref);\n    stateDict.set(\"GS0\", gsDict);\n    const resources = new Dict(xref);\n    resources.set(\"ExtGState\", stateDict);\n    resources.set(\"XObject\", formDict);\n    const appearanceDict = new Dict(xref);\n    appearanceDict.set(\"Resources\", resources);\n    appearanceDict.set(\"BBox\", bbox);\n    this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\", appearanceDict);\n    this._streams.push(this.appearance, appearanceStream);\n  }\n  static async createNewAnnotation(xref, annotation, changes, params) {\n    const annotationRef = annotation.ref ||= xref.getNewTemporaryRef();\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    let annotationDict;\n    if (ap) {\n      const apRef = xref.getNewTemporaryRef();\n      annotationDict = this.createNewDict(annotation, xref, {\n        apRef\n      });\n      changes.put(apRef, {\n        data: ap\n      });\n    } else {\n      annotationDict = this.createNewDict(annotation, xref, {});\n    }\n    if (Number.isInteger(annotation.parentTreeId)) {\n      annotationDict.set(\"StructParent\", annotation.parentTreeId);\n    }\n    changes.put(annotationRef, {\n      data: annotationDict\n    });\n    const retRef = {\n      ref: annotationRef\n    };\n    const {\n      popup\n    } = annotation;\n    if (popup) {\n      if (popup.deleted) {\n        annotationDict.delete(\"Popup\");\n        annotationDict.delete(\"Contents\");\n        annotationDict.delete(\"RC\");\n        return retRef;\n      }\n      const popupRef = popup.ref ||= xref.getNewTemporaryRef();\n      popup.parent = annotationRef;\n      const popupDict = PopupAnnotation.createNewDict(popup, xref);\n      changes.put(popupRef, {\n        data: popupDict\n      });\n      annotationDict.setIfDefined(\"Contents\", stringToAsciiOrUTF16BE(popup.contents));\n      annotationDict.set(\"Popup\", popupRef);\n      return [retRef, {\n        ref: popupRef\n      }];\n    }\n    return retRef;\n  }\n  static async createNewPrintAnnotation(annotationGlobals, xref, annotation, params) {\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const annotationDict = this.createNewDict(annotation, xref, ap ? {\n      ap\n    } : {});\n    const newAnnotation = new this.prototype.constructor({\n      dict: annotationDict,\n      xref,\n      annotationGlobals,\n      evaluatorOptions: params.evaluatorOptions\n    });\n    if (annotation.ref) {\n      newAnnotation.ref = newAnnotation.refToReplace = annotation.ref;\n    }\n    return newAnnotation;\n  }\n}\nclass WidgetAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref,\n      annotationGlobals\n    } = params;\n    const data = this.data;\n    this._needAppearances = params.needAppearances;\n    if (data.fieldName === undefined) {\n      data.fieldName = this._constructFieldName(dict);\n    }\n    if (data.actions === undefined) {\n      data.actions = collectActions(xref, dict, AnnotationActionEventType);\n    }\n    let fieldValue = getInheritableProperty({\n      dict,\n      key: \"V\",\n      getArray: true\n    });\n    data.fieldValue = this._decodeFormValue(fieldValue);\n    const defaultFieldValue = getInheritableProperty({\n      dict,\n      key: \"DV\",\n      getArray: true\n    });\n    data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n    if (fieldValue === undefined && annotationGlobals.xfaDatasets) {\n      const path = this._title.str;\n      if (path) {\n        this._hasValueFromXFA = true;\n        data.fieldValue = fieldValue = annotationGlobals.xfaDatasets.getValue(path);\n      }\n    }\n    if (fieldValue === undefined && data.defaultFieldValue !== null) {\n      data.fieldValue = data.defaultFieldValue;\n    }\n    data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n    this.setDefaultAppearance(params);\n    data.hasAppearance ||= this._needAppearances && data.fieldValue !== undefined && data.fieldValue !== null;\n    const fieldType = getInheritableProperty({\n      dict,\n      key: \"FT\"\n    });\n    data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n    const localResources = getInheritableProperty({\n      dict,\n      key: \"DR\"\n    });\n    const acroFormResources = annotationGlobals.acroForm.get(\"DR\");\n    const appearanceResources = this.appearance?.dict.get(\"Resources\");\n    this._fieldResources = {\n      localResources,\n      acroFormResources,\n      appearanceResources,\n      mergedResources: Dict.merge({\n        xref,\n        dictArray: [localResources, appearanceResources, acroFormResources],\n        mergeSubDicts: true\n      })\n    };\n    data.fieldFlags = getInheritableProperty({\n      dict,\n      key: \"Ff\"\n    });\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n    data.password = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n    data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n    data.required = this.hasFieldFlag(AnnotationFieldFlag.REQUIRED);\n    data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN) || this._hasFlag(data.annotationFlags, AnnotationFlag.NOVIEW);\n  }\n  _decodeFormValue(formValue) {\n    if (Array.isArray(formValue)) {\n      const arr = formValue.map(item => this._decodeFormValue(item)).filter(item => item !== null);\n      return arr.length > 0 ? arr : null;\n    } else if (formValue instanceof Name) {\n      return formValue.name;\n    } else if (typeof formValue === \"string\") {\n      return stringToPDFString(formValue);\n    }\n    return null;\n  }\n  hasFieldFlag(flag) {\n    return !!(this.data.fieldFlags & flag);\n  }\n  _isViewable(flags) {\n    return true;\n  }\n  mustBeViewed(annotationStorage, renderForms) {\n    if (renderForms) {\n      return this.viewable;\n    }\n    return super.mustBeViewed(annotationStorage, renderForms) && !this._hasFlag(this.flags, AnnotationFlag.NOVIEW);\n  }\n  getRotationMatrix(annotationStorage) {\n    let rotation = annotationStorage?.get(this.data.id)?.rotation;\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    return rotation === 0 ? IDENTITY_MATRIX : getRotationMatrix(rotation, this.width, this.height);\n  }\n  getBorderAndBackgroundAppearances(annotationStorage) {\n    let rotation = annotationStorage?.get(this.data.id)?.rotation;\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    if (!this.backgroundColor && !this.borderColor) {\n      return \"\";\n    }\n    const rect = rotation === 0 || rotation === 180 ? `0 0 ${this.width} ${this.height} re` : `0 0 ${this.height} ${this.width} re`;\n    let str = \"\";\n    if (this.backgroundColor) {\n      str = `${getPdfColor(this.backgroundColor, true)} ${rect} f `;\n    }\n    if (this.borderColor) {\n      const borderWidth = this.borderStyle.width || 1;\n      str += `${borderWidth} w ${getPdfColor(this.borderColor, false)} ${rect} S `;\n    }\n    return str;\n  }\n  async getOperatorList(evaluator, task, intent, annotationStorage) {\n    if (intent & RenderingIntentFlag.ANNOTATIONS_FORMS && !(this instanceof SignatureWidgetAnnotation) && !this.data.noHTML && !this.data.hasOwnCanvas) {\n      const list = this._getOperatorListNoAppearance();\n      list.separateForm = true;\n      return list;\n    }\n    if (!this._hasText) {\n      return super.getOperatorList(evaluator, task, intent, annotationStorage);\n    }\n    const content = await this._getAppearance(evaluator, task, intent, annotationStorage);\n    if (this.appearance && content === null) {\n      return super.getOperatorList(evaluator, task, intent, annotationStorage);\n    }\n    const opList = new OperatorList();\n    if (!this._defaultAppearance || content === null) {\n      return {\n        opList,\n        separateForm: false,\n        separateCanvas: false\n      };\n    }\n    const isUsingOwnCanvas = !!(this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY);\n    const matrix = [1, 0, 0, 1, 0, 0];\n    const bbox = [0, 0, this.width, this.height];\n    const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n    const optionalContent = this._oc;\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n    opList.addOp(OPS.beginAnnotation, [this.data.id, this.data.rect, transform, this.getRotationMatrix(annotationStorage), isUsingOwnCanvas]);\n    const stream = new StringStream(content);\n    await evaluator.getOperatorList({\n      stream,\n      task,\n      resources: this._fieldResources.mergedResources,\n      operatorList: opList\n    });\n    opList.addOp(OPS.endAnnotation, []);\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.endMarkedContent, []);\n    }\n    return {\n      opList,\n      separateForm: false,\n      separateCanvas: isUsingOwnCanvas\n    };\n  }\n  _getMKDict(rotation) {\n    const mk = new Dict(null);\n    if (rotation) {\n      mk.set(\"R\", rotation);\n    }\n    mk.setIfArray(\"BC\", getPdfColorArray(this.borderColor));\n    mk.setIfArray(\"BG\", getPdfColorArray(this.backgroundColor));\n    return mk.size > 0 ? mk : null;\n  }\n  amendSavedDict(annotationStorage, dict) {}\n  setValue(dict, value, xref, changes) {\n    const {\n      dict: parentDict,\n      ref: parentRef\n    } = getParentToUpdate(dict, this.ref, xref);\n    if (!parentDict) {\n      dict.set(\"V\", value);\n    } else if (!changes.has(parentRef)) {\n      const newParentDict = parentDict.clone();\n      newParentDict.set(\"V\", value);\n      changes.put(parentRef, {\n        data: newParentDict\n      });\n      return newParentDict;\n    }\n    return null;\n  }\n  async save(evaluator, task, annotationStorage, changes) {\n    const storageEntry = annotationStorage?.get(this.data.id);\n    const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint);\n    let value = storageEntry?.value,\n      rotation = storageEntry?.rotation;\n    if (value === this.data.fieldValue || value === undefined) {\n      if (!this._hasValueFromXFA && rotation === undefined && flags === undefined) {\n        return;\n      }\n      value ||= this.data.fieldValue;\n    }\n    if (rotation === undefined && !this._hasValueFromXFA && Array.isArray(value) && Array.isArray(this.data.fieldValue) && isArrayEqual(value, this.data.fieldValue) && flags === undefined) {\n      return;\n    }\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    let appearance = null;\n    if (!this._needAppearances) {\n      appearance = await this._getAppearance(evaluator, task, RenderingIntentFlag.SAVE, annotationStorage);\n      if (appearance === null && flags === undefined) {\n        return;\n      }\n    } else {}\n    let needAppearances = false;\n    if (appearance?.needAppearances) {\n      needAppearances = true;\n      appearance = null;\n    }\n    const {\n      xref\n    } = evaluator;\n    const originalDict = xref.fetchIfRef(this.ref);\n    if (!(originalDict instanceof Dict)) {\n      return;\n    }\n    const dict = new Dict(xref);\n    for (const [key, rawVal] of originalDict.getRawEntries()) {\n      if (key !== \"AP\") {\n        dict.set(key, rawVal);\n      }\n    }\n    if (flags !== undefined) {\n      dict.set(\"F\", flags);\n      if (appearance === null && !needAppearances) {\n        const ap = originalDict.getRaw(\"AP\");\n        if (ap) {\n          dict.set(\"AP\", ap);\n        }\n      }\n    }\n    const xfa = {\n      path: this.data.fieldName,\n      value\n    };\n    const newParentDict = this.setValue(dict, Array.isArray(value) ? value.map(stringToAsciiOrUTF16BE) : stringToAsciiOrUTF16BE(value), xref, changes);\n    this.amendSavedDict(annotationStorage, newParentDict || dict);\n    const maybeMK = this._getMKDict(rotation);\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n    changes.put(this.ref, {\n      data: dict,\n      xfa,\n      needAppearances\n    });\n    if (appearance !== null) {\n      const newRef = xref.getNewTemporaryRef();\n      const AP = new Dict(xref);\n      dict.set(\"AP\", AP);\n      AP.set(\"N\", newRef);\n      const resources = this._getSaveFieldResources(xref),\n        appearanceDict = new Dict(xref);\n      appearanceDict.setIfName(\"Subtype\", \"Form\");\n      appearanceDict.set(\"Resources\", resources);\n      const bbox = rotation % 180 === 0 ? [0, 0, this.width, this.height] : [0, 0, this.height, this.width];\n      appearanceDict.set(\"BBox\", bbox);\n      const appearanceStream = new StringStream(appearance, appearanceDict);\n      const rotationMatrix = this.getRotationMatrix(annotationStorage);\n      if (rotationMatrix !== IDENTITY_MATRIX) {\n        appearanceDict.set(\"Matrix\", rotationMatrix);\n      }\n      changes.put(newRef, {\n        data: appearanceStream,\n        xfa: null,\n        needAppearances: false\n      });\n    }\n    dict.set(\"M\", `D:${getModificationDate()}`);\n  }\n  async _getAppearance(evaluator, task, intent, annotationStorage) {\n    if (this.data.password) {\n      return null;\n    }\n    const storageEntry = annotationStorage?.get(this.data.id);\n    let value, rotation;\n    if (storageEntry) {\n      value = storageEntry.formattedValue || storageEntry.value;\n      rotation = storageEntry.rotation;\n    }\n    if (rotation === undefined && value === undefined && !this._needAppearances) {\n      if (!this._hasValueFromXFA || this.appearance) {\n        return null;\n      }\n    }\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    if (value === undefined) {\n      value = this.data.fieldValue;\n      if (!value) {\n        return `/Tx BMC q ${colors}Q EMC`;\n      }\n    }\n    if (Array.isArray(value) && value.length === 1) {\n      value = value[0];\n    }\n    assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n    value = value.trimEnd();\n    if (this.data.combo) {\n      const option = this.data.options.find(({\n        exportValue\n      }) => value === exportValue);\n      value = option?.displayValue || value;\n    }\n    if (value === \"\") {\n      return `/Tx BMC q ${colors}Q EMC`;\n    }\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    let lineCount = -1;\n    let lines;\n    if (this.data.multiLine) {\n      lines = value.split(/\\r\\n?|\\n/).map(line => line.normalize(\"NFC\"));\n      lineCount = lines.length;\n    } else {\n      lines = [value.replace(/\\r\\n?|\\n/, \"\").normalize(\"NFC\")];\n    }\n    const defaultPadding = 1;\n    const defaultHPadding = 2;\n    let {\n      width: totalWidth,\n      height: totalHeight\n    } = this;\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n    if (!this._defaultAppearance) {\n      this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n    }\n    let font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources);\n    let defaultAppearance, fontSize, lineHeight;\n    const encodedLines = [];\n    let encodingError = false;\n    for (const line of lines) {\n      const encodedString = font.encodeString(line);\n      if (encodedString.length > 1) {\n        encodingError = true;\n      }\n      encodedLines.push(encodedString.join(\"\"));\n    }\n    if (encodingError && intent & RenderingIntentFlag.SAVE) {\n      return {\n        needAppearances: true\n      };\n    }\n    if (encodingError && this._isOffscreenCanvasSupported) {\n      const fontFamily = this.data.comb ? \"monospace\" : \"sans-serif\";\n      const fakeUnicodeFont = new FakeUnicodeFont(evaluator.xref, fontFamily);\n      const resources = fakeUnicodeFont.createFontResources(lines.join(\"\"));\n      const newFont = resources.getRaw(\"Font\");\n      if (this._fieldResources.mergedResources.has(\"Font\")) {\n        const oldFont = this._fieldResources.mergedResources.get(\"Font\");\n        for (const [key, rawVal] of newFont.getRawEntries()) {\n          oldFont.set(key, rawVal);\n        }\n      } else {\n        this._fieldResources.mergedResources.set(\"Font\", newFont);\n      }\n      const fontName = fakeUnicodeFont.fontName.name;\n      font = await WidgetAnnotation._getFontData(evaluator, task, {\n        fontName,\n        fontSize: 0\n      }, resources);\n      for (let i = 0, ii = encodedLines.length; i < ii; i++) {\n        encodedLines[i] = stringToUTF16String(lines[i]);\n      }\n      const savedDefaultAppearance = Object.assign(Object.create(null), this.data.defaultAppearanceData);\n      this.data.defaultAppearanceData.fontSize = 0;\n      this.data.defaultAppearanceData.fontName = fontName;\n      [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(totalHeight - 2 * defaultPadding, totalWidth - 2 * defaultHPadding, value, font, lineCount);\n      this.data.defaultAppearanceData = savedDefaultAppearance;\n    } else {\n      if (!this._isOffscreenCanvasSupported) {\n        warn(\"_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.\");\n      }\n      [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(totalHeight - 2 * defaultPadding, totalWidth - 2 * defaultHPadding, value, font, lineCount);\n    }\n    let descent = font.descent;\n    if (isNaN(descent)) {\n      descent = BASELINE_FACTOR * lineHeight;\n    } else {\n      descent = Math.max(BASELINE_FACTOR * lineHeight, Math.abs(descent) * fontSize);\n    }\n    const defaultVPadding = Math.min(Math.floor((totalHeight - fontSize) / 2), defaultPadding);\n    const alignment = this.data.textAlignment;\n    if (this.data.multiLine) {\n      return this._getMultilineAppearance(defaultAppearance, encodedLines, font, fontSize, totalWidth, totalHeight, alignment, defaultHPadding, defaultVPadding, descent, lineHeight, annotationStorage);\n    }\n    if (this.data.comb) {\n      return this._getCombAppearance(defaultAppearance, font, encodedLines[0], fontSize, totalWidth, totalHeight, alignment, bidi(lines[0]).dir === \"rtl\", annotationStorage);\n    }\n    const bottomPadding = defaultVPadding + descent;\n    if (alignment === 0 || alignment > 2) {\n      return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${numberToString(defaultHPadding)} ${numberToString(bottomPadding)} Tm (${escapeString(encodedLines[0])}) Tj` + \" ET Q EMC\";\n    }\n    const prevInfo = {\n      shift: 0\n    };\n    const renderedText = this._renderText(encodedLines[0], font, fontSize, totalWidth, alignment, prevInfo, defaultHPadding, bottomPadding);\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + \" ET Q EMC\";\n  }\n  static async _getFontData(evaluator, task, appearanceData, resources) {\n    const operatorList = new OperatorList();\n    const initialState = {\n      font: null,\n      clone() {\n        return this;\n      }\n    };\n    const {\n      fontName,\n      fontSize\n    } = appearanceData;\n    await evaluator.handleSetFont(resources, [fontName && Name.get(fontName), fontSize], null, operatorList, task, initialState, null);\n    return initialState.font;\n  }\n  _getTextWidth(text, font) {\n    return Math.sumPrecise(font.charsToGlyphs(text).map(g => g.width)) / 1000;\n  }\n  _computeFontSize(height, width, text, font, lineCount) {\n    let {\n      fontSize\n    } = this.data.defaultAppearanceData;\n    let lineHeight = (fontSize || 12) * LINE_FACTOR,\n      numberOfLines = Math.round(height / lineHeight);\n    if (!fontSize) {\n      const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n      if (lineCount === -1) {\n        const textWidth = this._getTextWidth(text, font);\n        fontSize = roundWithTwoDigits(Math.min(height / LINE_FACTOR, width / textWidth));\n        numberOfLines = 1;\n      } else {\n        const lines = text.split(/\\r\\n?|\\n/);\n        const cachedLines = [];\n        for (const line of lines) {\n          const encoded = font.encodeString(line).join(\"\");\n          const glyphs = font.charsToGlyphs(encoded);\n          const positions = font.getCharPositions(encoded);\n          cachedLines.push({\n            line: encoded,\n            glyphs,\n            positions\n          });\n        }\n        const isTooBig = fsize => {\n          let totalHeight = 0;\n          for (const cache of cachedLines) {\n            const chunks = this._splitLine(null, font, fsize, width, cache);\n            totalHeight += chunks.length * fsize;\n            if (totalHeight > height) {\n              return true;\n            }\n          }\n          return false;\n        };\n        numberOfLines = Math.max(numberOfLines, lineCount);\n        while (true) {\n          lineHeight = height / numberOfLines;\n          fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n          if (isTooBig(fontSize)) {\n            numberOfLines++;\n            continue;\n          }\n          break;\n        }\n      }\n      const {\n        fontName,\n        fontColor\n      } = this.data.defaultAppearanceData;\n      this._defaultAppearance = createDefaultAppearance({\n        fontSize,\n        fontName,\n        fontColor\n      });\n    }\n    return [this._defaultAppearance, fontSize, height / numberOfLines];\n  }\n  _renderText(text, font, fontSize, totalWidth, alignment, prevInfo, hPadding, vPadding) {\n    let shift;\n    if (alignment === 1) {\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = (totalWidth - width) / 2;\n    } else if (alignment === 2) {\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = totalWidth - width - hPadding;\n    } else {\n      shift = hPadding;\n    }\n    const shiftStr = numberToString(shift - prevInfo.shift);\n    prevInfo.shift = shift;\n    vPadding = numberToString(vPadding);\n    return `${shiftStr} ${vPadding} Td (${escapeString(text)}) Tj`;\n  }\n  _getSaveFieldResources(xref) {\n    const {\n      localResources,\n      appearanceResources,\n      acroFormResources\n    } = this._fieldResources;\n    const fontName = this.data.defaultAppearanceData?.fontName;\n    if (!fontName) {\n      return localResources || Dict.empty;\n    }\n    for (const resources of [localResources, appearanceResources]) {\n      if (resources instanceof Dict) {\n        const localFont = resources.get(\"Font\");\n        if (localFont instanceof Dict && localFont.has(fontName)) {\n          return resources;\n        }\n      }\n    }\n    if (acroFormResources instanceof Dict) {\n      const acroFormFont = acroFormResources.get(\"Font\");\n      if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n        const subFontDict = new Dict(xref);\n        subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n        const subResourcesDict = new Dict(xref);\n        subResourcesDict.set(\"Font\", subFontDict);\n        return Dict.merge({\n          xref,\n          dictArray: [subResourcesDict, localResources],\n          mergeSubDicts: true\n        });\n      }\n    }\n    return localResources || Dict.empty;\n  }\n  getFieldObject() {\n    return null;\n  }\n}\nclass TextWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict\n    } = params;\n    if (dict.has(\"PMD\")) {\n      this.flags |= AnnotationFlag.HIDDEN;\n      this.data.hidden = true;\n      warn(\"Barcodes are not supported\");\n    }\n    this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML;\n    this._hasText = true;\n    if (typeof this.data.fieldValue !== \"string\") {\n      this.data.fieldValue = \"\";\n    }\n    let alignment = getInheritableProperty({\n      dict,\n      key: \"Q\"\n    });\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n    this.data.textAlignment = alignment;\n    let maximumLength = getInheritableProperty({\n      dict,\n      key: \"MaxLen\"\n    });\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = 0;\n    }\n    this.data.maxLen = maximumLength;\n    this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n    this.data.comb = this.hasFieldFlag(AnnotationFieldFlag.COMB) && !this.data.multiLine && !this.data.password && !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== 0;\n    this.data.doNotScroll = this.hasFieldFlag(AnnotationFieldFlag.DONOTSCROLL);\n    const {\n      data: {\n        actions\n      }\n    } = this;\n    if (!actions) {\n      return;\n    }\n    const AFDateTime = /^AF(Date|Time)_(?:Keystroke|Format)(?:Ex)?\\(['\"]?([^'\"]+)['\"]?\\);$/;\n    let canUseHTMLDateTime = false;\n    if (actions.Format?.length === 1 && actions.Keystroke?.length === 1 && AFDateTime.test(actions.Format[0]) && AFDateTime.test(actions.Keystroke[0]) || actions.Format?.length === 0 && actions.Keystroke?.length === 1 && AFDateTime.test(actions.Keystroke[0]) || actions.Keystroke?.length === 0 && actions.Format?.length === 1 && AFDateTime.test(actions.Format[0])) {\n      canUseHTMLDateTime = true;\n    }\n    const actionsToVisit = [];\n    if (actions.Format) {\n      actionsToVisit.push(...actions.Format);\n    }\n    if (actions.Keystroke) {\n      actionsToVisit.push(...actions.Keystroke);\n    }\n    if (canUseHTMLDateTime) {\n      delete actions.Keystroke;\n      actions.Format = actionsToVisit;\n    }\n    for (const formatAction of actionsToVisit) {\n      const m = formatAction.match(AFDateTime);\n      if (!m) {\n        continue;\n      }\n      const isDate = m[1] === \"Date\";\n      let format = m[2];\n      const num = parseInt(format, 10);\n      if (!isNaN(num) && Math.floor(Math.log10(num)) + 1 === m[2].length) {\n        format = (isDate ? DateFormats : TimeFormats)[num] ?? format;\n      }\n      this.data.datetimeFormat = format;\n      if (!canUseHTMLDateTime) {\n        break;\n      }\n      if (isDate) {\n        if (/HH|MM|ss|h/.test(format)) {\n          this.data.datetimeType = \"datetime-local\";\n          this.data.timeStep = /ss/.test(format) ? 1 : 60;\n        } else {\n          this.data.datetimeType = \"date\";\n        }\n        break;\n      }\n      this.data.datetimeType = \"time\";\n      this.data.timeStep = /ss/.test(format) ? 1 : 60;\n      break;\n    }\n  }\n  get hasTextContent() {\n    return !!this.appearance && !this._needAppearances;\n  }\n  _getCombAppearance(defaultAppearance, font, text, fontSize, width, height, alignment, isRTL, annotationStorage) {\n    const combWidth = width / this.data.maxLen;\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    const cells = font.getCharPositions(text).map(([start, end]) => {\n      const glyph = text.substring(start, end);\n      return {\n        glyph,\n        width: this._getTextWidth(glyph, font) * fontSize\n      };\n    });\n    if (isRTL) {\n      cells.reverse();\n    }\n    const textWidth = combWidth * cells.length;\n    let hShift = 0;\n    if (alignment === 1) {\n      hShift += Math.floor((width - textWidth) / (2 * combWidth)) * combWidth;\n    } else if (alignment === 2) {\n      hShift += width - textWidth;\n    }\n    const buf = [];\n    let previousWidth = 0;\n    for (let i = 0, ii = cells.length; i < ii; i++) {\n      const {\n        glyph,\n        width: glyphWidth\n      } = cells[i];\n      const shift = i === 0 ? (combWidth - glyphWidth) / 2 : combWidth + (previousWidth - glyphWidth) / 2;\n      buf.push(`${numberToString(shift)} 0 Td (${escapeString(glyph)}) Tj`);\n      previousWidth = glyphWidth;\n    }\n    const renderedComb = buf.join(\" \");\n    const vShift = (height - (font.capHeight || font.ascent || 1) * fontSize) / 2;\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${numberToString(hShift)} ${numberToString(vShift)} Tm ${renderedComb}` + \" ET Q EMC\";\n  }\n  _getMultilineAppearance(defaultAppearance, lines, font, fontSize, width, height, alignment, hPadding, vPadding, descent, lineHeight, annotationStorage) {\n    const buf = [];\n    const totalWidth = width - 2 * hPadding;\n    const prevInfo = {\n      shift: 0\n    };\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n      const chunks = this._splitLine(line, font, fontSize, totalWidth);\n      for (let j = 0, jj = chunks.length; j < jj; j++) {\n        const chunk = chunks[j];\n        const vShift = i === 0 && j === 0 ? -vPadding - (lineHeight - descent) : -lineHeight;\n        buf.push(this._renderText(chunk, font, fontSize, width, alignment, prevInfo, hPadding, vShift));\n      }\n    }\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    const renderedText = buf.join(\"\\n\");\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 ${numberToString(height)} Tm ${renderedText}` + \" ET Q EMC\";\n  }\n  _splitLine(line, font, fontSize, width, cache = {}) {\n    line = cache.line || line;\n    const glyphs = cache.glyphs || font.charsToGlyphs(line);\n    if (glyphs.length <= 1) {\n      return [line];\n    }\n    const positions = cache.positions || font.getCharPositions(line);\n    const scale = fontSize / 1000;\n    const chunks = [];\n    let lastSpacePosInStringStart = -1,\n      lastSpacePosInStringEnd = -1,\n      lastSpacePos = -1,\n      startChunk = 0,\n      currentWidth = 0;\n    for (let i = 0, ii = glyphs.length; i < ii; i++) {\n      const [start, end] = positions[i];\n      const glyph = glyphs[i];\n      const glyphWidth = glyph.width * scale;\n      if (glyph.unicode === \" \") {\n        if (currentWidth + glyphWidth > width) {\n          chunks.push(line.substring(startChunk, start));\n          startChunk = start;\n          currentWidth = glyphWidth;\n          lastSpacePosInStringStart = -1;\n          lastSpacePos = -1;\n        } else {\n          currentWidth += glyphWidth;\n          lastSpacePosInStringStart = start;\n          lastSpacePosInStringEnd = end;\n          lastSpacePos = i;\n        }\n      } else if (currentWidth + glyphWidth > width) {\n        if (lastSpacePosInStringStart !== -1) {\n          chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n          startChunk = lastSpacePosInStringEnd;\n          i = lastSpacePos + 1;\n          lastSpacePosInStringStart = -1;\n          currentWidth = 0;\n        } else {\n          chunks.push(line.substring(startChunk, start));\n          startChunk = start;\n          currentWidth = glyphWidth;\n        }\n      } else {\n        currentWidth += glyphWidth;\n      }\n    }\n    if (startChunk < line.length) {\n      chunks.push(line.substring(startChunk));\n    }\n    return chunks;\n  }\n  async extractTextContent(evaluator, task, viewBox) {\n    await super.extractTextContent(evaluator, task, viewBox);\n    const text = this.data.textContent;\n    if (!text) {\n      return;\n    }\n    const allText = text.join(\"\\n\");\n    if (allText === this.data.fieldValue) {\n      return;\n    }\n    const regex = allText.replaceAll(/([.*+?^${}()|[\\]\\\\])|(\\s+)/g, (_m, p1) => p1 ? `\\\\${p1}` : \"\\\\s+\");\n    if (new RegExp(`^\\\\s*${regex}\\\\s*$`).test(this.data.fieldValue)) {\n      this.data.textContent = this.data.fieldValue.split(\"\\n\");\n    }\n  }\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue,\n      defaultValue: this.data.defaultFieldValue || \"\",\n      multiline: this.data.multiLine,\n      password: this.data.password,\n      charLimit: this.data.maxLen,\n      comb: this.data.comb,\n      editable: !this.data.readOnly,\n      hidden: this.data.hidden,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      datetimeFormat: this.data.datetimeFormat,\n      hasDatetimeHTML: !!this.data.datetimeType,\n      type: \"text\"\n    };\n  }\n}\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.checkedAppearance = null;\n    this.uncheckedAppearance = null;\n    const isRadio = this.hasFieldFlag(AnnotationFieldFlag.RADIO),\n      isPushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n    this.data.checkBox = !isRadio && !isPushButton;\n    this.data.radioButton = isRadio && !isPushButton;\n    this.data.pushButton = isPushButton;\n    this.data.isTooltipOnly = false;\n    this.data.hasOwnCanvas = true;\n    this.data.noHTML = false;\n    if (this.data.checkBox) {\n      this._processCheckBox(params);\n    } else if (this.data.radioButton) {\n      this._processRadioButton(params);\n    } else if (this.data.pushButton) {\n      this._processPushButton(params);\n    } else {\n      warn(\"Invalid field flags for button widget annotation\");\n    }\n  }\n  get _ownCanvasRequiresForms() {\n    return this.data.checkBox || this.data.radioButton;\n  }\n  #getOperatorListForAppearance(evaluator, task, intent, annotationStorage, rotation, appearance) {\n    if (!appearance) {\n      return this._getOperatorListNoAppearance();\n    }\n    const savedAppearance = this.appearance;\n    const savedMatrix = lookupMatrix(appearance.dict.getArray(\"Matrix\"), IDENTITY_MATRIX);\n    if (rotation) {\n      appearance.dict.set(\"Matrix\", this.getRotationMatrix(annotationStorage));\n    }\n    this.appearance = appearance;\n    const operatorList = super.getOperatorList(evaluator, task, intent, annotationStorage);\n    this.appearance = savedAppearance;\n    appearance.dict.set(\"Matrix\", savedMatrix);\n    return operatorList;\n  }\n  async getOperatorList(evaluator, task, intent, annotationStorage) {\n    if (this.data.pushButton) {\n      return super.getOperatorList(evaluator, task, intent, false, annotationStorage);\n    }\n    if (intent & RenderingIntentFlag.DISPLAY && intent & RenderingIntentFlag.ANNOTATIONS_FORMS && (this.data.checkBox || this.data.radioButton)) {\n      const setCanvasName = (operatorList, name) => {\n        const index = operatorList.fnArray.indexOf(OPS.beginAnnotation);\n        if (index !== -1) {\n          operatorList.argsArray[index].push(name);\n        }\n      };\n      const checked = await this.#getOperatorListForAppearance(evaluator, task, intent, annotationStorage, null, this.checkedAppearance);\n      setCanvasName(checked.opList, \"checked\");\n      const unchecked = await this.#getOperatorListForAppearance(evaluator, task, intent, annotationStorage, null, this.uncheckedAppearance);\n      setCanvasName(unchecked.opList, \"unchecked\");\n      checked.opList.addOpList(unchecked.opList);\n      checked.separateForm ||= unchecked.separateForm;\n      checked.separateCanvas ||= unchecked.separateCanvas;\n      return checked;\n    }\n    let value = null;\n    let rotation = null;\n    if (annotationStorage) {\n      const storageEntry = annotationStorage.get(this.data.id);\n      value = storageEntry ? storageEntry.value : null;\n      rotation = storageEntry ? storageEntry.rotation : null;\n    }\n    if (value === null && this.appearance) {\n      return super.getOperatorList(evaluator, task, intent, annotationStorage);\n    }\n    if (value === null || value === undefined) {\n      value = this.data.checkBox ? this.data.fieldValue === this.data.exportValue : this.data.fieldValue === this.data.buttonValue;\n    }\n    return this.#getOperatorListForAppearance(evaluator, task, intent, annotationStorage, rotation, value ? this.checkedAppearance : this.uncheckedAppearance);\n  }\n  async save(evaluator, task, annotationStorage, changes) {\n    if (this.data.checkBox) {\n      this._saveCheckbox(evaluator, task, annotationStorage, changes);\n      return;\n    }\n    if (this.data.radioButton) {\n      this._saveRadioButton(evaluator, task, annotationStorage, changes);\n    }\n  }\n  async _saveCheckbox(evaluator, task, annotationStorage, changes) {\n    if (!annotationStorage) {\n      return;\n    }\n    const storageEntry = annotationStorage.get(this.data.id);\n    const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint);\n    let rotation = storageEntry?.rotation,\n      value = storageEntry?.value;\n    if (rotation === undefined && flags === undefined) {\n      if (value === undefined) {\n        return;\n      }\n      const defaultValue = this.data.fieldValue === this.data.exportValue;\n      if (defaultValue === value) {\n        return;\n      }\n    }\n    let dict = evaluator.xref.fetchIfRef(this.ref);\n    if (!(dict instanceof Dict)) {\n      return;\n    }\n    dict = dict.clone();\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.exportValue;\n    }\n    const xfa = {\n      path: this.data.fieldName,\n      value: value ? this.data.exportValue : \"\"\n    };\n    const name = Name.get(value ? this._onStateName : \"Off\");\n    this.setValue(dict, name, evaluator.xref, changes);\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${getModificationDate()}`);\n    if (flags !== undefined) {\n      dict.set(\"F\", flags);\n    }\n    const maybeMK = this._getMKDict(rotation);\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n    changes.put(this.ref, {\n      data: dict,\n      xfa,\n      needAppearances: false\n    });\n  }\n  async _saveRadioButton(evaluator, task, annotationStorage, changes) {\n    if (!annotationStorage) {\n      return;\n    }\n    const storageEntry = annotationStorage.get(this.data.id);\n    const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint);\n    let rotation = storageEntry?.rotation,\n      value = storageEntry?.value;\n    if (rotation === undefined && flags === undefined) {\n      if (value === undefined) {\n        return;\n      }\n      const defaultValue = this.data.fieldValue === this.data.buttonValue;\n      if (defaultValue === value) {\n        return;\n      }\n    }\n    let dict = evaluator.xref.fetchIfRef(this.ref);\n    if (!(dict instanceof Dict)) {\n      return;\n    }\n    dict = dict.clone();\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.buttonValue;\n    }\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    const xfa = {\n      path: this.data.fieldName,\n      value: value ? this.data.buttonValue : \"\"\n    };\n    const name = Name.get(value ? this._onStateName : \"Off\");\n    if (value) {\n      this.setValue(dict, name, evaluator.xref, changes);\n    }\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${getModificationDate()}`);\n    if (flags !== undefined) {\n      dict.set(\"F\", flags);\n    }\n    const maybeMK = this._getMKDict(rotation);\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n    changes.put(this.ref, {\n      data: dict,\n      xfa,\n      needAppearances: false\n    });\n  }\n  _getDefaultCheckedAppearance(params, type) {\n    const {\n      width,\n      height\n    } = this;\n    const bbox = [0, 0, width, height];\n    const FONT_RATIO = 0.8;\n    const fontSize = Math.min(width, height) * FONT_RATIO;\n    let metrics, char;\n    if (type === \"check\") {\n      metrics = {\n        width: 0.755 * fontSize,\n        height: 0.705 * fontSize\n      };\n      char = \"\\x33\";\n    } else if (type === \"disc\") {\n      metrics = {\n        width: 0.791 * fontSize,\n        height: 0.705 * fontSize\n      };\n      char = \"\\x6C\";\n    } else {\n      unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n    }\n    const xShift = numberToString((width - metrics.width) / 2);\n    const yShift = numberToString((height - metrics.height) / 2);\n    const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n    const appearanceStreamDict = new Dict(params.xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", bbox);\n    appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    const resources = new Dict(params.xref);\n    const font = new Dict(params.xref);\n    font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n    resources.set(\"Font\", font);\n    appearanceStreamDict.set(\"Resources\", resources);\n    this.checkedAppearance = new StringStream(appearance, appearanceStreamDict);\n    this._streams.push(this.checkedAppearance);\n  }\n  _getOnStateName(dict) {\n    const appearanceStates = dict.get(\"AP\");\n    if (!(appearanceStates instanceof Dict)) {\n      return null;\n    }\n    const normalAppearance = appearanceStates.get(\"N\");\n    if (!(normalAppearance instanceof Dict)) {\n      return null;\n    }\n    for (const key of normalAppearance.getKeys()) {\n      if (key !== \"Off\") {\n        return key;\n      }\n    }\n    return null;\n  }\n  _getExportValueForOptIndex(index, opt, xref) {\n    if (Number.isInteger(index) && index >= 0 && index < opt.length) {\n      const value = this._decodeFormValue(xref.fetchIfRef(opt[index]));\n      if (typeof value === \"string\") {\n        return value;\n      }\n    }\n    return null;\n  }\n  _getOptInfo(dict, onState, opt, xref) {\n    if (!Array.isArray(opt)) {\n      return null;\n    }\n    const stateToIndex = new Map();\n    let currentIndex = null;\n    const fieldParent = dict.get(\"Parent\");\n    const kids = fieldParent instanceof Dict ? fieldParent.get(\"Kids\") : null;\n    if (Array.isArray(kids)) {\n      for (let i = 0, ii = Math.min(kids.length, opt.length); i < ii; i++) {\n        const kid = kids[i];\n        if (kid instanceof Ref && isRefsEqual(kid, this.ref)) {\n          currentIndex = i;\n        }\n        const kidDict = xref.fetchIfRef(kid);\n        if (!(kidDict instanceof Dict)) {\n          continue;\n        }\n        if (kidDict === dict) {\n          currentIndex = i;\n        }\n        const kidOnState = this._getOnStateName(kidDict);\n        if (typeof kidOnState === \"string\" && !stateToIndex.has(kidOnState)) {\n          stateToIndex.set(kidOnState, i);\n        }\n      }\n    } else if (opt.length === 1 && typeof onState === \"string\") {\n      currentIndex = 0;\n      stateToIndex.set(onState, 0);\n    }\n    return {\n      currentIndex,\n      opt,\n      stateToIndex\n    };\n  }\n  _getExportValue(state, optInfo, xref) {\n    if (!optInfo || typeof state !== \"string\" || state === \"Off\") {\n      return state;\n    }\n    if (state === this._onStateName) {\n      const exportValue = this._getExportValueForOptIndex(optInfo.currentIndex, optInfo.opt, xref);\n      if (exportValue !== null) {\n        return exportValue;\n      }\n    }\n    if (optInfo.stateToIndex.has(state)) {\n      const exportValue = this._getExportValueForOptIndex(optInfo.stateToIndex.get(state), optInfo.opt, xref);\n      if (exportValue !== null) {\n        return exportValue;\n      }\n    }\n    const index = parseInt(state, 10);\n    if (Number.isInteger(index) && String(index) === state) {\n      return this._getExportValueForOptIndex(index, optInfo.opt, xref) || state;\n    }\n    return state;\n  }\n  _processCheckBox(params) {\n    const customAppearance = params.dict.get(\"AP\");\n    let normalAppearance = customAppearance instanceof Dict ? customAppearance.get(\"N\") : null;\n    if (!(normalAppearance instanceof Dict)) {\n      normalAppearance = null;\n    }\n    const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n    if (typeof asValue === \"string\") {\n      this.data.fieldValue = asValue;\n    }\n    const yes = this.data.fieldValue !== null && this.data.fieldValue !== \"Off\" ? this.data.fieldValue : \"Yes\";\n    const exportValues = normalAppearance ? [...normalAppearance.getKeys()] : [];\n    if (exportValues.length === 0) {\n      exportValues.push(\"Off\", yes);\n    } else if (exportValues.length === 1) {\n      if (exportValues[0] === \"Off\") {\n        exportValues.push(yes);\n      } else {\n        exportValues.unshift(\"Off\");\n      }\n    } else if (exportValues.includes(yes)) {\n      exportValues.length = 0;\n      exportValues.push(\"Off\", yes);\n    } else {\n      const otherYes = exportValues.find(v => v !== \"Off\");\n      exportValues.length = 0;\n      exportValues.push(\"Off\", otherYes);\n    }\n    const onState = exportValues[1];\n    this._onStateName = onState;\n    const opt = getInheritableProperty({\n      dict: params.dict,\n      key: \"Opt\"\n    });\n    const optInfo = this._getOptInfo(params.dict, onState, opt, params.xref);\n    this.data.exportValue = this._getExportValue(onState, optInfo, params.xref);\n    if (!exportValues.includes(this.data.fieldValue) && this.data.fieldValue !== this.data.exportValue) {\n      this.data.fieldValue = \"Off\";\n    }\n    this.data.fieldValue = this._getExportValue(this.data.fieldValue, optInfo, params.xref);\n    this.data.defaultFieldValue = this._getExportValue(this.data.defaultFieldValue, optInfo, params.xref);\n    const checkedAppearance = normalAppearance?.get(onState);\n    this.checkedAppearance = checkedAppearance instanceof BaseStream ? checkedAppearance : null;\n    const uncheckedAppearance = normalAppearance?.get(\"Off\");\n    this.uncheckedAppearance = uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null;\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"check\");\n    }\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n    this._fallbackFontDict = this.fallbackFontDict;\n    if (this.data.defaultFieldValue === null) {\n      this.data.defaultFieldValue = \"Off\";\n    }\n  }\n  _processRadioButton(params) {\n    this.data.buttonValue = null;\n    const fieldParent = params.dict.get(\"Parent\");\n    if (fieldParent instanceof Dict) {\n      this.parent = params.dict.getRaw(\"Parent\");\n      const fieldParentValue = fieldParent.get(\"V\");\n      if (fieldParentValue instanceof Name) {\n        this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n      }\n    }\n    const appearanceStates = params.dict.get(\"AP\");\n    if (!(appearanceStates instanceof Dict)) {\n      return;\n    }\n    const normalAppearance = appearanceStates.get(\"N\");\n    if (!(normalAppearance instanceof Dict)) {\n      return;\n    }\n    let onState = null;\n    for (const key of normalAppearance.getKeys()) {\n      if (key !== \"Off\") {\n        onState = key;\n        break;\n      }\n    }\n    this._onStateName = onState;\n    const opt = getInheritableProperty({\n      dict: params.dict,\n      key: \"Opt\"\n    });\n    const optInfo = this._getOptInfo(params.dict, onState, opt, params.xref);\n    this.data.buttonValue = this._getExportValue(onState, optInfo, params.xref);\n    this.data.fieldValue = this._getExportValue(this.data.fieldValue, optInfo, params.xref);\n    this.data.defaultFieldValue = this._getExportValue(this.data.defaultFieldValue, optInfo, params.xref);\n    const checkedAppearance = normalAppearance.get(onState);\n    this.checkedAppearance = checkedAppearance instanceof BaseStream ? checkedAppearance : null;\n    const uncheckedAppearance = normalAppearance.get(\"Off\");\n    this.uncheckedAppearance = uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null;\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"disc\");\n    }\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n    this._fallbackFontDict = this.fallbackFontDict;\n    if (this.data.defaultFieldValue === null) {\n      this.data.defaultFieldValue = \"Off\";\n    }\n  }\n  _processPushButton(params) {\n    const {\n      dict,\n      annotationGlobals\n    } = params;\n    if (!dict.has(\"A\") && !dict.has(\"AA\") && !this.data.alternativeText) {\n      warn(\"Push buttons without action dictionaries are not supported\");\n      return;\n    }\n    this.data.isTooltipOnly = !dict.has(\"A\") && !dict.has(\"AA\");\n    Catalog.parseDestDictionary({\n      destDict: dict,\n      resultObj: this.data,\n      docBaseUrl: annotationGlobals.baseUrl,\n      docAttachments: annotationGlobals.attachments\n    });\n  }\n  getFieldObject() {\n    let type = \"button\";\n    let exportValues;\n    if (this.data.checkBox) {\n      type = \"checkbox\";\n      exportValues = this.data.exportValue;\n    } else if (this.data.radioButton) {\n      type = \"radiobutton\";\n      exportValues = this.data.buttonValue;\n    }\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue || \"Off\",\n      defaultValue: this.data.defaultFieldValue,\n      exportValues,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type\n    };\n  }\n  get fallbackFontDict() {\n    const dict = new Dict();\n    dict.setIfName(\"BaseFont\", \"ZapfDingbats\");\n    dict.setIfName(\"Type\", \"FallbackType\");\n    dict.setIfName(\"Subtype\", \"FallbackType\");\n    dict.setIfName(\"Encoding\", \"ZapfDingbatsEncoding\");\n    return shadow(this, \"fallbackFontDict\", dict);\n  }\n}\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    this.indices = dict.getArray(\"I\");\n    this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0;\n    this.data.options = [];\n    const options = getInheritableProperty({\n      dict,\n      key: \"Opt\"\n    });\n    if (Array.isArray(options)) {\n      for (let i = 0, ii = options.length; i < ii; i++) {\n        const option = xref.fetchIfRef(options[i]);\n        const isOptionArray = Array.isArray(option);\n        this.data.options[i] = {\n          exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option),\n          displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n        };\n      }\n    }\n    if (!this.hasIndices) {\n      if (typeof this.data.fieldValue === \"string\") {\n        this.data.fieldValue = [this.data.fieldValue];\n      } else {\n        this.data.fieldValue ||= [];\n      }\n    } else {\n      this.data.fieldValue = [];\n      const ii = this.data.options.length;\n      for (const i of this.indices) {\n        if (Number.isInteger(i) && i >= 0 && i < ii) {\n          this.data.fieldValue.push(this.data.options[i].exportValue);\n        }\n      }\n    }\n    if (this.data.options.length === 0 && this.data.fieldValue.length > 0) {\n      this.data.options = this.data.fieldValue.map(value => ({\n        exportValue: value,\n        displayValue: value\n      }));\n    }\n    this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n    this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n    this._hasText = true;\n  }\n  getFieldObject() {\n    const type = this.data.combo ? \"combobox\" : \"listbox\";\n    const value = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n    return {\n      id: this.data.id,\n      value,\n      defaultValue: this.data.defaultFieldValue,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      numItems: this.data.fieldValue.length,\n      multipleSelection: this.data.multiSelect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      items: this.data.options,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type\n    };\n  }\n  amendSavedDict(annotationStorage, dict) {\n    if (!this.hasIndices) {\n      return;\n    }\n    let values = annotationStorage?.get(this.data.id)?.value;\n    if (!Array.isArray(values)) {\n      values = [values];\n    }\n    const indices = [];\n    const {\n      options\n    } = this.data;\n    for (let i = 0, j = 0, ii = options.length; i < ii; i++) {\n      if (options[i].exportValue === values[j]) {\n        indices.push(i);\n        j += 1;\n      }\n    }\n    dict.set(\"I\", indices);\n  }\n  async _getAppearance(evaluator, task, intent, annotationStorage) {\n    if (this.data.combo) {\n      return super._getAppearance(evaluator, task, intent, annotationStorage);\n    }\n    let exportedValue, rotation;\n    const storageEntry = annotationStorage?.get(this.data.id);\n    if (storageEntry) {\n      rotation = storageEntry.rotation;\n      exportedValue = storageEntry.value;\n    }\n    if (rotation === undefined && exportedValue === undefined && !this._needAppearances) {\n      return null;\n    }\n    if (exportedValue === undefined) {\n      exportedValue = this.data.fieldValue;\n    } else if (!Array.isArray(exportedValue)) {\n      exportedValue = [exportedValue];\n    }\n    const defaultPadding = 1;\n    const defaultHPadding = 2;\n    let {\n      width: totalWidth,\n      height: totalHeight\n    } = this;\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n    const lineCount = this.data.options.length;\n    const valueIndices = [];\n    for (let i = 0; i < lineCount; i++) {\n      const {\n        exportValue\n      } = this.data.options[i];\n      if (exportedValue.includes(exportValue)) {\n        valueIndices.push(i);\n      }\n    }\n    if (!this._defaultAppearance) {\n      this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n    }\n    const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources);\n    let defaultAppearance;\n    let {\n      fontSize\n    } = this.data.defaultAppearanceData;\n    if (!fontSize) {\n      const lineHeight = (totalHeight - defaultPadding) / lineCount;\n      let lineWidth = -1;\n      let value;\n      for (const {\n        displayValue\n      } of this.data.options) {\n        const width = this._getTextWidth(displayValue, font);\n        if (width > lineWidth) {\n          lineWidth = width;\n          value = displayValue;\n        }\n      }\n      [defaultAppearance, fontSize] = this._computeFontSize(lineHeight, totalWidth - 2 * defaultHPadding, value, font, -1);\n    } else {\n      defaultAppearance = this._defaultAppearance;\n    }\n    const lineHeight = fontSize * LINE_FACTOR;\n    const vPadding = (lineHeight - fontSize) / 2;\n    const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n    let firstIndex = 0;\n    if (valueIndices.length > 0) {\n      const minIndex = Math.min(...valueIndices);\n      const maxIndex = Math.max(...valueIndices);\n      firstIndex = Math.max(0, maxIndex - numberOfVisibleLines + 1);\n      if (firstIndex > minIndex) {\n        firstIndex = minIndex;\n      }\n    }\n    const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n    const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n    if (valueIndices.length) {\n      buf.push(\"0.600006 0.756866 0.854904 rg\");\n      for (const index of valueIndices) {\n        if (firstIndex <= index && index < end) {\n          buf.push(`1 ${totalHeight - (index - firstIndex + 1) * lineHeight} ${totalWidth} ${lineHeight} re f`);\n        }\n      }\n    }\n    buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n    const prevInfo = {\n      shift: 0\n    };\n    for (let i = firstIndex; i < end; i++) {\n      const {\n        displayValue\n      } = this.data.options[i];\n      const vpadding = i === firstIndex ? vPadding : 0;\n      buf.push(this._renderText(displayValue, font, fontSize, totalWidth, 0, prevInfo, defaultHPadding, -lineHeight + vpadding));\n    }\n    buf.push(\"ET Q EMC\");\n    return buf.join(\"\\n\");\n  }\n}\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.fieldValue = null;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = !this.data.hasOwnCanvas;\n  }\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: null,\n      page: this.data.pageIndex,\n      type: \"signature\"\n    };\n  }\n}\nclass TextAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    const DEFAULT_ICON_SIZE = 22;\n    super(params);\n    this.data.noRotate = true;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    const {\n      dict\n    } = params;\n    if (this.data.hasAppearance) {\n      this.data.name = \"NoIcon\";\n    } else {\n      this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n      this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n      this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n    }\n    if (dict.has(\"State\")) {\n      this.data.state = dict.get(\"State\") || null;\n      this.data.stateModel = dict.get(\"StateModel\") || null;\n    } else {\n      this.data.state = null;\n      this.data.stateModel = null;\n    }\n  }\n}\nclass LinkAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      annotationGlobals\n    } = params;\n    this.data.noHTML = false;\n    const quadPoints = getQuadPoints(dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n    this.data.borderColor ||= this.data.color;\n    Catalog.parseDestDictionary({\n      destDict: dict,\n      resultObj: this.data,\n      docBaseUrl: annotationGlobals.baseUrl,\n      docAttachments: annotationGlobals.attachments\n    });\n  }\n  get overlaysTextContent() {\n    return true;\n  }\n}\nclass PopupAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict\n    } = params;\n    this.data.noHTML = false;\n    if (this.width === 0 || this.height === 0) {\n      this.data.rect = null;\n    }\n    let parentItem = dict.get(\"Parent\");\n    if (!parentItem) {\n      warn(\"Popup annotation has a missing or invalid parent annotation.\");\n      return;\n    }\n    this.data.parentRect = lookupNormalRect(parentItem.getArray(\"Rect\"), null);\n    this.data.creationDate = parentItem.get(\"CreationDate\") || \"\";\n    const rt = parentItem.get(\"RT\");\n    if (isName(rt, AnnotationReplyType.GROUP)) {\n      parentItem = parentItem.get(\"IRT\");\n    }\n    if (!parentItem.has(\"M\")) {\n      this.data.modificationDate = null;\n    } else {\n      this.setModificationDate(parentItem.get(\"M\"));\n      this.data.modificationDate = this.modificationDate;\n    }\n    if (!parentItem.has(\"C\")) {\n      this.data.color = null;\n    } else {\n      this.setColor(parentItem.getArray(\"C\"));\n      this.data.color = this.color;\n    }\n    if (!this.viewable) {\n      const parentFlags = parentItem.get(\"F\");\n      if (this._isViewable(parentFlags)) {\n        this.setFlags(parentFlags);\n      }\n    }\n    this.setTitle(parentItem.get(\"T\"));\n    this.data.titleObj = this._title;\n    this.setContents(parentItem.get(\"Contents\"));\n    this.data.contentsObj = this._contents;\n    if (parentItem.has(\"RC\")) {\n      this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n    }\n    this.data.open = !!dict.get(\"Open\");\n  }\n  static createNewDict(annotation, xref, _params) {\n    const {\n      oldAnnotation,\n      rect,\n      parent\n    } = annotation;\n    const popup = oldAnnotation || new Dict(xref);\n    popup.setIfNotExists(\"Type\", Name.get(\"Annot\"));\n    popup.setIfNotExists(\"Subtype\", Name.get(\"Popup\"));\n    popup.setIfNotExists(\"Open\", false);\n    popup.setIfArray(\"Rect\", rect);\n    popup.set(\"Parent\", parent);\n    return popup;\n  }\n  static async createNewAppearanceStream(annotation, xref, params) {\n    return null;\n  }\n}\nclass FreeTextAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.isEditable = !this.data.noHTML;\n    this.data.noHTML = false;\n    const {\n      annotationGlobals,\n      xref\n    } = params;\n    this.setDefaultAppearance(params);\n    this._hasAppearance = !!this.appearance;\n    if (this._hasAppearance) {\n      const {\n        fontColor,\n        fontSize\n      } = parseAppearanceStream(this.appearance, xref, annotationGlobals.globalColorSpaceCache);\n      this.data.defaultAppearanceData.fontColor = fontColor;\n      this.data.defaultAppearanceData.fontSize = fontSize || 10;\n    } else {\n      this.data.defaultAppearanceData.fontSize ||= 10;\n      const {\n        fontColor,\n        fontSize\n      } = this.data.defaultAppearanceData;\n      if (this._contents.str) {\n        this.data.textContent = this._contents.str.split(/\\r\\n?|\\n/).map(line => line.trimEnd());\n        const {\n          coords,\n          bbox,\n          matrix\n        } = FakeUnicodeFont.getFirstPositionInfo(this.rectangle, this.rotation, fontSize);\n        this.data.textPosition = this._transformPoint(coords, bbox, matrix);\n      }\n      if (this._isOffscreenCanvasSupported) {\n        const strokeAlpha = params.dict.get(\"CA\");\n        const fakeUnicodeFont = new FakeUnicodeFont(xref, \"sans-serif\");\n        this.appearance = fakeUnicodeFont.createAppearance(this._contents.str, this.rectangle, this.rotation, fontSize, fontColor, strokeAlpha);\n        this._streams.push(this.appearance);\n      } else {\n        warn(\"FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.\");\n      }\n    }\n  }\n  get hasTextContent() {\n    return this._hasAppearance;\n  }\n  static createNewDict(annotation, xref, {\n    apRef,\n    ap\n  }) {\n    const {\n      color,\n      date,\n      fontSize,\n      oldAnnotation,\n      rect,\n      rotation,\n      user,\n      value\n    } = annotation;\n    const freetext = oldAnnotation || new Dict(xref);\n    freetext.setIfNotExists(\"Type\", Name.get(\"Annot\"));\n    freetext.setIfNotExists(\"Subtype\", Name.get(\"FreeText\"));\n    freetext.set(oldAnnotation ? \"M\" : \"CreationDate\", `D:${getModificationDate(date)}`);\n    if (oldAnnotation) {\n      freetext.delete(\"RC\");\n    }\n    freetext.setIfArray(\"Rect\", rect);\n    const da = `/Helv ${fontSize} Tf ${getPdfColor(color, true)}`;\n    freetext.set(\"DA\", da);\n    freetext.setIfDefined(\"Contents\", stringToAsciiOrUTF16BE(value));\n    freetext.setIfNotExists(\"F\", 4);\n    freetext.setIfNotExists(\"Border\", [0, 0, 0]);\n    freetext.setIfNumber(\"Rotate\", rotation);\n    freetext.setIfDefined(\"T\", stringToAsciiOrUTF16BE(user));\n    if (apRef || ap) {\n      const n = new Dict(xref);\n      freetext.set(\"AP\", n);\n      n.set(\"N\", apRef || ap);\n    }\n    return freetext;\n  }\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const {\n      baseFontRef,\n      evaluator,\n      task\n    } = params;\n    const {\n      color,\n      fontSize,\n      rect,\n      rotation,\n      value\n    } = annotation;\n    if (!color) {\n      return null;\n    }\n    const resources = new Dict(xref);\n    const font = new Dict(xref);\n    if (baseFontRef) {\n      font.set(\"Helv\", baseFontRef);\n    } else {\n      const baseFont = new Dict(xref);\n      baseFont.setIfName(\"BaseFont\", \"Helvetica\");\n      baseFont.setIfName(\"Type\", \"Font\");\n      baseFont.setIfName(\"Subtype\", \"Type1\");\n      baseFont.setIfName(\"Encoding\", \"WinAnsiEncoding\");\n      font.set(\"Helv\", baseFont);\n    }\n    resources.set(\"Font\", font);\n    const helv = await WidgetAnnotation._getFontData(evaluator, task, {\n      fontName: \"Helv\",\n      fontSize\n    }, resources);\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n    const lines = value.split(\"\\n\");\n    const scale = fontSize / 1000;\n    let totalWidth = -Infinity;\n    const encodedLines = [];\n    for (let line of lines) {\n      const encoded = helv.encodeString(line);\n      if (encoded.length > 1) {\n        return null;\n      }\n      line = encoded.join(\"\");\n      encodedLines.push(line);\n      let lineWidth = 0;\n      const glyphs = helv.charsToGlyphs(line);\n      for (const glyph of glyphs) {\n        lineWidth += glyph.width * scale;\n      }\n      totalWidth = Math.max(totalWidth, lineWidth);\n    }\n    const hscale = totalWidth > w ? w / totalWidth : 1;\n    let vscale = 1;\n    const lineHeight = LINE_FACTOR * fontSize;\n    const lineAscent = (LINE_FACTOR - LINE_DESCENT_FACTOR) * fontSize;\n    const totalHeight = lineHeight * lines.length;\n    if (totalHeight > h) {\n      vscale = h / totalHeight;\n    }\n    const fscale = Math.min(hscale, vscale);\n    const newFontSize = fontSize * fscale;\n    let firstPoint, clipBox, matrix;\n    switch (rotation) {\n      case 0:\n        matrix = [1, 0, 0, 1];\n        clipBox = [rect[0], rect[1], w, h];\n        firstPoint = [rect[0], rect[3] - lineAscent];\n        break;\n      case 90:\n        matrix = [0, 1, -1, 0];\n        clipBox = [rect[1], -rect[2], w, h];\n        firstPoint = [rect[1], -rect[0] - lineAscent];\n        break;\n      case 180:\n        matrix = [-1, 0, 0, -1];\n        clipBox = [-rect[2], -rect[3], w, h];\n        firstPoint = [-rect[2], -rect[1] - lineAscent];\n        break;\n      case 270:\n        matrix = [0, -1, 1, 0];\n        clipBox = [-rect[3], rect[0], w, h];\n        firstPoint = [-rect[3], rect[2] - lineAscent];\n        break;\n    }\n    const buffer = [\"q\", `${matrix.join(\" \")} 0 0 cm`, `${clipBox.join(\" \")} re W n`, `BT`, `${getPdfColor(color, true)}`, `0 Tc /Helv ${numberToString(newFontSize)} Tf`];\n    buffer.push(`${firstPoint.join(\" \")} Td (${escapeString(encodedLines[0])}) Tj`);\n    const vShift = numberToString(lineHeight);\n    for (let i = 1, ii = encodedLines.length; i < ii; i++) {\n      const line = encodedLines[i];\n      buffer.push(`0 -${vShift} Td (${escapeString(line)}) Tj`);\n    }\n    buffer.push(\"ET\", \"Q\");\n    const appearance = buffer.join(\"\\n\");\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Resources\", resources);\n    appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, -rect[0], -rect[1]]);\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n}\nclass LineAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    const lineCoordinates = lookupRect(dict.getArray(\"L\"), [0, 0, 0, 0]);\n    this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n    this.setLineEndings(dict.getArray(\"LE\"));\n    this.data.lineEndings = this.lineEndings;\n    if (!this.appearance) {\n      const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n      const strokeAlpha = dict.get(\"CA\");\n      const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n      const fillColor = getPdfColorArray(interiorColor);\n      const fillAlpha = fillColor ? strokeAlpha : null;\n      const borderWidth = this.borderStyle.width || 1,\n        borderAdjust = 2 * borderWidth;\n      const bbox = [this.data.lineCoordinates[0] - borderAdjust, this.data.lineCoordinates[1] - borderAdjust, this.data.lineCoordinates[2] + borderAdjust, this.data.lineCoordinates[3] + borderAdjust];\n      if (!Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n      this._setDefaultAppearance({\n        xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`, `${lineCoordinates[2]} ${lineCoordinates[3]} l`, \"S\");\n          return [points[0] - borderWidth, points[7] - borderWidth, points[2] + borderWidth, points[3] + borderWidth];\n        }\n      });\n    }\n  }\n}\nclass SquareAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    if (!this.appearance) {\n      const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n      const strokeAlpha = dict.get(\"CA\");\n      const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n      const fillColor = getPdfColorArray(interiorColor);\n      const fillAlpha = fillColor ? strokeAlpha : null;\n      if (this.borderStyle.width === 0 && !fillColor) {\n        return;\n      }\n      this._setDefaultAppearance({\n        xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x = points[4] + this.borderStyle.width / 2;\n          const y = points[5] + this.borderStyle.width / 2;\n          const width = points[6] - points[4] - this.borderStyle.width;\n          const height = points[3] - points[7] - this.borderStyle.width;\n          buffer.push(`${x} ${y} ${width} ${height} re`);\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n          return [points[0], points[7], points[2], points[3]];\n        }\n      });\n    }\n  }\n}\nclass CircleAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    if (!this.appearance) {\n      const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n      const strokeAlpha = dict.get(\"CA\");\n      const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n      const fillColor = getPdfColorArray(interiorColor);\n      const fillAlpha = fillColor ? strokeAlpha : null;\n      if (this.borderStyle.width === 0 && !fillColor) {\n        return;\n      }\n      const controlPointsDistance = 4 / 3 * Math.tan(Math.PI / (2 * 4));\n      this._setDefaultAppearance({\n        xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x0 = points[0] + this.borderStyle.width / 2;\n          const y0 = points[1] - this.borderStyle.width / 2;\n          const x1 = points[6] - this.borderStyle.width / 2;\n          const y1 = points[7] + this.borderStyle.width / 2;\n          const xMid = x0 + (x1 - x0) / 2;\n          const yMid = y0 + (y1 - y0) / 2;\n          const xOffset = (x1 - x0) / 2 * controlPointsDistance;\n          const yOffset = (y1 - y0) / 2 * controlPointsDistance;\n          buffer.push(`${xMid} ${y1} m`, `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`, `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`, `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`, `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`, \"h\");\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n          return [points[0], points[7], points[2], points[3]];\n        }\n      });\n    }\n  }\n}\nclass PolylineAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    this.data.vertices = null;\n    if (!(this instanceof PolygonAnnotation)) {\n      this.setLineEndings(dict.getArray(\"LE\"));\n      this.data.lineEndings = this.lineEndings;\n    }\n    const rawVertices = dict.getArray(\"Vertices\");\n    if (!isNumberArray(rawVertices, null)) {\n      return;\n    }\n    const vertices = this.data.vertices = Float32Array.from(rawVertices);\n    if (!this.appearance) {\n      const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n      const strokeAlpha = dict.get(\"CA\");\n      let fillColor = getRgbColor(dict.getArray(\"IC\"), null);\n      if (fillColor) {\n        fillColor = getPdfColorArray(fillColor);\n      }\n      let operator;\n      if (fillColor) {\n        if (this.color) {\n          operator = fillColor.every((c, i) => c === strokeColor[i]) ? \"f\" : \"B\";\n        } else {\n          operator = \"f\";\n        }\n      } else {\n        operator = \"S\";\n      }\n      const borderWidth = this.borderStyle.width || 1,\n        borderAdjust = 2 * borderWidth;\n      const bbox = BBOX_INIT.slice();\n      for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n        Util.rectBoundingBox(vertices[i] - borderAdjust, vertices[i + 1] - borderAdjust, vertices[i] + borderAdjust, vertices[i + 1] + borderAdjust, bbox);\n      }\n      if (!Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n      this._setDefaultAppearance({\n        xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        fillColor,\n        fillAlpha: fillColor ? strokeAlpha : null,\n        pointsCallback: (buffer, points) => {\n          for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n            buffer.push(`${vertices[i]} ${vertices[i + 1]} ${i === 0 ? \"m\" : \"l\"}`);\n          }\n          buffer.push(operator);\n          return [points[0], points[7], points[2], points[3]];\n        }\n      });\n    }\n  }\n}\nclass PolygonAnnotation extends PolylineAnnotation {}\nclass CaretAnnotation extends MarkupAnnotation {}\nclass InkAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    const {\n      dict,\n      xref\n    } = params;\n    this.data.inkLists = [];\n    this.data.isEditable = !this.data.noHTML;\n    this.data.noHTML = false;\n    this.data.opacity = dict.get(\"CA\") || 1;\n    const rawInkLists = dict.getArray(\"InkList\");\n    if (!Array.isArray(rawInkLists)) {\n      return;\n    }\n    for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n      if (!Array.isArray(rawInkLists[i])) {\n        continue;\n      }\n      const inkList = new Float32Array(rawInkLists[i].length);\n      this.data.inkLists.push(inkList);\n      for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n        const x = xref.fetchIfRef(rawInkLists[i][j]),\n          y = xref.fetchIfRef(rawInkLists[i][j + 1]);\n        if (typeof x === \"number\" && typeof y === \"number\") {\n          inkList[j] = x;\n          inkList[j + 1] = y;\n        }\n      }\n    }\n    if (!this.appearance) {\n      const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n      const strokeAlpha = dict.get(\"CA\");\n      const borderWidth = this.borderStyle.width || 1,\n        borderAdjust = 2 * borderWidth;\n      const bbox = BBOX_INIT.slice();\n      for (const inkList of this.data.inkLists) {\n        for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n          Util.rectBoundingBox(inkList[i] - borderAdjust, inkList[i + 1] - borderAdjust, inkList[i] + borderAdjust, inkList[i + 1] + borderAdjust, bbox);\n        }\n      }\n      if (!Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n      this._setDefaultAppearance({\n        xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          for (const inkList of this.data.inkLists) {\n            for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n              buffer.push(`${inkList[i]} ${inkList[i + 1]} ${i === 0 ? \"m\" : \"l\"}`);\n            }\n            buffer.push(\"S\");\n          }\n          return [points[0], points[7], points[2], points[3]];\n        }\n      });\n    }\n  }\n  static createNewDict(annotation, xref, {\n    apRef,\n    ap\n  }) {\n    const {\n      oldAnnotation,\n      color,\n      date,\n      opacity,\n      paths,\n      outlines,\n      rect,\n      rotation,\n      thickness,\n      user\n    } = annotation;\n    const ink = oldAnnotation || new Dict(xref);\n    ink.setIfNotExists(\"Type\", Name.get(\"Annot\"));\n    ink.setIfNotExists(\"Subtype\", Name.get(\"Ink\"));\n    ink.set(oldAnnotation ? \"M\" : \"CreationDate\", `D:${getModificationDate(date)}`);\n    ink.setIfArray(\"Rect\", rect);\n    ink.setIfArray(\"InkList\", outlines?.points || paths?.points);\n    ink.setIfNotExists(\"F\", 4);\n    ink.setIfNumber(\"Rotate\", rotation);\n    ink.setIfDefined(\"T\", stringToAsciiOrUTF16BE(user));\n    if (outlines) {\n      ink.setIfName(\"IT\", \"InkHighlight\");\n    }\n    if (thickness > 0) {\n      const bs = new Dict(xref);\n      ink.set(\"BS\", bs);\n      bs.set(\"W\", thickness);\n    }\n    ink.setIfArray(\"C\", getPdfColorArray(color));\n    ink.setIfNumber(\"CA\", opacity);\n    if (ap || apRef) {\n      const n = new Dict(xref);\n      ink.set(\"AP\", n);\n      n.set(\"N\", apRef || ap);\n    }\n    return ink;\n  }\n  static async createNewAppearanceStream(annotation, xref, params) {\n    if (annotation.outlines) {\n      return this.createNewAppearanceStreamForHighlight(annotation, xref, params);\n    }\n    const {\n      color,\n      rect,\n      paths,\n      thickness,\n      opacity\n    } = annotation;\n    if (!color) {\n      return null;\n    }\n    const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${getPdfColor(color, false)}`];\n    if (opacity !== 1) {\n      appearanceBuffer.push(\"/R0 gs\");\n    }\n    for (const outline of paths.lines) {\n      appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`);\n      for (let i = 6, ii = outline.length; i < ii; i += 6) {\n        if (isNaN(outline[i])) {\n          appearanceBuffer.push(`${numberToString(outline[i + 4])} ${numberToString(outline[i + 5])} l`);\n        } else {\n          const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6);\n          appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(\" \") + \" c\");\n        }\n      }\n      if (outline.length === 6) {\n        appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} l`);\n      }\n    }\n    appearanceBuffer.push(\"S\");\n    const appearance = appearanceBuffer.join(\"\\n\");\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    if (opacity !== 1) {\n      const resources = new Dict(xref);\n      const extGState = new Dict(xref);\n      const r0 = new Dict(xref);\n      r0.set(\"CA\", opacity);\n      r0.setIfName(\"Type\", \"ExtGState\");\n      extGState.set(\"R0\", r0);\n      resources.set(\"ExtGState\", extGState);\n      appearanceStreamDict.set(\"Resources\", resources);\n    }\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n  static async createNewAppearanceStreamForHighlight(annotation, xref, params) {\n    const {\n      color,\n      rect,\n      outlines: {\n        outline\n      },\n      opacity\n    } = annotation;\n    if (!color) {\n      return null;\n    }\n    const appearanceBuffer = [`${getPdfColor(color, true)}`, \"/R0 gs\"];\n    appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`);\n    for (let i = 6, ii = outline.length; i < ii; i += 6) {\n      if (isNaN(outline[i])) {\n        appearanceBuffer.push(`${numberToString(outline[i + 4])} ${numberToString(outline[i + 5])} l`);\n      } else {\n        const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6);\n        appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(\" \") + \" c\");\n      }\n    }\n    appearanceBuffer.push(\"h f\");\n    const appearance = appearanceBuffer.join(\"\\n\");\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    const resources = new Dict(xref);\n    const extGState = new Dict(xref);\n    resources.set(\"ExtGState\", extGState);\n    appearanceStreamDict.set(\"Resources\", resources);\n    const r0 = new Dict(xref);\n    extGState.set(\"R0\", r0);\n    r0.setIfName(\"BM\", \"Multiply\");\n    if (opacity !== 1) {\n      r0.set(\"ca\", opacity);\n      r0.setIfName(\"Type\", \"ExtGState\");\n    }\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n}\nclass HighlightAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    this.data.isEditable = !this.data.noHTML;\n    this.data.noHTML = false;\n    this.data.opacity = dict.get(\"CA\") || 1;\n    const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);\n    if (quadPoints) {\n      if (!this.appearance) {\n        const fillColor = getPdfColorArray(this.color, [1, 1, 0]);\n        const fillAlpha = dict.get(\"CA\");\n        this._setDefaultAppearance({\n          xref,\n          fillColor,\n          blendMode: \"Multiply\",\n          fillAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${points[0]} ${points[1]} m`, `${points[2]} ${points[3]} l`, `${points[6]} ${points[7]} l`, `${points[4]} ${points[5]} l`, \"f\");\n            return [points[0], points[7], points[2], points[3]];\n          }\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n  get overlaysTextContent() {\n    return true;\n  }\n  static createNewDict(annotation, xref, {\n    apRef,\n    ap\n  }) {\n    const {\n      color,\n      date,\n      oldAnnotation,\n      opacity,\n      rect,\n      rotation,\n      user,\n      quadPoints\n    } = annotation;\n    const highlight = oldAnnotation || new Dict(xref);\n    highlight.setIfNotExists(\"Type\", Name.get(\"Annot\"));\n    highlight.setIfNotExists(\"Subtype\", Name.get(\"Highlight\"));\n    highlight.set(oldAnnotation ? \"M\" : \"CreationDate\", `D:${getModificationDate(date)}`);\n    highlight.setIfArray(\"Rect\", rect);\n    highlight.setIfNotExists(\"F\", 4);\n    highlight.setIfNotExists(\"Border\", [0, 0, 0]);\n    highlight.setIfNumber(\"Rotate\", rotation);\n    highlight.setIfArray(\"QuadPoints\", quadPoints);\n    highlight.setIfArray(\"C\", getPdfColorArray(color));\n    highlight.setIfNumber(\"CA\", opacity);\n    highlight.setIfDefined(\"T\", stringToAsciiOrUTF16BE(user));\n    if (apRef || ap) {\n      const n = new Dict(xref);\n      highlight.set(\"AP\", n);\n      n.set(\"N\", apRef || ap);\n    }\n    return highlight;\n  }\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const {\n      color,\n      rect,\n      outlines,\n      opacity\n    } = annotation;\n    if (!color) {\n      return null;\n    }\n    const appearanceBuffer = [`${getPdfColor(color, true)}`, \"/R0 gs\"];\n    const buffer = [];\n    for (const outline of outlines) {\n      buffer.length = 0;\n      buffer.push(`${numberToString(outline[0])} ${numberToString(outline[1])} m`);\n      for (let i = 2, ii = outline.length; i < ii; i += 2) {\n        buffer.push(`${numberToString(outline[i])} ${numberToString(outline[i + 1])} l`);\n      }\n      buffer.push(\"h\");\n      appearanceBuffer.push(buffer.join(\"\\n\"));\n    }\n    appearanceBuffer.push(\"f*\");\n    const appearance = appearanceBuffer.join(\"\\n\");\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    const resources = new Dict(xref);\n    const extGState = new Dict(xref);\n    resources.set(\"ExtGState\", extGState);\n    appearanceStreamDict.set(\"Resources\", resources);\n    const r0 = new Dict(xref);\n    extGState.set(\"R0\", r0);\n    r0.setIfName(\"BM\", \"Multiply\");\n    if (opacity !== 1) {\n      r0.set(\"ca\", opacity);\n      r0.setIfName(\"Type\", \"ExtGState\");\n    }\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n}\nclass UnderlineAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n        const strokeAlpha = dict.get(\"CA\");\n        this._setDefaultAppearance({\n          xref,\n          extra: \"[] 0 d 0.571 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${points[4]} ${points[5] + 1.3} m`, `${points[6]} ${points[7] + 1.3} l`, \"S\");\n            return [points[0], points[7], points[2], points[3]];\n          }\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n  get overlaysTextContent() {\n    return true;\n  }\n}\nclass SquigglyAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n        const strokeAlpha = dict.get(\"CA\");\n        this._setDefaultAppearance({\n          xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            const dy = (points[1] - points[5]) / 6;\n            let shift = dy;\n            let x = points[4];\n            const y = points[5];\n            const xEnd = points[6];\n            buffer.push(`${x} ${y + shift} m`);\n            do {\n              x += 2;\n              shift = shift === 0 ? dy : 0;\n              buffer.push(`${x} ${y + shift} l`);\n            } while (x < xEnd);\n            buffer.push(\"S\");\n            return [points[4], y - 2 * dy, xEnd, y + 2 * dy];\n          }\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n  get overlaysTextContent() {\n    return true;\n  }\n}\nclass StrikeOutAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref\n    } = params;\n    const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);\n        const strokeAlpha = dict.get(\"CA\");\n        this._setDefaultAppearance({\n          xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${(points[0] + points[4]) / 2} ` + `${(points[1] + points[5]) / 2} m`, `${(points[2] + points[6]) / 2} ` + `${(points[3] + points[7]) / 2} l`, \"S\");\n            return [points[0], points[7], points[2], points[3]];\n          }\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n  get overlaysTextContent() {\n    return true;\n  }\n}\nclass StampAnnotation extends MarkupAnnotation {\n  #savedHasOwnCanvas = null;\n  constructor(params) {\n    super(params);\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.isEditable = !this.data.noHTML;\n    this.data.noHTML = false;\n  }\n  mustBeViewedWhenEditing(isEditing, modifiedIds = null) {\n    if (isEditing) {\n      if (!this.data.isEditable) {\n        return true;\n      }\n      this.#savedHasOwnCanvas ??= this.data.hasOwnCanvas;\n      this.data.hasOwnCanvas = true;\n      return true;\n    }\n    if (this.#savedHasOwnCanvas !== null) {\n      this.data.hasOwnCanvas = this.#savedHasOwnCanvas;\n      this.#savedHasOwnCanvas = null;\n    }\n    return !modifiedIds?.has(this.data.id);\n  }\n  static createNewDict(annotation, xref, {\n    apRef,\n    ap\n  }) {\n    const {\n      date,\n      oldAnnotation,\n      rect,\n      rotation,\n      user\n    } = annotation;\n    const stamp = oldAnnotation || new Dict(xref);\n    stamp.setIfNotExists(\"Type\", Name.get(\"Annot\"));\n    stamp.setIfNotExists(\"Subtype\", Name.get(\"Stamp\"));\n    stamp.set(oldAnnotation ? \"M\" : \"CreationDate\", `D:${getModificationDate(date)}`);\n    stamp.setIfArray(\"Rect\", rect);\n    stamp.setIfNotExists(\"F\", 4);\n    stamp.setIfNotExists(\"Border\", [0, 0, 0]);\n    stamp.setIfNumber(\"Rotate\", rotation);\n    stamp.setIfDefined(\"T\", stringToAsciiOrUTF16BE(user));\n    if (apRef || ap) {\n      const n = new Dict(xref);\n      stamp.set(\"AP\", n);\n      n.set(\"N\", apRef || ap);\n    }\n    return stamp;\n  }\n  static async #createNewAppearanceStreamForDrawing(annotation, xref) {\n    const {\n      areContours,\n      color,\n      rect,\n      lines,\n      thickness\n    } = annotation;\n    if (!color) {\n      return null;\n    }\n    const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${getPdfColor(color, areContours)}`];\n    for (const line of lines) {\n      appearanceBuffer.push(`${numberToString(line[4])} ${numberToString(line[5])} m`);\n      for (let i = 6, ii = line.length; i < ii; i += 6) {\n        if (isNaN(line[i])) {\n          appearanceBuffer.push(`${numberToString(line[i + 4])} ${numberToString(line[i + 5])} l`);\n        } else {\n          const [c1x, c1y, c2x, c2y, x, y] = line.slice(i, i + 6);\n          appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(\" \") + \" c\");\n        }\n      }\n      if (line.length === 6) {\n        appearanceBuffer.push(`${numberToString(line[4])} ${numberToString(line[5])} l`);\n      }\n    }\n    appearanceBuffer.push(areContours ? \"F\" : \"S\");\n    const appearance = appearanceBuffer.join(\"\\n\");\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n  static async createNewAppearanceStream(annotation, xref, params) {\n    if (annotation.oldAnnotation) {\n      return null;\n    }\n    if (annotation.isSignature) {\n      return this.#createNewAppearanceStreamForDrawing(annotation, xref);\n    }\n    const {\n      rotation\n    } = annotation;\n    const {\n      imageRef,\n      width,\n      height\n    } = params.image;\n    const resources = new Dict(xref);\n    const xobject = new Dict(xref);\n    resources.set(\"XObject\", xobject);\n    xobject.set(\"Im0\", imageRef);\n    const appearance = `q ${width} 0 0 ${height} 0 0 cm /Im0 Do Q`;\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.setIfName(\"Subtype\", \"Form\");\n    appearanceStreamDict.setIfName(\"Type\", \"XObject\");\n    appearanceStreamDict.set(\"BBox\", [0, 0, width, height]);\n    appearanceStreamDict.set(\"Resources\", resources);\n    if (rotation) {\n      const matrix = getRotationMatrix(rotation, width, height);\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n    return new StringStream(appearance, appearanceStreamDict);\n  }\n}\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      annotationGlobals,\n      dict\n    } = params;\n    const fsDict = dict.get(\"FS\");\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    this.data.fileId = this._getAttachmentId(fsDict, dict.getRaw(\"FS\"), annotationGlobals);\n    this.data.file = new FileSpec(fsDict).serializable;\n    const name = dict.get(\"Name\");\n    this.data.name = name instanceof Name ? stringToPDFString(name.name) : \"PushPin\";\n    const fillAlpha = dict.get(\"ca\");\n    this.data.fillAlpha = typeof fillAlpha === \"number\" && fillAlpha >= 0 && fillAlpha <= 1 ? fillAlpha : null;\n  }\n}\nclass MediaAnnotation extends Annotation {\n  static #MEDIA_MIME_TYPE_RE = /^(?:video|audio)\\//;\n  constructor(params) {\n    super(params);\n    this.data.noHTML = true;\n  }\n  _setMediaData({\n    assetRef,\n    assetDict,\n    filename,\n    contentType\n  }, annotationGlobals) {\n    this.data.noHTML = false;\n    this.data.richMedia = {\n      fileId: this._getAttachmentId(assetDict, assetRef, annotationGlobals),\n      filename,\n      contentType\n    };\n  }\n  static _getContentType(assetDict, filename, contentType = null) {\n    if (typeof contentType === \"string\" && MediaAnnotation.#MEDIA_MIME_TYPE_RE.test(contentType)) {\n      return contentType;\n    }\n    const stream = FileSpec.pickPlatformItem(assetDict.get(\"EF\"));\n    const subtype = stream instanceof BaseStream ? stream.dict?.get(\"Subtype\") : null;\n    if (subtype instanceof Name && MediaAnnotation.#MEDIA_MIME_TYPE_RE.test(subtype.name)) {\n      return subtype.name;\n    }\n    const ext = filename.split(\".\").at(-1)?.toLowerCase();\n    switch (ext) {\n      case \"mp4\":\n      case \"m4v\":\n        return \"video/mp4\";\n      case \"webm\":\n        return \"video/webm\";\n      case \"ogv\":\n        return \"video/ogg\";\n      case \"mov\":\n        return \"video/quicktime\";\n      case \"mp3\":\n        return \"audio/mpeg\";\n      case \"m4a\":\n        return \"audio/mp4\";\n      case \"wav\":\n        return \"audio/wav\";\n      case \"oga\":\n      case \"ogg\":\n        return \"audio/ogg\";\n      default:\n        return null;\n    }\n  }\n}\nclass RichMediaAnnotation extends MediaAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref,\n      annotationGlobals\n    } = params;\n    const content = dict.get(\"RichMediaContent\");\n    if (!(content instanceof Dict)) {\n      return;\n    }\n    const asset = RichMediaAnnotation.#findAsset(content, xref);\n    if (!asset) {\n      warn(\"RichMedia annotation has no playable asset.\");\n      return;\n    }\n    this._setMediaData(asset, annotationGlobals);\n  }\n  static #findAsset(content, xref) {\n    const configurations = content.get(\"Configurations\");\n    if (!Array.isArray(configurations)) {\n      return null;\n    }\n    for (const configRef of configurations) {\n      const config = xref.fetchIfRef(configRef);\n      if (!(config instanceof Dict)) {\n        continue;\n      }\n      const instances = config.get(\"Instances\");\n      if (!Array.isArray(instances)) {\n        continue;\n      }\n      for (const instanceRef of instances) {\n        const instance = xref.fetchIfRef(instanceRef);\n        if (!(instance instanceof Dict)) {\n          continue;\n        }\n        if (isName(instance.get(\"Subtype\"), \"Flash\")) {\n          continue;\n        }\n        const rawAsset = instance.getRaw(\"Asset\");\n        const asset = xref.fetchIfRef(rawAsset);\n        if (!(asset instanceof Dict)) {\n          continue;\n        }\n        if (!FileSpec.hasEmbeddedFile(asset)) {\n          continue;\n        }\n        const {\n          filename\n        } = new FileSpec(asset).serializable;\n        const contentType = MediaAnnotation._getContentType(asset, filename);\n        if (!contentType) {\n          continue;\n        }\n        return {\n          assetRef: rawAsset instanceof Ref ? rawAsset : null,\n          assetDict: asset,\n          filename,\n          contentType\n        };\n      }\n    }\n    return null;\n  }\n}\nclass ScreenAnnotation extends MediaAnnotation {\n  constructor(params) {\n    super(params);\n    const {\n      dict,\n      xref,\n      annotationGlobals\n    } = params;\n    const asset = ScreenAnnotation.#findAsset(dict, xref);\n    if (!asset) {\n      return;\n    }\n    this._setMediaData(asset, annotationGlobals);\n  }\n  static #findAsset(dict, xref) {\n    for (const action of this.#renditionActions(dict)) {\n      const asset = this.#findRenditionAsset(action.get(\"R\"), xref, new RefSet());\n      if (asset) {\n        return asset;\n      }\n    }\n    return null;\n  }\n  static *#renditionActions(dict) {\n    const action = dict.get(\"A\");\n    if (action instanceof Dict && isName(action.get(\"S\"), \"Rendition\") && this.#isPlayAction(action)) {\n      yield action;\n    }\n    const additionalActions = dict.get(\"AA\");\n    if (additionalActions instanceof Dict) {\n      for (const [, aa] of additionalActions) {\n        if (aa instanceof Dict && isName(aa.get(\"S\"), \"Rendition\") && this.#isPlayAction(aa)) {\n          yield aa;\n        }\n      }\n    }\n  }\n  static #isPlayAction(action) {\n    const operation = action.get(\"OP\");\n    return operation === undefined || operation === AnnotationRenditionOperation.PLAY_OR_RESUME || operation === AnnotationRenditionOperation.PLAY;\n  }\n  static #findRenditionAsset(rendition, xref, seen) {\n    if (!(rendition instanceof Dict)) {\n      return null;\n    }\n    const subtype = rendition.get(\"S\");\n    if (isName(subtype, \"MR\")) {\n      return this.#findClipAsset(rendition.get(\"C\"), xref);\n    }\n    if (isName(subtype, \"SR\")) {\n      const renditions = rendition.get(\"R\");\n      if (Array.isArray(renditions)) {\n        for (const ref of renditions) {\n          if (ref instanceof Ref) {\n            if (seen.has(ref)) {\n              continue;\n            }\n            seen.put(ref);\n          }\n          const asset = this.#findRenditionAsset(xref.fetchIfRef(ref), xref, seen);\n          if (asset) {\n            return asset;\n          }\n        }\n      }\n    }\n    return null;\n  }\n  static #findClipAsset(clip, xref) {\n    if (!(clip instanceof Dict) || !isName(clip.get(\"S\"), \"MCD\")) {\n      return null;\n    }\n    const rawData = clip.getRaw(\"D\");\n    const data = xref.fetchIfRef(rawData);\n    const contentTypeHint = clip.get(\"CT\");\n    let explicitType = typeof contentTypeHint === \"string\" ? contentTypeHint : null;\n    let assetDict, filename;\n    if (data instanceof BaseStream) {\n      assetDict = data.dict;\n      const name = clip.get(\"N\");\n      filename = typeof name === \"string\" ? stringToPDFString(name) : \"\";\n      if (!explicitType) {\n        const subtype = data.dict.get(\"Subtype\");\n        if (subtype instanceof Name) {\n          explicitType = subtype.name;\n        }\n      }\n    } else if (data instanceof Dict) {\n      if (!FileSpec.hasEmbeddedFile(data)) {\n        return null;\n      }\n      assetDict = data;\n      ({\n        filename\n      } = new FileSpec(data).serializable);\n    } else {\n      return null;\n    }\n    const contentType = MediaAnnotation._getContentType(assetDict, filename, explicitType);\n    if (!contentType) {\n      return null;\n    }\n    return {\n      assetRef: rawData instanceof Ref ? rawData : null,\n      assetDict,\n      filename,\n      contentType\n    };\n  }\n}\n\n;// ./src/core/calculate_md5.js\n\n\n\n\n\n\nconst PARAMS = {\n  get r() {\n    return shadow(this, \"r\", new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]));\n  },\n  get k() {\n    return shadow(this, \"k\", new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]));\n  }\n};\nfunction calculateMD5(data, offset, length) {\n  let h0 = 1732584193,\n    h1 = -271733879,\n    h2 = -1732584194,\n    h3 = 271733878;\n  const paddedLength = length + 72 & ~63;\n  const padded = new Uint8Array(paddedLength);\n  let i, j;\n  for (i = 0; i < length; ++i) {\n    padded[i] = data[offset++];\n  }\n  padded[i++] = 0x80;\n  const n = paddedLength - 8;\n  if (i < n) {\n    i = n;\n  }\n  padded[i++] = length << 3 & 0xff;\n  padded[i++] = length >> 5 & 0xff;\n  padded[i++] = length >> 13 & 0xff;\n  padded[i++] = length >> 21 & 0xff;\n  padded[i++] = length >>> 29 & 0xff;\n  i += 3;\n  const w = new Int32Array(16);\n  const {\n    k,\n    r\n  } = PARAMS;\n  for (i = 0; i < paddedLength;) {\n    for (j = 0; j < 16; ++j, i += 4) {\n      w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n    }\n    let a = h0,\n      b = h1,\n      c = h2,\n      d = h3,\n      f,\n      g;\n    for (j = 0; j < 64; ++j) {\n      if (j < 16) {\n        f = b & c | ~b & d;\n        g = j;\n      } else if (j < 32) {\n        f = d & b | ~d & c;\n        g = 5 * j + 1 & 15;\n      } else if (j < 48) {\n        f = b ^ c ^ d;\n        g = 3 * j + 5 & 15;\n      } else {\n        f = c ^ (b | ~d);\n        g = 7 * j & 15;\n      }\n      const tmp = d,\n        rotateArg = a + f + k[j] + w[g] | 0,\n        rotate = r[j];\n      d = c;\n      c = b;\n      b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n      a = tmp;\n    }\n    h0 = h0 + a | 0;\n    h1 = h1 + b | 0;\n    h2 = h2 + c | 0;\n    h3 = h3 + d | 0;\n  }\n  return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n}\n\n;// ./src/core/dataset_reader.js\n\n\n\n\n\nfunction decodeString(str) {\n  try {\n    return stringToUTF8String(str);\n  } catch (ex) {\n    warn(`UTF-8 decoding failed: \"${ex}\".`);\n    return str;\n  }\n}\nclass DatasetXMLParser extends SimpleXMLParser {\n  node = null;\n  onEndElement(name) {\n    const node = super.onEndElement(name);\n    if (node && name === \"xfa:datasets\") {\n      this.node = node;\n      throw new Error(\"Aborting DatasetXMLParser.\");\n    }\n  }\n}\nclass DatasetReader {\n  constructor(data) {\n    if (data.datasets) {\n      this.node = new SimpleXMLParser({\n        hasAttributes: true\n      }).parseFromString(data.datasets).documentElement;\n    } else {\n      const parser = new DatasetXMLParser({\n        hasAttributes: true\n      });\n      try {\n        parser.parseFromString(data[\"xdp:xdp\"]);\n      } catch {}\n      this.node = parser.node;\n    }\n  }\n  getValue(path) {\n    if (!this.node || !path) {\n      return \"\";\n    }\n    const node = this.node.searchNode(parseXFAPath(path), 0);\n    if (!node) {\n      return \"\";\n    }\n    const first = node.firstChild;\n    if (first?.nodeName === \"value\") {\n      return node.children.map(child => decodeString(child.textContent));\n    }\n    return decodeString(node.textContent);\n  }\n}\n\n;// ./src/core/intersector.js\n\nclass SingleIntersector {\n  #annotation;\n  minX = Infinity;\n  minY = Infinity;\n  maxX = -Infinity;\n  maxY = -Infinity;\n  #quadPoints = null;\n  #text = [];\n  #extraChars = [];\n  #lastIntersectingQuadIndex = -1;\n  #canTakeExtraChars = false;\n  constructor(annotation) {\n    this.#annotation = annotation;\n    const quadPoints = annotation.data.quadPoints;\n    if (!quadPoints) {\n      [this.minX, this.minY, this.maxX, this.maxY] = annotation.data.rect;\n      return;\n    }\n    for (let i = 0, ii = quadPoints.length; i < ii; i += 8) {\n      this.minX = Math.min(this.minX, quadPoints[i]);\n      this.maxX = Math.max(this.maxX, quadPoints[i + 2]);\n      this.minY = Math.min(this.minY, quadPoints[i + 5]);\n      this.maxY = Math.max(this.maxY, quadPoints[i + 1]);\n    }\n    if (quadPoints.length > 8) {\n      this.#quadPoints = quadPoints;\n    }\n  }\n  #intersects(x, y) {\n    if (this.minX >= x || this.maxX <= x || this.minY >= y || this.maxY <= y) {\n      return false;\n    }\n    const quadPoints = this.#quadPoints;\n    if (!quadPoints) {\n      return true;\n    }\n    if (this.#lastIntersectingQuadIndex >= 0) {\n      const i = this.#lastIntersectingQuadIndex;\n      if (!(quadPoints[i] >= x || quadPoints[i + 2] <= x || quadPoints[i + 5] >= y || quadPoints[i + 1] <= y)) {\n        return true;\n      }\n      this.#lastIntersectingQuadIndex = -1;\n    }\n    for (let i = 0, ii = quadPoints.length; i < ii; i += 8) {\n      if (!(quadPoints[i] >= x || quadPoints[i + 2] <= x || quadPoints[i + 5] >= y || quadPoints[i + 1] <= y)) {\n        this.#lastIntersectingQuadIndex = i;\n        return true;\n      }\n    }\n    return false;\n  }\n  addGlyph(x, y, glyph) {\n    if (!this.#intersects(x, y)) {\n      this.disableExtraChars();\n      return false;\n    }\n    if (this.#extraChars.length > 0) {\n      this.#text.push(this.#extraChars.join(\"\"));\n      this.#extraChars.length = 0;\n    }\n    this.#text.push(glyph);\n    this.#canTakeExtraChars = true;\n    return true;\n  }\n  addExtraChar(char) {\n    if (this.#canTakeExtraChars) {\n      this.#extraChars.push(char);\n    }\n  }\n  disableExtraChars() {\n    if (!this.#canTakeExtraChars) {\n      return;\n    }\n    this.#canTakeExtraChars = false;\n    this.#extraChars.length = 0;\n  }\n  setText() {\n    this.#annotation.data.overlaidText = this.#text.join(\"\");\n  }\n}\nconst STEPS = 64;\nclass Intersector {\n  #intersectors = [];\n  #grid = [];\n  #minX;\n  #maxX;\n  #minY;\n  #maxY;\n  #invXRatio;\n  #invYRatio;\n  constructor(annotations) {\n    let minX = Infinity;\n    let minY = Infinity;\n    let maxX = -Infinity;\n    let maxY = -Infinity;\n    const intersectors = this.#intersectors;\n    for (const annotation of annotations) {\n      if (!annotation.data.quadPoints && !annotation.data.rect) {\n        continue;\n      }\n      const intersector = new SingleIntersector(annotation);\n      intersectors.push(intersector);\n      minX = Math.min(minX, intersector.minX);\n      minY = Math.min(minY, intersector.minY);\n      maxX = Math.max(maxX, intersector.maxX);\n      maxY = Math.max(maxY, intersector.maxY);\n    }\n    this.#minX = minX;\n    this.#minY = minY;\n    this.#maxX = maxX;\n    this.#maxY = maxY;\n    this.#invXRatio = (STEPS - 1) / (maxX - minX);\n    this.#invYRatio = (STEPS - 1) / (maxY - minY);\n    for (const intersector of intersectors) {\n      const iMin = this.#getGridIndex(intersector.minX, intersector.minY);\n      const iMax = this.#getGridIndex(intersector.maxX, intersector.maxY);\n      const w = (iMax - iMin) % STEPS;\n      const h = Math.floor((iMax - iMin) / STEPS);\n      for (let i = iMin; i <= iMin + h * STEPS; i += STEPS) {\n        for (let j = 0; j <= w; j++) {\n          (this.#grid[i + j] ??= []).push(intersector);\n        }\n      }\n    }\n  }\n  #getGridIndex(x, y) {\n    const i = Math.floor((x - this.#minX) * this.#invXRatio);\n    const j = Math.floor((y - this.#minY) * this.#invYRatio);\n    return i + j * STEPS;\n  }\n  addGlyph(transform, width, height, glyph) {\n    const x = transform[4] + width / 2;\n    const y = transform[5] + height / 2;\n    if (x < this.#minX || y < this.#minY || x > this.#maxX || y > this.#maxY) {\n      return;\n    }\n    const intersectors = this.#grid[this.#getGridIndex(x, y)];\n    if (!intersectors) {\n      return;\n    }\n    for (const intersector of intersectors) {\n      intersector.addGlyph(x, y, glyph);\n    }\n  }\n  addExtraChar(char) {\n    for (const intersector of this.#intersectors) {\n      intersector.addExtraChar(char);\n    }\n  }\n  setText() {\n    for (const intersector of this.#intersectors) {\n      intersector.setText();\n    }\n  }\n}\n\n;// ./src/core/calculate_sha_other.js\n\n\n\n\n\n\nclass Word64 {\n  constructor(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n  and(word) {\n    this.high &= word.high;\n    this.low &= word.low;\n  }\n  xor(word) {\n    this.high ^= word.high;\n    this.low ^= word.low;\n  }\n  shiftRight(places) {\n    if (places >= 32) {\n      this.low = this.high >>> places - 32 | 0;\n      this.high = 0;\n    } else {\n      this.low = this.low >>> places | this.high << 32 - places;\n      this.high = this.high >>> places | 0;\n    }\n  }\n  rotateRight(places) {\n    let low, high;\n    if (places & 32) {\n      high = this.low;\n      low = this.high;\n    } else {\n      low = this.low;\n      high = this.high;\n    }\n    places &= 31;\n    this.low = low >>> places | high << 32 - places;\n    this.high = high >>> places | low << 32 - places;\n  }\n  not() {\n    this.high = ~this.high;\n    this.low = ~this.low;\n  }\n  add(word) {\n    const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n    let highAdd = (this.high >>> 0) + (word.high >>> 0);\n    if (lowAdd > 0xffffffff) {\n      highAdd += 1;\n    }\n    this.low = lowAdd | 0;\n    this.high = highAdd | 0;\n  }\n  copyTo(bytes, offset) {\n    bytes[offset] = this.high >>> 24 & 0xff;\n    bytes[offset + 1] = this.high >> 16 & 0xff;\n    bytes[offset + 2] = this.high >> 8 & 0xff;\n    bytes[offset + 3] = this.high & 0xff;\n    bytes[offset + 4] = this.low >>> 24 & 0xff;\n    bytes[offset + 5] = this.low >> 16 & 0xff;\n    bytes[offset + 6] = this.low >> 8 & 0xff;\n    bytes[offset + 7] = this.low & 0xff;\n  }\n  assign(word) {\n    this.high = word.high;\n    this.low = word.low;\n  }\n}\nconst calculate_sha_other_PARAMS = {\n  get k() {\n    return shadow(this, \"k\", [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)]);\n  }\n};\nfunction ch(result, x, y, z, tmp) {\n  result.assign(x);\n  result.and(y);\n  tmp.assign(x);\n  tmp.not();\n  tmp.and(z);\n  result.xor(tmp);\n}\nfunction maj(result, x, y, z, tmp) {\n  result.assign(x);\n  result.and(y);\n  tmp.assign(x);\n  tmp.and(z);\n  result.xor(tmp);\n  tmp.assign(y);\n  tmp.and(z);\n  result.xor(tmp);\n}\nfunction sigma(result, x, tmp) {\n  result.assign(x);\n  result.rotateRight(28);\n  tmp.assign(x);\n  tmp.rotateRight(34);\n  result.xor(tmp);\n  tmp.assign(x);\n  tmp.rotateRight(39);\n  result.xor(tmp);\n}\nfunction sigmaPrime(result, x, tmp) {\n  result.assign(x);\n  result.rotateRight(14);\n  tmp.assign(x);\n  tmp.rotateRight(18);\n  result.xor(tmp);\n  tmp.assign(x);\n  tmp.rotateRight(41);\n  result.xor(tmp);\n}\nfunction littleSigma(result, x, tmp) {\n  result.assign(x);\n  result.rotateRight(1);\n  tmp.assign(x);\n  tmp.rotateRight(8);\n  result.xor(tmp);\n  tmp.assign(x);\n  tmp.shiftRight(7);\n  result.xor(tmp);\n}\nfunction littleSigmaPrime(result, x, tmp) {\n  result.assign(x);\n  result.rotateRight(19);\n  tmp.assign(x);\n  tmp.rotateRight(61);\n  result.xor(tmp);\n  tmp.assign(x);\n  tmp.shiftRight(6);\n  result.xor(tmp);\n}\nfunction calculateSHA512(data, offset, length, mode384 = false) {\n  let h0, h1, h2, h3, h4, h5, h6, h7;\n  if (!mode384) {\n    h0 = new Word64(0x6a09e667, 0xf3bcc908);\n    h1 = new Word64(0xbb67ae85, 0x84caa73b);\n    h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n    h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n    h4 = new Word64(0x510e527f, 0xade682d1);\n    h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n    h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n    h7 = new Word64(0x5be0cd19, 0x137e2179);\n  } else {\n    h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n    h1 = new Word64(0x629a292a, 0x367cd507);\n    h2 = new Word64(0x9159015a, 0x3070dd17);\n    h3 = new Word64(0x152fecd8, 0xf70e5939);\n    h4 = new Word64(0x67332667, 0xffc00b31);\n    h5 = new Word64(0x8eb44a87, 0x68581511);\n    h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n    h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n  }\n  const paddedLength = Math.ceil((length + 17) / 128) * 128;\n  const padded = new Uint8Array(paddedLength);\n  let i, j;\n  for (i = 0; i < length; ++i) {\n    padded[i] = data[offset++];\n  }\n  padded[i++] = 0x80;\n  const n = paddedLength - 16;\n  if (i < n) {\n    i = n;\n  }\n  i += 11;\n  padded[i++] = length >>> 29 & 0xff;\n  padded[i++] = length >> 21 & 0xff;\n  padded[i++] = length >> 13 & 0xff;\n  padded[i++] = length >> 5 & 0xff;\n  padded[i++] = length << 3 & 0xff;\n  const w = new Array(80);\n  for (i = 0; i < 80; i++) {\n    w[i] = new Word64(0, 0);\n  }\n  const {\n    k\n  } = calculate_sha_other_PARAMS;\n  let a = new Word64(0, 0),\n    b = new Word64(0, 0),\n    c = new Word64(0, 0);\n  let d = new Word64(0, 0),\n    e = new Word64(0, 0),\n    f = new Word64(0, 0);\n  let g = new Word64(0, 0),\n    h = new Word64(0, 0);\n  const t1 = new Word64(0, 0),\n    t2 = new Word64(0, 0);\n  const tmp1 = new Word64(0, 0),\n    tmp2 = new Word64(0, 0);\n  let tmp3;\n  for (i = 0; i < paddedLength;) {\n    for (j = 0; j < 16; ++j) {\n      w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n      w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n      i += 8;\n    }\n    for (j = 16; j < 80; ++j) {\n      tmp3 = w[j];\n      littleSigmaPrime(tmp3, w[j - 2], tmp2);\n      tmp3.add(w[j - 7]);\n      littleSigma(tmp1, w[j - 15], tmp2);\n      tmp3.add(tmp1);\n      tmp3.add(w[j - 16]);\n    }\n    a.assign(h0);\n    b.assign(h1);\n    c.assign(h2);\n    d.assign(h3);\n    e.assign(h4);\n    f.assign(h5);\n    g.assign(h6);\n    h.assign(h7);\n    for (j = 0; j < 80; ++j) {\n      t1.assign(h);\n      sigmaPrime(tmp1, e, tmp2);\n      t1.add(tmp1);\n      ch(tmp1, e, f, g, tmp2);\n      t1.add(tmp1);\n      t1.add(k[j]);\n      t1.add(w[j]);\n      sigma(t2, a, tmp2);\n      maj(tmp1, a, b, c, tmp2);\n      t2.add(tmp1);\n      tmp3 = h;\n      h = g;\n      g = f;\n      f = e;\n      d.add(t1);\n      e = d;\n      d = c;\n      c = b;\n      b = a;\n      tmp3.assign(t1);\n      tmp3.add(t2);\n      a = tmp3;\n    }\n    h0.add(a);\n    h1.add(b);\n    h2.add(c);\n    h3.add(d);\n    h4.add(e);\n    h5.add(f);\n    h6.add(g);\n    h7.add(h);\n  }\n  let result;\n  if (!mode384) {\n    result = new Uint8Array(64);\n    h0.copyTo(result, 0);\n    h1.copyTo(result, 8);\n    h2.copyTo(result, 16);\n    h3.copyTo(result, 24);\n    h4.copyTo(result, 32);\n    h5.copyTo(result, 40);\n    h6.copyTo(result, 48);\n    h7.copyTo(result, 56);\n  } else {\n    result = new Uint8Array(48);\n    h0.copyTo(result, 0);\n    h1.copyTo(result, 8);\n    h2.copyTo(result, 16);\n    h3.copyTo(result, 24);\n    h4.copyTo(result, 32);\n    h5.copyTo(result, 40);\n  }\n  return result;\n}\nfunction calculateSHA384(data, offset, length) {\n  return calculateSHA512(data, offset, length, true);\n}\n\n;// ./src/core/calculate_sha256.js\n\n\n\n\n\n\nconst calculate_sha256_PARAMS = {\n  get k() {\n    return shadow(this, \"k\", [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n  }\n};\nfunction rotr(x, n) {\n  return x >>> n | x << 32 - n;\n}\nfunction calculate_sha256_ch(x, y, z) {\n  return x & y ^ ~x & z;\n}\nfunction calculate_sha256_maj(x, y, z) {\n  return x & y ^ x & z ^ y & z;\n}\nfunction calculate_sha256_sigma(x) {\n  return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n}\nfunction calculate_sha256_sigmaPrime(x) {\n  return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n}\nfunction calculate_sha256_littleSigma(x) {\n  return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n}\nfunction calculate_sha256_littleSigmaPrime(x) {\n  return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n}\nfunction calculateSHA256(data, offset, length) {\n  let h0 = 0x6a09e667,\n    h1 = 0xbb67ae85,\n    h2 = 0x3c6ef372,\n    h3 = 0xa54ff53a,\n    h4 = 0x510e527f,\n    h5 = 0x9b05688c,\n    h6 = 0x1f83d9ab,\n    h7 = 0x5be0cd19;\n  const paddedLength = Math.ceil((length + 9) / 64) * 64;\n  const padded = new Uint8Array(paddedLength);\n  let i, j;\n  for (i = 0; i < length; ++i) {\n    padded[i] = data[offset++];\n  }\n  padded[i++] = 0x80;\n  const n = paddedLength - 8;\n  if (i < n) {\n    i = n;\n  }\n  i += 3;\n  padded[i++] = length >>> 29 & 0xff;\n  padded[i++] = length >> 21 & 0xff;\n  padded[i++] = length >> 13 & 0xff;\n  padded[i++] = length >> 5 & 0xff;\n  padded[i++] = length << 3 & 0xff;\n  const w = new Uint32Array(64);\n  const {\n    k\n  } = calculate_sha256_PARAMS;\n  for (i = 0; i < paddedLength;) {\n    for (j = 0; j < 16; ++j) {\n      w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n      i += 4;\n    }\n    for (j = 16; j < 64; ++j) {\n      w[j] = calculate_sha256_littleSigmaPrime(w[j - 2]) + w[j - 7] + calculate_sha256_littleSigma(w[j - 15]) + w[j - 16] | 0;\n    }\n    let a = h0,\n      b = h1,\n      c = h2,\n      d = h3,\n      e = h4,\n      f = h5,\n      g = h6,\n      h = h7,\n      t1,\n      t2;\n    for (j = 0; j < 64; ++j) {\n      t1 = h + calculate_sha256_sigmaPrime(e) + calculate_sha256_ch(e, f, g) + k[j] + w[j];\n      t2 = calculate_sha256_sigma(a) + calculate_sha256_maj(a, b, c);\n      h = g;\n      g = f;\n      f = e;\n      e = d + t1 | 0;\n      d = c;\n      c = b;\n      b = a;\n      a = t1 + t2 | 0;\n    }\n    h0 = h0 + a | 0;\n    h1 = h1 + b | 0;\n    h2 = h2 + c | 0;\n    h3 = h3 + d | 0;\n    h4 = h4 + e | 0;\n    h5 = h5 + f | 0;\n    h6 = h6 + g | 0;\n    h7 = h7 + h | 0;\n  }\n  return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n}\n\n;// ./src/core/decrypt_stream.js\n\nconst chunkSize = 512;\nclass DecryptStream extends DecodeStream {\n  #nextChunk = null;\n  constructor(str, maybeLength, decrypt) {\n    super(maybeLength);\n    this.stream = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n  }\n  readBlock() {\n    let chunk = this.#nextChunk ?? this.stream.getBytes(chunkSize);\n    if (!chunk?.length) {\n      this.eof = true;\n      return;\n    }\n    this.#nextChunk = this.stream.getBytes(chunkSize);\n    const hasMoreData = this.#nextChunk?.length > 0;\n    const decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n    const bufferLength = this.bufferLength,\n      newLength = bufferLength + chunk.length,\n      buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  }\n  getOriginalStream() {\n    return this;\n  }\n}\n\n;// ./src/core/crypto.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass ARCFourCipher {\n  a = 0;\n  b = 0;\n  constructor(key) {\n    const s = new Uint8Array(256);\n    const keyLength = key.length;\n    for (let i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n    for (let i = 0, j = 0; i < 256; ++i) {\n      const tmp = s[i];\n      j = j + tmp + key[i % keyLength] & 0xff;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n    this.s = s;\n  }\n  encryptBlock(data) {\n    let a = this.a,\n      b = this.b;\n    const s = this.s;\n    const n = data.length;\n    const output = new Uint8Array(n);\n    for (let i = 0; i < n; ++i) {\n      a = a + 1 & 0xff;\n      const tmp = s[a];\n      b = b + tmp & 0xff;\n      const tmp2 = s[b];\n      s[a] = tmp2;\n      s[b] = tmp;\n      output[i] = data[i] ^ s[tmp + tmp2 & 0xff];\n    }\n    this.a = a;\n    this.b = b;\n    return output;\n  }\n  decryptBlock(data) {\n    return this.encryptBlock(data);\n  }\n  encrypt(data) {\n    return this.encryptBlock(data);\n  }\n}\nclass NullCipher {\n  decryptBlock(data) {\n    return data;\n  }\n  encrypt(data) {\n    return data;\n  }\n}\nclass AESBaseCipher {\n  _s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n  _inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n  _mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n  _mixCol = new Uint8Array(256).map((_, i) => i < 128 ? i << 1 : i << 1 ^ 0x1b);\n  constructor() {\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n  _expandKey(cipherKey) {\n    unreachable(\"Cannot call `_expandKey` on the base class\");\n  }\n  _decrypt(input, key) {\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n    for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n      for (let j = 0; j < 16; ++j) {\n        state[j] = this._inv_s[state[j]];\n      }\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = this._mix[state[j]];\n        const s1 = this._mix[state[j + 1]];\n        const s2 = this._mix[state[j + 2]];\n        const s3 = this._mix[state[j + 3]];\n        t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n        state[j] = t >>> 24 & 0xff;\n        state[j + 1] = t >> 16 & 0xff;\n        state[j + 2] = t >> 8 & 0xff;\n        state[j + 3] = t & 0xff;\n      }\n    }\n    t = state[13];\n    state[13] = state[9];\n    state[9] = state[5];\n    state[5] = state[1];\n    state[1] = t;\n    t = state[14];\n    u = state[10];\n    state[14] = state[6];\n    state[10] = state[2];\n    state[6] = t;\n    state[2] = u;\n    t = state[15];\n    u = state[11];\n    v = state[7];\n    state[15] = state[3];\n    state[11] = t;\n    state[7] = u;\n    state[3] = v;\n    for (let j = 0; j < 16; ++j) {\n      state[j] = this._inv_s[state[j]];\n      state[j] ^= key[j];\n    }\n    return state;\n  }\n  _encrypt(input, key) {\n    const s = this._s;\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n    for (let j = 0; j < 16; ++j) {\n      state[j] ^= key[j];\n    }\n    for (let i = 1; i < this._cyclesOfRepetition; i++) {\n      for (let j = 0; j < 16; ++j) {\n        state[j] = s[state[j]];\n      }\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = state[j];\n        const s1 = state[j + 1];\n        const s2 = state[j + 2];\n        const s3 = state[j + 3];\n        t = s0 ^ s1 ^ s2 ^ s3;\n        state[j] ^= t ^ this._mixCol[s0 ^ s1];\n        state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n        state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n        state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n      }\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n    }\n    for (let j = 0; j < 16; ++j) {\n      state[j] = s[state[j]];\n    }\n    v = state[1];\n    state[1] = state[5];\n    state[5] = state[9];\n    state[9] = state[13];\n    state[13] = v;\n    v = state[2];\n    u = state[6];\n    state[2] = state[10];\n    state[6] = state[14];\n    state[10] = v;\n    state[14] = u;\n    v = state[3];\n    u = state[7];\n    t = state[11];\n    state[3] = state[15];\n    state[7] = v;\n    state[11] = u;\n    state[15] = t;\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n    return state;\n  }\n  _decryptBlock2(data, finalize) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n      bufferLength = this.bufferPosition;\n    const result = [];\n    let iv = this.iv;\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16) {\n        continue;\n      }\n      const plain = this._decrypt(buffer, this._key);\n      for (let j = 0; j < 16; ++j) {\n        plain[j] ^= iv[j];\n      }\n      iv = buffer;\n      result.push(plain);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n    let outputLength = 16 * result.length;\n    if (finalize) {\n      const lastBlock = result.at(-1);\n      let psLen = lastBlock[15];\n      if (psLen <= 16) {\n        for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n          if (lastBlock[i] !== psLen) {\n            psLen = 0;\n            break;\n          }\n        }\n        outputLength -= psLen;\n        result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n      }\n    }\n    const output = new Uint8Array(outputLength);\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n    return output;\n  }\n  decryptBlock(data, finalize, iv = null) {\n    const sourceLength = data.length;\n    const buffer = this.buffer;\n    let bufferLength = this.bufferPosition;\n    if (iv) {\n      this.iv = iv;\n    } else {\n      for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n        buffer[bufferLength] = data[i];\n      }\n      if (bufferLength < 16) {\n        this.bufferLength = bufferLength;\n        return new Uint8Array(0);\n      }\n      this.iv = buffer;\n      data = data.subarray(16);\n    }\n    this.buffer = new Uint8Array(16);\n    this.bufferLength = 0;\n    this.decryptBlock = this._decryptBlock2;\n    return this.decryptBlock(data, finalize);\n  }\n  encrypt(data, iv) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n      bufferLength = this.bufferPosition;\n    const result = [];\n    iv ||= new Uint8Array(16);\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16) {\n        continue;\n      }\n      for (let j = 0; j < 16; ++j) {\n        buffer[j] ^= iv[j];\n      }\n      const cipher = this._encrypt(buffer, this._key);\n      iv = cipher;\n      result.push(cipher);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n    const outputLength = 16 * result.length;\n    const output = new Uint8Array(outputLength);\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n    return output;\n  }\n}\nclass AES128Cipher extends AESBaseCipher {\n  _rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n  constructor(key) {\n    super();\n    this._cyclesOfRepetition = 10;\n    this._keySize = 160;\n    this._key = this._expandKey(key);\n  }\n  _expandKey(cipherKey) {\n    const b = 176;\n    const s = this._s;\n    const rcon = this._rcon;\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n    for (let j = 16, i = 1; j < b; ++i) {\n      let t1 = result[j - 3];\n      let t2 = result[j - 2];\n      let t3 = result[j - 1];\n      let t4 = result[j - 4];\n      t1 = s[t1];\n      t2 = s[t2];\n      t3 = s[t3];\n      t4 = s[t4];\n      t1 ^= rcon[i];\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 16];\n        j++;\n        result[j] = t2 ^= result[j - 16];\n        j++;\n        result[j] = t3 ^= result[j - 16];\n        j++;\n        result[j] = t4 ^= result[j - 16];\n        j++;\n      }\n    }\n    return result;\n  }\n}\nclass AES256Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n    this._cyclesOfRepetition = 14;\n    this._keySize = 224;\n    this._key = this._expandKey(key);\n  }\n  _expandKey(cipherKey) {\n    const b = 240;\n    const s = this._s;\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n    let r = 1;\n    let t1, t2, t3, t4;\n    for (let j = 32, i = 1; j < b; ++i) {\n      if (j % 32 === 16) {\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n      } else if (j % 32 === 0) {\n        t1 = result[j - 3];\n        t2 = result[j - 2];\n        t3 = result[j - 1];\n        t4 = result[j - 4];\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        t1 ^= r;\n        if ((r <<= 1) >= 256) {\n          r = (r ^ 0x1b) & 0xff;\n        }\n      }\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 32];\n        j++;\n        result[j] = t2 ^= result[j - 32];\n        j++;\n        result[j] = t3 ^= result[j - 32];\n        j++;\n        result[j] = t4 ^= result[j - 32];\n        j++;\n      }\n    }\n    return result;\n  }\n}\nclass PDFBase {\n  _hash(password, input, userBytes) {\n    unreachable(\"Abstract method `_hash` called\");\n  }\n  checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerValidationSalt, password.length);\n    hashData.set(userBytes, password.length + ownerValidationSalt.length);\n    const result = this._hash(password, hashData, userBytes);\n    return isArrayEqual(result, ownerPassword);\n  }\n  checkUserPassword(password, userValidationSalt, userPassword) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userValidationSalt, password.length);\n    const result = this._hash(password, hashData, []);\n    return isArrayEqual(result, userPassword);\n  }\n  getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerKeySalt, password.length);\n    hashData.set(userBytes, password.length + ownerKeySalt.length);\n    const key = this._hash(password, hashData, userBytes);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n  }\n  getUserKey(password, userKeySalt, userEncryption) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userKeySalt, password.length);\n    const key = this._hash(password, hashData, []);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n  }\n}\nclass PDF17 extends PDFBase {\n  _hash(password, input, userBytes) {\n    return calculateSHA256(input, 0, input.length);\n  }\n}\nclass PDF20 extends PDFBase {\n  _hash(password, input, userBytes) {\n    let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    let e = [0];\n    let i = 0;\n    while (i < 64 || e.at(-1) > i - 32) {\n      const combinedLength = password.length + k.length + userBytes.length,\n        combinedArray = new Uint8Array(combinedLength);\n      let writeOffset = 0;\n      combinedArray.set(password, writeOffset);\n      writeOffset += password.length;\n      combinedArray.set(k, writeOffset);\n      writeOffset += k.length;\n      combinedArray.set(userBytes, writeOffset);\n      const k1 = new Uint8Array(combinedLength * 64);\n      for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n        k1.set(combinedArray, pos);\n      }\n      const cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      const remainder = Math.sumPrecise(e.slice(0, 16)) % 3;\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n      i++;\n    }\n    return k.subarray(0, 32);\n  }\n}\nclass CipherTransform {\n  #cipherCache = new Map();\n  embeddedFilterName = null;\n  constructor(resolveCipher, stringFilterName = null, streamFilterName = null) {\n    this.resolveCipher = resolveCipher;\n    this.streamFilterName = streamFilterName;\n    this.stringFilterName = stringFilterName;\n  }\n  #getCipher(filterName = null) {\n    const key = filterName instanceof Name ? filterName.name : \"__default__\";\n    return this.#cipherCache.getOrInsertComputed(key, () => this.resolveCipher(filterName));\n  }\n  createStream(stream, length, cryptFilterName = null) {\n    const defaultFilterName = this.embeddedFilterName && isDict(stream.dict, \"EmbeddedFile\") ? this.embeddedFilterName : this.streamFilterName;\n    const Cipher = this.#getCipher(cryptFilterName || defaultFilterName);\n    const cipher = new Cipher();\n    return new DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n      return cipher.decryptBlock(data, finalize);\n    });\n  }\n  decryptString(s) {\n    const Cipher = this.#getCipher(this.stringFilterName);\n    const cipher = new Cipher();\n    let data = stringToBytes(s);\n    data = cipher.decryptBlock(data, true);\n    return bytesToString(data);\n  }\n  encryptString(s) {\n    const Cipher = this.#getCipher(this.stringFilterName);\n    const cipher = new Cipher();\n    if (cipher instanceof AESBaseCipher) {\n      const strLen = s.length;\n      const pad = 16 - strLen % 16;\n      s += String.fromCharCode(pad).repeat(pad);\n      const iv = new Uint8Array(16);\n      crypto.getRandomValues(iv);\n      let data = stringToBytes(s);\n      data = cipher.encrypt(data, iv);\n      const buf = new Uint8Array(16 + data.length);\n      buf.set(iv);\n      buf.set(data, 16);\n      return bytesToString(buf);\n    }\n    let data = stringToBytes(s);\n    data = cipher.encrypt(data);\n    return bytesToString(data);\n  }\n}\nclass CipherTransformFactory {\n  #fileId;\n  static get _defaultPasswordBytes() {\n    return shadow(this, \"_defaultPasswordBytes\", new Uint8Array([0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a]));\n  }\n  #createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n    if (password) {\n      const passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n    const pdfAlgorithm = revision === 6 ? new PDF20() : new PDF17();\n    if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n      return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n    }\n    return null;\n  }\n  #prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n    const hashDataSize = 40 + ownerPassword.length + fileId.length;\n    const hashData = new Uint8Array(hashDataSize);\n    let i = 0,\n      j,\n      n;\n    if (password) {\n      n = Math.min(32, password.length);\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n    j = 0;\n    while (i < 32) {\n      hashData[i++] = CipherTransformFactory._defaultPasswordBytes[j++];\n    }\n    hashData.set(ownerPassword, i);\n    i += ownerPassword.length;\n    hashData[i++] = flags & 0xff;\n    hashData[i++] = flags >> 8 & 0xff;\n    hashData[i++] = flags >> 16 & 0xff;\n    hashData[i++] = flags >>> 24 & 0xff;\n    hashData.set(fileId, i);\n    i += fileId.length;\n    if (revision >= 4 && !encryptMetadata) {\n      hashData.fill(0xff, i, i + 4);\n      i += 4;\n    }\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n    const encryptionKey = hash.subarray(0, keyLengthInBytes);\n    let cipher, checkData;\n    if (revision >= 3) {\n      i = 0;\n      hashData.set(CipherTransformFactory._defaultPasswordBytes, i);\n      i += 32;\n      hashData.set(fileId, i);\n      i += fileId.length;\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      const derivedKey = new Uint8Array(n);\n      for (j = 1; j <= 19; ++j) {\n        for (let k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(CipherTransformFactory._defaultPasswordBytes);\n    }\n    return checkData.every((data, k) => userPassword[k] === data) ? encryptionKey : null;\n  }\n  #decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    const hashData = new Uint8Array(32);\n    let i = 0;\n    const n = Math.min(32, password.length);\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n    let j = 0;\n    while (i < 32) {\n      hashData[i++] = CipherTransformFactory._defaultPasswordBytes[j++];\n    }\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n    let cipher, userPassword;\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      const derivedKey = new Uint8Array(keyLengthInBytes);\n      for (j = 19; j >= 0; j--) {\n        for (let k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n    return userPassword;\n  }\n  #buildObjectKey(num, gen, encryptionKey, isAes = false) {\n    const n = encryptionKey.length;\n    const key = new Uint8Array(n + 9);\n    key.set(encryptionKey);\n    let i = n;\n    key[i++] = num & 0xff;\n    key[i++] = num >> 8 & 0xff;\n    key[i++] = num >> 16 & 0xff;\n    key[i++] = gen & 0xff;\n    key[i++] = gen >> 8 & 0xff;\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6c;\n      key[i++] = 0x54;\n    }\n    const hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(n + 5, 16));\n  }\n  constructor(dict, fileId, password) {\n    const filter = dict.get(\"Filter\");\n    if (!isName(filter, \"Standard\")) {\n      throw new FormatError(\"unknown encryption method\");\n    }\n    this.filterName = filter.name;\n    this.dict = dict;\n    this.#fileId = fileId;\n    const algorithm = dict.get(\"V\");\n    if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n      throw new FormatError(\"unsupported encryption algorithm\");\n    }\n    this.algorithm = algorithm;\n    let keyLength = dict.get(\"Length\");\n    if (!keyLength) {\n      if (algorithm <= 3) {\n        keyLength = 40;\n      } else {\n        const cfDict = dict.get(\"CF\");\n        const streamCryptoName = dict.get(\"StmF\");\n        if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n          cfDict.suppressEncryption = true;\n          const handlerDict = cfDict.get(streamCryptoName.name);\n          keyLength = handlerDict?.get(\"Length\") || 128;\n          if (keyLength < 40) {\n            keyLength <<= 3;\n          }\n        }\n      }\n    }\n    if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n      throw new FormatError(\"invalid key length\");\n    }\n    let cf = null;\n    let stmf = Name.get(\"Identity\");\n    let strf = Name.get(\"Identity\");\n    let eff = stmf;\n    if (algorithm >= 4) {\n      cf = dict.get(\"CF\");\n      if (cf instanceof Dict) {\n        cf.suppressEncryption = true;\n      }\n      stmf = dict.get(\"StmF\") || Name.get(\"Identity\");\n      strf = dict.get(\"StrF\") || Name.get(\"Identity\");\n      eff = dict.get(\"EFF\") || stmf;\n    }\n    this.cf = cf;\n    this.stmf = stmf;\n    this.strf = strf;\n    this.eff = eff;\n    const ownerBytes = stringToBytes(dict.get(\"O\")),\n      userBytes = stringToBytes(dict.get(\"U\"));\n    const ownerPassword = ownerBytes.subarray(0, 32);\n    const userPassword = userBytes.subarray(0, 32);\n    const flags = dict.get(\"P\");\n    const revision = dict.get(\"R\");\n    const encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get(\"EncryptMetadata\") !== false;\n    this.encryptMetadata = encryptMetadata;\n    const fileIdBytes = stringToBytes(fileId);\n    let passwordBytes;\n    if (password) {\n      if (revision === 6) {\n        try {\n          password = utf8StringToString(password);\n        } catch {\n          warn(\"CipherTransformFactory: Unable to convert UTF8 encoded password.\");\n        }\n      }\n      passwordBytes = stringToBytes(password);\n    }\n    let encryptionKey;\n    if (algorithm !== 5) {\n      encryptionKey = this.#prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n    } else {\n      const ownerValidationSalt = ownerBytes.subarray(32, 40);\n      const ownerKeySalt = ownerBytes.subarray(40, 48);\n      const uBytes = userBytes.subarray(0, 48);\n      const userValidationSalt = userBytes.subarray(32, 40);\n      const userKeySalt = userBytes.subarray(40, 48);\n      const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n      const userEncryption = stringToBytes(dict.get(\"UE\"));\n      const perms = stringToBytes(dict.get(\"Perms\"));\n      encryptionKey = this.#createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n    }\n    if (!encryptionKey) {\n      if (!password) {\n        if (this.algorithm >= 4 && isName(this.stmf, \"Identity\") && isName(this.strf, \"Identity\")) {\n          const effCF = this.cf?.get(this.eff.name);\n          const authEvent = effCF?.get(\"AuthEvent\");\n          if (isName(authEvent, \"EFOpen\")) {\n            this.encryptionKey = null;\n            return;\n          }\n        }\n        throw new PasswordException(\"No password given\", PasswordResponses.NEED_PASSWORD);\n      }\n      const decodedPassword = this.#decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n      encryptionKey = this.#prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n    }\n    if (!encryptionKey) {\n      throw new PasswordException(\"Incorrect Password\", PasswordResponses.INCORRECT_PASSWORD);\n    }\n    if (algorithm === 4 && encryptionKey.length < 16) {\n      this.encryptionKey = new Uint8Array(16);\n      this.encryptionKey.set(encryptionKey);\n    } else {\n      this.encryptionKey = encryptionKey;\n    }\n  }\n  setPassword(password) {\n    const transform = new CipherTransformFactory(this.dict, this.#fileId, password);\n    this.encryptionKey = transform.encryptionKey;\n  }\n  createCipherTransform(num, gen) {\n    if (this.algorithm === 4 || this.algorithm === 5) {\n      const resolveCipher = filterName => {\n        if (!(filterName instanceof Name)) {\n          throw new FormatError(\"Invalid crypt filter name.\");\n        }\n        const cryptFilter = this.cf.get(filterName.name);\n        const cfm = cryptFilter?.get(\"CFM\");\n        if (!cfm || cfm.name === \"None\") {\n          return NullCipher;\n        }\n        if (!this.encryptionKey) {\n          throw new PasswordException(\"No password given\", PasswordResponses.NEED_PASSWORD);\n        }\n        if (this.algorithm === 5) {\n          return AES256Cipher.bind(null, this.encryptionKey);\n        }\n        if (cfm.name === \"V2\") {\n          return ARCFourCipher.bind(null, this.#buildObjectKey(num, gen, this.encryptionKey, false));\n        }\n        if (cfm.name === \"AESV2\") {\n          return AES128Cipher.bind(null, this.#buildObjectKey(num, gen, this.encryptionKey, true));\n        }\n        if (cfm.name === \"AESV3\") {\n          return AES256Cipher.bind(null, this.encryptionKey);\n        }\n        throw new FormatError(\"Unknown crypto method\");\n      };\n      const transform = new CipherTransform(resolveCipher, this.strf, this.stmf);\n      transform.embeddedFilterName = this.eff;\n      return transform;\n    }\n    const resolveCipher = () => ARCFourCipher.bind(null, this.#buildObjectKey(num, gen, this.encryptionKey, false));\n    return new CipherTransform(resolveCipher);\n  }\n}\n\n;// ./src/core/xref.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass XRef {\n  constructor(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this._xrefStms = new Set();\n    this._cacheMap = new Map();\n    this._pendingRefs = new RefSet();\n    this._newPersistentRefNum = null;\n    this._newTemporaryRefNum = null;\n    this._persistentRefsCache = null;\n  }\n  getNewPersistentRef(obj) {\n    if (this._newPersistentRefNum === null) {\n      this._newPersistentRefNum = this.entries.length || 1;\n    }\n    const num = this._newPersistentRefNum++;\n    this._cacheMap.set(num, obj);\n    return Ref.get(num, 0);\n  }\n  getNewTemporaryRef() {\n    if (this._newTemporaryRefNum === null) {\n      this._newTemporaryRefNum = this.entries.length || 1;\n      if (this._newPersistentRefNum) {\n        this._persistentRefsCache = new Map();\n        for (let i = this._newTemporaryRefNum; i < this._newPersistentRefNum; i++) {\n          this._persistentRefsCache.set(i, this._cacheMap.get(i));\n          this._cacheMap.delete(i);\n        }\n      }\n    }\n    return Ref.get(this._newTemporaryRefNum++, 0);\n  }\n  resetNewTemporaryRef() {\n    this._newTemporaryRefNum = null;\n    if (this._persistentRefsCache) {\n      for (const [num, obj] of this._persistentRefsCache) {\n        this._cacheMap.set(num, obj);\n      }\n    }\n    this._persistentRefsCache = null;\n  }\n  setStartXRef(startXRef) {\n    this.startXRefQueue = [startXRef];\n  }\n  parse(recoveryMode = false) {\n    let trailerDict;\n    if (!recoveryMode) {\n      trailerDict = this.readXRef();\n    } else {\n      warn(\"Indexing all PDF objects\");\n      trailerDict = this.indexObjects();\n    }\n    trailerDict.assignXref(this);\n    this.trailer = trailerDict;\n    let encrypt;\n    try {\n      encrypt = trailerDict.get(\"Encrypt\");\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n    }\n    if (encrypt instanceof Dict) {\n      const ids = trailerDict.get(\"ID\");\n      const fileId = ids?.length ? ids[0] : \"\";\n      encrypt.suppressEncryption = true;\n      this.encrypt = new CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n    }\n    let root;\n    try {\n      root = trailerDict.get(\"Root\");\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n    }\n    if (root instanceof Dict) {\n      try {\n        const pages = root.get(\"Pages\");\n        if (pages instanceof Dict) {\n          this.root = root;\n          return;\n        }\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n      }\n    }\n    if (!recoveryMode) {\n      throw new XRefParseException();\n    }\n    throw new InvalidPDFException(\"Invalid Root reference.\");\n  }\n  processXRefTable(parser) {\n    if (!(\"tableState\" in this)) {\n      this.tableState = {\n        entryNum: 0,\n        streamPos: parser.lexer.stream.pos,\n        parserBuf1: parser.buf1,\n        parserBuf2: parser.buf2\n      };\n    }\n    const obj = this.readXRefTable(parser);\n    if (!isCmd(obj, \"trailer\")) {\n      throw new FormatError(\"Invalid XRef table: could not find trailer dictionary\");\n    }\n    let dict = parser.getObj();\n    if (!(dict instanceof Dict) && dict.dict) {\n      dict = dict.dict;\n    }\n    if (!(dict instanceof Dict)) {\n      throw new FormatError(\"Invalid XRef table: could not parse trailer dictionary\");\n    }\n    delete this.tableState;\n    return dict;\n  }\n  readXRefTable(parser) {\n    const stream = parser.lexer.stream;\n    const tableState = this.tableState;\n    stream.pos = tableState.streamPos;\n    parser.buf1 = tableState.parserBuf1;\n    parser.buf2 = tableState.parserBuf2;\n    let obj;\n    while (true) {\n      if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n        if (isCmd(obj = parser.getObj(), \"trailer\")) {\n          break;\n        }\n        tableState.firstEntryNum = obj;\n        tableState.entryCount = parser.getObj();\n      }\n      let first = tableState.firstEntryNum;\n      const count = tableState.entryCount;\n      if (!Number.isInteger(first) || !Number.isInteger(count)) {\n        throw new FormatError(\"Invalid XRef table: wrong types in subsection header\");\n      }\n      for (let i = tableState.entryNum; i < count; i++) {\n        tableState.streamPos = stream.pos;\n        tableState.entryNum = i;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        const entry = {};\n        entry.offset = parser.getObj();\n        entry.gen = parser.getObj();\n        const type = parser.getObj();\n        if (type instanceof Cmd) {\n          switch (type.cmd) {\n            case \"f\":\n              entry.free = true;\n              break;\n            case \"n\":\n              entry.uncompressed = true;\n              break;\n          }\n        }\n        if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n          throw new FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);\n        }\n        if (i === 0 && entry.free && first === 1) {\n          first = 0;\n        }\n        if (!this.entries[i + first]) {\n          this.entries[i + first] = entry;\n        }\n      }\n      tableState.entryNum = 0;\n      tableState.streamPos = stream.pos;\n      tableState.parserBuf1 = parser.buf1;\n      tableState.parserBuf2 = parser.buf2;\n      delete tableState.firstEntryNum;\n      delete tableState.entryCount;\n    }\n    if (this.entries[0] && !this.entries[0].free) {\n      throw new FormatError(\"Invalid XRef table: unexpected first object\");\n    }\n    return obj;\n  }\n  processXRefStream(stream) {\n    if (!(\"streamState\" in this)) {\n      const {\n        dict,\n        pos\n      } = stream;\n      const byteWidths = dict.get(\"W\");\n      const range = dict.get(\"Index\") || [0, dict.get(\"Size\")];\n      this.streamState = {\n        entryRanges: range,\n        byteWidths,\n        entryNum: 0,\n        streamPos: pos\n      };\n    }\n    this.readXRefStream(stream);\n    delete this.streamState;\n    return stream.dict;\n  }\n  readXRefStream(stream) {\n    const streamState = this.streamState;\n    stream.pos = streamState.streamPos;\n    const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] = streamState.byteWidths;\n    const entryRanges = streamState.entryRanges;\n    while (entryRanges.length > 0) {\n      const [first, n] = entryRanges;\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n      }\n      if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n        throw new FormatError(`Invalid XRef entry fields length: ${first}, ${n}`);\n      }\n      for (let i = streamState.entryNum; i < n; ++i) {\n        streamState.entryNum = i;\n        streamState.streamPos = stream.pos;\n        let type = 0,\n          offset = 0,\n          generation = 0;\n        for (let j = 0; j < typeFieldWidth; ++j) {\n          const typeByte = stream.getByte();\n          if (typeByte === -1) {\n            throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n          }\n          type = type << 8 | typeByte;\n        }\n        if (typeFieldWidth === 0) {\n          type = 1;\n        }\n        for (let j = 0; j < offsetFieldWidth; ++j) {\n          const offsetByte = stream.getByte();\n          if (offsetByte === -1) {\n            throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n          }\n          offset = offset << 8 | offsetByte;\n        }\n        for (let j = 0; j < generationFieldWidth; ++j) {\n          const generationByte = stream.getByte();\n          if (generationByte === -1) {\n            throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n          }\n          generation = generation << 8 | generationByte;\n        }\n        const entry = {};\n        entry.offset = offset;\n        entry.gen = generation;\n        switch (type) {\n          case 0:\n            entry.free = true;\n            break;\n          case 1:\n            entry.uncompressed = true;\n            break;\n          case 2:\n            break;\n          default:\n            throw new FormatError(`Invalid XRef entry type: ${type}`);\n        }\n        if (!this.entries[first + i]) {\n          this.entries[first + i] = entry;\n        }\n      }\n      streamState.entryNum = 0;\n      streamState.streamPos = stream.pos;\n      entryRanges.splice(0, 2);\n    }\n  }\n  indexObjects() {\n    const TAB = 0x9,\n      LF = 0xa,\n      CR = 0xd,\n      SPACE = 0x20;\n    const PERCENT = 0x25,\n      LT = 0x3c;\n    function readToken(data, offset) {\n      let token = \"\",\n        ch = data[offset];\n      while (ch !== LF && ch !== CR && ch !== LT) {\n        if (++offset >= data.length) {\n          break;\n        }\n        token += String.fromCharCode(ch);\n        ch = data[offset];\n      }\n      return token;\n    }\n    function skipUntil(data, offset, what) {\n      const length = what.length,\n        dataLength = data.length;\n      let skipped = 0;\n      while (offset < dataLength) {\n        let i = 0;\n        while (i < length && data[offset + i] === what[i]) {\n          ++i;\n        }\n        if (i >= length) {\n          break;\n        }\n        offset++;\n        skipped++;\n      }\n      return skipped;\n    }\n    const gEndobjRegExp = /\\b(endobj|\\d+\\s+\\d+\\s+obj|xref|trailer\\s*<<)\\b/g;\n    const gStartxrefRegExp = /\\b(startxref|\\d+\\s+\\d+\\s+obj)\\b/g;\n    const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n    const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n    const startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n    const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n    this.entries.length = 0;\n    this._cacheMap.clear();\n    const stream = this.stream;\n    stream.pos = 0;\n    const buffer = stream.getBytes(),\n      bufferStr = bytesToString(buffer),\n      length = buffer.length;\n    let position = stream.start;\n    const trailers = [],\n      xrefStms = [];\n    while (position < length) {\n      let ch = buffer[position];\n      if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n        ++position;\n        continue;\n      }\n      if (ch === PERCENT) {\n        do {\n          ++position;\n          if (position >= length) {\n            break;\n          }\n          ch = buffer[position];\n        } while (ch !== LF && ch !== CR);\n        continue;\n      }\n      const token = readToken(buffer, position);\n      let m;\n      if (token.startsWith(\"xref\") && (token.length === 4 || /\\s/.test(token[4]))) {\n        position += skipUntil(buffer, position, trailerBytes);\n        trailers.push(position);\n        position += skipUntil(buffer, position, startxrefBytes);\n      } else if (m = objRegExp.exec(token)) {\n        const num = m[1] | 0,\n          gen = m[2] | 0;\n        const startPos = position + token.length;\n        let contentLength,\n          updateEntries = false;\n        if (!this.entries[num]) {\n          updateEntries = true;\n        } else if (this.entries[num].gen === gen) {\n          try {\n            const parser = new Parser({\n              lexer: new Lexer(stream.makeSubStream(startPos))\n            });\n            parser.getObj();\n            updateEntries = true;\n          } catch (ex) {\n            if (ex instanceof ParserEOFException) {\n              warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n            } else {\n              updateEntries = true;\n            }\n          }\n        }\n        if (updateEntries) {\n          this.entries[num] = {\n            offset: position - stream.start,\n            gen,\n            uncompressed: true\n          };\n        }\n        gEndobjRegExp.lastIndex = startPos;\n        const match = gEndobjRegExp.exec(bufferStr);\n        if (match) {\n          const endPos = gEndobjRegExp.lastIndex + 1;\n          contentLength = endPos - position;\n          if (match[1] !== \"endobj\") {\n            warn(`indexObjects: Found \"${match[1]}\" inside of another \"obj\", ` + 'caused by missing \"endobj\" -- trying to recover.');\n            contentLength -= match[1].length + 1;\n          }\n        } else {\n          contentLength = length - position;\n        }\n        const content = buffer.subarray(position, position + contentLength);\n        const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n        if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n          xrefStms.push(position - stream.start);\n          this._xrefStms.add(position - stream.start);\n        }\n        position += contentLength;\n      } else if (token.startsWith(\"trailer\") && (token.length === 7 || /\\s/.test(token[7]))) {\n        trailers.push(position);\n        const startPos = position + token.length;\n        let contentLength;\n        gStartxrefRegExp.lastIndex = startPos;\n        const match = gStartxrefRegExp.exec(bufferStr);\n        if (match) {\n          const endPos = gStartxrefRegExp.lastIndex + 1;\n          contentLength = endPos - position;\n          if (match[1] !== \"startxref\") {\n            warn(`indexObjects: Found \"${match[1]}\" after \"trailer\", ` + 'caused by missing \"startxref\" -- trying to recover.');\n            contentLength -= match[1].length + 1;\n          }\n        } else {\n          contentLength = length - position;\n        }\n        position += contentLength;\n      } else {\n        position += token.length + 1;\n      }\n    }\n    for (const xrefStm of xrefStms) {\n      this.startXRefQueue.push(xrefStm);\n      this.readXRef(true);\n    }\n    const trailerDicts = [];\n    let isEncrypted = false;\n    for (const trailer of trailers) {\n      stream.pos = trailer;\n      const parser = new Parser({\n        lexer: new Lexer(stream),\n        xref: this,\n        allowStreams: true,\n        recoveryMode: true\n      });\n      const obj = parser.getObj();\n      if (!isCmd(obj, \"trailer\")) {\n        continue;\n      }\n      const dict = parser.getObj();\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      trailerDicts.push(dict);\n      if (dict.has(\"Encrypt\")) {\n        isEncrypted = true;\n      }\n    }\n    let trailerDict, trailerError;\n    for (const dict of [...trailerDicts, \"genFallback\", ...trailerDicts]) {\n      if (dict === \"genFallback\") {\n        if (!trailerError) {\n          break;\n        }\n        this._generationFallback = true;\n        continue;\n      }\n      let validPagesDict = false;\n      try {\n        const rootDict = dict.get(\"Root\");\n        if (!(rootDict instanceof Dict)) {\n          continue;\n        }\n        const pagesDict = rootDict.get(\"Pages\");\n        if (!(pagesDict instanceof Dict)) {\n          continue;\n        }\n        const pagesCount = pagesDict.get(\"Count\");\n        if (Number.isInteger(pagesCount)) {\n          validPagesDict = true;\n        }\n      } catch (ex) {\n        trailerError = ex;\n        continue;\n      }\n      if (validPagesDict && (!isEncrypted || dict.has(\"Encrypt\")) && dict.has(\"ID\")) {\n        return dict;\n      }\n      trailerDict = dict;\n    }\n    if (trailerDict) {\n      return trailerDict;\n    }\n    if (this.topDict) {\n      return this.topDict;\n    }\n    if (!trailerDicts.length) {\n      for (const num in this.entries) {\n        const entry = this.entries[num];\n        if (!entry) {\n          continue;\n        }\n        const ref = Ref.get(parseInt(num, 10), entry.gen);\n        let obj;\n        try {\n          obj = this.fetch(ref);\n        } catch {\n          continue;\n        }\n        if (obj instanceof BaseStream) {\n          obj = obj.dict;\n        }\n        if (obj instanceof Dict && obj.has(\"Root\")) {\n          return obj;\n        }\n      }\n    }\n    throw new InvalidPDFException(\"Invalid PDF structure.\");\n  }\n  readXRef(recoveryMode = false) {\n    const stream = this.stream;\n    const startXRefParsedCache = new Set();\n    while (this.startXRefQueue.length) {\n      try {\n        const startXRef = this.startXRefQueue[0];\n        if (startXRefParsedCache.has(startXRef)) {\n          warn(\"readXRef - skipping XRef table since it was already parsed.\");\n          this.startXRefQueue.shift();\n          continue;\n        }\n        startXRefParsedCache.add(startXRef);\n        stream.pos = startXRef + stream.start;\n        const parser = new Parser({\n          lexer: new Lexer(stream),\n          xref: this,\n          allowStreams: true\n        });\n        let obj = parser.getObj();\n        let dict;\n        if (isCmd(obj, \"xref\")) {\n          dict = this.processXRefTable(parser);\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n          obj = dict.get(\"XRefStm\");\n          if (Number.isInteger(obj) && !this._xrefStms.has(obj)) {\n            this._xrefStms.add(obj);\n            this.startXRefQueue.push(obj);\n          }\n        } else if (Number.isInteger(obj)) {\n          if (!Number.isInteger(parser.getObj()) || !isCmd(parser.getObj(), \"obj\") || !((obj = parser.getObj()) instanceof BaseStream)) {\n            throw new FormatError(\"Invalid XRef stream\");\n          }\n          dict = this.processXRefStream(obj);\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n          if (!dict) {\n            throw new FormatError(\"Failed to read XRef stream\");\n          }\n        } else {\n          throw new FormatError(\"Invalid XRef stream header\");\n        }\n        obj = dict.get(\"Prev\");\n        if (Number.isInteger(obj)) {\n          this.startXRefQueue.push(obj);\n        } else if (obj instanceof Ref) {\n          this.startXRefQueue.push(obj.num);\n        }\n      } catch (e) {\n        if (e instanceof MissingDataException) {\n          throw e;\n        }\n        info(\"(while reading XRef): \" + e);\n      }\n      this.startXRefQueue.shift();\n    }\n    if (this.topDict) {\n      return this.topDict;\n    }\n    if (recoveryMode) {\n      return undefined;\n    }\n    throw new XRefParseException();\n  }\n  getEntry(i) {\n    const xrefEntry = this.entries[i];\n    if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n      return xrefEntry;\n    }\n    return null;\n  }\n  fetchIfRef(obj, suppressEncryption = false) {\n    if (obj instanceof Ref) {\n      return this.fetch(obj, suppressEncryption);\n    }\n    return obj;\n  }\n  fetch(ref, suppressEncryption = false) {\n    if (!(ref instanceof Ref)) {\n      throw new Error(\"ref object is not a reference\");\n    }\n    const num = ref.num;\n    const cacheEntry = this._cacheMap.get(num);\n    if (cacheEntry !== undefined) {\n      if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n        cacheEntry.objId = ref.toString();\n      }\n      return cacheEntry;\n    }\n    let xrefEntry = this.getEntry(num);\n    if (xrefEntry === null) {\n      return xrefEntry;\n    }\n    if (this._pendingRefs.has(ref)) {\n      this._pendingRefs.remove(ref);\n      warn(`Ignoring circular reference: ${ref}.`);\n      return CIRCULAR_REF;\n    }\n    this._pendingRefs.put(ref);\n    try {\n      xrefEntry = xrefEntry.uncompressed ? this.fetchUncompressed(ref, xrefEntry, suppressEncryption) : this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      this._pendingRefs.remove(ref);\n    } catch (ex) {\n      this._pendingRefs.remove(ref);\n      throw ex;\n    }\n    if (xrefEntry instanceof Dict) {\n      xrefEntry.objId = ref.toString();\n    } else if (xrefEntry instanceof BaseStream) {\n      xrefEntry.dict.objId = ref.toString();\n    }\n    return xrefEntry;\n  }\n  fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n    const gen = ref.gen;\n    let num = ref.num;\n    if (xrefEntry.gen !== gen) {\n      const msg = `Inconsistent generation in XRef: ${ref}`;\n      if (this._generationFallback && xrefEntry.gen < gen) {\n        warn(msg);\n        return this.fetchUncompressed(Ref.get(num, xrefEntry.gen), xrefEntry, suppressEncryption);\n      }\n      throw new XRefEntryException(msg);\n    }\n    const stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: this,\n      allowStreams: true\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n    if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n      throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n    if (obj3.cmd !== \"obj\") {\n      if (obj3.cmd.startsWith(\"obj\")) {\n        num = parseInt(obj3.cmd.substring(3), 10);\n        if (!Number.isNaN(num)) {\n          return num;\n        }\n      }\n      throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n    xrefEntry = this.encrypt && !suppressEncryption ? parser.getObj(this.encrypt.createCipherTransform(num, gen)) : parser.getObj();\n    if (!(xrefEntry instanceof BaseStream)) {\n      this._cacheMap.set(num, xrefEntry);\n    }\n    return xrefEntry;\n  }\n  fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n    const tableOffset = xrefEntry.offset;\n    const stream = this.fetch(Ref.get(tableOffset, 0));\n    if (!(stream instanceof BaseStream)) {\n      throw new FormatError(\"bad ObjStm stream\");\n    }\n    const first = stream.dict.get(\"First\");\n    const n = stream.dict.get(\"N\");\n    if (!Number.isInteger(first) || !Number.isInteger(n)) {\n      throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n    }\n    let parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: this,\n      allowStreams: true\n    });\n    const nums = new Array(n);\n    const offsets = new Array(n);\n    for (let i = 0; i < n; ++i) {\n      const num = parser.getObj();\n      if (!Number.isInteger(num)) {\n        throw new FormatError(`invalid object number in the ObjStm stream: ${num}`);\n      }\n      const offset = parser.getObj();\n      if (!Number.isInteger(offset)) {\n        throw new FormatError(`invalid object offset in the ObjStm stream: ${offset}`);\n      }\n      nums[i] = num;\n      const entry = this.getEntry(num);\n      if (entry?.offset === tableOffset && entry.gen !== i) {\n        entry.gen = i;\n      }\n      offsets[i] = offset;\n    }\n    const start = (stream.start || 0) + first;\n    const entries = new Array(n);\n    for (let i = 0; i < n; ++i) {\n      const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n      if (length < 0) {\n        throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n      }\n      parser = new Parser({\n        lexer: new Lexer(stream.makeSubStream(start + offsets[i], length, stream.dict)),\n        xref: this,\n        allowStreams: true\n      });\n      const obj = parser.getObj();\n      entries[i] = obj;\n      if (obj instanceof BaseStream) {\n        continue;\n      }\n      const num = nums[i],\n        entry = this.entries[num];\n      if (entry && entry.offset === tableOffset && entry.gen === i) {\n        this._cacheMap.set(num, obj);\n      }\n    }\n    xrefEntry = entries[xrefEntry.gen];\n    if (xrefEntry === undefined) {\n      throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n    }\n    return xrefEntry;\n  }\n  async fetchIfRefAsync(obj, suppressEncryption) {\n    if (obj instanceof Ref) {\n      return this.fetchAsync(obj, suppressEncryption);\n    }\n    return obj;\n  }\n  async fetchAsync(ref, suppressEncryption) {\n    try {\n      return this.fetch(ref, suppressEncryption);\n    } catch (ex) {\n      if (!(ex instanceof MissingDataException)) {\n        throw ex;\n      }\n      await this.pdfManager.requestRange(ex.begin, ex.end);\n      return this.fetchAsync(ref, suppressEncryption);\n    }\n  }\n  getCatalogObj() {\n    return this.root;\n  }\n}\n\n;// ./src/core/document.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\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\nclass Page {\n  #resourcesPromise = null;\n  constructor({\n    pdfManager,\n    xref,\n    pageIndex,\n    pageDict,\n    ref,\n    globalIdFactory,\n    fontCache,\n    builtInCMapCache,\n    standardFontDataCache,\n    globalColorSpaceCache,\n    globalImageCache,\n    systemFontCache,\n    nonBlendModesSet,\n    xfaFactory\n  }) {\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalColorSpaceCache = globalColorSpaceCache;\n    this.globalImageCache = globalImageCache;\n    this.systemFontCache = systemFontCache;\n    this.nonBlendModesSet = nonBlendModesSet;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.xfaFactory = xfaFactory;\n    const idCounters = {\n      obj: 0\n    };\n    this._localIdFactory = class extends globalIdFactory {\n      static createObjId() {\n        return `p${pageIndex}_${++idCounters.obj}`;\n      }\n      static getPageObjId() {\n        return `p${ref.toString()}`;\n      }\n    };\n  }\n  #createPartialEvaluator(handler, pageIndex = this.pageIndex) {\n    return new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalColorSpaceCache: this.globalColorSpaceCache,\n      globalImageCache: this.globalImageCache,\n      systemFontCache: this.systemFontCache,\n      options: this.evaluatorOptions\n    });\n  }\n  createAnnotationEvaluator(handler) {\n    return this.#createPartialEvaluator(handler);\n  }\n  #getInheritableProperty(key, getArray = false) {\n    const value = getInheritableProperty({\n      dict: this.pageDict,\n      key,\n      getArray,\n      stopWhenFound: false\n    });\n    if (!Array.isArray(value)) {\n      return value;\n    }\n    if (value.length === 1 || !(value[0] instanceof Dict)) {\n      return value[0];\n    }\n    return Dict.merge({\n      xref: this.xref,\n      dictArray: value\n    });\n  }\n  get content() {\n    return this.pageDict.getArray(\"Contents\");\n  }\n  get resources() {\n    const resources = this.#getInheritableProperty(\"Resources\");\n    return shadow(this, \"resources\", resources instanceof Dict ? resources : Dict.empty);\n  }\n  getBoundingBox(name) {\n    if (this.xfaData) {\n      return this.xfaData.bbox;\n    }\n    const box = lookupNormalRect(this.#getInheritableProperty(name, true), null);\n    if (box) {\n      if (box[2] - box[0] > 0 && box[3] - box[1] > 0) {\n        return box;\n      }\n      warn(`Empty, or invalid, /${name} entry.`);\n    }\n    return null;\n  }\n  get mediaBox() {\n    return shadow(this, \"mediaBox\", this.getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX);\n  }\n  get cropBox() {\n    return shadow(this, \"cropBox\", this.getBoundingBox(\"CropBox\") || this.mediaBox);\n  }\n  get userUnit() {\n    const obj = this.pageDict.get(\"UserUnit\");\n    return shadow(this, \"userUnit\", typeof obj === \"number\" && obj > 0 ? obj : 1.0);\n  }\n  get view() {\n    const {\n      cropBox,\n      mediaBox\n    } = this;\n    if (cropBox !== mediaBox && !isArrayEqual(cropBox, mediaBox)) {\n      const box = Util.intersect(cropBox, mediaBox);\n      if (box && box[2] - box[0] > 0 && box[3] - box[1] > 0) {\n        return shadow(this, \"view\", box);\n      }\n      warn(\"Empty /CropBox and /MediaBox intersection.\");\n    }\n    return shadow(this, \"view\", mediaBox);\n  }\n  get rotate() {\n    let rotate = this.#getInheritableProperty(\"Rotate\") || 0;\n    if (rotate % 90 !== 0) {\n      rotate = 0;\n    } else if (rotate >= 360) {\n      rotate %= 360;\n    } else if (rotate < 0) {\n      rotate = (rotate % 360 + 360) % 360;\n    }\n    return shadow(this, \"rotate\", rotate);\n  }\n  #onSubStreamError(reason, objId) {\n    if (this.evaluatorOptions.ignoreErrors) {\n      warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n      return;\n    }\n    throw reason;\n  }\n  async getContentStream() {\n    const content = await this.pdfManager.ensure(this, \"content\");\n    if (content instanceof BaseStream && !content.isImageStream) {\n      if (content.isAsync) {\n        const bytes = await content.asyncGetBytes();\n        if (bytes) {\n          return new Stream(bytes, 0, bytes.length, content.dict);\n        }\n      }\n      return content;\n    }\n    if (Array.isArray(content)) {\n      const promises = [];\n      for (let i = 0, ii = content.length; i < ii; i++) {\n        const item = content[i];\n        if (item instanceof BaseStream && item.isAsync) {\n          promises.push(item.asyncGetBytes().then(bytes => {\n            if (bytes) {\n              content[i] = new Stream(bytes, 0, bytes.length, item.dict);\n            }\n          }));\n        }\n      }\n      if (promises.length > 0) {\n        await Promise.all(promises);\n      }\n      return new StreamsSequenceStream(content, this.#onSubStreamError.bind(this));\n    }\n    return new NullStream();\n  }\n  get xfaData() {\n    return shadow(this, \"xfaData\", this.xfaFactory ? {\n      bbox: this.xfaFactory.getBoundingBox(this.pageIndex)\n    } : null);\n  }\n  async #replaceIdByRef(annotations, deletedAnnotations, existingAnnotations) {\n    const promises = [];\n    for (const annotation of annotations) {\n      if (annotation.id) {\n        const ref = Ref.fromString(annotation.id);\n        if (!ref) {\n          warn(`A non-linked annotation cannot be modified: ${annotation.id}`);\n          continue;\n        }\n        if (annotation.deleted) {\n          deletedAnnotations.put(ref, ref);\n          if (annotation.popupRef) {\n            const popupRef = Ref.fromString(annotation.popupRef);\n            if (popupRef) {\n              deletedAnnotations.put(popupRef, popupRef);\n            }\n          }\n          continue;\n        }\n        if (annotation.popup?.deleted) {\n          const popupRef = Ref.fromString(annotation.popupRef);\n          if (popupRef) {\n            deletedAnnotations.put(popupRef, popupRef);\n          }\n        }\n        existingAnnotations?.put(ref);\n        annotation.ref = ref;\n        promises.push(this.xref.fetchAsync(ref).then(obj => {\n          if (obj instanceof Dict) {\n            annotation.oldAnnotation = obj.clone();\n          }\n        }, () => {\n          warn(`Cannot fetch \\`oldAnnotation\\` for: ${ref}.`);\n        }));\n        delete annotation.id;\n      }\n    }\n    await Promise.all(promises);\n  }\n  async saveNewAnnotations(handler, task, annotations, imagePromises, changes) {\n    if (this.xfaFactory) {\n      throw new Error(\"XFA: Cannot save new annotations.\");\n    }\n    const partialEvaluator = this.#createPartialEvaluator(handler);\n    const deletedAnnotations = new RefSetCache();\n    const existingAnnotations = new RefSet();\n    await this.#replaceIdByRef(annotations, deletedAnnotations, existingAnnotations);\n    const pageDict = this.pageDict;\n    const annotationsArray = this.annotations.filter(a => !(a instanceof Ref && deletedAnnotations.has(a)));\n    const newData = await AnnotationFactory.saveNewAnnotations(partialEvaluator, this.xref, task, annotations, imagePromises, changes);\n    for (const {\n      ref\n    } of newData.annotations) {\n      if (ref instanceof Ref && !existingAnnotations.has(ref)) {\n        annotationsArray.push(ref);\n      }\n    }\n    const dict = pageDict.clone();\n    dict.set(\"Annots\", annotationsArray);\n    changes.put(this.ref, {\n      data: dict\n    });\n    for (const deletedRef of deletedAnnotations) {\n      changes.put(deletedRef, {\n        data: null\n      });\n    }\n  }\n  async save(handler, task, annotationStorage, changes) {\n    const partialEvaluator = this.#createPartialEvaluator(handler);\n    const annotations = await this._parsedAnnotations;\n    const promises = [];\n    for (const annotation of annotations) {\n      promises.push(annotation.save(partialEvaluator, task, annotationStorage, changes).catch(function (reason) {\n        warn(\"save - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n        return null;\n      }));\n    }\n    return Promise.all(promises);\n  }\n  async loadResources(keys) {\n    await (this.#resourcesPromise ??= this.pdfManager.ensure(this, \"resources\"));\n    await ObjectLoader.load(this.resources, keys, this.xref);\n  }\n  async #getMergedResources(streamDict, keys) {\n    const localResources = streamDict?.get(\"Resources\");\n    if (!(localResources instanceof Dict && localResources.size)) {\n      return this.resources;\n    }\n    await ObjectLoader.load(localResources, keys, this.xref);\n    return Dict.merge({\n      xref: this.xref,\n      dictArray: [localResources, this.resources],\n      mergeSubDicts: true\n    });\n  }\n  async getOperatorList({\n    handler,\n    sink,\n    task,\n    intent,\n    cacheKey,\n    pageIndex = this.pageIndex,\n    annotationStorage = null,\n    modifiedIds = null\n  }) {\n    const contentStreamPromise = this.getContentStream();\n    const resourcesPromise = this.loadResources(RESOURCES_KEYS_OPERATOR_LIST);\n    const partialEvaluator = this.#createPartialEvaluator(handler, pageIndex);\n    const newAnnotsByPage = !this.xfaFactory ? getNewAnnotationsMap(annotationStorage) : null;\n    const newAnnots = newAnnotsByPage?.get(this.pageIndex);\n    let newAnnotationsPromise = Promise.resolve(null);\n    let deletedAnnotations = null;\n    if (newAnnots) {\n      const annotationGlobalsPromise = this.pdfManager.ensureDoc(\"annotationGlobals\");\n      let imagePromises;\n      const missingBitmaps = new Set();\n      for (const {\n        bitmapId,\n        bitmap\n      } of newAnnots) {\n        if (bitmapId && !bitmap && !missingBitmaps.has(bitmapId)) {\n          missingBitmaps.add(bitmapId);\n        }\n      }\n      const {\n        isOffscreenCanvasSupported\n      } = this.evaluatorOptions;\n      if (missingBitmaps.size > 0) {\n        const annotationWithBitmaps = newAnnots.slice();\n        for (const [key, annotation] of annotationStorage) {\n          if (!key.startsWith(AnnotationEditorPrefix)) {\n            continue;\n          }\n          if (annotation.bitmap && missingBitmaps.has(annotation.bitmapId)) {\n            annotationWithBitmaps.push(annotation);\n          }\n        }\n        imagePromises = AnnotationFactory.generateImages(annotationWithBitmaps, this.xref, isOffscreenCanvasSupported);\n      } else {\n        imagePromises = AnnotationFactory.generateImages(newAnnots, this.xref, isOffscreenCanvasSupported);\n      }\n      deletedAnnotations = new RefSet();\n      newAnnotationsPromise = Promise.all([annotationGlobalsPromise, this.#replaceIdByRef(newAnnots, deletedAnnotations, null)]).then(([annotationGlobals]) => {\n        if (!annotationGlobals) {\n          return null;\n        }\n        return AnnotationFactory.printNewAnnotations(annotationGlobals, partialEvaluator, task, newAnnots, imagePromises);\n      });\n    }\n    const pageListPromise = Promise.all([contentStreamPromise, resourcesPromise]).then(async ([contentStream]) => {\n      const resources = await this.#getMergedResources(contentStream.dict, RESOURCES_KEYS_OPERATOR_LIST);\n      const opList = new OperatorList(intent, sink);\n      handler.send(\"StartRenderPage\", {\n        transparency: partialEvaluator.hasBlendModes(resources, this.nonBlendModesSet),\n        pageIndex,\n        cacheKey\n      });\n      await partialEvaluator.getOperatorList({\n        stream: contentStream,\n        task,\n        resources,\n        operatorList: opList\n      });\n      return opList;\n    });\n    let [pageOpList, annotations, newAnnotations] = await Promise.all([pageListPromise, this._parsedAnnotations, newAnnotationsPromise]);\n    if (newAnnotations) {\n      annotations = annotations.filter(a => !(a.ref && deletedAnnotations.has(a.ref)));\n      for (let i = 0, ii = newAnnotations.length; i < ii; i++) {\n        const newAnnotation = newAnnotations[i];\n        if (newAnnotation.refToReplace) {\n          const j = annotations.findIndex(a => a.ref && isRefsEqual(a.ref, newAnnotation.refToReplace));\n          if (j >= 0) {\n            annotations.splice(j, 1, newAnnotation);\n            newAnnotations.splice(i--, 1);\n            ii--;\n          }\n        }\n      }\n      annotations = annotations.concat(newAnnotations);\n    }\n    if (annotations.length === 0 || intent & RenderingIntentFlag.ANNOTATIONS_DISABLE) {\n      pageOpList.flush(true);\n      return {\n        length: pageOpList.totalLength\n      };\n    }\n    const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n      isEditing = !!(intent & RenderingIntentFlag.IS_EDITING),\n      intentAny = !!(intent & RenderingIntentFlag.ANY),\n      intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n      intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n    const opListPromises = [];\n    for (const annotation of annotations) {\n      if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage, renderForms) && annotation.mustBeViewedWhenEditing(isEditing, modifiedIds) || intentPrint && annotation.mustBePrinted(annotationStorage)) {\n        opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, annotationStorage).catch(function (reason) {\n          warn(\"getOperatorList - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n          return {\n            opList: null,\n            separateForm: false,\n            separateCanvas: false\n          };\n        }));\n      }\n    }\n    const opLists = await Promise.all(opListPromises);\n    let form = false,\n      canvas = false;\n    for (const {\n      opList,\n      separateForm,\n      separateCanvas\n    } of opLists) {\n      pageOpList.addOpList(opList);\n      form ||= separateForm;\n      canvas ||= separateCanvas;\n    }\n    pageOpList.flush(true, {\n      form,\n      canvas\n    });\n    return {\n      length: pageOpList.totalLength\n    };\n  }\n  async extractTextContent({\n    handler,\n    task,\n    includeMarkedContent,\n    disableNormalization,\n    sink,\n    intersector = null\n  }) {\n    const contentStreamPromise = this.getContentStream();\n    const resourcesPromise = this.loadResources(RESOURCES_KEYS_TEXT_CONTENT);\n    const langPromise = this.pdfManager.ensureCatalog(\"lang\");\n    const [contentStream,, lang] = await Promise.all([contentStreamPromise, resourcesPromise, langPromise]);\n    const resources = await this.#getMergedResources(contentStream.dict, RESOURCES_KEYS_TEXT_CONTENT);\n    const partialEvaluator = this.#createPartialEvaluator(handler);\n    return partialEvaluator.getTextContent({\n      stream: contentStream,\n      task,\n      resources,\n      includeMarkedContent,\n      disableNormalization,\n      sink,\n      viewBox: this.view,\n      lang,\n      intersector\n    });\n  }\n  async getStructTree() {\n    const structTreeRoot = await this.pdfManager.ensureCatalog(\"structTreeRoot\");\n    if (!structTreeRoot) {\n      return null;\n    }\n    await this._parsedAnnotations;\n    try {\n      const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [structTreeRoot]);\n      return await this.pdfManager.ensure(structTree, \"serializable\");\n    } catch (ex) {\n      warn(`getStructTree: \"${ex}\".`);\n      return null;\n    }\n  }\n  _parseStructTree(structTreeRoot) {\n    const tree = new StructTreePage(structTreeRoot, this.pageDict);\n    tree.parse(this.ref);\n    return tree;\n  }\n  async getAnnotationsData(handler, task, intent) {\n    const annotations = await this._parsedAnnotations;\n    if (annotations.length === 0) {\n      return annotations;\n    }\n    const annotationsData = [],\n      textContentPromises = [];\n    let partialEvaluator;\n    const intentAny = !!(intent & RenderingIntentFlag.ANY),\n      intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n      intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n    const highlightedAnnotations = [];\n    for (const annotation of annotations) {\n      const isVisible = intentAny || intentDisplay && annotation.viewable;\n      if (isVisible || intentPrint && annotation.printable) {\n        annotationsData.push(annotation.data);\n      }\n      if (annotation.hasTextContent && isVisible) {\n        partialEvaluator ??= this.#createPartialEvaluator(handler);\n        textContentPromises.push(annotation.extractTextContent(partialEvaluator, task, [-Infinity, -Infinity, Infinity, Infinity]).catch(function (reason) {\n          warn(`getAnnotationsData - ignoring textContent during \"${task.name}\" task: \"${reason}\".`);\n        }));\n      } else if (annotation.overlaysTextContent && isVisible) {\n        highlightedAnnotations.push(annotation);\n      }\n    }\n    if (highlightedAnnotations.length > 0) {\n      const intersector = new Intersector(highlightedAnnotations);\n      textContentPromises.push(this.extractTextContent({\n        handler,\n        task,\n        includeMarkedContent: false,\n        disableNormalization: false,\n        sink: null,\n        intersector\n      }).then(() => {\n        intersector.setText();\n      }));\n    }\n    await Promise.all(textContentPromises);\n    return annotationsData;\n  }\n  get annotations() {\n    const annots = this.#getInheritableProperty(\"Annots\");\n    return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n  }\n  get _parsedAnnotations() {\n    const promise = this.pdfManager.ensure(this, \"annotations\").then(async annots => {\n      if (annots.length === 0) {\n        return annots;\n      }\n      const [annotationGlobals, fieldObjects] = await Promise.all([this.pdfManager.ensureDoc(\"annotationGlobals\"), this.pdfManager.ensureDoc(\"fieldObjects\")]);\n      if (!annotationGlobals) {\n        return [];\n      }\n      const orphanFields = fieldObjects?.orphanFields;\n      const annotationPromises = [];\n      for (const annotationRef of annots) {\n        annotationPromises.push(AnnotationFactory.create(this.xref, annotationRef, annotationGlobals, this._localIdFactory, false, orphanFields, null, this.ref).catch(function (reason) {\n          warn(`_parsedAnnotations: \"${reason}\".`);\n          return null;\n        }));\n      }\n      const sortedAnnotations = [];\n      let popupAnnotations, widgetAnnotations;\n      for (const annotation of await Promise.all(annotationPromises)) {\n        if (!annotation) {\n          continue;\n        }\n        if (annotation instanceof WidgetAnnotation) {\n          (widgetAnnotations ||= []).push(annotation);\n          continue;\n        }\n        if (annotation instanceof PopupAnnotation) {\n          (popupAnnotations ||= []).push(annotation);\n          continue;\n        }\n        sortedAnnotations.push(annotation);\n      }\n      if (widgetAnnotations) {\n        sortedAnnotations.push(...widgetAnnotations);\n      }\n      if (popupAnnotations) {\n        sortedAnnotations.push(...popupAnnotations);\n      }\n      return sortedAnnotations;\n    });\n    return shadow(this, \"_parsedAnnotations\", promise);\n  }\n  get jsActions() {\n    const actions = collectActions(this.xref, this.pageDict, PageActionEventType);\n    return shadow(this, \"jsActions\", actions);\n  }\n  async collectAnnotationsByType(handler, task, types, promises, annotationGlobals) {\n    const {\n      pageIndex\n    } = this;\n    if (Object.hasOwn(this, \"_parsedAnnotations\")) {\n      const cachedAnnotations = await this._parsedAnnotations;\n      for (const {\n        data\n      } of cachedAnnotations) {\n        if (!types || types.has(data.annotationType)) {\n          data.pageIndex = pageIndex;\n          promises.push(Promise.resolve(data));\n        }\n      }\n      return;\n    }\n    const annots = await this.pdfManager.ensure(this, \"annotations\");\n    let partialEvaluator;\n    for (const annotationRef of annots) {\n      promises.push(AnnotationFactory.create(this.xref, annotationRef, annotationGlobals, this._localIdFactory, false, null, types, this.ref).then(async annotation => {\n        if (!annotation) {\n          return null;\n        }\n        annotation.data.pageIndex = pageIndex;\n        if (annotation.hasTextContent && annotation.viewable) {\n          partialEvaluator ??= this.#createPartialEvaluator(handler);\n          await annotation.extractTextContent(partialEvaluator, task, [-Infinity, -Infinity, Infinity, Infinity]);\n        }\n        return annotation.data;\n      }).catch(function (reason) {\n        warn(`collectAnnotationsByType: \"${reason}\".`);\n        return null;\n      }));\n    }\n  }\n}\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\nfunction find(stream, signature, limit = 1024, backwards = false) {\n  const signatureLength = signature.length;\n  const scanBytes = stream.peekBytes(limit);\n  const scanLength = scanBytes.length - signatureLength;\n  if (scanLength <= 0) {\n    return false;\n  }\n  if (backwards) {\n    const signatureEnd = signatureLength - 1;\n    let pos = scanBytes.length - 1;\n    while (pos >= signatureEnd) {\n      let j = 0;\n      while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        stream.pos += pos - signatureEnd;\n        return true;\n      }\n      pos--;\n    }\n  } else {\n    let pos = 0;\n    while (pos <= scanLength) {\n      let j = 0;\n      while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        stream.pos += pos;\n        return true;\n      }\n      pos++;\n    }\n  }\n  return false;\n}\nclass PDFDocument {\n  #pagePromises = new Map();\n  #version = null;\n  constructor(pdfManager, stream) {\n    if (stream.length <= 0) {\n      throw new InvalidPDFException(\"The PDF file is empty, i.e. its size is zero bytes.\");\n    }\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new XRef(stream, pdfManager);\n    const idCounters = {\n      font: 0\n    };\n    this._globalIdFactory = class {\n      static getDocId() {\n        return `g_${pdfManager.docId}`;\n      }\n      static createFontId() {\n        return `f${++idCounters.font}`;\n      }\n      static createObjId() {\n        unreachable(\"Abstract method `createObjId` called.\");\n      }\n      static getPageObjId() {\n        unreachable(\"Abstract method `getPageObjId` called.\");\n      }\n    };\n  }\n  parse(recoveryMode) {\n    this.xref.parse(recoveryMode);\n    this.catalog = new Catalog(this.pdfManager, this.xref);\n  }\n  get linearization() {\n    let linearization = null;\n    try {\n      linearization = Linearization.create(this.stream);\n    } catch (err) {\n      if (err instanceof MissingDataException) {\n        throw err;\n      }\n      info(err);\n    }\n    return shadow(this, \"linearization\", linearization);\n  }\n  get startXRef() {\n    const stream = this.stream;\n    let startXRef = 0;\n    if (this.linearization) {\n      stream.reset();\n      if (find(stream, ENDOBJ_SIGNATURE)) {\n        stream.skip(6);\n        let ch = stream.peekByte();\n        while (isWhiteSpace(ch)) {\n          stream.pos++;\n          ch = stream.peekByte();\n        }\n        startXRef = stream.pos - stream.start;\n      }\n    } else {\n      const step = 1024;\n      const startXRefLength = STARTXREF_SIGNATURE.length;\n      let found = false,\n        pos = stream.end;\n      while (!found && pos > 0) {\n        pos -= step - startXRefLength;\n        if (pos < 0) {\n          pos = 0;\n        }\n        stream.pos = pos;\n        found = find(stream, STARTXREF_SIGNATURE, step, true);\n      }\n      if (found) {\n        stream.skip(9);\n        let ch;\n        do {\n          ch = stream.getByte();\n        } while (isWhiteSpace(ch));\n        let str = \"\";\n        while (ch >= 0x20 && ch <= 0x39) {\n          str += String.fromCharCode(ch);\n          ch = stream.getByte();\n        }\n        startXRef = parseInt(str, 10);\n        if (isNaN(startXRef)) {\n          startXRef = 0;\n        }\n      }\n    }\n    return shadow(this, \"startXRef\", startXRef);\n  }\n  checkHeader() {\n    const stream = this.stream;\n    stream.reset();\n    if (!find(stream, PDF_HEADER_SIGNATURE)) {\n      return;\n    }\n    stream.moveStart();\n    stream.skip(PDF_HEADER_SIGNATURE.length);\n    let version = \"\",\n      ch;\n    while ((ch = stream.getByte()) > 0x20 && version.length < 7) {\n      version += String.fromCharCode(ch);\n    }\n    if (PDF_VERSION_REGEXP.test(version)) {\n      this.#version = version;\n    } else {\n      warn(`Invalid PDF header version: ${version}`);\n    }\n  }\n  parseStartXRef() {\n    this.xref.setStartXRef(this.startXRef);\n  }\n  get numPages() {\n    let num = 0;\n    if (this.catalog.hasActualNumPages) {\n      num = this.catalog.numPages;\n    } else if (this.xfaFactory) {\n      num = this.xfaFactory.getNumPages();\n    } else if (this.linearization) {\n      num = this.linearization.numPages;\n    } else {\n      num = this.catalog.numPages;\n    }\n    return shadow(this, \"numPages\", num);\n  }\n  #hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n    const RECURSION_LIMIT = 10;\n    if (!Array.isArray(fields)) {\n      return false;\n    }\n    return fields.every(field => {\n      field = this.xref.fetchIfRef(field);\n      if (!(field instanceof Dict)) {\n        return false;\n      }\n      if (field.has(\"Kids\")) {\n        if (++recursionDepth > RECURSION_LIMIT) {\n          warn(\"#hasOnlyDocumentSignatures: maximum recursion depth reached\");\n          return false;\n        }\n        return this.#hasOnlyDocumentSignatures(field.get(\"Kids\"), recursionDepth);\n      }\n      const isSignature = isName(field.get(\"FT\"), \"Sig\");\n      const rectangle = field.get(\"Rect\");\n      const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0);\n      return isSignature && isInvisible;\n    });\n  }\n  get _xfaStreams() {\n    const {\n      acroForm\n    } = this.catalog;\n    if (!acroForm) {\n      return null;\n    }\n    const xfa = acroForm.get(\"XFA\");\n    const entries = new Map([\"xdp:xdp\", \"template\", \"datasets\", \"config\", \"connectionSet\", \"localeSet\", \"stylesheet\", \"/xdp:xdp\"].map(e => [e, null]));\n    if (xfa instanceof BaseStream && !xfa.isEmpty) {\n      entries.set(\"xdp:xdp\", xfa);\n      return entries;\n    }\n    if (!Array.isArray(xfa) || xfa.length === 0) {\n      return null;\n    }\n    for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n      let name;\n      if (i === 0) {\n        name = \"xdp:xdp\";\n      } else if (i === ii - 2) {\n        name = \"/xdp:xdp\";\n      } else {\n        name = xfa[i];\n      }\n      if (!entries.has(name)) {\n        continue;\n      }\n      const data = this.xref.fetchIfRef(xfa[i + 1]);\n      if (!(data instanceof BaseStream) || data.isEmpty) {\n        continue;\n      }\n      entries.set(name, data);\n    }\n    return entries;\n  }\n  get xfaDatasets() {\n    const streams = this._xfaStreams;\n    if (!streams) {\n      return shadow(this, \"xfaDatasets\", null);\n    }\n    for (const key of [\"datasets\", \"xdp:xdp\"]) {\n      const stream = streams.get(key);\n      if (!stream) {\n        continue;\n      }\n      try {\n        const str = stringToUTF8String(stream.getString());\n        const data = {\n          [key]: str\n        };\n        return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n      } catch {\n        warn(\"XFA - Invalid utf-8 string.\");\n        break;\n      }\n    }\n    return shadow(this, \"xfaDatasets\", null);\n  }\n  get xfaData() {\n    const streams = this._xfaStreams;\n    if (!streams) {\n      return null;\n    }\n    const data = Object.create(null);\n    for (const [key, stream] of streams) {\n      if (!stream) {\n        continue;\n      }\n      try {\n        data[key] = stringToUTF8String(stream.getString());\n      } catch {\n        warn(\"XFA - Invalid utf-8 string.\");\n        return null;\n      }\n    }\n    return data;\n  }\n  get xfaFactory() {\n    let data;\n    if (this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm) {\n      data = this.xfaData;\n    }\n    return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n  }\n  get isPureXfa() {\n    return this.xfaFactory ? this.xfaFactory.isValid() : false;\n  }\n  get htmlForXfa() {\n    return this.xfaFactory ? this.xfaFactory.getPages() : null;\n  }\n  async #loadXfaImages() {\n    const xfaImages = await this.pdfManager.ensureCatalog(\"xfaImages\");\n    if (!xfaImages) {\n      return;\n    }\n    this.xfaFactory.setImages(xfaImages);\n  }\n  async #loadXfaFonts(handler, task) {\n    const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n    if (!acroForm) {\n      return;\n    }\n    const resources = await acroForm.getAsync(\"DR\");\n    if (!(resources instanceof Dict)) {\n      return;\n    }\n    await ObjectLoader.load(resources, [\"Font\"], this.xref);\n    const fontRes = resources.get(\"Font\");\n    if (!(fontRes instanceof Dict)) {\n      return;\n    }\n    const options = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions, {\n      useSystemFonts: false\n    });\n    const {\n      builtInCMapCache,\n      fontCache,\n      standardFontDataCache\n    } = this.catalog;\n    const partialEvaluator = new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: -1,\n      idFactory: this._globalIdFactory,\n      fontCache,\n      builtInCMapCache,\n      standardFontDataCache,\n      options\n    });\n    const operatorList = new OperatorList();\n    const pdfFonts = [];\n    const initialState = {\n      get font() {\n        return pdfFonts.at(-1);\n      },\n      set font(font) {\n        pdfFonts.push(font);\n      },\n      clone() {\n        return this;\n      }\n    };\n    const parseFont = (fontName, fallbackFontDict, cssFontInfo) => partialEvaluator.handleSetFont(resources, [Name.get(fontName), 1], null, operatorList, task, initialState, fallbackFontDict, cssFontInfo).catch(reason => {\n      warn(`loadXfaFonts: \"${reason}\".`);\n      return null;\n    });\n    const promises = [];\n    for (const [fontName, font] of fontRes) {\n      const descriptor = font.get(\"FontDescriptor\");\n      if (!(descriptor instanceof Dict)) {\n        continue;\n      }\n      let fontFamily = descriptor.get(\"FontFamily\");\n      fontFamily = fontFamily.replaceAll(/ +(\\d)/g, \"$1\");\n      const fontWeight = descriptor.get(\"FontWeight\");\n      const italicAngle = -descriptor.get(\"ItalicAngle\");\n      const cssFontInfo = {\n        fontFamily,\n        fontWeight,\n        italicAngle\n      };\n      if (!validateCSSFont(cssFontInfo)) {\n        continue;\n      }\n      promises.push(parseFont(fontName, null, cssFontInfo));\n    }\n    await Promise.all(promises);\n    const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n    if (!missingFonts) {\n      return;\n    }\n    options.ignoreErrors = true;\n    promises.length = 0;\n    pdfFonts.length = 0;\n    const reallyMissingFonts = new Set();\n    for (const missing of missingFonts) {\n      if (!getXfaFontName(`${missing}-Regular`)) {\n        reallyMissingFonts.add(missing);\n      }\n    }\n    if (reallyMissingFonts.size) {\n      missingFonts.push(\"PdfJS-Fallback\");\n    }\n    for (const missing of missingFonts) {\n      if (reallyMissingFonts.has(missing)) {\n        continue;\n      }\n      for (const fontInfo of [{\n        name: \"Regular\",\n        fontWeight: 400,\n        italicAngle: 0\n      }, {\n        name: \"Bold\",\n        fontWeight: 700,\n        italicAngle: 0\n      }, {\n        name: \"Italic\",\n        fontWeight: 400,\n        italicAngle: 12\n      }, {\n        name: \"BoldItalic\",\n        fontWeight: 700,\n        italicAngle: 12\n      }]) {\n        const name = `${missing}-${fontInfo.name}`;\n        promises.push(parseFont(name, getXfaFontDict(name), {\n          fontFamily: missing,\n          fontWeight: fontInfo.fontWeight,\n          italicAngle: fontInfo.italicAngle\n        }));\n      }\n    }\n    await Promise.all(promises);\n    this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n  }\n  loadXfaResources(handler, task) {\n    return Promise.all([this.#loadXfaFonts(handler, task).catch(() => {}), this.#loadXfaImages()]);\n  }\n  serializeXfaData(annotationStorage) {\n    return this.xfaFactory ? this.xfaFactory.serializeData(annotationStorage) : null;\n  }\n  get version() {\n    return this.catalog.version || this.#version;\n  }\n  get formInfo() {\n    const formInfo = {\n      hasFields: false,\n      hasAcroForm: false,\n      hasXfa: false,\n      hasSignatures: false\n    };\n    const {\n      acroForm\n    } = this.catalog;\n    if (!acroForm) {\n      return shadow(this, \"formInfo\", formInfo);\n    }\n    try {\n      const fields = acroForm.get(\"Fields\");\n      const hasFields = Array.isArray(fields) && fields.length > 0;\n      formInfo.hasFields = hasFields;\n      const xfa = acroForm.get(\"XFA\");\n      formInfo.hasXfa = Array.isArray(xfa) && xfa.length > 0 || xfa instanceof BaseStream && !xfa.isEmpty;\n      const sigFlags = acroForm.get(\"SigFlags\");\n      const hasSignatures = !!(sigFlags & 0x1);\n      const hasOnlyDocumentSignatures = hasSignatures && this.#hasOnlyDocumentSignatures(fields);\n      formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n      formInfo.hasSignatures = hasSignatures;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Cannot fetch form information: \"${ex}\".`);\n    }\n    return shadow(this, \"formInfo\", formInfo);\n  }\n  get documentInfo() {\n    const {\n      catalog,\n      formInfo,\n      xref\n    } = this;\n    const docInfo = {\n      PDFFormatVersion: this.version,\n      Language: catalog.lang,\n      EncryptFilterName: xref.encrypt?.filterName ?? null,\n      IsLinearized: !!this.linearization,\n      IsAcroFormPresent: formInfo.hasAcroForm,\n      IsXFAPresent: formInfo.hasXfa,\n      IsCollectionPresent: !!catalog.collection,\n      IsSignaturesPresent: formInfo.hasSignatures\n    };\n    let infoDict;\n    try {\n      infoDict = xref.trailer.get(\"Info\");\n    } catch (err) {\n      if (err instanceof MissingDataException) {\n        throw err;\n      }\n      info(\"The document information dictionary is invalid.\");\n    }\n    if (!(infoDict instanceof Dict)) {\n      return shadow(this, \"documentInfo\", docInfo);\n    }\n    for (const [key, value] of infoDict) {\n      switch (key) {\n        case \"Title\":\n        case \"Author\":\n        case \"Subject\":\n        case \"Keywords\":\n        case \"Creator\":\n        case \"Producer\":\n        case \"CreationDate\":\n        case \"ModDate\":\n          if (typeof value === \"string\") {\n            docInfo[key] = stringToPDFString(value);\n            continue;\n          }\n          break;\n        case \"Trapped\":\n          if (value instanceof Name) {\n            docInfo[key] = value;\n            continue;\n          }\n          break;\n        default:\n          let customValue;\n          switch (typeof value) {\n            case \"string\":\n              customValue = stringToPDFString(value);\n              break;\n            case \"number\":\n            case \"boolean\":\n              customValue = value;\n              break;\n            default:\n              if (value instanceof Name) {\n                customValue = value;\n              }\n              break;\n          }\n          if (customValue === undefined) {\n            warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n            continue;\n          }\n          docInfo.Custom ??= Object.create(null);\n          docInfo.Custom[key] = customValue;\n          continue;\n      }\n      warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n    }\n    return shadow(this, \"documentInfo\", docInfo);\n  }\n  get fingerprints() {\n    const FINGERPRINT_FIRST_BYTES = 1024;\n    const EMPTY_FINGERPRINT = \"\\x00\".repeat(16);\n    function validate(data) {\n      return typeof data === \"string\" && data.length === 16 && data !== EMPTY_FINGERPRINT;\n    }\n    const id = this.xref.trailer.get(\"ID\");\n    let hashOriginal, hashModified;\n    if (Array.isArray(id) && validate(id[0])) {\n      hashOriginal = stringToBytes(id[0]);\n      if (id[1] !== id[0] && validate(id[1])) {\n        hashModified = stringToBytes(id[1]);\n      }\n    } else {\n      hashOriginal = calculateMD5(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n    }\n    return shadow(this, \"fingerprints\", [hashOriginal.toHex(), hashModified?.toHex() ?? null]);\n  }\n  async #getLinearizationPage(pageIndex) {\n    const {\n      catalog,\n      linearization,\n      xref\n    } = this;\n    const ref = Ref.get(linearization.objectNumberFirst, 0);\n    try {\n      const obj = await xref.fetchAsync(ref);\n      if (obj instanceof Dict) {\n        let type = obj.getRaw(\"Type\");\n        if (type instanceof Ref) {\n          type = await xref.fetchAsync(type);\n        }\n        if (isName(type, \"Page\") || !obj.has(\"Type\") && !obj.has(\"Kids\") && obj.has(\"Contents\")) {\n          if (!catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1);\n          }\n          if (!catalog.pageIndexCache.has(ref)) {\n            catalog.pageIndexCache.put(ref, 0);\n          }\n          return [obj, ref];\n        }\n      }\n      throw new FormatError(\"The Linearization dictionary doesn't point to a valid Page dictionary.\");\n    } catch (reason) {\n      warn(`_getLinearizationPage: \"${reason.message}\".`);\n      return catalog.getPageDict(pageIndex);\n    }\n  }\n  getPage(pageIndex) {\n    const cachedPromise = this.#pagePromises.get(pageIndex);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const {\n      catalog,\n      linearization,\n      xfaFactory\n    } = this;\n    let promise;\n    if (xfaFactory) {\n      promise = Promise.resolve([Dict.empty, null]);\n    } else if (linearization?.pageFirst === pageIndex) {\n      promise = this.#getLinearizationPage(pageIndex);\n    } else {\n      promise = catalog.getPageDict(pageIndex);\n    }\n    promise = promise.then(([pageDict, ref]) => new Page({\n      pdfManager: this.pdfManager,\n      xref: this.xref,\n      pageIndex,\n      pageDict,\n      ref,\n      globalIdFactory: this._globalIdFactory,\n      fontCache: catalog.fontCache,\n      builtInCMapCache: catalog.builtInCMapCache,\n      standardFontDataCache: catalog.standardFontDataCache,\n      globalColorSpaceCache: catalog.globalColorSpaceCache,\n      globalImageCache: catalog.globalImageCache,\n      systemFontCache: catalog.systemFontCache,\n      nonBlendModesSet: catalog.nonBlendModesSet,\n      xfaFactory\n    }));\n    this.#pagePromises.set(pageIndex, promise);\n    return promise;\n  }\n  async checkFirstPage(recoveryMode = false) {\n    if (recoveryMode) {\n      return;\n    }\n    try {\n      await this.getPage(0);\n    } catch (reason) {\n      if (reason instanceof XRefEntryException) {\n        this.#pagePromises.delete(0);\n        await this.cleanup();\n        throw new XRefParseException();\n      }\n    }\n  }\n  async checkLastPage(recoveryMode = false) {\n    const {\n      catalog,\n      pdfManager\n    } = this;\n    catalog.setActualNumPages();\n    let numPages;\n    try {\n      await Promise.all([pdfManager.ensureDoc(\"xfaFactory\"), pdfManager.ensureDoc(\"linearization\"), pdfManager.ensureCatalog(\"numPages\")]);\n      if (this.xfaFactory) {\n        return;\n      } else if (this.linearization) {\n        numPages = this.linearization.numPages;\n      } else {\n        numPages = catalog.numPages;\n      }\n      if (!Number.isInteger(numPages)) {\n        throw new FormatError(\"Page count is not an integer.\");\n      } else if (numPages <= 1) {\n        return;\n      }\n      await this.getPage(numPages - 1);\n    } catch (reason) {\n      this.#pagePromises.delete(numPages - 1);\n      await this.cleanup();\n      if (reason instanceof XRefEntryException && !recoveryMode) {\n        throw new XRefParseException();\n      }\n      warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n      let pagesTree;\n      try {\n        pagesTree = await catalog.getAllPageDicts(recoveryMode);\n      } catch (reasonAll) {\n        if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n          throw new XRefParseException();\n        }\n        catalog.setActualNumPages(1);\n        return;\n      }\n      for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n        let promise;\n        if (pageDict instanceof Error) {\n          promise = Promise.reject(pageDict);\n          promise.catch(() => {});\n        } else {\n          promise = Promise.resolve(new Page({\n            pdfManager,\n            xref: this.xref,\n            pageIndex,\n            pageDict,\n            ref,\n            globalIdFactory: this._globalIdFactory,\n            fontCache: catalog.fontCache,\n            builtInCMapCache: catalog.builtInCMapCache,\n            standardFontDataCache: catalog.standardFontDataCache,\n            globalColorSpaceCache: this.globalColorSpaceCache,\n            globalImageCache: catalog.globalImageCache,\n            systemFontCache: catalog.systemFontCache,\n            nonBlendModesSet: catalog.nonBlendModesSet,\n            xfaFactory: null\n          }));\n        }\n        this.#pagePromises.set(pageIndex, promise);\n      }\n      catalog.setActualNumPages(pagesTree.size);\n    }\n  }\n  async fontFallback(id, handler) {\n    const {\n      catalog,\n      pdfManager\n    } = this;\n    for (const translatedFont of await Promise.all(catalog.fontCache)) {\n      if (translatedFont.loadedName === id) {\n        translatedFont.fallback(handler, pdfManager.evaluatorOptions);\n        return;\n      }\n    }\n  }\n  async cleanup(manuallyTriggered = false) {\n    return this.catalog ? this.catalog.cleanup(manuallyTriggered) : clearGlobalCaches();\n  }\n  async #collectFieldObjects(name, parentRef, fieldRef, promises, annotationGlobals, visitedRefs, orphanFields) {\n    const {\n      xref\n    } = this;\n    if (!(fieldRef instanceof Ref) || visitedRefs.has(fieldRef)) {\n      return;\n    }\n    visitedRefs.put(fieldRef);\n    const field = await xref.fetchAsync(fieldRef);\n    if (!(field instanceof Dict)) {\n      return;\n    }\n    let subtype = await field.getAsync(\"Subtype\");\n    subtype = subtype instanceof Name ? subtype.name : null;\n    switch (subtype) {\n      case \"Link\":\n        return;\n    }\n    if (field.has(\"T\")) {\n      const partName = stringToPDFString(await field.getAsync(\"T\"));\n      name = name === \"\" ? partName : `${name}.${partName}`;\n    } else {\n      let obj = field;\n      while (true) {\n        obj = obj.getRaw(\"Parent\") || parentRef;\n        if (obj instanceof Ref) {\n          if (visitedRefs.has(obj)) {\n            break;\n          }\n          obj = await xref.fetchAsync(obj);\n        }\n        if (!(obj instanceof Dict)) {\n          break;\n        }\n        if (obj.has(\"T\")) {\n          const partName = stringToPDFString(await obj.getAsync(\"T\"));\n          name = name === \"\" ? partName : `${name}.${partName}`;\n          break;\n        }\n      }\n    }\n    if (parentRef && !field.has(\"Parent\") && isName(field.get(\"Subtype\"), \"Widget\")) {\n      orphanFields.put(fieldRef, parentRef);\n    }\n    promises.getOrInsertComputed(name, makeArr).push(AnnotationFactory.create(xref, fieldRef, annotationGlobals, null, true, orphanFields, null, null).then(annotation => annotation?.getFieldObject()).catch(function (reason) {\n      warn(`#collectFieldObjects: \"${reason}\".`);\n      return null;\n    }));\n    if (!field.has(\"Kids\")) {\n      return;\n    }\n    const kids = await field.getAsync(\"Kids\");\n    if (Array.isArray(kids)) {\n      for (const kid of kids) {\n        await this.#collectFieldObjects(name, fieldRef, kid, promises, annotationGlobals, visitedRefs, orphanFields);\n      }\n    }\n  }\n  get fieldObjects() {\n    const promise = this.pdfManager.ensureDoc(\"formInfo\").then(async formInfo => {\n      if (!formInfo.hasFields) {\n        return null;\n      }\n      const annotationGlobals = await this.annotationGlobals;\n      if (!annotationGlobals) {\n        return null;\n      }\n      const {\n        acroForm\n      } = annotationGlobals;\n      const visitedRefs = new RefSet();\n      const allFields = Object.create(null);\n      const fieldPromises = new Map();\n      const orphanFields = new RefSetCache();\n      for (const fieldRef of acroForm.get(\"Fields\")) {\n        await this.#collectFieldObjects(\"\", null, fieldRef, fieldPromises, annotationGlobals, visitedRefs, orphanFields);\n      }\n      const allPromises = [];\n      for (const [name, promises] of fieldPromises) {\n        allPromises.push(Promise.all(promises).then(fields => {\n          fields = fields.filter(field => !!field);\n          if (fields.length > 0) {\n            allFields[name] = fields;\n          }\n        }));\n      }\n      await Promise.all(allPromises);\n      return {\n        allFields: objectSize(allFields) > 0 ? allFields : null,\n        orphanFields\n      };\n    });\n    return shadow(this, \"fieldObjects\", promise);\n  }\n  get hasJSActions() {\n    const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n    return shadow(this, \"hasJSActions\", promise);\n  }\n  async _parseHasJSActions() {\n    const [catalogJsActions, fieldObjects] = await Promise.all([this.pdfManager.ensureCatalog(\"jsActions\"), this.pdfManager.ensureDoc(\"fieldObjects\")]);\n    if (catalogJsActions) {\n      return true;\n    }\n    if (fieldObjects?.allFields) {\n      return Object.values(fieldObjects.allFields).some(fieldObject => fieldObject.some(object => object.actions !== null));\n    }\n    return false;\n  }\n  get calculationOrderIds() {\n    const calculationOrder = this.catalog.acroForm?.get(\"CO\");\n    if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n      return shadow(this, \"calculationOrderIds\", null);\n    }\n    const ids = [];\n    for (const id of calculationOrder) {\n      if (id instanceof Ref) {\n        ids.push(id.toString());\n      }\n    }\n    return shadow(this, \"calculationOrderIds\", ids.length ? ids : null);\n  }\n  get annotationGlobals() {\n    return shadow(this, \"annotationGlobals\", AnnotationFactory.createGlobals(this.pdfManager));\n  }\n  async toJSObject(value, firstCall = true) {\n    throw new Error(\"Not implemented: toJSObject\");\n  }\n}\n\n;// ./src/core/pdf_manager.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction parseDocBaseUrl(url) {\n  if (url) {\n    const absoluteUrl = createValidAbsoluteUrl(url);\n    if (absoluteUrl) {\n      return absoluteUrl.href;\n    }\n    warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n  }\n  return null;\n}\nclass BasePdfManager {\n  constructor({\n    docBaseUrl,\n    docId,\n    enableXfa,\n    evaluatorOptions,\n    handler,\n    password\n  }) {\n    this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n    this._docId = docId;\n    this._password = password;\n    this.enableXfa = enableXfa;\n    evaluatorOptions.isOffscreenCanvasSupported &&= FeatureTest.isOffscreenCanvasSupported;\n    evaluatorOptions.isImageDecoderSupported &&= FeatureTest.isImageDecoderSupported;\n    this.evaluatorOptions = Object.freeze(evaluatorOptions);\n    ImageResizer.setOptions(evaluatorOptions);\n    JpegStream.setOptions(evaluatorOptions);\n    OperatorList.setOptions(evaluatorOptions);\n    const options = {\n      ...evaluatorOptions,\n      handler\n    };\n    IccColorSpace.setOptions(options);\n    CmykICCBasedCS.setOptions(options);\n    PDFFunctionFactory.setOptions(options);\n    Pattern.setOptions(options);\n    WasmImage.setOptions(options);\n  }\n  get docId() {\n    return this._docId;\n  }\n  get password() {\n    return this._password;\n  }\n  get docBaseUrl() {\n    return this._docBaseUrl;\n  }\n  ensureDoc(prop, args) {\n    return this.ensure(this.pdfDocument, prop, args);\n  }\n  ensureXRef(prop, args) {\n    return this.ensure(this.pdfDocument.xref, prop, args);\n  }\n  ensureCatalog(prop, args) {\n    return this.ensure(this.pdfDocument.catalog, prop, args);\n  }\n  async initDocument(recoveryMode) {\n    await this.ensureDoc(\"checkHeader\");\n    await this.ensureDoc(\"parseStartXRef\");\n    await this.ensureDoc(\"parse\", [recoveryMode]);\n    await this.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n    await this.ensureDoc(\"checkLastPage\", [recoveryMode]);\n  }\n  getPage(pageIndex) {\n    return this.pdfDocument.getPage(pageIndex);\n  }\n  fontFallback(id, handler) {\n    return this.pdfDocument.fontFallback(id, handler);\n  }\n  cleanup(manuallyTriggered = false) {\n    return this.pdfDocument.cleanup(manuallyTriggered);\n  }\n  async ensure(obj, prop, args) {\n    unreachable(\"Abstract method `ensure` called\");\n  }\n  requestRange(begin, end) {\n    unreachable(\"Abstract method `requestRange` called\");\n  }\n  requestLoadedStream(noFetch = false) {\n    unreachable(\"Abstract method `requestLoadedStream` called\");\n  }\n  sendProgressiveData(chunk) {\n    unreachable(\"Abstract method `sendProgressiveData` called\");\n  }\n  updatePassword(password) {\n    this._password = password;\n    this.pdfDocument.xref.encrypt?.setPassword(password);\n  }\n  terminate(reason) {\n    unreachable(\"Abstract method `terminate` called\");\n  }\n}\nclass LocalPdfManager extends BasePdfManager {\n  constructor(args) {\n    super(args);\n    const stream = new Stream(args.source);\n    this.pdfDocument = new PDFDocument(this, stream);\n    this._loadedStreamPromise = Promise.resolve(stream);\n  }\n  async ensure(obj, prop, args) {\n    const value = obj[prop];\n    if (typeof value === \"function\") {\n      return value.apply(obj, args);\n    }\n    return value;\n  }\n  requestRange(begin, end) {\n    return Promise.resolve();\n  }\n  requestLoadedStream(noFetch = false) {\n    return this._loadedStreamPromise;\n  }\n  terminate(reason) {}\n}\nclass NetworkPdfManager extends BasePdfManager {\n  constructor(args) {\n    super(args);\n    this.streamManager = new ChunkedStreamManager(args.source, {\n      msgHandler: args.handler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize\n    });\n    this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n  }\n  async ensure(obj, prop, args) {\n    try {\n      const value = obj[prop];\n      if (typeof value === \"function\") {\n        return await value.apply(obj, args);\n      }\n      return value;\n    } catch (ex) {\n      if (!(ex instanceof MissingDataException)) {\n        throw ex;\n      }\n      await this.requestRange(ex.begin, ex.end);\n      return this.ensure(obj, prop, args);\n    }\n  }\n  requestRange(begin, end) {\n    return this.streamManager.requestRange(begin, end);\n  }\n  requestLoadedStream(noFetch = false) {\n    return this.streamManager.requestAllChunks(noFetch);\n  }\n  sendProgressiveData(chunk) {\n    this.streamManager.onReceiveData({\n      chunk\n    });\n  }\n  terminate(reason) {\n    this.streamManager.abort(reason);\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/core/writer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nasync function writeObject(ref, obj, buffer, {\n  encrypt = null,\n  encryptRef = null\n}) {\n  const transform = encrypt && encryptRef !== ref ? encrypt.createCipherTransform(ref.num, ref.gen) : null;\n  buffer.push(`${ref.num} ${ref.gen} obj\\n`);\n  await writeValue(obj, buffer, transform);\n  buffer.push(\"\\nendobj\\n\");\n}\nasync function writeDict(dict, buffer, transform) {\n  buffer.push(\"<<\");\n  for (const [key, rawObj] of dict.getRawEntries()) {\n    buffer.push(` /${escapePDFName(key)} `);\n    await writeValue(rawObj, buffer, transform);\n  }\n  buffer.push(\">>\");\n}\nasync function writeStream(stream, buffer, transform) {\n  stream = stream.getOriginalStream();\n  stream.reset();\n  let bytes = stream.getBytes();\n  const {\n    dict\n  } = stream;\n  const [filter, params] = await Promise.all([dict.getAsync(\"Filter\"), dict.getAsync(\"DecodeParms\")]);\n  const filterZero = Array.isArray(filter) ? await dict.xref.fetchIfRefAsync(filter[0]) : filter;\n  const isFilterZeroFlateDecode = isName(filterZero, \"FlateDecode\");\n  const isFilterZeroImageDecode = isName(filterZero, \"DCTDecode\") || isName(filterZero, \"JPXDecode\") || isName(filterZero, \"JBIG2Decode\") || isName(filterZero, \"CCITTFaxDecode\") || isName(filterZero, \"LZWDecode\");\n  const isFilterZeroCompressedObject = isFilterZeroFlateDecode || isFilterZeroImageDecode || isName(filterZero, \"BrotliDecode\");\n  const MIN_LENGTH_FOR_COMPRESSING = 256;\n  if (!isFilterZeroCompressedObject && bytes.length >= MIN_LENGTH_FOR_COMPRESSING) {\n    try {\n      const cs = new CompressionStream(\"deflate\");\n      const writer = cs.writable.getWriter();\n      await writer.ready;\n      writer.write(bytes).then(async () => {\n        await writer.ready;\n        await writer.close();\n      }).catch(() => {});\n      bytes = await new Response(cs.readable).bytes();\n      let newFilter, newParams;\n      if (!filter) {\n        newFilter = Name.get(\"FlateDecode\");\n      } else if (!isFilterZeroFlateDecode) {\n        newFilter = Array.isArray(filter) ? [Name.get(\"FlateDecode\"), ...filter] : [Name.get(\"FlateDecode\"), filter];\n        if (params) {\n          newParams = Array.isArray(params) ? [null, ...params] : [null, params];\n        }\n      }\n      if (newFilter) {\n        dict.set(\"Filter\", newFilter);\n      }\n      if (newParams) {\n        dict.set(\"DecodeParms\", newParams);\n      }\n    } catch (ex) {\n      info(`writeStream - cannot compress data: \"${ex}\".`);\n    }\n  }\n  let string = bytesToString(bytes);\n  if (transform) {\n    string = transform.encryptString(string);\n  }\n  dict.set(\"Length\", string.length);\n  await writeDict(dict, buffer, transform);\n  buffer.push(\" stream\\n\", string, \"\\nendstream\");\n}\nasync function writeArray(array, buffer, transform) {\n  buffer.push(\"[\");\n  for (let i = 0, ii = array.length; i < ii; i++) {\n    await writeValue(array[i], buffer, transform);\n    if (i < ii - 1) {\n      buffer.push(\" \");\n    }\n  }\n  buffer.push(\"]\");\n}\nasync function writeValue(value, buffer, transform) {\n  if (value instanceof Name) {\n    buffer.push(`/${escapePDFName(value.name)}`);\n  } else if (value instanceof Ref) {\n    buffer.push(`${value.num} ${value.gen} R`);\n  } else if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n    await writeArray(value, buffer, transform);\n  } else if (typeof value === \"string\") {\n    if (transform) {\n      value = transform.encryptString(value);\n    }\n    buffer.push(`(${escapeString(value)})`);\n  } else if (typeof value === \"number\") {\n    buffer.push(value.toFixed(10).replace(/\\.?0+$/, \"\"));\n  } else if (typeof value === \"boolean\") {\n    buffer.push(value.toString());\n  } else if (value instanceof Dict) {\n    await writeDict(value, buffer, transform);\n  } else if (value instanceof BaseStream) {\n    await writeStream(value, buffer, transform);\n  } else if (value === null) {\n    buffer.push(\"null\");\n  } else {\n    warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n  }\n}\nfunction writeInt(number, size, offset, buffer) {\n  for (let i = size + offset - 1; i > offset - 1; i--) {\n    buffer[i] = number & 0xff;\n    number >>= 8;\n  }\n  return offset + size;\n}\nfunction writeString(string, offset, buffer) {\n  const ii = string.length;\n  for (let i = 0; i < ii; i++) {\n    buffer[offset + i] = string.charCodeAt(i) & 0xff;\n  }\n  return offset + ii;\n}\nfunction computeMD5(filesize, xrefInfo) {\n  const time = Math.floor(Date.now() / 1000);\n  const filename = xrefInfo.filename || \"\";\n  const md5Buffer = [time.toString(), filename, filesize.toString(), ...xrefInfo.infoMap.values()];\n  const md5BufferLen = Math.sumPrecise(md5Buffer.map(str => str.length));\n  const array = new Uint8Array(md5BufferLen);\n  let offset = 0;\n  for (const str of md5Buffer) {\n    offset = writeString(str, offset, array);\n  }\n  return bytesToString(calculateMD5(array, 0, array.length));\n}\nfunction writeXFADataForAcroform(str, changes) {\n  const xml = new SimpleXMLParser({\n    hasAttributes: true\n  }).parseFromString(str);\n  for (const {\n    xfa\n  } of changes) {\n    if (!xfa) {\n      continue;\n    }\n    const {\n      path,\n      value\n    } = xfa;\n    if (!path) {\n      continue;\n    }\n    const nodePath = parseXFAPath(path);\n    let node = xml.documentElement.searchNode(nodePath, 0);\n    if (!node && nodePath.length > 1) {\n      node = xml.documentElement.searchNode([nodePath.at(-1)], 0);\n    }\n    if (node) {\n      node.childNodes = Array.isArray(value) ? value.map(val => new SimpleDOMNode(\"value\", val)) : [new SimpleDOMNode(\"#text\", value)];\n    } else {\n      warn(`Node not found for path: ${path}`);\n    }\n  }\n  const buffer = [];\n  xml.documentElement.dump(buffer);\n  return buffer.join(\"\");\n}\nasync function updateAcroform({\n  xref,\n  acroForm,\n  acroFormRef,\n  hasXfa,\n  hasXfaDatasetsEntry,\n  xfaDatasetsRef,\n  needAppearances,\n  changes\n}) {\n  if (hasXfa && !hasXfaDatasetsEntry && !xfaDatasetsRef) {\n    warn(\"XFA - Cannot save it\");\n  }\n  if (!needAppearances && (!hasXfa || !xfaDatasetsRef || hasXfaDatasetsEntry)) {\n    return;\n  }\n  const dict = acroForm.clone();\n  if (hasXfa && !hasXfaDatasetsEntry) {\n    const newXfa = acroForm.get(\"XFA\").slice();\n    newXfa.splice(2, 0, \"datasets\");\n    newXfa.splice(3, 0, xfaDatasetsRef);\n    dict.set(\"XFA\", newXfa);\n  }\n  if (needAppearances) {\n    dict.set(\"NeedAppearances\", true);\n  }\n  changes.put(acroFormRef, {\n    data: dict\n  });\n}\nfunction updateXFA({\n  xfaData,\n  xfaDatasetsRef,\n  changes,\n  xref\n}) {\n  if (xfaData === null) {\n    const datasets = xref.fetchIfRef(xfaDatasetsRef);\n    xfaData = writeXFADataForAcroform(datasets.getString(), changes);\n  }\n  const xfaDataStream = new StringStream(xfaData, new Dict(xref));\n  xfaDataStream.dict.setIfName(\"Type\", \"EmbeddedFile\");\n  changes.put(xfaDatasetsRef, {\n    data: xfaDataStream\n  });\n}\nasync function getXRefTable(xrefInfo, baseOffset, newRefs, newXref, buffer) {\n  buffer.push(\"xref\\n\");\n  const indexes = getIndexes(newRefs);\n  let indexesPosition = 0;\n  for (const {\n    ref,\n    data\n  } of newRefs) {\n    if (ref.num === indexes[indexesPosition]) {\n      buffer.push(`${indexes[indexesPosition]} ${indexes[indexesPosition + 1]}\\n`);\n      indexesPosition += 2;\n    }\n    if (data !== null) {\n      buffer.push(`${baseOffset.toString().padStart(10, \"0\")} ${Math.min(ref.gen, 0xffff).toString().padStart(5, \"0\")} n\\r\\n`);\n      baseOffset += data.length;\n    } else {\n      buffer.push(`0000000000 ${Math.min(ref.gen + 1, 0xffff).toString().padStart(5, \"0\")} f\\r\\n`);\n    }\n  }\n  computeIDs(baseOffset, xrefInfo, newXref);\n  buffer.push(\"trailer\\n\");\n  await writeDict(newXref, buffer, null);\n  buffer.push(\"\\nstartxref\\n\", baseOffset.toString(), \"\\n%%EOF\\n\");\n}\nfunction getIndexes(newRefs) {\n  const indexes = [];\n  for (const {\n    ref\n  } of newRefs) {\n    if (ref.num === indexes.at(-2) + indexes.at(-1)) {\n      indexes[indexes.length - 1] += 1;\n    } else {\n      indexes.push(ref.num, 1);\n    }\n  }\n  return indexes;\n}\nasync function getXRefStreamTable(xrefInfo, baseOffset, newRefs, newXref, buffer) {\n  const xrefTableData = [];\n  let maxOffset = 0;\n  let maxGen = 0;\n  for (const {\n    ref,\n    data,\n    objStreamRef,\n    index\n  } of newRefs) {\n    let gen;\n    maxOffset = Math.max(maxOffset, baseOffset);\n    if (objStreamRef) {\n      gen = index;\n      xrefTableData.push([2, objStreamRef.num, gen]);\n    } else if (data !== null) {\n      gen = Math.min(ref.gen, 0xffff);\n      xrefTableData.push([1, baseOffset, gen]);\n      baseOffset += data.length;\n    } else {\n      gen = Math.min(ref.gen + 1, 0xffff);\n      xrefTableData.push([0, 0, gen]);\n    }\n    maxGen = Math.max(maxGen, gen);\n  }\n  newXref.set(\"Index\", getIndexes(newRefs));\n  const offsetSize = getSizeInBytes(maxOffset);\n  const maxGenSize = getSizeInBytes(maxGen);\n  const sizes = [1, offsetSize, maxGenSize];\n  newXref.set(\"W\", sizes);\n  computeIDs(baseOffset, xrefInfo, newXref);\n  const structSize = Math.sumPrecise(sizes);\n  const data = new Uint8Array(structSize * xrefTableData.length);\n  const stream = new Stream(data);\n  stream.dict = newXref;\n  let offset = 0;\n  for (const [type, objOffset, gen] of xrefTableData) {\n    offset = writeInt(type, sizes[0], offset, data);\n    offset = writeInt(objOffset, sizes[1], offset, data);\n    offset = writeInt(gen, sizes[2], offset, data);\n  }\n  await writeObject(xrefInfo.newRef, stream, buffer, {});\n  buffer.push(\"startxref\\n\", baseOffset.toString(), \"\\n%%EOF\\n\");\n}\nfunction computeIDs(baseOffset, xrefInfo, newXref) {\n  if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n    const md5 = computeMD5(baseOffset, xrefInfo);\n    newXref.set(\"ID\", [xrefInfo.fileIds[0] || md5, md5]);\n  }\n}\nfunction getTrailerDict(xrefInfo, changes, useXrefStream) {\n  const newXref = new Dict(null);\n  newXref.setIfDefined(\"Prev\", xrefInfo?.startXRef);\n  const refForXrefTable = xrefInfo.newRef;\n  if (useXrefStream) {\n    changes.put(refForXrefTable, {\n      data: \"\"\n    });\n    newXref.set(\"Size\", refForXrefTable.num + 1);\n    newXref.setIfName(\"Type\", \"XRef\");\n  } else {\n    newXref.set(\"Size\", refForXrefTable.num);\n  }\n  newXref.setIfDefined(\"Root\", xrefInfo?.rootRef);\n  newXref.setIfDefined(\"Info\", xrefInfo?.infoRef);\n  newXref.setIfDefined(\"Encrypt\", xrefInfo?.encryptRef);\n  return newXref;\n}\nasync function writeChanges(changes, xref, buffer = []) {\n  const newRefs = [];\n  for (const [ref, {\n    data,\n    objStreamRef,\n    index\n  }] of changes.items()) {\n    if (objStreamRef) {\n      newRefs.push({\n        ref,\n        data,\n        objStreamRef,\n        index\n      });\n      continue;\n    }\n    if (data === null || typeof data === \"string\") {\n      newRefs.push({\n        ref,\n        data\n      });\n      continue;\n    }\n    await writeObject(ref, data, buffer, xref);\n    newRefs.push({\n      ref,\n      data: buffer.join(\"\")\n    });\n    buffer.length = 0;\n  }\n  return newRefs.sort((a, b) => a.ref.num - b.ref.num);\n}\nasync function incrementalUpdate({\n  originalData,\n  xrefInfo,\n  changes,\n  xref = null,\n  hasXfa = false,\n  xfaDatasetsRef = null,\n  hasXfaDatasetsEntry = false,\n  needAppearances,\n  acroFormRef = null,\n  acroForm = null,\n  xfaData = null,\n  useXrefStream = false\n}) {\n  await updateAcroform({\n    xref,\n    acroForm,\n    acroFormRef,\n    hasXfa,\n    hasXfaDatasetsEntry,\n    xfaDatasetsRef,\n    needAppearances,\n    changes\n  });\n  if (hasXfa) {\n    updateXFA({\n      xfaData,\n      xfaDatasetsRef,\n      changes,\n      xref\n    });\n  }\n  const newXref = getTrailerDict(xrefInfo, changes, useXrefStream);\n  const buffer = [];\n  const newRefs = await writeChanges(changes, xref, buffer);\n  let baseOffset = originalData.length;\n  const lastByte = originalData.at(-1);\n  if (lastByte !== 0x0a && lastByte !== 0x0d) {\n    buffer.push(\"\\n\");\n    baseOffset += 1;\n  }\n  for (const {\n    data\n  } of newRefs) {\n    if (data !== null) {\n      buffer.push(data);\n    }\n  }\n  await (useXrefStream ? getXRefStreamTable(xrefInfo, baseOffset, newRefs, newXref, buffer) : getXRefTable(xrefInfo, baseOffset, newRefs, newXref, buffer));\n  const totalLength = originalData.length + Math.sumPrecise(buffer.map(str => str.length));\n  const array = new Uint8Array(totalLength);\n  array.set(originalData);\n  let offset = originalData.length;\n  for (const str of buffer) {\n    offset = writeString(str, offset, array);\n  }\n  return array;\n}\n\n;// ./src/core/editor/pdf_editor.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\nconst MAX_LEAVES_PER_PAGES_NODE = 16;\nconst MAX_IN_NAME_TREE_NODE = 64;\nclass PageData {\n  constructor(page, documentData) {\n    this.page = page;\n    this.documentData = documentData;\n    this.annotations = null;\n    this.pointingNamedDestinations = null;\n    documentData.pagesMap.put(page.ref, this);\n  }\n}\nclass DocumentData {\n  constructor(document) {\n    this.document = document;\n    this.destinations = null;\n    this.pageLabels = null;\n    this.pagesMap = new RefSetCache();\n    this.oldRefMapping = new RefSetCache();\n    this.dedupNamedDestinations = new Map();\n    this.usedNamedDestinations = new Set();\n    this.postponedRefCopies = new RefSetCache();\n    this.resourceStreamPromises = new Map();\n    this.usedStructParents = new Set();\n    this.oldStructParentMapping = new Map();\n    this.structTreeRoot = null;\n    this.parentTree = null;\n    this.idTree = null;\n    this.roleMap = null;\n    this.classMap = null;\n    this.namespaces = null;\n    this.structTreeAF = null;\n    this.structTreePronunciationLexicon = [];\n    this.acroForm = null;\n    this.acroFormDefaultAppearance = \"\";\n    this.acroFormDefaultResources = null;\n    this.acroFormQ = 0;\n    this.hasSignatureAnnotations = false;\n    this.fieldToParent = new RefSetCache();\n    this.outline = null;\n    this.embeddedFiles = null;\n  }\n}\nclass XRefWrapper {\n  constructor(entries, getNewRef) {\n    this.entries = entries;\n    this._getNewRef = getNewRef;\n  }\n  getNewTemporaryRef() {\n    return this._getNewRef();\n  }\n  fetchIfRef(obj) {\n    return obj instanceof Ref ? this.fetch(obj) : obj;\n  }\n  fetch(ref) {\n    if (!(ref instanceof Ref)) {\n      throw new Error(\"ref object is not a reference\");\n    }\n    return this.entries[ref.num];\n  }\n  async fetchIfRefAsync(obj) {\n    return obj instanceof Ref ? this.fetchAsync(obj) : obj;\n  }\n  async fetchAsync(ref) {\n    return this.fetch(ref);\n  }\n}\nclass PDFEditor {\n  isSingleFile = false;\n  #newAnnotationsParams = null;\n  #primaryDocument = null;\n  #resourceStreamCache = new Map();\n  currentDocument = null;\n  oldPages = [];\n  newPages = [];\n  xref = [null];\n  xrefWrapper = new XRefWrapper(this.xref, () => this.newRef);\n  newRefCount = 1;\n  namesDict = null;\n  version = \"1.7\";\n  pageLabels = null;\n  namedDestinations = new Map();\n  parentTree = new Map();\n  structTreeKids = [];\n  idTree = new Map();\n  classMap = new Dict();\n  roleMap = new Dict();\n  namespaces = new Map();\n  structTreeAF = [];\n  structTreePronunciationLexicon = [];\n  fields = [];\n  acroFormDefaultAppearance = \"\";\n  acroFormDefaultResources = null;\n  acroFormNeedAppearances = false;\n  acroFormSigFlags = 0;\n  acroFormCalculationOrder = null;\n  acroFormQ = 0;\n  outlineItems = null;\n  embeddedFiles = new Map();\n  constructor({\n    useObjectStreams = true,\n    title = \"\",\n    author = \"\"\n  } = {}) {\n    [this.rootRef, this.rootDict] = this.newDict;\n    [this.infoRef, this.infoDict] = this.newDict;\n    [this.pagesRef, this.pagesDict] = this.newDict;\n    this.useObjectStreams = useObjectStreams;\n    this.objStreamRefs = useObjectStreams ? new Set() : null;\n    this.title = title;\n    this.author = author;\n  }\n  get newRef() {\n    return Ref.get(this.newRefCount++, 0);\n  }\n  get newDict() {\n    const ref = this.newRef;\n    const dict = this.xref[ref.num] = new Dict();\n    return [ref, dict];\n  }\n  async #cloneObject(obj, xref) {\n    const ref = this.newRef;\n    this.xref[ref.num] = await this.#collectDependencies(obj, true, xref);\n    return ref;\n  }\n  cloneDict(dict) {\n    const newDict = dict.clone();\n    newDict.xref = this.xrefWrapper;\n    return newDict;\n  }\n  async #collectDependencies(obj, mustClone, xref, resourceStreamPath = new RefSet()) {\n    if (obj instanceof Ref) {\n      const {\n        currentDocument: {\n          oldRefMapping\n        }\n      } = this;\n      const existingRef = oldRefMapping.get(obj);\n      if (existingRef) {\n        return existingRef;\n      }\n      const oldRef = obj;\n      obj = await xref.fetchAsync(oldRef);\n      if (typeof obj === \"number\") {\n        return obj;\n      }\n      if (obj instanceof BaseStream && this.#isResourceStream(obj.dict)) {\n        return this.#collectResourceStream(oldRef, obj, xref, resourceStreamPath);\n      }\n      const newRef = this.newRef;\n      oldRefMapping.put(oldRef, newRef);\n      this.xref[newRef.num] = await this.#collectDependencies(obj, true, xref, resourceStreamPath);\n      return newRef;\n    }\n    const promises = [];\n    const {\n      currentDocument: {\n        postponedRefCopies\n      }\n    } = this;\n    if (Array.isArray(obj)) {\n      if (mustClone) {\n        obj = obj.slice();\n      }\n      for (let i = 0, ii = obj.length; i < ii; i++) {\n        const postponedActions = obj[i] instanceof Ref && postponedRefCopies.get(obj[i]);\n        if (postponedActions) {\n          postponedActions.push(ref => obj[i] = ref);\n          continue;\n        }\n        promises.push(this.#collectDependencies(obj[i], true, xref, resourceStreamPath).then(newObj => obj[i] = newObj));\n      }\n      await Promise.all(promises);\n      return obj;\n    }\n    let dict;\n    if (obj instanceof BaseStream) {\n      ({\n        dict\n      } = obj = obj.getOriginalStream().clone());\n      dict.xref = this.xrefWrapper;\n    } else if (obj instanceof Dict) {\n      if (mustClone) {\n        obj = obj.clone();\n        obj.xref = this.xrefWrapper;\n      }\n      dict = obj;\n    }\n    if (dict) {\n      for (const [key, rawObj] of dict.getRawEntries()) {\n        const postponedActions = rawObj instanceof Ref && postponedRefCopies.get(rawObj);\n        if (postponedActions) {\n          postponedActions.push(ref => dict.set(key, ref));\n          continue;\n        }\n        promises.push(this.#collectDependencies(rawObj, true, xref, resourceStreamPath).then(newObj => dict.set(key, newObj)));\n      }\n      await Promise.all(promises);\n    }\n    return obj;\n  }\n  #isResourceStream(dict) {\n    const subtype = dict.get(\"Subtype\");\n    return isName(subtype, \"Image\") || dict.has(\"Length1\") || isName(subtype, \"Type1C\") || isName(subtype, \"CIDFontType0C\") || isName(subtype, \"OpenType\");\n  }\n  #rawStreamBytes(stream) {\n    const original = stream.getOriginalStream();\n    original.reset();\n    return original.getBytes();\n  }\n  async #serializeDict(dict) {\n    const buffer = [];\n    await writeValue(dict, buffer, null);\n    return buffer.join(\"\");\n  }\n  #resourceStreamKey(dictStr, bytes) {\n    const SAMPLE_SIZE = 256;\n    const SAMPLE_COUNT = 4;\n    const {\n      length\n    } = bytes;\n    const hash = new MurmurHash3_64();\n    hash.update(dictStr);\n    hash.update(`#${length}`);\n    if (length <= SAMPLE_SIZE * SAMPLE_COUNT) {\n      hash.update(bytes);\n    } else {\n      const step = Math.floor((length - SAMPLE_SIZE) / (SAMPLE_COUNT - 1));\n      for (let i = 0; i < SAMPLE_COUNT; i++) {\n        const start = Math.min(i * step, length - SAMPLE_SIZE);\n        hash.update(bytes.subarray(start, start + SAMPLE_SIZE));\n      }\n    }\n    return hash.hexdigest();\n  }\n  async #collectResourceStream(oldRef, stream, xref, resourceStreamPath) {\n    const {\n      currentDocument: {\n        oldRefMapping,\n        resourceStreamPromises\n      }\n    } = this;\n    if (resourceStreamPath.has(oldRef)) {\n      let ref = oldRefMapping.get(oldRef);\n      if (!ref) {\n        ref = this.newRef;\n        oldRefMapping.put(oldRef, ref);\n      }\n      return ref;\n    }\n    const key = oldRef.toString();\n    const pending = resourceStreamPromises.get(key);\n    if (pending) {\n      return pending;\n    }\n    const childPath = new RefSet(resourceStreamPath);\n    childPath.put(oldRef);\n    const promise = Promise.resolve().then(async () => {\n      const collected = await this.#collectDependencies(stream, true, xref, childPath);\n      const cycleRef = oldRefMapping.get(oldRef);\n      if (cycleRef) {\n        this.xref[cycleRef.num] = collected;\n        return cycleRef;\n      }\n      const ref = await this.#dedupResourceStream(collected);\n      oldRefMapping.put(oldRef, ref);\n      return ref;\n    });\n    resourceStreamPromises.set(key, promise);\n    try {\n      return await promise;\n    } finally {\n      if (resourceStreamPromises.get(key) === promise) {\n        resourceStreamPromises.delete(key);\n      }\n    }\n  }\n  async #dedupResourceStream(stream) {\n    const dictStr = await this.#serializeDict(stream.dict);\n    const bytes = this.#rawStreamBytes(stream);\n    const key = this.#resourceStreamKey(dictStr, bytes);\n    const bucket = this.#resourceStreamCache.getOrInsertComputed(key, makeArr);\n    for (const entry of bucket) {\n      if (entry.dictStr === dictStr && isArrayEqual(this.#rawStreamBytes(entry.stream), bytes)) {\n        return entry.ref;\n      }\n    }\n    const ref = this.newRef;\n    this.xref[ref.num] = stream;\n    bucket.push({\n      ref,\n      dictStr,\n      stream\n    });\n    return ref;\n  }\n  async #cloneStructTreeNode(parentStructRef, node, xref, removedStructElements, dedupIDs, dedupClasses, dedupRoles, visited = new RefSet()) {\n    const {\n      currentDocument: {\n        pagesMap,\n        oldRefMapping\n      }\n    } = this;\n    const pg = node.getRaw(\"Pg\");\n    if (pg instanceof Ref && !pagesMap.has(pg)) {\n      return null;\n    }\n    let kids;\n    const k = kids = node.getRaw(\"K\");\n    if (k instanceof Ref) {\n      if (visited.has(k)) {\n        return null;\n      }\n      kids = await xref.fetchAsync(k);\n      if (!Array.isArray(kids)) {\n        kids = [k];\n      }\n    }\n    kids = Array.isArray(kids) ? kids : [kids];\n    const newKids = [];\n    const structElemIndices = [];\n    for (let kid of kids) {\n      const kidRef = kid instanceof Ref ? kid : null;\n      if (kidRef) {\n        if (visited.has(kidRef)) {\n          continue;\n        }\n        visited.put(kidRef);\n        kid = await xref.fetchAsync(kidRef);\n      }\n      if (typeof kid === \"number\") {\n        newKids.push(kid);\n        continue;\n      }\n      if (!(kid instanceof Dict)) {\n        continue;\n      }\n      const pgRef = kid.getRaw(\"Pg\");\n      if (pgRef instanceof Ref && !pagesMap.has(pgRef)) {\n        continue;\n      }\n      const type = kid.get(\"Type\");\n      if (!type || isName(type, \"StructElem\")) {\n        let setAsSpan = false;\n        if (kidRef && removedStructElements.has(kidRef)) {\n          if (!isName(kid.get(\"S\"), \"Link\")) {\n            continue;\n          }\n          setAsSpan = true;\n        }\n        const newKidRef = await this.#cloneStructTreeNode(kidRef, kid, xref, removedStructElements, dedupIDs, dedupClasses, dedupRoles, visited);\n        if (newKidRef) {\n          structElemIndices.push(newKids.length);\n          newKids.push(newKidRef);\n          if (kidRef) {\n            oldRefMapping.put(kidRef, newKidRef);\n          }\n          if (setAsSpan) {\n            this.xref[newKidRef.num].setIfName(\"S\", \"Span\");\n          }\n        }\n        continue;\n      }\n      if (isName(type, \"OBJR\")) {\n        if (!kidRef) {\n          continue;\n        }\n        const newKidRef = oldRefMapping.get(kidRef);\n        if (!newKidRef) {\n          continue;\n        }\n        const newKid = this.xref[newKidRef.num];\n        const objRef = newKid.getRaw(\"Obj\");\n        if (objRef instanceof Ref) {\n          const obj = this.xref[objRef.num];\n          if (obj instanceof Dict && !obj.has(\"StructParent\") && parentStructRef) {\n            const structParent = this.parentTree.size;\n            this.parentTree.set(structParent, [oldRefMapping, parentStructRef]);\n            obj.set(\"StructParent\", structParent);\n          }\n        }\n        newKids.push(newKidRef);\n        continue;\n      }\n      if (isName(type, \"MCR\")) {\n        const newKid = await this.#collectDependencies(kidRef || kid, true, xref);\n        newKids.push(newKid);\n        continue;\n      }\n      if (kidRef) {\n        const newKidRef = await this.#collectDependencies(kidRef, true, xref);\n        newKids.push(newKidRef);\n      }\n    }\n    if (kids.length !== 0 && newKids.length === 0) {\n      return null;\n    }\n    const newNodeRef = this.newRef;\n    const newNode = this.xref[newNodeRef.num] = this.cloneDict(node);\n    newNode.delete(\"ID\");\n    newNode.delete(\"C\");\n    newNode.delete(\"K\");\n    newNode.delete(\"P\");\n    newNode.delete(\"S\");\n    await this.#collectDependencies(newNode, false, xref);\n    const classNames = node.get(\"C\");\n    if (classNames instanceof Name) {\n      const newClassName = dedupClasses.get(classNames.name);\n      newNode.set(\"C\", newClassName ? Name.get(newClassName) : classNames);\n    } else if (Array.isArray(classNames)) {\n      const newClassNames = [];\n      for (const className of classNames) {\n        if (className instanceof Name) {\n          const newClassName = dedupClasses.get(className.name);\n          newClassNames.push(newClassName ? Name.get(newClassName) : className);\n        }\n      }\n      newNode.set(\"C\", newClassNames);\n    }\n    const roleName = node.get(\"S\");\n    if (roleName instanceof Name) {\n      const newRoleName = dedupRoles.get(roleName.name);\n      newNode.set(\"S\", newRoleName ? Name.get(newRoleName) : roleName);\n    }\n    const id = node.get(\"ID\");\n    if (typeof id === \"string\") {\n      const stringId = stringToPDFString(id, false);\n      const newId = dedupIDs.get(stringId);\n      newNode.set(\"ID\", newId ? stringToAsciiOrUTF16BE(newId) : id);\n    }\n    let attributes = newNode.get(\"A\");\n    if (attributes) {\n      if (!Array.isArray(attributes)) {\n        attributes = [attributes];\n      }\n      for (let attr of attributes) {\n        attr = this.xrefWrapper.fetchIfRef(attr);\n        if (isName(attr.get(\"O\"), \"Table\") && attr.has(\"Headers\")) {\n          const headers = this.xrefWrapper.fetchIfRef(attr.getRaw(\"Headers\"));\n          if (Array.isArray(headers)) {\n            for (let i = 0, ii = headers.length; i < ii; i++) {\n              const newId = dedupIDs.get(stringToPDFString(headers[i], false));\n              if (newId) {\n                headers[i] = newId;\n              }\n            }\n          }\n        }\n      }\n    }\n    for (const index of structElemIndices) {\n      const structElemRef = newKids[index];\n      const structElem = this.xref[structElemRef.num];\n      structElem.set(\"P\", newNodeRef);\n    }\n    if (newKids.length === 1) {\n      newNode.set(\"K\", newKids[0]);\n    } else if (newKids.length > 1) {\n      newNode.set(\"K\", newKids);\n    }\n    return newNodeRef;\n  }\n  #getFilteredPageIndices({\n    document,\n    includePages,\n    excludePages\n  }) {\n    if (!document) {\n      return [];\n    }\n    const compile = list => {\n      if (!list?.length) {\n        return null;\n      }\n      const indices = new Set();\n      const ranges = [];\n      for (const item of list) {\n        if (Array.isArray(item)) {\n          ranges.push(item);\n        } else {\n          indices.add(item);\n        }\n      }\n      return {\n        indices,\n        ranges\n      };\n    };\n    const matches = (index, {\n      indices,\n      ranges\n    }) => indices.has(index) || ranges.some(([start, end]) => index >= start && index <= end);\n    const inc = compile(includePages);\n    const exc = compile(excludePages);\n    const result = [];\n    for (let i = 0, ii = document.numPages; i < ii; i++) {\n      if (exc && matches(i, exc)) {\n        continue;\n      }\n      if (!inc || matches(i, inc)) {\n        result.push(i);\n      }\n    }\n    return result;\n  }\n  #resolveInsertAfterIndices(pageInfos) {\n    const counts = new Array(pageInfos.length);\n    const sequence = [];\n    const insertAfterList = [];\n    for (let i = 0; i < pageInfos.length; i++) {\n      const info = pageInfos[i];\n      let count;\n      if (info.image) {\n        count = counts[i] = 1;\n      } else if (!info.document) {\n        counts[i] = 0;\n        continue;\n      } else {\n        count = counts[i] = this.#getFilteredPageIndices(info).length;\n      }\n      if (info.pageIndices) {\n        continue;\n      }\n      if (info.insertAfter === undefined) {\n        for (let j = 0; j < count; j++) {\n          sequence.push(i);\n        }\n      } else {\n        insertAfterList.push({\n          i,\n          insertAfter: info.insertAfter,\n          count\n        });\n      }\n    }\n    if (insertAfterList.length === 0) {\n      return pageInfos;\n    }\n    const hasContent = info => !!(info.document || info.image);\n    for (let i = 0; i < pageInfos.length; i++) {\n      const info = pageInfos[i];\n      if (hasContent(info) && info.pageIndices && info.pageIndices.length < counts[i]) {\n        throw new Error(\"extractPages: partial pageIndices cannot be combined with insertAfter entries.\");\n      }\n    }\n    insertAfterList.sort((a, b) => a.insertAfter - b.insertAfter || a.i - b.i);\n    if (sequence.length === 0 && pageInfos.some(info => hasContent(info) && info.pageIndices)) {\n      const updatedPageInfos = pageInfos.slice();\n      let maxExistingPos = -1;\n      for (const info of pageInfos) {\n        if (!hasContent(info) || !info.pageIndices) {\n          continue;\n        }\n        for (const idx of info.pageIndices) {\n          if (idx > maxExistingPos) {\n            maxExistingPos = idx;\n          }\n        }\n      }\n      let offset = 0;\n      for (const {\n        i,\n        insertAfter,\n        count\n      } of insertAfterList) {\n        const threshold = Math.min(Math.max(insertAfter, -1) + offset, maxExistingPos);\n        for (let j = 0; j < updatedPageInfos.length; j++) {\n          const existingInfo = updatedPageInfos[j];\n          if (!hasContent(existingInfo) || !existingInfo.pageIndices || existingInfo.pageIndices.every(idx => idx <= threshold)) {\n            continue;\n          }\n          updatedPageInfos[j] = {\n            ...existingInfo,\n            pageIndices: existingInfo.pageIndices.map(idx => idx > threshold ? idx + count : idx)\n          };\n        }\n        const pageIndices = [];\n        for (let k = 0; k < count; k++) {\n          pageIndices.push(threshold + 1 + k);\n        }\n        const result = {\n          ...updatedPageInfos[i],\n          pageIndices\n        };\n        delete result.insertAfter;\n        updatedPageInfos[i] = result;\n        offset += count;\n        maxExistingPos += count;\n      }\n      return updatedPageInfos;\n    }\n    let offset = 0;\n    for (const {\n      i,\n      insertAfter,\n      count\n    } of insertAfterList) {\n      const insertPos = Math.max(insertAfter, -1) + 1 + offset;\n      sequence.splice(insertPos, 0, ...new Array(count).fill(i));\n      offset += count;\n    }\n    const pageIndicesArr = new Array(pageInfos.length);\n    for (let pos = 0; pos < sequence.length; pos++) {\n      const infoIdx = sequence[pos];\n      (pageIndicesArr[infoIdx] ||= []).push(pos);\n    }\n    return pageInfos.map((info, i) => {\n      if (!hasContent(info) || info.pageIndices) {\n        return info;\n      }\n      const result = {\n        ...info,\n        pageIndices: pageIndicesArr[i] || []\n      };\n      delete result.insertAfter;\n      return result;\n    });\n  }\n  async extractPages(pageInfos, annotationStorage, primaryDocument, handler, task) {\n    this.#primaryDocument = primaryDocument;\n    pageInfos = this.#resolveInsertAfterIndices(pageInfos);\n    const promises = [];\n    let newIndex = 0;\n    const reservePageSlot = newPageIndex => {\n      if (!Number.isInteger(newPageIndex) || newPageIndex < 0) {\n        throw new Error(\"extractPages: invalid page index.\");\n      }\n      if (this.oldPages[newPageIndex] !== undefined) {\n        throw new Error(\"extractPages: overlapping pageIndices.\");\n      }\n      this.oldPages[newPageIndex] = null;\n    };\n    const docPageInfos = pageInfos.filter(info => !!info.document);\n    this.isSingleFile = docPageInfos.length === 1 || docPageInfos.length > 0 && docPageInfos.every(info => info.document === docPageInfos[0].document);\n    const allDocumentData = [];\n    if (annotationStorage) {\n      this.#newAnnotationsParams = {\n        handler,\n        task,\n        newAnnotationsByPage: getNewAnnotationsMap(annotationStorage),\n        imagesPromises: AnnotationFactory.generateImages(annotationStorage.values(), this.xrefWrapper, true)\n      };\n    }\n    const imageEntries = [];\n    for (const pageInfo of pageInfos) {\n      const {\n        document,\n        image,\n        includePages,\n        excludePages,\n        pageIndices\n      } = pageInfo;\n      if (image) {\n        if (pageIndices) {\n          newIndex = -1;\n          if (pageIndices.length > 1) {\n            throw new Error(\"extractPages: too many pageIndices.\");\n          }\n        }\n        let newPageIndex;\n        if (pageIndices?.length) {\n          newPageIndex = pageIndices[0];\n        } else if (newIndex !== -1) {\n          newPageIndex = newIndex++;\n        } else {\n          for (newPageIndex = 0; this.oldPages[newPageIndex] !== undefined; newPageIndex++) {}\n        }\n        reservePageSlot(newPageIndex);\n        imageEntries.push({\n          image,\n          slot: newPageIndex\n        });\n        continue;\n      }\n      if (!document) {\n        continue;\n      }\n      if (pageIndices) {\n        newIndex = -1;\n      }\n      const filteredPageIndices = this.#getFilteredPageIndices({\n        document,\n        includePages,\n        excludePages\n      });\n      if (pageIndices && pageIndices.length > filteredPageIndices.length) {\n        throw new Error(\"extractPages: too many pageIndices.\");\n      }\n      const documentData = new DocumentData(document);\n      allDocumentData.push(documentData);\n      promises.push(this.#collectDocumentData(documentData));\n      let pageIndex = 0;\n      for (const i of filteredPageIndices) {\n        let newPageIndex;\n        if (pageIndices) {\n          newPageIndex = pageIndices[pageIndex++];\n        }\n        if (newPageIndex === undefined) {\n          if (newIndex !== -1) {\n            newPageIndex = newIndex++;\n          } else {\n            for (newPageIndex = 0; this.oldPages[newPageIndex] !== undefined; newPageIndex++) {}\n          }\n        }\n        reservePageSlot(newPageIndex);\n        promises.push(document.getPage(i).then(page => {\n          this.oldPages[newPageIndex] = new PageData(page, documentData);\n        }));\n      }\n    }\n    await Promise.all(promises);\n    for (let i = 0, ii = this.oldPages.length; i < ii; i++) {\n      if (this.oldPages[i] === undefined) {\n        throw new Error(\"extractPages: sparse pageIndices.\");\n      }\n    }\n    promises.length = 0;\n    this.#collectValidDestinations(allDocumentData);\n    this.#collectOutlineDestinations(allDocumentData);\n    this.#collectPageLabels();\n    for (const page of this.oldPages) {\n      if (page) {\n        promises.push(this.#postCollectPageData(page));\n      }\n    }\n    await Promise.all(promises);\n    this.#findDuplicateNamedDestinations();\n    this.#setPostponedRefCopies(allDocumentData);\n    const imageSlots = new Map();\n    for (const entry of imageEntries) {\n      imageSlots.set(entry.slot, entry);\n    }\n    const modalPageSize = imageSlots.size > 0 ? this.#modalPageSize() : null;\n    for (let i = 0, ii = this.oldPages.length; i < ii; i++) {\n      const imageEntry = imageSlots.get(i);\n      if (imageEntry) {\n        this.newPages[i] = await this.#makeImagePage(imageEntry.image, modalPageSize);\n      } else {\n        this.newPages[i] = await this.#makePageCopy(i, null);\n      }\n    }\n    this.#fixPostponedRefCopies(allDocumentData);\n    await this.#mergeStructTrees(allDocumentData);\n    await this.#mergeAcroForms(allDocumentData);\n    this.#buildOutline(allDocumentData);\n    await this.#collectEmbeddedFiles(allDocumentData);\n    return this.writePDF();\n  }\n  async #collectDocumentData(documentData) {\n    const {\n      document: {\n        pdfManager,\n        xref\n      }\n    } = documentData;\n    await Promise.all([pdfManager.ensureCatalog(\"destinations\").then(destinations => documentData.destinations = destinations), pdfManager.ensureCatalog(\"rawPageLabels\").then(pageLabels => documentData.pageLabels = pageLabels), pdfManager.ensureCatalog(\"structTreeRoot\").then(structTreeRoot => documentData.structTreeRoot = structTreeRoot), pdfManager.ensureCatalog(\"acroForm\").then(acroForm => documentData.acroForm = acroForm), pdfManager.ensureCatalog(\"documentOutlineForEditor\").then(outline => documentData.outline = outline), pdfManager.ensureCatalog(\"rawEmbeddedFiles\").then(ef => documentData.embeddedFiles = ef)]);\n    const structTreeRoot = documentData.structTreeRoot;\n    if (structTreeRoot) {\n      const rootDict = structTreeRoot.dict;\n      const parentTree = rootDict.get(\"ParentTree\");\n      if (parentTree) {\n        const numberTree = new NumberTree(parentTree, xref);\n        documentData.parentTree = numberTree.getAll(true);\n      }\n      const idTree = rootDict.get(\"IDTree\");\n      if (idTree) {\n        const nameTree = new NameTree(idTree, xref);\n        documentData.idTree = nameTree.getAll(true);\n      }\n      documentData.roleMap = rootDict.get(\"RoleMap\") || null;\n      documentData.classMap = rootDict.get(\"ClassMap\") || null;\n      let namespaces = rootDict.get(\"Namespaces\") || null;\n      if (namespaces && !Array.isArray(namespaces)) {\n        namespaces = [namespaces];\n      }\n      documentData.namespaces = namespaces;\n      documentData.structTreeAF = rootDict.get(\"AF\") || null;\n      documentData.structTreePronunciationLexicon = rootDict.get(\"PronunciationLexicon\") || null;\n    }\n  }\n  async #postCollectPageData(pageData) {\n    const {\n      page: {\n        xref,\n        annotations\n      },\n      documentData: {\n        pagesMap,\n        destinations,\n        usedNamedDestinations,\n        fieldToParent\n      }\n    } = pageData;\n    if (!annotations) {\n      return;\n    }\n    const promises = [];\n    let newAnnotations = [];\n    let newIndex = 0;\n    let {\n      hasSignatureAnnotations\n    } = pageData.documentData;\n    for (const annotationRef of annotations) {\n      const newAnnotationIndex = newIndex++;\n      promises.push(xref.fetchIfRefAsync(annotationRef).then(async annotationDict => {\n        if (!isName(annotationDict.get(\"Subtype\"), \"Link\")) {\n          if (isName(annotationDict.get(\"Subtype\"), \"Widget\")) {\n            hasSignatureAnnotations ||= isName(annotationDict.get(\"FT\"), \"Sig\");\n            const parentRef = annotationDict.get(\"Parent\") || null;\n            annotationDict.delete(\"Parent\");\n            fieldToParent.put(annotationRef, parentRef);\n          }\n          newAnnotations[newAnnotationIndex] = annotationRef;\n          return;\n        }\n        const action = annotationDict.get(\"A\");\n        const dest = action instanceof Dict ? action.get(\"D\") : annotationDict.get(\"Dest\");\n        if (!dest || Array.isArray(dest) && (!(dest[0] instanceof Ref) || pagesMap.has(dest[0]))) {\n          newAnnotations[newAnnotationIndex] = annotationRef;\n        } else if (typeof dest === \"string\") {\n          const destString = stringToPDFString(dest, true);\n          if (destinations.has(destString)) {\n            newAnnotations[newAnnotationIndex] = annotationRef;\n            usedNamedDestinations.add(destString);\n          }\n        }\n      }));\n    }\n    await Promise.all(promises);\n    newAnnotations = newAnnotations.filter(annot => !!annot);\n    pageData.annotations = newAnnotations.length > 0 ? newAnnotations : null;\n    pageData.documentData.hasSignatureAnnotations ||= hasSignatureAnnotations;\n  }\n  #setPostponedRefCopies(allDocumentData) {\n    for (const {\n      postponedRefCopies,\n      pagesMap\n    } of allDocumentData) {\n      for (const oldPageRef of pagesMap.keys()) {\n        postponedRefCopies.put(oldPageRef, []);\n      }\n    }\n  }\n  #fixPostponedRefCopies(allDocumentData) {\n    for (const {\n      postponedRefCopies,\n      oldRefMapping\n    } of allDocumentData) {\n      for (const [oldRef, actions] of postponedRefCopies.items()) {\n        const newRef = oldRefMapping.get(oldRef);\n        for (const action of actions) {\n          action(newRef);\n        }\n      }\n      postponedRefCopies.clear();\n    }\n  }\n  #visitObject(obj, callback, visited = new RefSet()) {\n    if (obj instanceof Ref) {\n      if (!visited.has(obj)) {\n        visited.put(obj);\n        this.#visitObject(this.xref[obj.num], callback, visited);\n      }\n      return;\n    }\n    if (Array.isArray(obj)) {\n      for (const item of obj) {\n        this.#visitObject(item, callback, visited);\n      }\n      return;\n    }\n    let dict;\n    if (obj instanceof BaseStream) {\n      ({\n        dict\n      } = obj);\n    } else if (obj instanceof Dict) {\n      dict = obj;\n    }\n    if (dict) {\n      callback(dict);\n      for (const value of dict.getRawValues()) {\n        this.#visitObject(value, callback, visited);\n      }\n    }\n  }\n  async #mergeStructTrees(allDocumentData) {\n    let newStructParentId = 0;\n    const {\n      parentTree: newParentTree\n    } = this;\n    for (let i = 0, ii = this.newPages.length; i < ii; i++) {\n      if (!this.oldPages[i]) {\n        continue;\n      }\n      const {\n        documentData: {\n          parentTree,\n          oldRefMapping,\n          oldStructParentMapping,\n          usedStructParents,\n          document: {\n            xref\n          }\n        }\n      } = this.oldPages[i];\n      if (!parentTree) {\n        continue;\n      }\n      const pageRef = this.newPages[i];\n      const pageDict = this.xref[pageRef.num];\n      const visited = new RefSet();\n      visited.put(pageRef);\n      this.#visitObject(pageDict, dict => {\n        const structParent = dict.get(\"StructParent\") ?? dict.get(\"StructParents\");\n        if (typeof structParent !== \"number\") {\n          return;\n        }\n        usedStructParents.add(structParent);\n        let parent = parentTree.get(structParent);\n        const parentRef = parent instanceof Ref ? parent : null;\n        if (parentRef) {\n          const array = xref.fetch(parentRef);\n          if (Array.isArray(array)) {\n            parent = array;\n          }\n        }\n        if (Array.isArray(parent) && parent.every(ref => ref === null)) {\n          parent = null;\n        }\n        if (!parent) {\n          if (dict.has(\"StructParent\")) {\n            dict.delete(\"StructParent\");\n          } else {\n            dict.delete(\"StructParents\");\n          }\n          return;\n        }\n        let newStructParent = oldStructParentMapping.get(structParent);\n        if (newStructParent === undefined) {\n          newStructParent = newStructParentId++;\n          oldStructParentMapping.set(structParent, newStructParent);\n          newParentTree.set(newStructParent, [oldRefMapping, parent]);\n        }\n        if (dict.has(\"StructParent\")) {\n          dict.set(\"StructParent\", newStructParent);\n        } else {\n          dict.set(\"StructParents\", newStructParent);\n        }\n      }, visited);\n    }\n    const {\n      structTreeKids,\n      idTree: newIdTree,\n      classMap: newClassMap,\n      roleMap: newRoleMap,\n      namespaces: newNamespaces,\n      structTreeAF: newStructTreeAF,\n      structTreePronunciationLexicon: newStructTreePronunciationLexicon\n    } = this;\n    for (const documentData of allDocumentData) {\n      const {\n        document: {\n          xref\n        },\n        oldRefMapping,\n        parentTree,\n        usedStructParents,\n        structTreeRoot,\n        idTree,\n        classMap,\n        roleMap,\n        namespaces,\n        structTreeAF,\n        structTreePronunciationLexicon\n      } = documentData;\n      if (!structTreeRoot) {\n        continue;\n      }\n      this.currentDocument = documentData;\n      const removedStructElements = new RefSet();\n      for (const [key, value] of parentTree || []) {\n        if (!usedStructParents.has(key) && value instanceof Ref) {\n          removedStructElements.put(value);\n        }\n      }\n      const dedupIDs = new Map();\n      for (const [id, nodeRef] of idTree || []) {\n        let _id = id;\n        if (newIdTree.has(id)) {\n          for (let i = 1;; i++) {\n            const newId = `${id}_${i}`;\n            if (!newIdTree.has(newId)) {\n              dedupIDs.set(id, newId);\n              _id = newId;\n              break;\n            }\n          }\n        }\n        newIdTree.set(_id, nodeRef);\n      }\n      const dedupClasses = new Map();\n      if (classMap?.size > 0) {\n        for (let [className, classDict] of classMap) {\n          classDict = await this.#collectDependencies(classDict, true, xref);\n          if (newClassMap.has(className)) {\n            for (let i = 1;; i++) {\n              const newClassName = `${className}_${i}`;\n              if (!newClassMap.has(newClassName)) {\n                dedupClasses.set(className, newClassName);\n                className = newClassName;\n                break;\n              }\n            }\n          }\n          newClassMap.set(className, classDict);\n        }\n      }\n      const dedupRoles = new Map();\n      if (roleMap?.size > 0) {\n        for (const [roleName, mappedName] of roleMap) {\n          const newMappedName = newRoleMap.get(roleName);\n          if (!newMappedName) {\n            newRoleMap.set(roleName, mappedName);\n            continue;\n          }\n          if (newMappedName === mappedName) {\n            continue;\n          }\n          for (let i = 1;; i++) {\n            const newRoleName = `${roleName}_${i}`;\n            if (!newRoleMap.has(newRoleName)) {\n              dedupRoles.set(roleName, newRoleName);\n              newRoleMap.set(newRoleName, mappedName);\n              break;\n            }\n          }\n        }\n      }\n      if (namespaces?.length > 0) {\n        for (const namespaceRef of namespaces) {\n          const namespace = await xref.fetchIfRefAsync(namespaceRef);\n          let ns = namespace.get(\"NS\");\n          if (!ns || newNamespaces.has(ns)) {\n            continue;\n          }\n          ns = stringToPDFString(ns, false);\n          const newNamespace = await this.#collectDependencies(namespace, true, xref);\n          newNamespaces.set(ns, newNamespace);\n        }\n      }\n      if (structTreeAF) {\n        for (const afRef of structTreeAF) {\n          newStructTreeAF.push(await this.#collectDependencies(afRef, true, xref));\n        }\n      }\n      if (structTreePronunciationLexicon) {\n        for (const lexiconRef of structTreePronunciationLexicon) {\n          newStructTreePronunciationLexicon.push(await this.#collectDependencies(lexiconRef, true, xref));\n        }\n      }\n      let kids = structTreeRoot.dict.get(\"K\");\n      if (!kids) {\n        continue;\n      }\n      kids = Array.isArray(kids) ? kids : [kids];\n      for (let kid of kids) {\n        const kidRef = kid instanceof Ref ? kid : null;\n        if (kidRef && removedStructElements.has(kidRef)) {\n          continue;\n        }\n        kid = await xref.fetchIfRefAsync(kid);\n        const newKidRef = await this.#cloneStructTreeNode(kidRef, kid, xref, removedStructElements, dedupIDs, dedupClasses, dedupRoles);\n        if (newKidRef) {\n          structTreeKids.push(newKidRef);\n        }\n      }\n      for (const [id, nodeRef] of idTree || []) {\n        const newNodeRef = nodeRef instanceof Ref && oldRefMapping.get(nodeRef);\n        const newId = dedupIDs.get(id) || id;\n        if (newNodeRef) {\n          newIdTree.set(newId, newNodeRef);\n        } else {\n          newIdTree.delete(newId);\n        }\n      }\n    }\n    for (const [key, [oldRefMapping, parent]] of newParentTree) {\n      if (!parent) {\n        newParentTree.delete(key);\n        continue;\n      }\n      if (!Array.isArray(parent)) {\n        const newParent = oldRefMapping.get(parent);\n        if (newParent === undefined) {\n          newParentTree.delete(key);\n        } else {\n          newParentTree.set(key, newParent);\n        }\n        continue;\n      }\n      const newParents = parent.map(ref => ref instanceof Ref && oldRefMapping.get(ref) || null);\n      if (newParents.length === 0 || newParents.every(ref => ref === null)) {\n        newParentTree.delete(key);\n        continue;\n      }\n      newParentTree.set(key, newParents);\n    }\n    this.currentDocument = null;\n  }\n  #collectValidDestinations(allDocumentData) {\n    for (const documentData of allDocumentData) {\n      if (!documentData.destinations) {\n        continue;\n      }\n      const {\n        destinations,\n        pagesMap\n      } = documentData;\n      const newDestinations = documentData.destinations = new Map();\n      for (const [key, dest] of Object.entries(destinations)) {\n        const pageRef = dest[0];\n        const pageData = pageRef instanceof Ref && pagesMap.get(pageRef);\n        if (!pageData) {\n          continue;\n        }\n        (pageData.pointingNamedDestinations ||= new Set()).add(key);\n        newDestinations.set(key, dest);\n      }\n    }\n  }\n  #findDuplicateNamedDestinations() {\n    const {\n      namedDestinations\n    } = this;\n    const getUniqueDestinationName = name => {\n      if (!namedDestinations.has(name)) {\n        return name;\n      }\n      for (let i = 1;; i++) {\n        const dedupedName = `${name}_${i}`;\n        if (!namedDestinations.has(dedupedName)) {\n          return dedupedName;\n        }\n      }\n    };\n    for (let i = 0, ii = this.oldPages.length; i < ii; i++) {\n      const page = this.oldPages[i];\n      if (!page) {\n        continue;\n      }\n      const {\n        documentData: {\n          destinations,\n          dedupNamedDestinations,\n          usedNamedDestinations\n        }\n      } = page;\n      let {\n        pointingNamedDestinations\n      } = page;\n      if (!pointingNamedDestinations) {\n        continue;\n      }\n      page.pointingNamedDestinations = pointingNamedDestinations = pointingNamedDestinations.intersection(usedNamedDestinations);\n      for (const pointingDest of pointingNamedDestinations) {\n        if (!usedNamedDestinations.has(pointingDest)) {\n          continue;\n        }\n        const dest = destinations.get(pointingDest).slice();\n        if (!namedDestinations.has(pointingDest)) {\n          namedDestinations.set(pointingDest, dest);\n          continue;\n        }\n        const newName = getUniqueDestinationName(`${pointingDest}_p${i + 1}`);\n        dedupNamedDestinations.set(pointingDest, newName);\n        namedDestinations.set(newName, dest);\n      }\n    }\n  }\n  #fixNamedDestinations(annotations, dedupNamedDestinations) {\n    if (dedupNamedDestinations.size === 0) {\n      return;\n    }\n    const fixDestination = (dict, key, dest) => {\n      if (typeof dest === \"string\") {\n        dict.set(key, dedupNamedDestinations.get(stringToPDFString(dest, true)) || dest);\n      }\n    };\n    for (const annotRef of annotations) {\n      const annotDict = this.xref[annotRef.num];\n      if (!isName(annotDict.get(\"Subtype\"), \"Link\")) {\n        continue;\n      }\n      const action = annotDict.get(\"A\");\n      if (action instanceof Dict && action.has(\"D\")) {\n        const dest = action.get(\"D\");\n        fixDestination(action, \"D\", dest);\n        continue;\n      }\n      const dest = annotDict.get(\"Dest\");\n      fixDestination(annotDict, \"Dest\", dest);\n    }\n  }\n  #collectOutlineDestinations(allDocumentData) {\n    const collect = (items, destinations, usedNamedDestinations) => {\n      for (const item of items) {\n        if (typeof item.dest === \"string\" && destinations?.has(item.dest)) {\n          usedNamedDestinations.add(item.dest);\n        }\n        if (item.items.length > 0) {\n          collect(item.items, destinations, usedNamedDestinations);\n        }\n      }\n    };\n    for (const documentData of allDocumentData) {\n      const {\n        outline,\n        destinations,\n        usedNamedDestinations\n      } = documentData;\n      if (outline?.length) {\n        collect(outline, destinations, usedNamedDestinations);\n      }\n    }\n  }\n  #isValidOutlineDest(item, documentData) {\n    const {\n      dest,\n      action,\n      url,\n      unsafeUrl,\n      attachment,\n      setOCGState\n    } = item;\n    if (action || url || unsafeUrl || attachment || setOCGState) {\n      return true;\n    }\n    if (!dest) {\n      return false;\n    }\n    if (typeof dest === \"string\") {\n      const name = documentData.dedupNamedDestinations.get(dest) || dest;\n      return this.namedDestinations.has(name);\n    }\n    if (Array.isArray(dest) && dest[0] instanceof Ref) {\n      return !!documentData.oldRefMapping.get(dest[0]);\n    }\n    return false;\n  }\n  #filterOutlineItems(items, documentData) {\n    const result = [];\n    for (const item of items) {\n      const filteredChildren = this.#filterOutlineItems(item.items, documentData);\n      const hasValidOwnDest = this.#isValidOutlineDest(item, documentData);\n      if (hasValidOwnDest || filteredChildren.length > 0) {\n        result.push({\n          ...item,\n          dest: hasValidOwnDest ? item.dest : null,\n          rawDict: hasValidOwnDest ? item.rawDict : null,\n          items: filteredChildren,\n          _documentData: documentData\n        });\n      }\n    }\n    return result;\n  }\n  #buildOutline(allDocumentData) {\n    const outlineItems = [];\n    for (const documentData of allDocumentData) {\n      const {\n        outline\n      } = documentData;\n      if (!outline?.length) {\n        continue;\n      }\n      outlineItems.push(...this.#filterOutlineItems(outline, documentData));\n    }\n    this.outlineItems = outlineItems.length > 0 ? outlineItems : null;\n  }\n  async #setOutlineItemDest(itemDict, item) {\n    const {\n      dest,\n      rawDict\n    } = item;\n    const documentData = item._documentData;\n    if (dest) {\n      if (typeof dest === \"string\") {\n        const name = documentData.dedupNamedDestinations.get(dest) || dest;\n        itemDict.set(\"Dest\", stringToAsciiOrUTF16BE(name));\n      } else if (Array.isArray(dest)) {\n        const newDest = dest.slice();\n        if (newDest[0] instanceof Ref) {\n          newDest[0] = documentData.oldRefMapping.get(newDest[0]) || newDest[0];\n        }\n        itemDict.set(\"Dest\", newDest);\n      }\n      return;\n    }\n    const actionDict = rawDict?.get(\"A\");\n    if (actionDict instanceof Dict) {\n      this.currentDocument = documentData;\n      const actionRef = await this.#cloneObject(actionDict, documentData.document.xref);\n      this.currentDocument = null;\n      itemDict.set(\"A\", actionRef);\n    }\n  }\n  async #makeOutline() {\n    const {\n      outlineItems\n    } = this;\n    if (!outlineItems?.length) {\n      return;\n    }\n    const [outlineRootRef, outlineRootDict] = this.newDict;\n    outlineRootDict.setIfName(\"Type\", \"Outlines\");\n    const assignRefs = items => {\n      for (const item of items) {\n        [item._ref] = this.newDict;\n        if (item.items.length > 0) {\n          assignRefs(item.items);\n        }\n      }\n    };\n    assignRefs(outlineItems);\n    const fillItems = async (items, parentRef) => {\n      let totalCount = 0;\n      for (let i = 0; i < items.length; i++) {\n        const item = items[i];\n        const dict = this.xref[item._ref.num];\n        dict.set(\"Title\", stringToAsciiOrUTF16BE(item.title));\n        dict.set(\"Parent\", parentRef);\n        if (i > 0) {\n          dict.set(\"Prev\", items[i - 1]._ref);\n        }\n        if (i < items.length - 1) {\n          dict.set(\"Next\", items[i + 1]._ref);\n        }\n        if (item.items.length > 0) {\n          dict.set(\"First\", item.items[0]._ref);\n          dict.set(\"Last\", item.items.at(-1)._ref);\n          const childCount = await fillItems(item.items, item._ref);\n          if (item.count !== undefined) {\n            dict.set(\"Count\", item.count < 0 ? -childCount : childCount);\n          }\n          totalCount += item.count !== undefined && item.count < 0 ? 1 : childCount + 1;\n        } else {\n          totalCount += 1;\n        }\n        await this.#setOutlineItemDest(dict, item);\n        const flags = (item.bold ? 2 : 0) | (item.italic ? 1 : 0);\n        if (flags !== 0) {\n          dict.set(\"F\", flags);\n        }\n        if (item.color && (item.color[0] !== 0 || item.color[1] !== 0 || item.color[2] !== 0)) {\n          dict.set(\"C\", [item.color[0] / 255, item.color[1] / 255, item.color[2] / 255]);\n        }\n      }\n      return totalCount;\n    };\n    const totalCount = await fillItems(outlineItems, outlineRootRef);\n    outlineRootDict.set(\"First\", outlineItems[0]._ref);\n    outlineRootDict.set(\"Last\", outlineItems.at(-1)._ref);\n    outlineRootDict.set(\"Count\", totalCount);\n    this.rootDict.set(\"Outlines\", outlineRootRef);\n  }\n  async #mergeAcroForms(allDocumentData) {\n    this.#setAcroFormDefaultBasicValues(allDocumentData);\n    this.#setAcroFormDefaultAppearance(allDocumentData);\n    this.#setAcroFormQ(allDocumentData);\n    await this.#setAcroFormDefaultResources(allDocumentData);\n    const newFields = this.fields;\n    for (const documentData of allDocumentData) {\n      let fields = documentData.acroForm?.get(\"Fields\") || null;\n      if (!fields && documentData.fieldToParent.size > 0) {\n        fields = this.#fixFields(documentData.fieldToParent, documentData.document.xref);\n      }\n      if (Array.isArray(fields) && fields.length > 0) {\n        this.currentDocument = documentData;\n        await this.#cloneFields(newFields, fields);\n        this.currentDocument = null;\n      }\n    }\n    this.#setAcroFormCalculationOrder(allDocumentData);\n  }\n  #setAcroFormQ(allDocumentData) {\n    let firstQ = 0;\n    let firstDocData = null;\n    for (const documentData of allDocumentData) {\n      const q = documentData.acroForm?.get(\"Q\");\n      if (typeof q !== \"number\" || q === 0) {\n        continue;\n      }\n      if (firstDocData?.acroFormQ > 0) {\n        documentData.acroFormQ = q;\n        continue;\n      }\n      if (firstQ === 0) {\n        firstQ = q;\n        firstDocData = documentData;\n        continue;\n      }\n      if (q === firstQ) {\n        continue;\n      }\n      firstDocData.acroFormQ ||= firstQ;\n      documentData.acroFormQ = q;\n      firstQ = 0;\n    }\n    if (firstQ > 0) {\n      this.acroFormQ = firstQ;\n    }\n  }\n  #setAcroFormDefaultBasicValues(allDocumentData) {\n    let sigFlags = 0;\n    let needAppearances = false;\n    for (const documentData of allDocumentData) {\n      if (!documentData.acroForm) {\n        continue;\n      }\n      const sf = documentData.acroForm.get(\"SigFlags\");\n      if (typeof sf === \"number\" && documentData.hasSignatureAnnotations) {\n        sigFlags |= sf;\n      }\n      if (documentData.acroForm.get(\"NeedAppearances\") === true) {\n        needAppearances = true;\n      }\n    }\n    this.acroFormSigFlags = sigFlags;\n    this.acroFormNeedAppearances = needAppearances;\n  }\n  #setAcroFormCalculationOrder(allDocumentData) {\n    const calculationOrder = [];\n    for (const documentData of allDocumentData) {\n      const co = documentData.acroForm?.get(\"CO\") || null;\n      if (!Array.isArray(co)) {\n        continue;\n      }\n      const {\n        oldRefMapping\n      } = documentData;\n      for (const coRef of co) {\n        const newCoRef = coRef instanceof Ref && oldRefMapping.get(coRef);\n        if (newCoRef) {\n          calculationOrder.push(newCoRef);\n        }\n      }\n    }\n    this.acroFormCalculationOrder = calculationOrder.length > 0 ? calculationOrder : null;\n  }\n  #setAcroFormDefaultAppearance(allDocumentData) {\n    let firstDA = null;\n    let firstDocData = null;\n    for (const documentData of allDocumentData) {\n      const da = documentData.acroForm?.get(\"DA\") || null;\n      if (!da || typeof da !== \"string\") {\n        continue;\n      }\n      if (firstDocData?.acroFormDefaultAppearance) {\n        documentData.acroFormDefaultAppearance = da;\n        continue;\n      }\n      if (!firstDA) {\n        firstDA = da;\n        firstDocData = documentData;\n        continue;\n      }\n      if (da === firstDA) {\n        continue;\n      }\n      firstDocData.acroFormDefaultAppearance ||= firstDA;\n      documentData.acroFormDefaultAppearance = da;\n      firstDA = null;\n    }\n    if (firstDA) {\n      this.acroFormDefaultAppearance = firstDA;\n    }\n  }\n  async #setAcroFormDefaultResources(allDocumentData) {\n    let firstDR = null;\n    let firstDRRef = null;\n    let firstDocData = null;\n    for (const documentData of allDocumentData) {\n      const dr = documentData.acroForm?.get(\"DR\") || null;\n      if (!dr || !(dr instanceof Dict)) {\n        continue;\n      }\n      if (firstDocData?.acroFormDefaultResources) {\n        documentData.acroFormDefaultResources = dr;\n        continue;\n      }\n      if (!firstDR) {\n        firstDR = dr;\n        firstDRRef = documentData.acroForm.getRaw(\"DR\");\n        firstDocData = documentData;\n        continue;\n      }\n      if (deepCompare(firstDR, dr)) {\n        continue;\n      }\n      firstDocData.acroFormDefaultResources ||= firstDR;\n      documentData.acroFormDefaultResources = dr;\n      firstDR = null;\n      firstDRRef = null;\n    }\n    if (firstDR) {\n      this.currentDocument = firstDocData;\n      this.acroFormDefaultResources = await this.#collectDependencies(firstDRRef, true, firstDocData.document.xref);\n      this.currentDocument = null;\n    }\n  }\n  #fixFields(fieldToParent, xref) {\n    const newFields = [];\n    const processed = new RefSet();\n    for (const [fieldRef, parentRef] of fieldToParent) {\n      if (!parentRef) {\n        newFields.push(fieldRef);\n        continue;\n      }\n      let parent = parentRef;\n      let lastNonNullParent = parentRef;\n      while (true) {\n        parent = xref.fetchIfRef(parent)?.getRaw(\"Parent\") || null;\n        if (!parent) {\n          break;\n        }\n        lastNonNullParent = parent;\n      }\n      if (lastNonNullParent instanceof Ref && !processed.has(lastNonNullParent)) {\n        newFields.push(lastNonNullParent);\n        processed.put(lastNonNullParent);\n      }\n    }\n    return newFields;\n  }\n  async #cloneFields(newFields, fields) {\n    const processed = new RefSet();\n    const stack = [{\n      kids: fields,\n      newKids: newFields,\n      pos: 0,\n      oldParentRef: null,\n      parentRef: null,\n      parent: null\n    }];\n    const {\n      document: {\n        xref\n      },\n      oldRefMapping,\n      fieldToParent,\n      acroFormDefaultAppearance,\n      acroFormDefaultResources,\n      acroFormQ\n    } = this.currentDocument;\n    const daToFix = [];\n    const drToFix = [];\n    while (stack.length > 0) {\n      const data = stack.at(-1);\n      const {\n        kids,\n        newKids,\n        parent,\n        pos\n      } = data;\n      if (pos === kids.length) {\n        stack.pop();\n        if (newKids.length === 0 || !parent) {\n          continue;\n        }\n        const parentDict = this.xref[data.parentRef.num] = this.cloneDict(parent);\n        parentDict.delete(\"Parent\");\n        parentDict.delete(\"Kids\");\n        await this.#collectDependencies(parentDict, false, xref);\n        parentDict.set(\"Kids\", newKids);\n        if (stack.length > 0) {\n          const lastData = stack.at(-1);\n          if (!lastData.parentRef && lastData.oldParentRef) {\n            const parentRef = lastData.parentRef = this.newRef;\n            parentDict.set(\"Parent\", parentRef);\n            oldRefMapping.put(lastData.oldParentRef, parentRef);\n          }\n          lastData.newKids.push(data.parentRef);\n        }\n        continue;\n      }\n      const oldKidRef = kids[data.pos++];\n      if (!(oldKidRef instanceof Ref) || processed.has(oldKidRef)) {\n        continue;\n      }\n      processed.put(oldKidRef);\n      const kid = xref.fetchIfRef(oldKidRef);\n      if (kid.has(\"Kids\")) {\n        const kidsArray = kid.get(\"Kids\");\n        if (!Array.isArray(kidsArray)) {\n          continue;\n        }\n        stack.push({\n          kids: kidsArray,\n          newKids: [],\n          pos: 0,\n          oldParentRef: oldKidRef,\n          parentRef: null,\n          parent: kid\n        });\n        continue;\n      }\n      if (!fieldToParent.has(oldKidRef)) {\n        continue;\n      }\n      const newRef = oldRefMapping.get(oldKidRef);\n      if (!newRef) {\n        continue;\n      }\n      newKids.push(newRef);\n      if (!data.parentRef && data.oldParentRef) {\n        data.parentRef = this.newRef;\n        oldRefMapping.put(data.oldParentRef, data.parentRef);\n      }\n      const newKid = this.xref[newRef.num];\n      if (data.parentRef) {\n        newKid.set(\"Parent\", data.parentRef);\n      }\n      if (acroFormDefaultAppearance && isName(newKid.get(\"FT\"), \"Tx\") && !newKid.has(\"DA\")) {\n        daToFix.push(newKid);\n      }\n      if (acroFormDefaultResources && !newKid.has(\"Kids\") && newKid.get(\"AP\") instanceof Dict) {\n        drToFix.push(newKid);\n      }\n      if (acroFormQ && !newKid.has(\"Q\")) {\n        newKid.set(\"Q\", acroFormQ);\n      }\n    }\n    for (const field of daToFix) {\n      const da = getInheritableProperty({\n        dict: field,\n        key: \"DA\"\n      });\n      if (!da) {\n        field.set(\"DA\", acroFormDefaultAppearance);\n      }\n    }\n    const resourcesValuesCache = new Map();\n    for (const field of drToFix) {\n      const ap = field.get(\"AP\");\n      for (const [, value] of ap) {\n        if (!(value instanceof BaseStream)) {\n          continue;\n        }\n        let resources = value.dict.getRaw(\"Resources\");\n        if (!resources) {\n          const newResourcesRef = await resourcesValuesCache.getOrInsertComputed(acroFormDefaultResources, () => this.#cloneObject(acroFormDefaultResources, xref));\n          value.dict.set(\"Resources\", newResourcesRef);\n          continue;\n        }\n        resources = xref.fetchIfRef(resources);\n        for (const [resKey, resValue] of acroFormDefaultResources.getRawEntries()) {\n          if (!resources.has(resKey)) {\n            let newResValue = resValue;\n            if (resValue instanceof Ref) {\n              newResValue = await this.#collectDependencies(resValue, true, xref);\n            } else if (resValue instanceof Dict || resValue instanceof BaseStream || Array.isArray(resValue)) {\n              newResValue = await resourcesValuesCache.getOrInsertComputed(resValue, () => this.#cloneObject(resValue, xref));\n            }\n            resources.set(resKey, newResValue);\n          }\n        }\n      }\n    }\n  }\n  async #collectPageLabels() {\n    if (!this.isSingleFile) {\n      return;\n    }\n    const firstRealPage = this.oldPages.find(p => !!p);\n    if (!firstRealPage) {\n      return;\n    }\n    const {\n      documentData: {\n        document,\n        pageLabels\n      }\n    } = firstRealPage;\n    if (!pageLabels) {\n      return;\n    }\n    const numPages = document.numPages;\n    const labelsByPageIndex = new Map();\n    const oldPageIndices = new Set(this.oldPages.filter(p => !!p).map(({\n      page: {\n        pageIndex\n      }\n    }) => pageIndex));\n    let currentLabel = null;\n    let stFirstIndex = -1;\n    for (let i = 0; i < numPages; i++) {\n      const newLabel = pageLabels.get(i);\n      if (newLabel) {\n        currentLabel = newLabel;\n        stFirstIndex = currentLabel.has(\"St\") ? i : -1;\n      }\n      if (!oldPageIndices.has(i)) {\n        continue;\n      }\n      if (stFirstIndex !== -1) {\n        const st = currentLabel.get(\"St\");\n        currentLabel = this.cloneDict(currentLabel);\n        currentLabel.set(\"St\", st + (i - stFirstIndex));\n        stFirstIndex = -1;\n      }\n      labelsByPageIndex.set(i, currentLabel);\n    }\n    const defaultLabel = index => {\n      const label = new Dict();\n      label.setIfName(\"S\", \"D\");\n      label.set(\"St\", index + 1);\n      return label;\n    };\n    currentLabel = null;\n    const newPageLabels = this.pageLabels = [];\n    for (let i = 0, ii = this.oldPages.length; i < ii; i++) {\n      const pageData = this.oldPages[i];\n      const label = pageData ? labelsByPageIndex.get(pageData.page.pageIndex) || defaultLabel(i) : defaultLabel(i);\n      if (label === currentLabel) {\n        continue;\n      }\n      currentLabel = label;\n      newPageLabels.push([i, currentLabel]);\n    }\n  }\n  async #makePageCopy(pageIndex) {\n    const {\n      page,\n      documentData,\n      annotations,\n      pointingNamedDestinations\n    } = this.oldPages[pageIndex];\n    this.currentDocument = documentData;\n    const {\n      dedupNamedDestinations,\n      oldRefMapping\n    } = documentData;\n    const {\n      xref,\n      rotate,\n      mediaBox,\n      resources,\n      ref: oldPageRef\n    } = page;\n    const pageRef = this.newRef;\n    const pageDict = this.xref[pageRef.num] = this.cloneDict(page.pageDict);\n    oldRefMapping.put(oldPageRef, pageRef);\n    if (pointingNamedDestinations) {\n      for (const pointingDest of pointingNamedDestinations) {\n        const name = dedupNamedDestinations.get(pointingDest) || pointingDest;\n        const dest = this.namedDestinations.get(name);\n        dest[0] = pageRef;\n      }\n    }\n    for (const key of [\"Rotate\", \"MediaBox\", \"CropBox\", \"BleedBox\", \"TrimBox\", \"ArtBox\", \"Resources\", \"Annots\", \"Parent\", \"UserUnit\"]) {\n      pageDict.delete(key);\n    }\n    const lastRef = this.newRefCount;\n    await this.#collectDependencies(pageDict, false, xref);\n    pageDict.set(\"Rotate\", rotate);\n    pageDict.set(\"MediaBox\", mediaBox);\n    for (const boxName of [\"CropBox\", \"BleedBox\", \"TrimBox\", \"ArtBox\"]) {\n      const box = page.getBoundingBox(boxName);\n      if (box?.some((value, index) => value !== mediaBox[index])) {\n        pageDict.set(boxName, box);\n      }\n    }\n    const userUnit = page.userUnit;\n    if (userUnit !== 1) {\n      pageDict.set(\"UserUnit\", userUnit);\n    }\n    pageDict.setIfDict(\"Resources\", await this.#collectDependencies(resources, true, xref));\n    let newAnnots = null;\n    if (annotations) {\n      const newAnnotations = await this.#collectDependencies(annotations, true, xref);\n      this.#fixNamedDestinations(newAnnotations, dedupNamedDestinations);\n      if (Array.isArray(newAnnotations) && newAnnotations.length > 0) {\n        newAnnots = newAnnotations;\n      }\n    }\n    const newAnnotations = documentData.document === this.#primaryDocument ? this.#newAnnotationsParams?.newAnnotationsByPage?.get(page.pageIndex) : null;\n    if (newAnnotations) {\n      const {\n        handler,\n        task,\n        imagesPromises\n      } = this.#newAnnotationsParams;\n      const changes = new RefSetCache();\n      const newData = await AnnotationFactory.saveNewAnnotations(page.createAnnotationEvaluator(handler), this.xrefWrapper, task, newAnnotations, imagesPromises, changes);\n      for (const [ref, {\n        data\n      }] of changes.items()) {\n        this.xref[ref.num] = data;\n      }\n      newAnnots ||= [];\n      for (const {\n        ref\n      } of newData.annotations) {\n        newAnnots.push(ref);\n      }\n    }\n    pageDict.setIfArray(\"Annots\", newAnnots);\n    if (this.useObjectStreams) {\n      const newLastRef = this.newRefCount;\n      const pageObjectRefs = [];\n      for (let i = lastRef; i < newLastRef; i++) {\n        const obj = this.xref[i];\n        if (obj instanceof BaseStream) {\n          continue;\n        }\n        pageObjectRefs.push(Ref.get(i, 0));\n      }\n      for (let i = 0; i < pageObjectRefs.length; i += 0xffff) {\n        const objStreamRef = this.newRef;\n        this.objStreamRefs.add(objStreamRef.num);\n        this.xref[objStreamRef.num] = pageObjectRefs.slice(i, i + 0xffff);\n      }\n    }\n    this.currentDocument = null;\n    return pageRef;\n  }\n  #modalPageSize() {\n    const counts = new Map();\n    for (const pageData of this.oldPages) {\n      if (!pageData) {\n        continue;\n      }\n      const {\n        page\n      } = pageData;\n      const [x0, y0, x1, y1] = page.view;\n      let width = x1 - x0;\n      let height = y1 - y0;\n      if (width <= 0 || height <= 0) {\n        continue;\n      }\n      if (page.rotate % 180 !== 0) {\n        [width, height] = [height, width];\n      }\n      const key = `${width}x${height}`;\n      const entry = counts.get(key);\n      if (entry) {\n        entry.count++;\n      } else {\n        counts.set(key, {\n          width,\n          height,\n          count: 1\n        });\n      }\n    }\n    if (counts.size === 0) {\n      const [,, width, height] = LETTER_SIZE_MEDIABOX;\n      return {\n        width,\n        height\n      };\n    }\n    let best = null;\n    for (const entry of counts.values()) {\n      if (!best || entry.count > best.count || entry.count === best.count && entry.width * entry.height > best.width * best.height) {\n        best = entry;\n      }\n    }\n    return {\n      width: best.width,\n      height: best.height\n    };\n  }\n  async #makeImagePage(bitmap, pageSize) {\n    const {\n      width: pageW,\n      height: pageH\n    } = pageSize;\n    const DEFAULT_MARGIN_RATIO = 0.1;\n    const margin = pageW * DEFAULT_MARGIN_RATIO;\n    const availW = Math.max(1, pageW - 2 * margin);\n    const availH = Math.max(1, pageH - 2 * margin);\n    const lastRef = this.newRefCount;\n    const {\n      imageStream,\n      smaskStream,\n      width: imgW,\n      height: imgH\n    } = await createImage(bitmap, this.xrefWrapper, {\n      closeBitmap: true\n    });\n    const scale = Math.min(availW / imgW, availH / imgH);\n    const drawW = imgW * scale;\n    const drawH = imgH * scale;\n    const tx = (pageW - drawW) / 2;\n    const ty = (pageH - drawH) / 2;\n    if (smaskStream) {\n      const smaskRef = this.newRef;\n      this.xref[smaskRef.num] = smaskStream;\n      imageStream.dict.set(\"SMask\", smaskRef);\n    }\n    const imageRef = this.newRef;\n    this.xref[imageRef.num] = imageStream;\n    const xobjectDict = new Dict(this.xrefWrapper);\n    xobjectDict.set(\"Im0\", imageRef);\n    const resourcesDict = new Dict(this.xrefWrapper);\n    resourcesDict.set(\"XObject\", xobjectDict);\n    resourcesDict.set(\"ProcSet\", [Name.get(\"PDF\"), Name.get(\"ImageC\")]);\n    const content = `q ${numberToString(drawW)} 0 0 ${numberToString(drawH)} ` + `${numberToString(tx)} ${numberToString(ty)} cm /Im0 Do Q`;\n    const contentsStream = new StringStream(content, new Dict(this.xrefWrapper));\n    const contentsRef = this.newRef;\n    this.xref[contentsRef.num] = contentsStream;\n    const pageRef = this.newRef;\n    const pageDict = this.xref[pageRef.num] = new Dict(this.xrefWrapper);\n    pageDict.setIfName(\"Type\", \"Page\");\n    pageDict.set(\"MediaBox\", [0, 0, pageW, pageH]);\n    pageDict.set(\"Resources\", resourcesDict);\n    pageDict.set(\"Contents\", contentsRef);\n    if (this.useObjectStreams) {\n      const newLastRef = this.newRefCount;\n      const pageObjectRefs = [];\n      for (let i = lastRef; i < newLastRef; i++) {\n        const obj = this.xref[i];\n        if (obj instanceof BaseStream) {\n          continue;\n        }\n        pageObjectRefs.push(Ref.get(i, 0));\n      }\n      for (let i = 0; i < pageObjectRefs.length; i += 0xffff) {\n        const objStreamRef = this.newRef;\n        this.objStreamRefs.add(objStreamRef.num);\n        this.xref[objStreamRef.num] = pageObjectRefs.slice(i, i + 0xffff);\n      }\n    }\n    return pageRef;\n  }\n  #makePageTree() {\n    const {\n      newPages: pages,\n      rootDict,\n      pagesRef,\n      pagesDict\n    } = this;\n    rootDict.set(\"Pages\", pagesRef);\n    pagesDict.setIfName(\"Type\", \"Pages\");\n    pagesDict.set(\"Count\", pages.length);\n    const maxLeaves = MAX_LEAVES_PER_PAGES_NODE <= 1 ? pages.length : MAX_LEAVES_PER_PAGES_NODE;\n    const stack = [{\n      dict: pagesDict,\n      kids: pages,\n      parentRef: pagesRef\n    }];\n    while (stack.length > 0) {\n      const {\n        dict,\n        kids,\n        parentRef\n      } = stack.pop();\n      if (kids.length <= maxLeaves) {\n        dict.set(\"Kids\", kids);\n        for (const ref of kids) {\n          this.xref[ref.num].set(\"Parent\", parentRef);\n        }\n        continue;\n      }\n      const chunkSize = Math.max(maxLeaves, Math.ceil(kids.length / maxLeaves));\n      const kidsChunks = [];\n      for (let i = 0; i < kids.length; i += chunkSize) {\n        kidsChunks.push(kids.slice(i, i + chunkSize));\n      }\n      const kidsRefs = [];\n      dict.set(\"Kids\", kidsRefs);\n      for (const chunk of kidsChunks) {\n        const [kidRef, kidDict] = this.newDict;\n        kidsRefs.push(kidRef);\n        kidDict.setIfName(\"Type\", \"Pages\");\n        kidDict.set(\"Parent\", parentRef);\n        kidDict.set(\"Count\", chunk.length);\n        stack.push({\n          dict: kidDict,\n          kids: chunk,\n          parentRef: kidRef\n        });\n      }\n    }\n  }\n  #makeNameNumTree(map, areNames) {\n    const allEntries = map.sort(areNames ? ([keyA], [keyB]) => keyA.localeCompare(keyB) : ([keyA], [keyB]) => keyA - keyB);\n    const maxLeaves = MAX_IN_NAME_TREE_NODE <= 1 ? allEntries.length : MAX_IN_NAME_TREE_NODE;\n    const [treeRef, treeDict] = this.newDict;\n    const stack = [{\n      dict: treeDict,\n      entries: allEntries,\n      isRoot: true\n    }];\n    const valueType = areNames ? \"Names\" : \"Nums\";\n    while (stack.length > 0) {\n      const {\n        dict,\n        entries,\n        isRoot\n      } = stack.pop();\n      if (entries.length <= maxLeaves) {\n        if (!isRoot) {\n          dict.set(\"Limits\", [entries[0][0], entries.at(-1)[0]]);\n        }\n        dict.set(valueType, entries.flat());\n        continue;\n      }\n      const entriesChunks = [];\n      const chunkSize = Math.max(maxLeaves, Math.ceil(entries.length / maxLeaves));\n      for (let i = 0; i < entries.length; i += chunkSize) {\n        entriesChunks.push(entries.slice(i, i + chunkSize));\n      }\n      const entriesRefs = [];\n      dict.set(\"Kids\", entriesRefs);\n      for (const chunk of entriesChunks) {\n        const [entriesRef, entriesDict] = this.newDict;\n        entriesRefs.push(entriesRef);\n        entriesDict.set(\"Limits\", [chunk[0][0], chunk.at(-1)[0]]);\n        stack.push({\n          dict: entriesDict,\n          entries: chunk\n        });\n      }\n    }\n    return treeRef;\n  }\n  #makePageLabelsTree() {\n    const {\n      pageLabels\n    } = this;\n    if (!pageLabels?.length) {\n      return;\n    }\n    const {\n      rootDict\n    } = this;\n    const pageLabelsRef = this.#makeNameNumTree(this.pageLabels, false);\n    rootDict.set(\"PageLabels\", pageLabelsRef);\n  }\n  async #collectEmbeddedFiles(allDocumentData) {\n    const {\n      embeddedFiles\n    } = this;\n    for (const documentData of allDocumentData) {\n      const {\n        embeddedFiles: docEmbeddedFiles,\n        document: {\n          xref\n        }\n      } = documentData;\n      if (!docEmbeddedFiles?.size) {\n        continue;\n      }\n      this.currentDocument = documentData;\n      for (const [key, valueRef] of docEmbeddedFiles) {\n        let name = key;\n        if (embeddedFiles.has(name)) {\n          const displayName = stringToPDFString(key, true);\n          for (let i = 1;; i++) {\n            const deduped = `${displayName}_${i}`;\n            if (!embeddedFiles.has(deduped)) {\n              name = deduped;\n              break;\n            }\n          }\n        }\n        embeddedFiles.set(name, await this.#collectDependencies(valueRef, true, xref));\n      }\n      this.currentDocument = null;\n    }\n  }\n  #makeEmbeddedFilesTree() {\n    const {\n      embeddedFiles\n    } = this;\n    if (embeddedFiles.size === 0) {\n      return;\n    }\n    if (!this.namesDict) {\n      [this.namesRef, this.namesDict] = this.newDict;\n      this.rootDict.set(\"Names\", this.namesRef);\n    }\n    this.namesDict.set(\"EmbeddedFiles\", this.#makeNameNumTree(Array.from(embeddedFiles.entries()), true));\n  }\n  #makeDestinationsTree() {\n    const {\n      namedDestinations\n    } = this;\n    if (namedDestinations.size === 0) {\n      return;\n    }\n    if (!this.namesDict) {\n      [this.namesRef, this.namesDict] = this.newDict;\n      this.rootDict.set(\"Names\", this.namesRef);\n    }\n    this.namesDict.set(\"Dests\", this.#makeNameNumTree(Array.from(namedDestinations.entries()), true));\n  }\n  #makeStructTree() {\n    const {\n      structTreeKids\n    } = this;\n    if (!structTreeKids?.length) {\n      return;\n    }\n    const {\n      rootDict\n    } = this;\n    const structTreeRef = this.newRef;\n    const structTree = this.xref[structTreeRef.num] = new Dict();\n    structTree.setIfName(\"Type\", \"StructTreeRoot\");\n    structTree.setIfArray(\"K\", structTreeKids);\n    for (const kidRef of structTreeKids) {\n      const kid = this.xref[kidRef.num];\n      const type = kid.get(\"Type\");\n      if (!type || isName(type, \"StructElem\")) {\n        kid.set(\"P\", structTreeRef);\n      }\n    }\n    if (this.parentTree.size > 0) {\n      const parentTreeRef = this.#makeNameNumTree(Array.from(this.parentTree.entries()), false);\n      const parentTree = this.xref[parentTreeRef.num];\n      parentTree.setIfName(\"Type\", \"ParentTree\");\n      structTree.set(\"ParentTree\", parentTreeRef);\n      structTree.set(\"ParentTreeNextKey\", this.parentTree.size);\n    }\n    if (this.idTree.size > 0) {\n      const idTreeRef = this.#makeNameNumTree(Array.from(this.idTree.entries()), true);\n      const idTree = this.xref[idTreeRef.num];\n      idTree.setIfName(\"Type\", \"IDTree\");\n      structTree.set(\"IDTree\", idTreeRef);\n    }\n    if (this.classMap.size > 0) {\n      const classMapRef = this.newRef;\n      this.xref[classMapRef.num] = this.classMap;\n      structTree.set(\"ClassMap\", classMapRef);\n    }\n    if (this.roleMap.size > 0) {\n      const roleMapRef = this.newRef;\n      this.xref[roleMapRef.num] = this.roleMap;\n      structTree.set(\"RoleMap\", roleMapRef);\n    }\n    if (this.namespaces.size > 0) {\n      const namespacesRef = this.newRef;\n      this.xref[namespacesRef.num] = Array.from(this.namespaces.values());\n      structTree.set(\"Namespaces\", namespacesRef);\n    }\n    if (this.structTreeAF.length > 0) {\n      const structTreeAFRef = this.newRef;\n      this.xref[structTreeAFRef.num] = this.structTreeAF;\n      structTree.set(\"AF\", structTreeAFRef);\n    }\n    if (this.structTreePronunciationLexicon.length > 0) {\n      const structTreePronunciationLexiconRef = this.newRef;\n      this.xref[structTreePronunciationLexiconRef.num] = this.structTreePronunciationLexicon;\n      structTree.set(\"PronunciationLexicon\", structTreePronunciationLexiconRef);\n    }\n    rootDict.set(\"StructTreeRoot\", structTreeRef);\n  }\n  #makeAcroForm() {\n    if (this.fields.length === 0) {\n      return;\n    }\n    const {\n      rootDict\n    } = this;\n    const acroFormRef = this.newRef;\n    const acroForm = this.xref[acroFormRef.num] = new Dict();\n    rootDict.set(\"AcroForm\", acroFormRef);\n    acroForm.set(\"Fields\", this.fields);\n    if (this.acroFormNeedAppearances) {\n      acroForm.set(\"NeedAppearances\", true);\n    }\n    if (this.acroFormSigFlags > 0) {\n      acroForm.set(\"SigFlags\", this.acroFormSigFlags);\n    }\n    acroForm.setIfArray(\"CO\", this.acroFormCalculationOrder);\n    acroForm.setIfDict(\"DR\", this.acroFormDefaultResources);\n    if (this.acroFormDefaultAppearance) {\n      acroForm.set(\"DA\", this.acroFormDefaultAppearance);\n    }\n    if (this.acroFormQ > 0) {\n      acroForm.set(\"Q\", this.acroFormQ);\n    }\n  }\n  async #makeRoot() {\n    const {\n      rootDict\n    } = this;\n    rootDict.setIfName(\"Type\", \"Catalog\");\n    rootDict.setIfName(\"Version\", this.version);\n    this.#makeAcroForm();\n    this.#makePageTree();\n    this.#makePageLabelsTree();\n    this.#makeEmbeddedFilesTree();\n    this.#makeDestinationsTree();\n    this.#makeStructTree();\n    await this.#makeOutline();\n  }\n  #makeInfo() {\n    const infoMap = new Map();\n    if (this.isSingleFile) {\n      const firstRealPage = this.oldPages.find(p => !!p);\n      const {\n        xref: {\n          trailer\n        }\n      } = firstRealPage.documentData.document;\n      const oldInfoDict = trailer.get(\"Info\");\n      for (const [key, value] of oldInfoDict || []) {\n        if (typeof value === \"string\") {\n          infoMap.set(key, stringToPDFString(value));\n        }\n      }\n    }\n    infoMap.delete(\"ModDate\");\n    infoMap.set(\"CreationDate\", getModificationDate());\n    infoMap.set(\"Creator\", \"PDF.js\");\n    infoMap.set(\"Producer\", \"Firefox\");\n    if (this.author) {\n      infoMap.set(\"Author\", this.author);\n    }\n    if (this.title) {\n      infoMap.set(\"Title\", this.title);\n    }\n    for (const [key, value] of infoMap) {\n      this.infoDict.set(key, stringToAsciiOrUTF16BE(value));\n    }\n    return infoMap;\n  }\n  async #makeEncrypt() {\n    if (!this.isSingleFile) {\n      return [null, null, null];\n    }\n    const firstRealPage = this.oldPages.find(p => !!p);\n    const {\n      documentData\n    } = firstRealPage;\n    const {\n      document: {\n        xref: {\n          trailer,\n          encrypt\n        }\n      }\n    } = documentData;\n    if (!trailer.has(\"Encrypt\")) {\n      return [null, null, null];\n    }\n    const encryptDict = trailer.get(\"Encrypt\");\n    if (!(encryptDict instanceof Dict)) {\n      return [null, null, null];\n    }\n    this.currentDocument = documentData;\n    const result = [await this.#cloneObject(encryptDict, trailer.xref), encrypt, trailer.get(\"ID\")];\n    this.currentDocument = null;\n    return result;\n  }\n  async #createChanges() {\n    const changes = new RefSetCache();\n    changes.put(Ref.get(0, 0xffff), {\n      data: null\n    });\n    for (let i = 1, ii = this.xref.length; i < ii; i++) {\n      if (this.objStreamRefs?.has(i)) {\n        await this.#createObjectStream(Ref.get(i, 0), this.xref[i], changes);\n      } else {\n        changes.put(Ref.get(i, 0), {\n          data: this.xref[i]\n        });\n      }\n    }\n    return [changes, this.newRef];\n  }\n  async #createObjectStream(objStreamRef, objRefs, changes) {\n    const streamBuffer = [\"\"];\n    const objOffsets = [];\n    let offset = 0;\n    const buffer = [];\n    for (let i = 0, ii = objRefs.length; i < ii; i++) {\n      const objRef = objRefs[i];\n      changes.put(objRef, {\n        data: null,\n        objStreamRef,\n        index: i\n      });\n      objOffsets.push(`${objRef.num} ${offset}`);\n      const data = this.xref[objRef.num];\n      await writeValue(data, buffer, null);\n      const obj = buffer.join(\"\");\n      buffer.length = 0;\n      streamBuffer.push(obj);\n      offset += obj.length + 1;\n    }\n    streamBuffer[0] = objOffsets.join(\"\\n\");\n    const dict = new Dict();\n    dict.setIfName(\"Type\", \"ObjStm\");\n    dict.set(\"N\", objRefs.length);\n    dict.set(\"First\", streamBuffer[0].length + 1);\n    const objStream = new StringStream(streamBuffer.join(\"\\n\"), dict);\n    changes.put(objStreamRef, {\n      data: objStream\n    });\n  }\n  async writePDF() {\n    await this.#makeRoot();\n    const infoMap = this.#makeInfo();\n    const [encryptRef, encrypt, fileIds] = await this.#makeEncrypt();\n    const [changes, xrefTableRef] = await this.#createChanges();\n    const header = stringToBytes(`%PDF-${this.version}\\n%\\xfa\\xde\\xfa\\xce`);\n    return incrementalUpdate({\n      originalData: header,\n      changes,\n      xrefInfo: {\n        startXRef: null,\n        rootRef: this.rootRef,\n        infoRef: this.infoRef,\n        encryptRef,\n        newRef: xrefTableRef,\n        fileIds: fileIds || [null, null],\n        infoMap\n      },\n      useXrefStream: this.useObjectStreams,\n      xref: {\n        encrypt,\n        encryptRef\n      }\n    });\n  }\n}\n\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/core/worker_stream.js\n\nclass PDFWorkerStream extends BasePDFStream {\n  constructor(source) {\n    super(source, PDFWorkerStreamReader, PDFWorkerStreamRangeReader);\n  }\n}\nclass PDFWorkerStreamReader extends BasePDFStreamReader {\n  _reader = null;\n  constructor(stream) {\n    super(stream);\n    const {\n      msgHandler\n    } = stream._source;\n    const readableStream = msgHandler.sendWithStream(\"GetReader\");\n    this._reader = readableStream.getReader();\n    msgHandler.sendWithPromise(\"ReaderHeadersReady\").then(data => {\n      this._contentLength = data.contentLength;\n      this._isStreamingSupported = data.isStreamingSupported;\n      this._isRangeSupported = data.isRangeSupported;\n      this._headersCapability.resolve();\n    }, this._headersCapability.reject);\n  }\n  async read() {\n    const {\n      value,\n      done\n    } = await this._reader.read();\n    if (done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n    return {\n      value: value.buffer,\n      done: false\n    };\n  }\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n}\nclass PDFWorkerStreamRangeReader extends BasePDFStreamRangeReader {\n  _reader = null;\n  constructor(stream, begin, end) {\n    super(stream, begin, end);\n    const {\n      msgHandler\n    } = stream._source;\n    const readableStream = msgHandler.sendWithStream(\"GetRangeReader\", {\n      begin,\n      end\n    });\n    this._reader = readableStream.getReader();\n  }\n  async read() {\n    const {\n      value,\n      done\n    } = await this._reader.read();\n    if (done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n    return {\n      value: value.buffer,\n      done: false\n    };\n  }\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n}\n\n;// ./src/core/worker.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\nclass WorkerTask {\n  constructor(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = Promise.withResolvers();\n  }\n  get finished() {\n    return this._capability.promise;\n  }\n  finish() {\n    this._capability.resolve();\n  }\n  terminate() {\n    this.terminated = true;\n  }\n  ensureNotTerminated() {\n    if (this.terminated) {\n      throw new Error(\"Worker task was terminated\");\n    }\n  }\n}\nclass WorkerMessageHandler {\n  static {\n    if (typeof window === \"undefined\" && !isNodeJS && typeof self !== \"undefined\" && typeof self.postMessage === \"function\" && \"onmessage\" in self) {\n      this.initializeFromPort(self);\n    }\n  }\n  static setup(handler, port) {\n    let testMessageProcessed = false;\n    handler.on(\"test\", data => {\n      if (testMessageProcessed) {\n        return;\n      }\n      testMessageProcessed = true;\n      handler.send(\"test\", data instanceof Uint8Array);\n    });\n    handler.on(\"configure\", data => {\n      setVerbosityLevel(data.verbosity);\n    });\n    handler.on(\"GetDocRequest\", data => this.createDocumentHandler(data, port));\n  }\n  static createDocumentHandler(docParams, port) {\n    let pdfManager;\n    let terminated = false;\n    let cancelXHRs = null;\n    const WorkerTasks = new Set();\n    const verbosity = getVerbosityLevel();\n    const {\n      docId,\n      apiVersion\n    } = docParams;\n    const workerVersion = \"6.1.200\";\n    if (apiVersion !== workerVersion) {\n      throw new Error(`The API version \"${apiVersion}\" does not match ` + `the Worker version \"${workerVersion}\".`);\n    }\n    const buildMsg = (type, prop) => `The \\`${type}.prototype\\` contains unexpected enumerable property ` + `\"${prop}\", thus breaking e.g. \\`for...in\\` iteration of ${type}s.`;\n    for (const prop in {}) {\n      throw new Error(buildMsg(\"Object\", prop));\n    }\n    for (const prop in []) {\n      throw new Error(buildMsg(\"Array\", prop));\n    }\n    const workerHandlerName = docId + \"_worker\";\n    let handler = new MessageHandler(workerHandlerName, docId, port);\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error(\"Worker was terminated\");\n      }\n    }\n    function startWorkerTask(task) {\n      WorkerTasks.add(task);\n    }\n    function finishWorkerTask(task) {\n      task.finish();\n      WorkerTasks.delete(task);\n    }\n    async function loadDocument(recoveryMode) {\n      await pdfManager.initDocument(recoveryMode);\n      const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n      if (isPureXfa) {\n        const task = new WorkerTask(\"loadXfaResources\");\n        startWorkerTask(task);\n        await pdfManager.ensureDoc(\"loadXfaResources\", [handler, task]);\n        finishWorkerTask(task);\n      }\n      const [numPages, fingerprints] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprints\")]);\n      const htmlForXfa = isPureXfa ? await pdfManager.ensureDoc(\"htmlForXfa\") : null;\n      return {\n        numPages,\n        fingerprints,\n        htmlForXfa\n      };\n    }\n    async function getPdfManager({\n      data,\n      password,\n      disableAutoFetch,\n      rangeChunkSize,\n      docBaseUrl,\n      enableXfa,\n      evaluatorOptions\n    }) {\n      const pdfManagerArgs = {\n        source: null,\n        disableAutoFetch,\n        docBaseUrl,\n        docId,\n        enableXfa,\n        evaluatorOptions,\n        handler,\n        length: 0,\n        password,\n        rangeChunkSize\n      };\n      if (data) {\n        pdfManagerArgs.source = data;\n        return new LocalPdfManager(pdfManagerArgs);\n      }\n      const pdfStream = new PDFWorkerStream({\n          msgHandler: handler\n        }),\n        fullReader = pdfStream.getFullReader();\n      const {\n        promise,\n        resolve,\n        reject\n      } = Promise.withResolvers();\n      let newPdfManager,\n        cachedChunks = [];\n      cancelXHRs = reason => pdfStream.cancelAllRequests(reason);\n      fullReader.headersReady.then(() => {\n        if (!fullReader.isRangeSupported) {\n          return;\n        }\n        pdfManagerArgs.source = pdfStream;\n        pdfManagerArgs.length = fullReader.contentLength;\n        pdfManagerArgs.disableAutoFetch ||= fullReader.isStreamingSupported;\n        newPdfManager = new NetworkPdfManager(pdfManagerArgs);\n        for (const chunk of cachedChunks) {\n          newPdfManager.sendProgressiveData(chunk);\n        }\n        cachedChunks = null;\n        resolve(newPdfManager);\n        cancelXHRs = null;\n      }).catch(reason => {\n        reject(reason);\n        cancelXHRs = null;\n      });\n      async function readData() {\n        let loaded = 0;\n        while (true) {\n          const {\n            value,\n            done\n          } = await fullReader.read();\n          ensureNotTerminated();\n          if (done) {\n            break;\n          }\n          loaded += value.byteLength;\n          if (!fullReader.isStreamingSupported) {\n            handler.send(\"DocProgress\", {\n              loaded,\n              total: fullReader.contentLength\n            });\n          }\n          if (newPdfManager) {\n            newPdfManager.sendProgressiveData(value);\n          } else {\n            cachedChunks.push(value);\n          }\n        }\n        if (!newPdfManager) {\n          pdfManagerArgs.source = arrayBuffersToBytes(cachedChunks);\n          cachedChunks = null;\n          newPdfManager = new LocalPdfManager(pdfManagerArgs);\n          resolve(newPdfManager);\n        }\n        cancelXHRs = null;\n      }\n      readData().catch(reason => {\n        reject(reason);\n        cancelXHRs = null;\n      });\n      return promise;\n    }\n    async function getPassword(ex) {\n      const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n      startWorkerTask(task);\n      try {\n        const res = await handler.sendWithPromise(\"PasswordRequest\", ex);\n        return res.password;\n      } finally {\n        Promise.resolve().then(() => {\n          finishWorkerTask(task);\n        });\n      }\n    }\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send(\"GetDoc\", {\n          pdfInfo: doc\n        });\n      }\n      function onFailure(ex) {\n        if (terminated) {\n          return;\n        }\n        if (ex instanceof PasswordException) {\n          getPassword(ex).then(password => {\n            pdfManager.updatePassword(password);\n            pdfManagerReady();\n          }).catch(() => {\n            handler.send(\"DocException\", ex);\n          });\n        } else {\n          handler.send(\"DocException\", wrapReason(ex));\n        }\n      }\n      function pdfManagerReady() {\n        ensureNotTerminated();\n        loadDocument(false).then(onSuccess, function (reason) {\n          ensureNotTerminated();\n          if (!(reason instanceof XRefParseException)) {\n            onFailure(reason);\n            return;\n          }\n          pdfManager.requestLoadedStream().then(function () {\n            ensureNotTerminated();\n            loadDocument(true).then(onSuccess, onFailure);\n          }, onFailure);\n        });\n      }\n      ensureNotTerminated();\n      getPdfManager(data).then(function (newPdfManager) {\n        if (terminated) {\n          newPdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n          throw new Error(\"Worker was terminated\");\n        }\n        pdfManager = newPdfManager;\n        pdfManager.requestLoadedStream(true).then(stream => {\n          handler.send(\"DataLoaded\", {\n            length: stream.bytes.byteLength\n          });\n        }, () => {});\n      }).then(pdfManagerReady, onFailure);\n    }\n    handler.on(\"GetPage\", function (data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([pdfManager.ensure(page, \"rotate\"), pdfManager.ensure(page, \"ref\"), pdfManager.ensure(page, \"userUnit\"), pdfManager.ensure(page, \"view\")]).then(function ([rotate, ref, userUnit, view]) {\n          return {\n            rotate,\n            ref,\n            refStr: ref?.toString() ?? null,\n            userUnit,\n            view\n          };\n        });\n      });\n    });\n    handler.on(\"GetPageIndex\", function (data) {\n      const pageRef = Ref.get(data.num, data.gen);\n      return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n    });\n    handler.on(\"GetDestinations\", function (data) {\n      return pdfManager.ensureCatalog(\"destinations\");\n    });\n    handler.on(\"GetDestination\", function (data) {\n      return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n    });\n    handler.on(\"GetPageLabels\", function (data) {\n      return pdfManager.ensureCatalog(\"pageLabels\");\n    });\n    handler.on(\"GetPageLayout\", function (data) {\n      return pdfManager.ensureCatalog(\"pageLayout\");\n    });\n    handler.on(\"GetPageMode\", function (data) {\n      return pdfManager.ensureCatalog(\"pageMode\");\n    });\n    handler.on(\"GetViewerPreferences\", function (data) {\n      return pdfManager.ensureCatalog(\"viewerPreferences\");\n    });\n    handler.on(\"GetOpenAction\", function (data) {\n      return pdfManager.ensureCatalog(\"openAction\");\n    });\n    handler.on(\"GetAttachments\", function (data) {\n      return pdfManager.ensureCatalog(\"attachments\");\n    });\n    handler.on(\"GetAttachmentContent\", async function (id) {\n      let passwordEx;\n      while (true) {\n        const password = passwordEx ? await getPassword(passwordEx) : null;\n        try {\n          if (password) {\n            pdfManager.updatePassword(password);\n          }\n          return await pdfManager.ensureCatalog(\"attachmentContent\", [id]);\n        } catch (ex) {\n          if (ex instanceof PasswordException) {\n            passwordEx = ex;\n            continue;\n          }\n          throw ex;\n        }\n      }\n    });\n    handler.on(\"GetDocJSActions\", function (data) {\n      return pdfManager.ensureCatalog(\"jsActions\");\n    });\n    handler.on(\"GetPageJSActions\", function ({\n      pageIndex\n    }) {\n      return pdfManager.getPage(pageIndex).then(page => pdfManager.ensure(page, \"jsActions\"));\n    });\n    handler.on(\"GetAnnotationsByType\", async function ({\n      types,\n      pageIndexesToSkip\n    }) {\n      const [numPages, annotationGlobals] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"annotationGlobals\")]);\n      if (!annotationGlobals) {\n        return null;\n      }\n      const pagePromises = [];\n      const annotationPromises = [];\n      let task = null;\n      try {\n        for (let i = 0, ii = numPages; i < ii; i++) {\n          if (pageIndexesToSkip?.has(i)) {\n            continue;\n          }\n          if (!task) {\n            task = new WorkerTask(\"GetAnnotationsByType\");\n            startWorkerTask(task);\n          }\n          pagePromises.push(pdfManager.getPage(i).then(page => page.collectAnnotationsByType(handler, task, types, annotationPromises, annotationGlobals)));\n        }\n        await Promise.all(pagePromises);\n        const annotations = await Promise.all(annotationPromises);\n        return annotations.filter(a => !!a);\n      } finally {\n        if (task) {\n          finishWorkerTask(task);\n        }\n      }\n    });\n    handler.on(\"GetOutline\", function (data) {\n      return pdfManager.ensureCatalog(\"documentOutline\");\n    });\n    handler.on(\"GetOptionalContentConfig\", function (data) {\n      return pdfManager.ensureCatalog(\"optionalContentConfig\");\n    });\n    handler.on(\"GetPermissions\", function (data) {\n      return pdfManager.ensureCatalog(\"permissions\");\n    });\n    handler.on(\"GetMetadata\", function (data) {\n      return Promise.all([pdfManager.ensureDoc(\"documentInfo\"), pdfManager.ensureCatalog(\"metadata\"), pdfManager.ensureCatalog(\"hasStructTree\")]);\n    });\n    handler.on(\"GetMarkInfo\", function (data) {\n      return pdfManager.ensureCatalog(\"markInfo\");\n    });\n    handler.on(\"GetData\", function (data) {\n      return pdfManager.requestLoadedStream().then(stream => stream.bytes);\n    });\n    handler.on(\"GetAnnotations\", function ({\n      pageIndex,\n      intent\n    }) {\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`);\n        startWorkerTask(task);\n        return page.getAnnotationsData(handler, task, intent).finally(() => {\n          finishWorkerTask(task);\n        });\n      });\n    });\n    handler.on(\"GetFieldObjects\", function (data) {\n      return pdfManager.ensureDoc(\"fieldObjects\").then(fieldObjects => fieldObjects?.allFields || null);\n    });\n    handler.on(\"HasJSActions\", function (data) {\n      return pdfManager.ensureDoc(\"hasJSActions\");\n    });\n    handler.on(\"GetCalculationOrderIds\", function (data) {\n      return pdfManager.ensureDoc(\"calculationOrderIds\");\n    });\n    handler.on(\"ExtractPages\", async function ({\n      pageInfos,\n      annotationStorage\n    }) {\n      if (!pageInfos) {\n        warn(\"extractPages: nothing to extract.\");\n        return null;\n      }\n      if (!Array.isArray(pageInfos)) {\n        pageInfos = [pageInfos];\n      }\n      let newDocumentId = 0;\n      for (const pageInfo of pageInfos) {\n        if (pageInfo.image) {\n          continue;\n        }\n        if (pageInfo.document === null) {\n          pageInfo.document = pdfManager.pdfDocument;\n        } else if (ArrayBuffer.isView(pageInfo.document)) {\n          const manager = new LocalPdfManager({\n            source: pageInfo.document,\n            docId: `${docId}_extractPages_${newDocumentId++}`,\n            handler,\n            password: pageInfo.password ?? null,\n            evaluatorOptions: Object.assign({}, pdfManager.evaluatorOptions)\n          });\n          let recoveryMode = false;\n          let isValid = true;\n          while (true) {\n            try {\n              await manager.requestLoadedStream();\n              await manager.initDocument(recoveryMode);\n              break;\n            } catch (e) {\n              if (e instanceof XRefParseException) {\n                if (recoveryMode === false) {\n                  recoveryMode = true;\n                  continue;\n                } else {\n                  isValid = false;\n                  warn(\"extractPages: XRefParseException.\");\n                }\n              } else if (e instanceof PasswordException) {\n                try {\n                  const password = await getPassword(e);\n                  manager.updatePassword(password);\n                } catch {\n                  isValid = false;\n                  warn(\"extractPages: invalid password.\");\n                }\n              } else {\n                isValid = false;\n                warn(\"extractPages: invalid document.\");\n              }\n              if (!isValid) {\n                break;\n              }\n            }\n          }\n          if (!isValid) {\n            pageInfo.document = null;\n          }\n          const isPureXfa = await manager.ensureDoc(\"isPureXfa\");\n          if (isPureXfa) {\n            pageInfo.document = null;\n            warn(\"extractPages does not support pure XFA documents.\");\n          } else {\n            pageInfo.document = manager.pdfDocument;\n          }\n        } else {\n          warn(\"extractPages: invalid document.\");\n        }\n      }\n      let task;\n      try {\n        const pdfEditor = new PDFEditor();\n        task = new WorkerTask(`ExtractPages: ${pageInfos.length} page(s)`);\n        startWorkerTask(task);\n        const buffer = await pdfEditor.extractPages(pageInfos, annotationStorage, pdfManager.pdfDocument, handler, task);\n        return buffer;\n      } catch (reason) {\n        warn(`extractPages: \"${reason}\".`);\n        return null;\n      } finally {\n        if (task) {\n          finishWorkerTask(task);\n        }\n      }\n    });\n    handler.on(\"SaveDocument\", async function ({\n      isPureXfa,\n      numPages,\n      annotationStorage,\n      filename\n    }) {\n      const globalPromises = [pdfManager.requestLoadedStream(), pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureCatalog(\"acroFormRef\"), pdfManager.ensureDoc(\"startXRef\"), pdfManager.ensureDoc(\"xref\"), pdfManager.ensureCatalog(\"structTreeRoot\")];\n      const changes = new RefSetCache();\n      const promises = [];\n      const newAnnotationsByPage = !isPureXfa ? getNewAnnotationsMap(annotationStorage) : null;\n      const [stream, acroForm, acroFormRef, startXRef, xref, _structTreeRoot] = await Promise.all(globalPromises);\n      const catalogRef = xref.trailer.getRaw(\"Root\") || null;\n      let structTreeRoot;\n      if (newAnnotationsByPage) {\n        if (!_structTreeRoot) {\n          if (await StructTreeRoot.canCreateStructureTree({\n            catalogRef,\n            pdfManager,\n            newAnnotationsByPage\n          })) {\n            structTreeRoot = null;\n          }\n        } else if (await _structTreeRoot.canUpdateStructTree({\n          pdfManager,\n          newAnnotationsByPage\n        })) {\n          structTreeRoot = _structTreeRoot;\n        }\n        const imagePromises = AnnotationFactory.generateImages(annotationStorage.values(), xref, pdfManager.evaluatorOptions.isOffscreenCanvasSupported);\n        const newAnnotationPromises = structTreeRoot === undefined ? promises : [];\n        for (const [pageIndex, annotations] of newAnnotationsByPage) {\n          newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page => {\n            const task = new WorkerTask(`Save (editor): page ${pageIndex}`);\n            startWorkerTask(task);\n            return page.saveNewAnnotations(handler, task, annotations, imagePromises, changes).finally(() => {\n              finishWorkerTask(task);\n            });\n          }));\n        }\n        if (structTreeRoot === null) {\n          promises.push(Promise.all(newAnnotationPromises).then(async () => {\n            await StructTreeRoot.createStructureTree({\n              newAnnotationsByPage,\n              xref,\n              catalogRef,\n              pdfManager,\n              changes\n            });\n          }));\n        } else if (structTreeRoot) {\n          promises.push(Promise.all(newAnnotationPromises).then(async () => {\n            await structTreeRoot.updateStructureTree({\n              newAnnotationsByPage,\n              pdfManager,\n              changes\n            });\n          }));\n        }\n      }\n      if (isPureXfa) {\n        promises.push(pdfManager.ensureDoc(\"serializeXfaData\", [annotationStorage]));\n      } else {\n        for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n          promises.push(pdfManager.getPage(pageIndex).then(function (page) {\n            const task = new WorkerTask(`Save: page ${pageIndex}`);\n            startWorkerTask(task);\n            return page.save(handler, task, annotationStorage, changes).finally(() => {\n              finishWorkerTask(task);\n            });\n          }));\n        }\n      }\n      const refs = await Promise.all(promises);\n      let xfaData = null;\n      if (isPureXfa) {\n        xfaData = refs[0];\n        if (!xfaData) {\n          return stream.bytes;\n        }\n      } else if (changes.size === 0) {\n        return stream.bytes;\n      }\n      const needAppearances = acroFormRef && acroForm instanceof Dict && changes.values().some(ref => ref.needAppearances);\n      const xfa = acroForm instanceof Dict && acroForm.get(\"XFA\") || null;\n      let xfaDatasetsRef = null;\n      let hasXfaDatasetsEntry = false;\n      if (Array.isArray(xfa)) {\n        for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n          if (xfa[i] === \"datasets\") {\n            xfaDatasetsRef = xfa[i + 1];\n            hasXfaDatasetsEntry = true;\n          }\n        }\n        if (xfaDatasetsRef === null) {\n          xfaDatasetsRef = xref.getNewTemporaryRef();\n        }\n      } else if (xfa) {\n        warn(\"Unsupported XFA type.\");\n      }\n      let newXrefInfo = Object.create(null);\n      if (xref.trailer) {\n        const infoMap = new Map();\n        const xrefInfo = xref.trailer.get(\"Info\") || null;\n        if (xrefInfo instanceof Dict) {\n          for (const [key, value] of xrefInfo) {\n            if (typeof value === \"string\") {\n              infoMap.set(key, stringToPDFString(value));\n            }\n          }\n        }\n        newXrefInfo = {\n          rootRef: catalogRef,\n          encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n          newRef: xref.getNewTemporaryRef(),\n          infoRef: xref.trailer.getRaw(\"Info\") || null,\n          infoMap,\n          fileIds: xref.trailer.get(\"ID\") || null,\n          startXRef,\n          filename\n        };\n      }\n      return incrementalUpdate({\n        originalData: stream.bytes,\n        xrefInfo: newXrefInfo,\n        changes,\n        xref,\n        hasXfa: !!xfa,\n        xfaDatasetsRef,\n        hasXfaDatasetsEntry,\n        needAppearances,\n        acroFormRef,\n        acroForm,\n        xfaData,\n        useXrefStream: isDict(xref.topDict, \"XRef\")\n      }).finally(() => {\n        xref.resetNewTemporaryRef();\n      });\n    });\n    handler.on(\"GetOperatorList\", function (data, sink) {\n      const {\n        pageId,\n        pageIndex\n      } = data;\n      pdfManager.getPage(pageId).then(function (page) {\n        const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n        startWorkerTask(task);\n        const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n        page.getOperatorList({\n          handler,\n          sink,\n          task,\n          intent: data.intent,\n          cacheKey: data.cacheKey,\n          annotationStorage: data.annotationStorage,\n          modifiedIds: data.modifiedIds,\n          pageIndex\n        }).then(operatorListInfo => {\n          if (start) {\n            info(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);\n          }\n          sink.close();\n        }, reason => {\n          if (task.terminated) {\n            return;\n          }\n          sink.error(reason);\n        }).finally(() => {\n          finishWorkerTask(task);\n        });\n      });\n    });\n    handler.on(\"GetTextContent\", function (data, sink) {\n      const {\n        pageId,\n        pageIndex,\n        includeMarkedContent,\n        disableNormalization\n      } = data;\n      pdfManager.getPage(pageId).then(function (page) {\n        const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n        startWorkerTask(task);\n        const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n        page.extractTextContent({\n          handler,\n          task,\n          sink,\n          includeMarkedContent,\n          disableNormalization\n        }).then(() => {\n          if (start) {\n            info(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);\n          }\n          sink.close();\n        }, reason => {\n          if (task.terminated) {\n            return;\n          }\n          sink.error(reason);\n        }).finally(() => {\n          finishWorkerTask(task);\n        });\n      });\n    });\n    handler.on(\"GetStructTree\", function (data) {\n      return pdfManager.getPage(data.pageIndex).then(page => pdfManager.ensure(page, \"getStructTree\"));\n    });\n    handler.on(\"FontFallback\", function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n    handler.on(\"Cleanup\", function (data) {\n      return pdfManager.cleanup(true);\n    });\n    handler.on(\"Terminate\", async function (data) {\n      terminated = true;\n      const waitOn = [];\n      if (pdfManager) {\n        pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n        const cleanupPromise = pdfManager.cleanup();\n        waitOn.push(cleanupPromise);\n        pdfManager = null;\n      } else {\n        clearGlobalCaches();\n      }\n      cancelXHRs?.(new AbortException(\"Worker was terminated.\"));\n      for (const task of WorkerTasks) {\n        waitOn.push(task.finished);\n        task.terminate();\n      }\n      await Promise.all(waitOn);\n      handler.destroy();\n      handler = null;\n    });\n    handler.on(\"Ready\", function (data) {\n      setupDoc(docParams);\n      docParams = null;\n    });\n    return workerHandlerName;\n  }\n  static initializeFromPort(port) {\n    const handler = new MessageHandler(\"worker\", \"main\", port);\n    this.setup(handler, port);\n    handler.send(\"ready\", null);\n  }\n}\n\n;// ./src/pdf.worker.js\n\nglobalThis.pdfjsWorker = {\n  WorkerMessageHandler: WorkerMessageHandler\n};\n\nexport { WorkerMessageHandler };\n\n//# sourceMappingURL=pdf.worker.mjs.map"],"names":["__webpack_modules__","module","__unused_webpack_exports","__webpack_require__","isCallable","tryToString","$TypeError","argument","isPossiblePrototype","$String","has","it","WeakMapHelpers","weakmap","set","remove","key","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","isPrototypeOf","Prototype","isObject","classof","globalThis","uncurryThisAccessor","ArrayBuffer","TypeError","O","NATIVE_ARRAY_BUFFER","arrayBufferByteLength","DataView","isDetached","DESCRIPTORS","hasOwn","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","getPrototypeOf","setPrototypeOf","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","options","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","uncurryThis","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","i","fails","F","done","createPropertyDescriptor","object","bitmap","makeBuiltIn","name","descriptor","defineGlobalProperty","simple","src","document","EXISTS","MAX_SAFE_INTEGER","navigator","userAgent","process","Deno","versions","v8","match","version","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","exec","NATIVE_BIND","FunctionPrototype","apply","call","aCallable","bind","that","test","getDescriptor","PROPER","CONFIGURABLE","method","uncurryThisWithBind","alphabet","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","store","functionToString","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","get","enforce","getterFor","TYPE","metadata","STATE","documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","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","$iterator","callFn","iters","kind","innerResult","innerError","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","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","MapPrototype","ceil","floor","x","n","unsafeInt","raw","PromiseCapability","resolve","reject","$$resolve","$$reject","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","slice","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_VERSION","symbol","min","integer","toPrimitive","prim","IndexedObject","trunc","number","len","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","id","postfix","anObjectOrUndefined","aString","base64Map","getAlphabetOption","notDetached","SyntaxError","skipAsciiWhitespace","decodeBase64Chunk","chunk","throwOnExtraBits","chunkLength","triplet","chunkBytes","writeBytes","bytes","elements","written","elementsLength","into","maxLength","lastChunkHandling","stringLength","read","remainingBytes","Uint8Array","stringMatch","segments","url","params","params2","NATIVE_SYMBOL","passed","required","WeakMapPrototype","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","$","$includes","addToUnscopables","BROKEN_ON_SPARSE","BROKEN_ON_SPARSE_WITH_FROM_INDEX","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","item","argCount","anInstance","createProperty","CONSTRUCTOR","NativeIterator","IteratorConstructor","defineIteratorPrototypeAccessor","iteratorHelperWithoutClosingOnEarlyError","everyWithoutClosingOnEarlyError","predicate","counter","createIteratorProxy","callWithSafeIterationClosing","iteratorHelperThrowsOnInvalidIterator","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","someWithoutClosingOnEarlyError","element","isRawJSON","arraySlice","parseJSONString","NATIVE_RAW_JSON","$stringify","charAt","charCodeAt","numberToString","surrogates","leadingSurrogates","trailingSurrogates","MARK","MARK_LENGTH","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithProperSymbolsConversion","replacer","args","$replacer","getReplacerFunction","fixIllFormedJSON","offset","prev","rawLength","keysLength","root","j","text","space","replacerFunction","rawStrings","json","end","MapHelpers","callbackfn","hasKey","$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","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","A","arrayFromConstructorAndList","$fromBase64","INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS","anUint8Array","$fromHex","throwsOnLengthTrackingView","rab","array","omitPadding","shift","$Array","hex","aWeakMap","aWeakKey","INCORRECT_VALUE","validateArgumentsLength","USE_NATIVE_URL","URL","urlString","base","__webpack_module_cache__","moduleId","cachedModule","definition","prop","isNodeJS","BBOX_INIT","F32_BBOX_INIT","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","SVG_NS","RenderingIntentFlag","AnnotationPrefix","AnnotationEditorPrefix","AnnotationEditorType","PermissionFlag","MeshFigureType","TextRenderingMode","ImageKind","AnnotationType","AnnotationReplyType","AnnotationRenditionOperation","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","DocumentActionEventType","PageActionEventType","VerbosityLevel","OPS","DrawOPS","PasswordResponses","verbosity","setVerbosityLevel","level","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","createValidAbsoluteUrl","baseUrl","dots","stringToUTF8String","absoluteUrl","stripPath","str","shadow","nonSerializable","BaseException","message","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","status","missing","FormatError","AbortException","bytesToString","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","stringToBytes","objectSize","FeatureTest","buffer8","view32","platform","ctx","_Util_static","getExtremumOnCurve_fn","getExtremum_fn","Util","r","g","b","m1","m2","m","md","p","pos","p0","p1","transform","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","a","c","first","second","rect1","rect2","xLow","xHigh","yLow","yHigh","minMax","x0","y0","x1","y1","x2","y2","x3","y3","__privateMethod","t","mt","tt","ttt","delta","sqrtDelta","__privateAdd","utf8StringToString","isArrayEqual","arr1","arr2","ii","NormalizeRegex","NormalizationMap","normalizeUnicode","_","p2","_isValidExplicitDest","validRef","validName","dest","page","zoom","argsLen","allowNull","arg","makeArr","makeMap","makeObj","CIRCULAR_REF","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","_map","_Dict_instances","getValue_fn","_Dict","xref","__publicField","newXref","__privateGet","key1","key2","key3","Ref","emptyDict","dictArray","mergeSubDicts","mergedDict","properties","dict","values","subDict","isAsync","Dict","num","gen","ref","RefSet","parent","RefSetCache","aliasRef","isName","isCmd","isDict","type","isRefsEqual","v1","v2","BaseStream","decoderOptions","peekedByte","begin","start","_a","isAscii","stringToAsciiOrUTF16BE","stringToUTF16String","stringToUTF16HexString","buf","char","bigEndian","PDFStringTranslateTable","stringToPDFString","keepEscapeSequence","encoding","decoder","buffer","decoded","ex","charCode","PDF_VERSION_REGEXP","MAX_INT_32","IDENTITY_MATRIX","RESOURCES_KEYS_OPERATOR_LIST","RESOURCES_KEYS_TEXT_CONTENT","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","fetchBinaryData","response","getInheritableProperty","getArray","stopWhenFound","visited","getParentToUpdate","firstDict","deepCompare","value1","value2","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","roman","isWhiteSpace","ch","isBooleanArray","isNumberArray","lookupMatrix","fallback","lookupRect","lookupNormalRect","parseXFAPath","path","positionPattern","component","escapePDFName","escapeString","_collectJS","entry","parents","js","collectActions","eventType","actions","additionalActionsDicts","additionalActions","rawActionDict","action","actionDict","XMLEntities","codePointIter","encodeToXmlString","entity","validateFontName","fontFamily","mustWarn","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","recoverJsURL","URL_OPEN_METHODS","jsUrl","roundedValue","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","getModificationDate","date","getRotationMatrix","rotation","width","height","getSizeInBytes","_memoryArray","QCMS","__privateSet","copy_result","ptr","_mustAddAlpha","_destBuffer","_destOffset","_destLength","copy_rgb","make_cssRGB","DataType","Intent","qcms_convert_array","transformer","ptr0","passArray8ToWasm0","wasm","len0","WASM_VECTOR_LEN","qcms_convert_four","src1","src2","src3","src4","css","qcms_convert_one","qcms_convert_three","qcms_drop_transformer","qcms_transformer_from_memory","mem","in_type","intent","__wbg_get_imports","arg0","arg1","getStringFromWasm0","table","decodeText","cachedUint8ArrayMemory0","getUint8ArrayMemory0","malloc","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","initSync","imports","MathClamp","resizeRgbImage","w1","h1","w2","h2","alpha01","xRatio","yRatio","newIndex","oldIndex","xScaled","w1Scanline","py","resizeRgbaImage","src32","dest32","rgbMask","copyRgbaImage","isDefaultDecodeHelper","decode","expectedLen","decodeLen","_rgbBuf","_ColorSpace","numComps","srcOffset","destOffset","bits","inputLength","bpc","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","rgbPos","destPos","ColorSpace","AlternateCS","tintFn","tmpBuf","scale","baseNumComps","usesZeroToOneRange","isPassthrough","baseBuf","scaled","tinted","PatternCS","baseCS","IndexedCS","highVal","outputDelta","lookupPos","DeviceGrayCS","q","DeviceRgbCS","DeviceRgbaCS","_alpha01","_DeviceCmykCS_instances","toRgb_fn","DeviceCmykCS","srcScale","k","_CalGrayCS_instances","CalGrayCS","whitePoint","blackPoint","gamma","AG","L","_BRADFORD_SCALE_MATRIX","_BRADFORD_SCALE_INVERSE_MATRIX","_SRGB_D65_XYZ_TO_RGB_MATRIX","_FLAT_WHITEPOINT_MATRIX","_tempNormalizeMatrix","_tempConvertMatrix1","_tempConvertMatrix2","_DECODE_L_CONSTANT","_CalRGBCS_instances","matrixProduct_fn","toFlat_fn","toD65_fn","sRGBTransferFunction_fn","decodeL_fn","compensateBlackPoint_fn","normalizeWhitePointToFlat_fn","normalizeWhitePointToD65_fn","_CalRGBCS","XW","YW","ZW","XB","YB","ZB","sourceWhitePoint","LMS","color","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","XYZ_In","LMS_Flat","LMS_D65","B","AGR","BGG","CGB","X","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","CalRGBCS","_LabCS_instances","fn_g_fn","decode_fn","LabCS","range","maxVal","high1","low2","high2","Ls","as","bs","M","N","fetchSync","xhr","_transformer","_convertPixel","_useWasm","_wasmUrl","_finalizer","_IccColorSpace","iccProfile","inType","useWasm","useWorkerFetch","wasmUrl","isUsable","IccColorSpace","_iccUrl","_CmykICCBasedCS","iccUrl","CmykICCBasedCS","Stream","arrayBuffer","endPos","StringStream","NullStream","ChunkedStream","chunkSize","manager","chunks","beginChunk","endChunk","curChunk","position","numChunks","ChunkedStreamSubstream","missingChunks","subStream","_aborted","_loadedStreamCapability","ChunkedStreamManager","pdfStream","rangeReader","noFetch","requestId","chunksNeeded","capability","chunksToRequest","groupedChunksToRequest","groupedChunk","reason","ranges","groupedChunks","prevChunk","stream","isProgressive","loadedRequests","requestIds","nextEmptyChunk","lastChunk","convertToRGBA","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","elem","len32","alphaMask","s1","s2","s3","jj","grayToRGBA","MIN_IMAGE_DIM","MAX_IMAGE_DIM","MAX_ERROR","_goodSquareLength","_isImageDecoderSupported","_ImageResizer_instances","rescaleImageData_fn","_ImageResizer","imgData","isMask","MAX_DIM","area","maxArea","componentsCount","maxJPXArea","MAX_AREA","minFactor","canvasMaxAreaInBytes","isImageDecoderSupported","canvas","opacity","tolerance","defaultHeight","middle","imagePromise","firstFactor","factor","steps","newWidth","newHeight","prevWidth","prevHeight","bitPerPixel","colorTable","maskTable","compression","rowLen","rowSize","newData","extraLen","row","view","headerLength","fileLength","bmpData","rgbaSize","K","rgbaData","maxHeight","newSize","remainder","h","ImageResizer","emptyBuffer","DecodeStream","maybeMinBufferLength","requested","buffer2","bufEnd","readable","writable","writer","totalLength","StreamsSequenceStream","streams","onError","s","maybeLength","bufferLength","newLength","baseStreamsBuf","baseStreams","_ColorSpaceUtils_static","subParse_fn","parse_fn","ColorSpaceUtils","cs","resources","pdfFunctionFactory","globalColorSpaceCache","localColorSpaceCache","asyncIfNotCached","csName","csRef","parsedCS","cachedCS","colorSpaces","resourcesCS","mode","isRef","iccCS","altRaw","altCS","hiVal","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","getBlockBufferOffset","col","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","readBit","nextByte","maybeScanLines","blockRow","decodeHuffman","tree","node","receive","receiveAndExtend","decodeBaseline","blockOffset","diff","rs","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","mcuToRead","findNextFileMarker","partialMsg","quantizeAndInverse","blockBufferOffset","qt","blockData","v0","v3","v4","v5","v6","v7","p3","p4","p5","p6","p7","buildComponentData","blocksPerLine","blocksPerColumn","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","prepareComponents","mcusPerColumn","blocksPerLineForMcu","blocksBufferSize","readDataBlock","endOffset","skipData","_JpegImage_instances","getLinearizedBlockData_fn","JpegImage","decodeTransform","colorTransform","exifOffsets","numComponents","markerLoop","appData","oldOffset","newOffset","dnlScanLines","maxOffset","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","l","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","sofScanLines","maxH","maxV","componentId","qId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","quantizationTable","Cb","Cr","out","forceRGBA","forceRGB","isSourcePDF","grayColor","scaleX","scaleY","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_JpegStream_instances","skipUselessBytes_fn","_JpegStream","jpegOptions","decodeArr","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","useImageDecoder","JpegStream","addState","parentState","pattern","checkFn","iterateFn","processFn","InitialState","context","fnArray","iFirstSave","argsArray","curr","iFirstTransform","iFirstPIIXO","maxX","map","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","imgRowSize","dataOffset","kk","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","positions","images","maskParams","iFirstPIXO","firstPIXOArg0","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","iFirstConstructPath","op","newBBox","NullOptimizer","queue","QueueOptimizer","OperatorList","_OperatorList","streamSink","isOffscreenCanvasSupported","optionalContent","hasMask","dependency","dependencies","opList","transfers","bbox","separateAnnots","CheckedOperatorList","ShadingType","_hasGPU","Pattern","hasGPU","shading","res","FunctionBasedShading","RadialAxialShading","MeshShading","DummyShading","BaseShading","coordsLen","t0","t1","domainArr","extendStart","extendEnd","extendArr","fnObj","NUMBER_OF_SAMPLES","colorStops","ratio","iBase","rgbBuffer","rBase","gBase","bBase","iPrev","rPrev","gPrev","bPrev","maxSlopeR","maxSlopeG","maxSlopeB","minSlopeR","minSlopeG","minSlopeB","run","cssColor","background","coordsArr","shadingType","meshUpdateBounds","self","minX","minY","maxY","meshPackData","coords","coordsPacked","xy","colors","colorsPacked","figure","buildMeshVertexData","figures","vertexCount","vpr","posData","colData","pOff","cOff","addVertex","pi","ci","ps","rows","cols","_FunctionBasedShading","bboxW","bboxH","stepsX","stepsY","verticesPerRow","totalVertices","xyBuf","colorBuf","rangeX","rangeY","halfStepX","halfStepY","coordOffset","colorOffset","yDomain","xDomain","MeshStreamReader","csNumComps","bitsPerCoordinate","xi","yi","colorFn","colorSpace","bCache","buildB","lut","t_","getB","clearPatternCaches","_MeshShading","decodeContext","reader","patchMesh","verticesLeft","f","coord","tmp1","tmp2","tmp3","tmp4","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c1","c2","c3","bRow","bCol","newColor","getTilingPatternIR","operatorList","needsIsolation","xstep","ystep","paintType","tilingType","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","last","stack","sp","bufferSize","BinaryCMapReader","cMap","extend","header","useCMap","sequence","dataSize","ucs2DataSize","subitemsCount","_input","Ascii85Stream","AsciiHexStream","maxDecodeLength","firstDigit","digit","makeBrotliDecode","MAX_HUFFMAN_TABLE_SIZE","CODE_LENGTH_CODE_ORDER","DISTANCE_SHORT_CODE_INDEX_OFFSET","DISTANCE_SHORT_CODE_VALUE_OFFSET","FIXED_TABLE","BLOCK_LENGTH_OFFSET","BLOCK_LENGTH_N_BITS","INSERT_LENGTH_N_BITS","COPY_LENGTH_N_BITS","CMD_LOOKUP","unpackCommandLookupTable","log2floor","calculateDistanceAlphabetSize","npostfix","ndirect","maxndistbits","calculateDistanceAlphabetLimit","maxDistance","makeError","ndistbits","cmdLookup","insertLengthOffsets","copyLengthOffsets","cmdCode","rangeIdx","distanceContextOffset","insertCode","copyCode","copyLengthOffset","distanceContext","decodeWindowBits","largeWindowEnabled","readFewBits","attachDictionaryChunk","initState","maxDistanceAlphabetLimit","initBitReader","close","decodeVarLenUnsignedByte","decodeMetaBlockLength","sizeNibbles","sizeBytes","readSymbol","tableGroup","tableIdx","sym","mask","readBlockLength","readManyBits","moveToFront","inverseMoveToFrontTransform","vLen","mtf","readHuffmanCodeLengths","codeLengthCodeLengths","numSymbols","prevCodeLen","repeat","repeatCodeLen","readMoreInput","codeLen","extraBits","newLen","oldRepeat","repeatDelta","checkDupes","symbols","readSimpleHuffmanCode","alphabetSizeMax","alphabetSizeLimit","maxBits","histogramId","readComplexHuffmanCode","skip","numCodes","codeLenIdx","readHuffmanCode","simpleCodeOrSkip","decodeContextMap","contextMapSize","contextMap","numTrees","useRleForZeros","maxRunLengthPrefix","alphabetSize","tableSize","reps","decodeBlockTypeAndLength","treeType","numBlockTypes","ringBuffers","blockType","decodeLiteralBlockSwitch","literalBlockType","contextMode","decodeCommandBlockSwitch","decodeDistanceBlockSwitch","maybeReallocateRingBuffer","minimalNewSize","ringBufferSizeWithSlack","newBuffer","oldBuffer","readNextMetablockHeader","jumpToByteBoundary","readMetablockPartition","blockTypeAlphabetSize","blockLengthAlphabetSize","calculateDistanceLut","distExtraBits","distOffset","half","readMetablockHuffmanCodesAndContextMaps","limit","contextMapLength","numLiteralTrees","numDistTrees","huffmanTreeGroupAllocSize","decodeHuffmanTreeGroup","distanceAlphabetSizeMax","distanceAlphabetSizeLimit","copyUncompressedData","ringBuffer","reload","copyRawBytes","writeRingBuffer","toWrite","maxTableSize","group","calculateFence","doUseDictionary","fence","address","initializeCompoundDictionaryCopy","dictionaryData","wordLength","sizeBits","offsets","wordIdx","transformIdx","transforms","RFC_TRANSFORMS","transformDictionaryWord","initializeCompoundDictionary","blockBits","cursor","copyFromCompoundDictionary","origPos","remChunkLength","decompress","windowBits","ringBufferMask","insertAndCopyExtraBits","insertLengthOffset","insertLengthExtraBits","copyLengthExtraBits","prevByte1","prevByte2","literalContext","LOOKUP","literalTreeIdx","distanceCode","distTreeIdx","dst","copyLength","srcEnd","dstEnd","numQuads","checkHealth","Transforms","numTransforms","prefixSuffixLen","prefixSuffixCount","unpackTransforms","prefixSuffix","prefixSuffixHeads","prefixSuffixSrc","transformsSrc","prefixSuffixBytes","toUtf8Runes","dstOffset","wordLen","transformIndex","triplets","prefixSuffixStorage","transformOffset","prefixIdx","transformType","suffixIdx","prefix","prefixEnd","suffix","suffixEnd","omitFirst","omitLast","dictOffset","uppercaseOffset","shiftOffset","param","scalar","getNextKey","replicateValue","nextTableBitSize","rootBits","left","codeLengthsSize","tableOffset","sorted","tableBits","totalSize","low","currentOffset","halfAvailable","readOffset","bytesInBuffer","spaceLeft","readInput","bytesToNibbles","endOfStream","byteOffset","prepare","health","padding","copyNibbles","chunkLen","byteLen","byteBuffer","halfLen","shortBuffer","unpackLookupTable","utfMap","utfRle","rep","State","InputStream","setData","newSizeBits","dictionaryOffsets","dictionarySizeBits","unpackDictionaryData","dictionary","data0","data1","skipFlip","sizeBitsData","toUsAsciiBytes","skipFlipRunes","flip","bytesRead","closeInput","customDictionary","totalOutput","BrotliDecode","_isAsync","BrotliStream","decodedData","_decoderOptions","decompressed","compressed","JBig2","moduleArg","moduleRtn","Module","quit_","toThrow","_scriptName","scriptDirectory","err","ABORT","EXITSTATUS","readyPromiseResolve","readyPromiseReject","HEAP8","HEAPU8","runtimeInitialized","updateMemoryViews","wasmMemory","preRun","addOnPreRun","callRuntimeCallbacks","onPreRuns","initRuntime","wasmExports","postRun","addOnPostRun","onPostRuns","abort","what","getWasmImports","wasmImports","createWasm","receiveInstance","assignWasmExports","inst","mod","ExitStatus","callbacks","cb","noExitRuntime","__abort_js","runtimeKeepaliveCounter","__emscripten_runtime_keepalive_clear","timers","handleException","keepRuntimeAlive","_proc_exit","exitJS","implicit","_exit","maybeExit","callUserCallback","_emscripten_get_now","__setitimer_js","which","timeout_ms","__emscripten_timeout","_createImageData","getHeapMax","alignMemory","alignment","growMemory","oldHeapSize","pages","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","_setImageData","array_ptr","pitch8","pitch32","destSize","imageData","srcStart","destStart","_setLineData","line_ptr","writeArrayToMemory","doRun","jbig2","_handler","_instances","_useWorkerFetch","_buffer","_modulePromise","_WasmImage_instances","getJsModule_fn","instantiateWasm_fn","_WasmImage","trackInstance","handler","ImageDecoder","promise","promises","_params","fallbackCallback","successCallback","results","WasmImage","Jbig2Error","JBig2CCITTFaxImage","globals","CCITTOptions","globalsPtr","globalsSize","CCITTFaxStream","codeLenCodeMap","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","_FlateStream_instances","endsStreamOnError_fn","FlateStream","cmf","flg","codeSize","codeBuf","codes","maxLen","codeVal","lengths","code2","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","bitsLength","bitsOffset","repeatLength","code1","dist","Jbig2Stream","globalsStream","OpenJPEG","thisProgram","HEAP32","HEAPU32","_copy_pixels_1","compG_ptr","nb_pixels","compG","_copy_pixels_3","compR_ptr","compB_ptr","compR","compB","_copy_pixels_4","compA_ptr","compA","ENV","getExecutableName","getEnvStrings","lang","env","strings","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","endIdx","u","stringToUTF8","outPtr","_environ_get","__environ","environ_buf","bufSize","envp","lengthBytesUTF8","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_seek","fd","whence","printCharBuffers","UTF8Decoder","findStringEnd","heapOrArray","idx","maxBytesToRead","ignoreNul","maxIdx","UTF8ArrayToString","endPtr","u0","u1","u2","printChar","UTF8ToString","_fd_write","iov","iovcnt","pnum","_gray_to_rgba","_graya_to_rgba","_jsPrintWarning","message_ptr","_rgb_to_rgba","_storeErrorMessage","openjpeg","JpxError","JpxImage","isIndexedColormap","smaskInData","reducePower","errorMessages","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","JpxStream","_length","LZWStream","earlyChange","maxLzwDictionarySize","lzwState","bitsCached","cachedData","estimatedDecodedSize","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","codeLength","prevCode","currentSequence","currentSequenceLength","decodedLength","currentBufferLength","hasPrev","PredictorStream","predictor","columns","rowBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","compArray","bitMask","pixBytes","prevRow","up","upLeft","pa","pb","pc","RunLengthStream","repeatHeader","MAX_LENGTH_TO_CACHE","getInlineImageCacheKey","_Parser_instances","fetchIfRef_fn","hasCryptFilter_fn","findStreamLength_fn","Parser","lexer","allowStreams","recoveryMode","cipherTransform","buf1","knownCommands","maybeEIPos","followingBytes","tmpLexer","Lexer","numArgs","nextObj","knownCommand","foundEOI","markerLength","tildePos","maybeEI","dictMap","dictLength","filter","filterName","filterZero","cacheKey","initialStreamPos","cacheEntry","imageStream","filterArray","paramsArray","cryptName","SCAN_BLOCK_LENGTH","signatureLength","END_SIGNATURE","endLength","PARTIAL_SIGNATURE","normalLength","scanBytes","scanLength","found","part","partLen","lastByte","specialChars","toHexDigit","divideBy","baseValue","currentDigit","numParen","charBuffered","previousCh","comment","nextCh","knownCommandFound","possibleCommand","Linearization","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","parser","obj1","obj2","obj3","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","builtInCMap","high","dstLow","nextCharCode","codespaceRanges","nn","codespaceRange","IdentityCMap","vertical","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","fetchBuiltInCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","useCodespaceRanges","cMapData","isCompressed","CMapFactory","parsedCMap","CSS_FONT_INFO","SYSTEM_FONT_INFO","_FONT_INFO","FONT_INFO","PATTERN_INFO","compileCssFontInfo","encoder","encodedStrings","stringsLength","encoded","compileSystemFontInfo","encodedStyleStyle","encodedStyleWeight","lengthEstimate","compileFontInfo","font","systemFontInfoBuffer","cssFontInfoBuffer","numBools","boolByte","boolBit","point","metric","compilePatternInfo","ir","nCoord","nColor","nStop","dataView","u8data","compileFontPathInfo","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","StandardEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","getEncoding","encodingName","getGlyphsUnicode","getDingbatsGlyphsUnicode","getSpecialPUASymbols","mapSpecialUnicodeValues","getUnicodeForGlyph","glyphsUnicodeMap","unicode","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","lastPosition","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","clearUnicodeCaches","SEAC_ANALYSIS_ENABLED","FontFlags","MacStandardGlyphOrdering","recoverGlyphName","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","baseEncoding","isSymbolicFont","differences","glyphName","standardGlyphName","normalizeFontName","getVerticalPresentationForm","MAX_SIZE_TO_COMPILE","compileType3Glyph","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","pathBuf","pp","ISOAdobeCharset","ExpertCharset","ExpertSubsetCharset","_buf","_bufLength","_hasExactLength","_pos","_view","_DataBuilder_instances","initBuf_fn","DataBuilder","exactLength","minLength","newBuf","MAX_SUBR_NESTING","looksLikeUnsigned16BitNegative","recoverSigned16BitBBox","onlyLowerLeft","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","DEFAULT_BLUE_SCALE","DEFAULT_BLUE_SHIFT","DEFAULT_BLUE_FUZZ","DEFAULT_EXPANSION_FACTOR","CharstringValidationData","CharstringValidationData12","CFFParser","file","seacAnalysisEnabled","cff","CFF","nameIndex","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","topDict","CFFTopDict","charStringOffset","charStringIndex","fontMatrix","fontBBox","descriptorBBox","cffBBoxHasUnsignedLowerLeft","cffBBoxHasUnsignedCoords","recoveredFontBBox","descriptorCorroborates","charset","fdArrayIndex","dictRaw","fontDict","charStringsAndSeacs","bytesLength","major","minor","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","operands","entries","cffIndex","CFFIndex","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","localSubrIndex","stackSize","validationCommand","subrsIndex","bias","subrNumber","charStrings","fdSelect","fdArray","privateDict","seacs","widths","charstring","valid","localSubrToUse","privateDictToUse","fdIndex","nominalWidth","defaultWidth","parentDict","CFFPrivateDict","privateOffset","privateDictEnd","dictData","blueScale","blueShift","blueFuzz","expansionFactor","maxZoneHeight","zones","lowerBound","minBlueScale","maxBlueScale","clamped","subrsOffset","relativeOffset","cid","CFFCharset","CFFCharsetPredefinedTypes","format","predefined","readSupplement","supplementsCount","sid","dataStart","glyphsCount","rangesCount","gid","dataEnd","CFFEncoding","CFFFDSelect","rawFileLength","glyphZero","CFFDict","tables","layout","CFFTopDictLayout","CFFPrivateDictLayout","glyphIndex","CFFOffsetTracker","location","offset0","offset1","offset2","offset3","offset4","CFFCompiler","xuid","compiled","topDictTracker","fontDictTrackers","epsilon","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","trackers","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","types","charStringsIndex","glyph","numGlyphs","isCIDFont","numGlyphsLessNotDef","nLeft","charsetIndex","numCharsets","warned","lastFD","currentFD","numRanges","objects","lastOffset","getStdFontMap","getFontNameToFileMap","getNonStdFontMap","getSerifFonts","getSymbolsFonts","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","getStandardFontName","fontName","isKnownFontName","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","GLYPH_HEADER_SIZE","GlyfTable","glyfTable","isGlyphLocationsLong","locaTable","loca","glyf","Glyph","isLocationLong","locaIndex","factors","composites","GlyphHeader","composite","CompositeGlyph","SimpleGlyph","spos","xMiddle","numberOfContours","xMin","yMin","xMax","yMax","Contour","flags","xCoordinates","yCoordinates","contours","instructions","endPtsOfContours","endPt","numberOfPt","instructionLength","flag","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","lastX","lastY","contour","argument1","argument2","transf","pruneCompositeGlyphCycles","locaEntries","WHITE","GRAY","BLACK","backEdges","top","compIdx","removeSet","droppedGlyphs","gIdx","remaining","writePos","isLast","newFlags","ToUnicodeMap","cmap","IdentityToUnicodeMap","firstChar","lastChar","CFFFont","compiler","cidToGidMap","charsets","invCidToGidMap","encodings","getFloat214","getSubroutineBias","numSubrs","parseCmap","segCount","idOffset","parseCff","_b","_c","parseGlyfTable","itemSize","itemDecode","dv","glyphs","lookupCmap","compileGlyf","cmds","visitedGlyphs","moveTo","firstPoint","lineTo","quadraticCurveTo","xa","ya","arg2","scale01","scale10","subglyph","numberOfPoints","startPoint","endPoint","compileCharString","charStringCode","bezierCurveTo","stems","parse","stackClean","xb","yb","subrCode","achar","bchar","Commands","currentTransform","CompiledFont","compileEx","TrueTypeCompiled","Type2Compiled","cffInfo","FontRendererFactory","indexToLocFormat","unitsPerEm","numTables","getMetrics","getFontBasicMetrics","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","_tables","_OpenTypeFileBuilder","sfnt","entriesCount","entrySize","maxPower2","log2","searchRange","tablesNames","tableOffsets","paddedLength","searchParams","tableName","checksum","quad","OpenTypeFileBuilder","HINTING_ENABLED","COMMAND_MAP","Type1CharString","wx","sbx","dy","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","decrypted","decryptAscii","digit1","digit2","isSpecial","Type1Parser","encrypted","isBinary","token","lenIV","charstrings","privateData","program","subrsParsed","charStringsParsed","blueArray","charString","charStringObject","cidCount","cidMapOffset","fdBytes","gdBytes","subrMapOffset","sdBytes","subrCount","startDataLength","startDataIsHex","foundStartData","previousTokens","rememberToken","dataType","binary","cidEntrySize","readUint","byteCount","subrOffsets","prevOffset","nextOffset","notDef","encodingArg","findBlock","streamBytes","signature","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","actualLength","getEexecBlock","eexecBytes","isCidKeyedType1File","sample","_rawFileLength","_Type1Font_instances","parseType1_fn","parseCidKeyedType1_fn","Type1Font","type2Charstrings","charstringsLen","seacMap","type1Charstrings","type1Charstring","type1Subrs","type2Subrs","charsetArray","fields","field","subrIndex","subr","headerBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","eexecBlock","fileStart","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","glyphsWidths","adjustTrueTypeToUnicode","nameRecords","isWinNameRecord","toUnicode","adjustType1ToUnicode","amendFallbackToUnicode","fonts_Glyph","originalCharCode","fontChar","accent","vmetric","operatorListId","isSpace","isInFont","int16","writeSignedInt16","signedInt16","writeUint32","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","subtype","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","isMacNameRecord","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","toUnicodeExtraMap","usedGlyphIds","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","isInPrivateArea","LIGATURE_TO_UNICODE","fontCharCode","normalized","getRanges","codeIndices","createCmapTable","hasNonBmp","bmpLength","trailingRangesCount","segmentsLength","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","format4Overflow","contiguous","startCode","format314","useFormat4","useFormat12","format31012","header31012","format4Length","validateOS2Table","os2","selection","createOS2Table","override","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","typoAscent","typoDescent","winAscent","winDescent","createPostTable","post","createPostscriptName","createNameTable","stringsBytes","stringsUnicodeBytes","strUnicode","namesBytes","platformsBytes","encodingsBytes","languagesBytes","strOffset","strs","nameRecord","namesRecordCount","nameTable","_charsCache","_glyphCache","_Font_instances","getExportData_fn","Font","evaluatorOptions","isSerifFont","stdFontMap","nonStdFontMap","serifFonts","namePart","matches","renderer","isStandardFont","isMappedToStandardFont","metrics","isNarrow","unicodeCharCode","VALID_TABLES","readTables","readTableEntry","previousPosition","readOpenTypeHeader","ttf","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","readCmapTable","hasEncoding","segment","potentialTable","canBreak","platformId","encodingId","useTable","correctlySorted","nextBytes","hasShortCmap","mappings","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","segIndex","offsetsCount","offsetIndex","rangeOffset","firstCode","entryCount","nGroups","startCharCode","endCharCode","glyphCode","finalMappings","seenCharCodes","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","numMissing","sanitizeGlyph","sourceStart","sourceEnd","hintsValid","glyphProfile","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","glyphDataLength","sanitizeHead","head","locaLength","numGlyphsPlusOne","sanitizeGlyphLocations","maxSizeOfInstructions","itemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","glyphNameIndexes","customNames","strLen","records","numRecords","stringsStart","NAME_RECORD_LENGTH","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","newStackLength","stackDelta","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","isTrueType","parsedCff","numGlyphsFromCFF","sortedTables","nextTable","previousPos","scaleFactors","advanceWidth","lsb","newMaxp","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","forcePostTable","unicodeOrCharCode","mapping","glyphZeroId","newMapping","namePrototype","builder","tableTag","newCharCodeToGlyphId","getCharCodes","charCodes","createCharCode","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","dateArr","hhea","cffWidths","hmtx","maxp","possibleSpaceReplacements","glyphUnicode","charcode","widthCode","chars","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","ErrorFont","CalibriBoldFactors","CalibriBoldMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriRegularFactors","CalibriRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaRegularFactors","HelveticaRegularMetrics","LiberationSansBoldWidths","LiberationSansBoldMapping","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","LiberationSansItalicWidths","LiberationSansItalicMapping","LiberationSansRegularWidths","LiberationSansRegularMapping","MyriadProBoldFactors","MyriadProBoldMetrics","MyriadProBoldItalicFactors","MyriadProBoldItalicMetrics","MyriadProItalicFactors","MyriadProItalicMetrics","MyriadProRegularFactors","MyriadProRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","getXFAFontMap","getXfaFontName","getXfaFontWidths","baseWidths","baseMapping","rescaledBaseWidths","w","currentCode","currentArray","newWidths","charUnicode","unicode1","unicode2","getXfaFontDict","systemInfo","TOKEN","Token","_singletons","_operatorSingletons","_lexer_Lexer_static","initSingletons_fn","_lexer_Lexer","lf","eol","singletons","operatorSingletons","isOperator","lexer_Lexer","PS_VALUE_TYPE","PS_NODE","PsNode","PsProgram","body","PsBlock","PsNumber","PsOperator","PsIf","then","PsIfElse","otherwise","PsArgNode","PsConstNode","PsUnaryNode","operand","valueType","PsBinaryNode","PsTernaryNode","ast_Parser","tok","thenBlock","elseBlock","parsePostScriptFunction","_nodesEqual","_evalBinaryConst","deg","_evalUnaryConst","MAX_STACK_SIZE","_unaryValueType","operandType","_binaryValueType","firstType","secondType","_binaryOps","_unaryOps","_idempotentUnary","_negatedComparison","_PSStackToTree_static","init_fn","markShared_fn","_PSStackToTree","numInputs","instr","saved","trueStack","falseStack","zero","snapshot","thenStack","elseStack","nNode","jNode","sqrtOnce","square","negated","cop","cf","outputs","refCount","visit","PSStackToTree","OP","_DEG_TO_RAD","_RAD_TO_DEG","_stack","_tmp","PsJsCompiler","domain","cached","slot","ifPatch","jumpPatch","ip","tgt","amt","_sp","_PSStackBasedInterpreter_static","push_fn","execOp_fn","execBlock_fn","PSStackBasedInterpreter","nIn","nOut","__privateWrapper","dx","sub","buildPostScriptJsFunction","forceInterpreter","wasm_compiler_OP","FUNC_TYPE","F64","SECTION","EXTERN_FUNC","EXTERN_MEM","unsignedLEB128","byte","encodeASCIIString","section","vec","MATH_IMPORTS","_mathImportObject","_initialized","_comparisonToOp","_importIdx","_degToRad","_radToDeg","_importTypeEntries","_importSection","_functionSection","_memorySection","_exportSection","_wasmMagicVersion","_f64View","_f64Arr","_PsWasmCompiler_static","_PsWasmCompiler","local","localA","localB","localR","wasmOp","nLocals","paramTypes","resultTypes","funcType","typeSectionBytes","localDecls","funcBodyLen","codeSectionBytes","magicVersion","importSection","functionSection","memorySection","exportSection","totalLen","off","f64Buf","PsWasmCompiler","compilePostScriptToWasm","_makeWrapper","outView","writeOut","inBuf","buildPostScriptWasmFunction","BaseLocalCache","LocalImageCache","LocalColorSpaceCache","LocalFunctionCache","LocalGStateCache","LocalTilingPatternCache","RegionalImageCache","GlobalColorSpaceCache","_decodeFailedSet","_GlobalImageCache_instances","byteSize_get","cacheLimitReached_get","_GlobalImageCache","pageIndex","pageIndexSet","byteSize","onlyData","GlobalImageCache","FunctionType","_PDFFunctionFactory","parseArray","fnRef","parsedFn","cachedFn","PDFFunction","PDFFunctionFactory","toNumberArray","outputSize","bps","sampleMul","strBytes","strIdx","factory","typeNum","interpolate","xmin","xmax","ymin","ymax","inputSize","order","encode","samples","cubeVertices","cubeN","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","fns","bounds","dmin","dmax","rmin","rmax","psCode","wasmFn","isPDFFunction","fnDict","textSinkWrapper","sink","resolved","_parseVisibilityExpression","nestingCounter","currentResult","operator","nestedResult","parseMarkedContentProps","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","baseTypes","arabicTypes","isOdd","isEven","findUnequal","reverseValues","createBidiText","isLTR","dir","bidi","startLevel","strLength","numBidi","charType","levels","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","MEDIUM","BOLD","ITALIC","BOLDITALIC","substitutionMap","fontAliases","getStyleToAppend","style","getFamilyName","keywords","generateFont","alias","ultimate","localFontPath","useFallback","usePath","append","extra","substitution","aliasAppend","fallbackInfo","fallbackUltimate","getFontSubstitution","systemFontCache","idFactory","baseFontName","standardFontName","substitutionInfo","subst","mustAddBaseFont","loadedName","bold","italic","guessFallback","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","_PDFImage_instances","getImage_fn","_PDFImage","image","isInline","smask","validWidth","validHeight","hasColorSpace","isIndexed","smaskData","maskData","computedLength","imgArray","isSingleOpaquePixel","haveFullData","decodeAddends","decodeCoefficients","bufferPos","rowComps","loop1End","loop2End","remainingBits","rgbaBuf","maxRows","stride","imageOffset","maskOffset","matte","matteRgb","matteR","matteG","matteB","alpha","drawWidth","drawHeight","mustBeResized","imageLength","isHandled","rgba","maybeUndoPreblend","canvasImgData","destWidth","destHeight","invertOutput","srcWidth","srcHeight","resolvedDestWidth","resolvedDestHeight","needsResampling","outputWidth","xMap","destIndex","internal","imageBytes","PDFImage","DefaultPartialEvaluatorOptions","PatternType","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","addCachedImageOps","objId","_TimeSlotManager","TimeSlotManager","PartialEvaluator","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","newOptions","newEvaluator","nonBlendModesSet","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","standardFontNameToFileName","filename","xobj","task","initialState","seenRefs","f32bbox","groupOptions","newOpList","localResources","groupSubtype","cacheGlobally","localImageCache","maxImageSize","ignoreErrors","imageRef","imageMask","cacheData","SMALL_IMAGE_DIMENSIONS","globalCacheData","localLength","imageObj","stateManager","smaskContent","smaskOptions","transferObj","transferFn","transferMap","tr","transferArray","transferMaps","numFns","numEffectfulFns","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","tilingPatternIR","fontArgs","fontRef","fallbackFontDict","translated","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","errorFont","TranslatedFont","fontRes","preEvaluatedFont","hash","fontRefIsRef","fontID","aliasFontRef","translatedFont","pathBuffer","xw","yh","startX","startY","csPromise","localShadingPatternCache","patternIR","patterns","patternName","rawPattern","localTilingPattern","prevRefs","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","promiseBody","operation","isValidName","localImage","resolveXObject","rejectXObject","cachedImage","fontSize","combinedGlyphs","arrItem","fillCS","strokeCS","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","thickness","dashPhase","dashArray","pathMinMax","includeMarkedContent","seenStyles","viewBox","markedContentData","disableNormalization","keepWhiteSpace","intersector","TextState","textContent","textContentItem","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","shouldAddWhitepsace","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","VERTICAL_SHIFT_RATIO","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","currentTextState","pushWhitespace","getCurrentTextTransform","tsm","glyphHeight","ensureTextContentItem","trm","scaleLineX","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","bidiResult","handleSetFont","applyInverseRotation","compareWithLastPosition","glyphWidth","posX","posY","lastPosX","lastPosY","rotate","advanceY","advanceX","textOrientation","appendEOL","flushTextContentItem","addFakeSpaces","textRiseDelta","advanceYCorrected","buildTextContentItem","extraSpacing","baseCharSpacing","charSpacing","scaledDim","enqueueChunk","batch","fontNameArg","fontSizeArg","spaceFactor","currentState","xObjStateManager","sinkWrapper","gStateFont","mcid","cidToGidBytes","toUnicodePromise","cidSystemInfo","baseEncodingName","diffEncoding","nonEmbeddedFont","isSymbolsFontName","isNonsymbolicFont","builtToUnicode","forceGlyphs","codeStr","registry","ordering","ucs2CMapName","ucs2CMap","ucs2","cmapObj","glyphsData","glyphID","glyphsVMetrics","defaultVMetrics","dw","dw2","vmetrics","missingWidth","isMonospace","firstWidth","fontNameWoStyle","monospace","Metrics","glyphWidths","widthsByGlyphName","baseDict","df","diffLength","diffBuf","diffEntry","uint8array","widthsBuf","compositeWidths","subWidthsBuf","charProcs","isType3Font","newProperties","baseFont","fontNameStr","baseFontStr","fontFile","fontFileN","length1","length2","length3","isInternalFont","glyphScaleFactors","systemFontInfo","subtypeEntry","ascent","descent","xHeight","capHeight","cidEncoding","buildPath","_sent","_type3Loaded","_TranslatedFont_instances","removeType3ColorOperators_fn","guessType3FontBBox_fn","fontData","evaluator","type3Dependencies","type3Evaluator","type3FontRefs","loadCharProcsPromise","fontResources","charProcOperatorList","fontBBoxSize","glyphStream","dummyOperatorList","charBBox","charBBoxSize","gStateKey","old","newPath","_EvaluatorPreprocessor","opSpec","argsLength","nonProcessedArgs","DefaultAppearanceEvaluator","parseDefaultAppearance","AppearanceStreamEvaluator","breakLoop","parseAppearanceStream","getPdfColor","isFill","gray","createDefaultAppearance","fontColor","_fontNameId","_FakeUnicodeFont","fontDescriptor","descendantFont","currentChar","currentWidths","line","lineHeight","lineDescent","bgColor","strokeAlpha","lines","maxWidth","lineWidth","hscale","vscale","fscale","newFontSize","vShift","appearance","appearanceStreamDict","FakeUnicodeFont","DateFormats","TimeFormats","NameOrNumberTree","isRaw","kids","kid","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","NameTree","NumberTree","clearGlobalCaches","FileSpec","desc","description","fileSpecDict","ef","encrypt","XMLParserErrorCode","isWhitespace","isWhitespaceString","XMLParserBase","dec","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","attrStart","ch2","q2","complexDoctype","doctypeContent","isClosed","isEmpty","SimpleDOMNode","nodeName","nodeValue","childNodes","child","paths","siblingPos","attribute","SimpleXMLParser","hasAttributes","lowerCaseName","documentElement","lastElement","childNode","MetadataParser","xmlDocument","all","d1","d2","d3","charBuf","seqNode","rdf","MAX_DEPTH","StructElementType","_StructTreeRoot_instances","addIdToPage_fn","_StructTreeRoot_static","writeKids_fn","writeProperties_fn","collectParents_fn","updateParentTag_fn","_StructTreeRoot","rootDict","rootRef","roleMap","parentTree","kidRef","pageRef","catalogRef","pdfManager","nextKey","hasNothingToUpdate","changes","cache","structTreeRootRef","structTreeRoot","parentTreeRef","nums","numberTree","pageDict","numsRef","newNextKey","ids","objr","structTreePageObjs","isPageRef","accessibilityData","parentTreeId","structTreeParent","structParent","objs","StructTreePage","objRef","tagDict","tagRef","objDict","title","alt","expanded","actualText","idToElements","parentArray","updateElement","pageKid","elems","parentRef","newTagRef","fallbackKids","cachedParentDict","parentKidsRaw","cachedParentKids","parentKidsRef","StructTreeRoot","StructElementNode","nameObj","AFs","af","fileStream","mathml","pageObjId","StructElement","refObjId","elemId","parentNode","save","nodeToSerializable","mathML","kidElement","isValidExplicitDest","fetchDest","fetchRemoteDest","_actualNumPages","_annotationAttachmentIdByRef","_annotationAttachmentRefById","_catDict","_Catalog_instances","readMarkInfo_fn","readStructTreeRoot_fn","readDocumentOutline_fn","readPermissions_fn","readOptionalContentGroup_fn","readOptionalContentConfig_fn","readDests_fn","readPageLabels_fn","attachmentContentByName_fn","collectJavaScript_fn","_Catalog_static","getDestFromStructElement_fn","_Catalog","baseId","needsRendering","collection","acroForm","streamRef","markInfo","structTree","pagesObj","permissions","config","defaultConfig","groupsData","groupRefCache","groupRef","rawDests","dests","pageLayout","pageMode","prefs","prefValue","openAction","destDict","resultObj","attachments","nameTree","namedContent","xfaImages","javaScript","manuallyTriggered","nodesToVisit","visitedNodes","pagesRef","pageKidsCountCache","pageIndexCache","pageDictCache","currentPageIndex","currentNode","lastKid","addPageDict","addPageError","queueItem","posInKids","kidObj","cachedPageIndex","total","kidPromises","uri","docBaseUrl","docAttachments","actionType","actionName","include","refs","urlDict","remoteDest","newWindow","relationship","attachmentDest","namedAction","preserveRB","stateArr","jsAction","jsURL","seRef","seDest","rawObj","blackColor","outlineDict","rgbColor","outlineItem","usage","usageObj","print","printState","viewState","parseOnOff","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","parseRBGroups","rbGroups","rbGroup","parsedRbGroup","pageLabels","currentLabel","currentIndex","labelDict","st","LIMIT","baseCharCode","letterIndex","appendIfJavaScriptDict","jsDict","seDict","directPg","kidsArr","pg","depth","parentRaw","attrs","Catalog","FLATE_COLOR_COUNT_THRESHOLD","createImageDict","createRawImage","paethPredictor","above","upperLeft","applyPNGOptimumFilter","candidates","rowOffset","prevRowOffset","scores","cur","bestFilter","outOffset","deflate","writePromise","createPNGLikeImage","filtered","decodeParms","createImage","closeBitmap","buf32","isLE","colorCounter","hasAlpha","useFlate","imageStreamPromise","imageRenderStream","blob","smaskStreamPromise","smaskRenderStream","alphaBuffer","smaskRenderDict","smaskStream","mayHaveChildren","addChildren","rawValue","_ObjectLoader_instances","walk_fn","_ObjectLoader","nodesToRevisit","pendingRequests","foundMissingData","ObjectLoader","$acceptWhitespace","$addHTML","$appendChild","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$globalData","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nodeName","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$text","$toPages","$toHTML","$toString","$toStyle","$uid","$buildXFAObject","NamespaceIds","ns","dimConverters","measurementPattern","stripQuotes","getInteger","defaultValue","validate","getFloat","getKeyword","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","getColor","getBBox","HTMLResult","success","breakNode","FontFinder","pdfFonts","reallyMissingFonts","pdfFont","myriad","maybe","family","selectFont","xfaFont","typeface","fonts_getMetrics","real","lineGap","WIDTH_FACTOR","FontInfo","margin","fontFinder","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","lastFont","fontInfo","TextMeasure","fonts","letterSpacing","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","lastSpacePos","lastSpaceWidth","currentLineWidth","currentLineHeight","isBroken","isFirstLine","isEOL","namePattern","indexPattern","operators","shortcuts","somCache","parseIndex","parseExpression","expr","dotDotAllowed","noExpr","parsed","searchNode","container","useCache","isQualified","cacheName","children","createDataNode","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","NS_DATASETS","XFAObject","nsId","hasChildren","XmlObject","XFAObjectArray","dumped","availableSpace","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","protoProto","unsetAttrName","protoValue","$symbol","clonedChild","allTransparent","XFAAttribute","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","hasNS","ContentObject","OptionObject","StringObject","IntegerObject","validator","Option01","Option10","measureToString","converters","colSpan","setMinMaxDimensions","layoutText","measure","layoutNode","marginH","marginV","computeBbox","fixDimensions","layoutClass","toStyle","newStyle","createWrapper","wrapper","insets","insetsH","insetsW","classNames","isPrintOnly","border","fixTextIndent","styles","indent","setAccess","getCurrentPara","setPara","nodeStyle","para","valueStyle","paraStyle","setFontFamily","fixURL","createLine","flushHTML","htmlFromFailing","addHTML","getAvailableSpace","getTransformedBBox","centerX","centerY","checkDimensions","ERROR","attempt","TEMPLATE_NS_ID","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","borderExtra","hasMargin","_setValue","templateNode","Value","getContainedChildren","SubformSet","isRequired","setTabIndex","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","valueToHtml","setFirstUnsplittable","unsetFirstUnsplittable","handleBreak","currentPageArea","currentContentArea","PageArea","ContentArea","pageArea","nextPageArea","contentAreas","indexForCurrent","indexForTarget","handleOverflow","extraNode","savedMethod","AppearanceFilter","Arc","edge","Edge","edgeStyle","arc","startAngle","sweepAngle","largeArc","svg","Area","Assist","Barcode","Bind","BindItems","Bookend","BooleanElement","Border","edges","defaultEdge","edgeStyles","cornerStyles","Break","BreakAfter","BreakBefore","Button","grandpa","htmlButton","event","href","Calculate","Caption","savedReserve","Certificate","Certificates","CheckButton","className","groupId","exportedValue","checked","fieldId","dataId","ExclGroup","ChoiceList","optionStyle","displayedIndex","saveIndex","displayed","selected","option","selectAttributes","Color","Comb","Connect","Corner","DateElement","DateTime","DateTimeEdit","Decimal","DefaultUi","Desc","DigestMethod","DigestMethods","Draw","savedW","savedH","Encoding","Encodings","Encrypt","EncryptData","Encryption","EncryptionMethod","EncryptionMethods","Event","ExData","ExObject","isSplittable","columnWidths","isLrTb","maxRun","Execute","Extras","Field","_d","_e","Ui","TextEdit","caption","borderDims","uiW","uiH","borderStyle","ui","aElement","htmlValue","captionHeight","inputHeight","Fill","ggrandpa","propName","altPropName","Rectangle","Filter","Float","template_Font","Format","Handler","Hyphenation","Image","ImageEdit","Integer","Issuers","Items","Keep","KeyUsage","Line","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","Medium","Message","NumericEdit","Occur","originalMin","PageSet","Template","Oid","Oids","Overflow","leader","trailer","pageNumber","parity","Para","PasswordEdit","template_Pattern","Picture","Proto","Radial","Reason","Reasons","cornerStyle","RefElement","Script","SetProperty","SignData","Signature","Signing","Solid","Speak","Stipple","Subform","breakBefore","savedNoLayoutFailure","overflowExtra","breakAfter","SubjectDN","kv","SubjectDNs","Submit","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","targetPageArea","hasSomething","hasSomethingCounter","htmlContentAreas","flush","contentArea","Text","Time","TimeStamp","ToolTip","Traversal","Traverse","Validate","valueName","Variables","TemplateNamespace","bind_NS_DATASETS","createText","Binder","formNode","picture","isValue","global","generator","connection","targetNodes","targetNode","targetParent","labels","labelRef","valueRef","labelNodes","labelNode","valueNodes","valueNode","label","baseClone","occur","currentNumber","nodeClone","uselessNodes","dataChildren","dataChild","DataHandler","storage","storageEntry","CONFIG_NS_ID","Acrobat","Acrobat7","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","config_Area","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","Change","Common","Compress","CompressLogicalStructure","CompressObjectStream","Compression","Config","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","Debug","DefaultTypeface","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","config_Encrypt","config_Encryption","EncryptionLevel","Enforce","Equate","EquateRange","unicodeRegex","unicodeRange","Exclude","ExcludeNS","FlipLabel","config_FontInfo","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","Layout","Level","Linearized","Locale","LocaleSet","Log","MapElement","MediumInfo","config_Message","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","Pagination","PaginationOverride","Part","Pcl","Pdf","Pdfa","Permissions","PickTrayByPDFSize","config_Picture","PlaintextMetadata","Presence","Present","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","config_Script","ScriptModel","Severity","SilentPrint","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","config_Template","Threshold","To","TemplateCache","Trace","Transform","Uri","config_Validate","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","ViewerPreferences","WebClient","Whitespace","Window","pair","Xdc","Xdp","Xsl","Zpl","ConfigNamespace","CONNECTION_SET_NS_ID","ConnectionSet","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","connection_set_Uri","WsdlAddress","WsdlConnection","XmlConnection","XsdConnection","ConnectionSetNamespace","DATASETS_NS_ID","datasets_Data","Datasets","DatasetsNamespace","LOCALE_SET_NS_ID","CalendarSymbols","CurrencySymbol","CurrencySymbols","DatePattern","DatePatterns","DateTimeSymbols","Day","DayNames","Era","EraNames","locale_set_Locale","locale_set_LocaleSet","Meridiem","MeridiemNames","Month","MonthNames","NumberPattern","NumberPatterns","NumberSymbol","NumberSymbols","TimePattern","TimePatterns","TypeFace","TypeFaces","LocaleSetNamespace","SIGNATURE_NS_ID","signature_Signature","SignatureNamespace","STYLESHEET_NS_ID","Stylesheet","StylesheetNamespace","XDP_NS_ID","xdp_Xdp","XdpNamespace","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","richText","newValue","checkStyle","NoWhites","XhtmlObject","mustPop","Body","Br","Html","I","Li","Ol","Span","Sub","Sup","Ul","XhtmlNamespace","NamespaceSetUp","UnknownNamespace","Root","Empty","Builder","rootNameSpace","nsPrefix","prefixes","hasNamespaceDef","dataTemplate","nsAttrs","xfaAttrs","namespaceToUse","nsName","prefixStack","hasNamespace","nsAgnostic","XFAParser","attributeObj","attributesObj","XFAFactory","binder","nextIteration","missingFonts","rc","newRoot","attr","AnnotationFactory","xfaDatasets","annotationGlobals","collectFields","orphanFields","collectByType","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","RichMediaAnnotation","ScreenAnnotation","Annotation","annotDict","numPages","annotations","annotRef","imagePromises","bitmapId","baseFontRef","annotation","smaskRef","getRgbColor","defaultColor","getPdfColorArray","getQuadPoints","quadPoints","newQuadPoints","x4","y4","getTransformMatrix","_Annotation_instances","setOptionalContent_fn","MK","isLocked","isContentLocked","kidIds","noView","noPrint","_renderForms","isEditing","modifiedIds","defaultAppearance","contents","modificationDate","rectangle","lineEndings","mk","AnnotationBorderStyle","dictType","appearanceStates","normalAppearanceState","hasOwnCanvas","isUsingOwnCanvas","appearanceDict","firstPosition","fieldName","loopDict","fsDict","fsRef","forceStyle","isValid","allZeros","radius","MarkupAnnotation","rawIRT","rt","popupRef","creationDate","strokeColor","fillColor","blendMode","fillAlpha","pointsCallback","pointsArray","formDict","appearanceStream","gsDict","stateDict","annotationRef","ap","annotationDict","apRef","retRef","popup","popupDict","newAnnotation","fieldValue","defaultFieldValue","acroFormResources","appearanceResources","formValue","renderForms","borderWidth","newParentDict","needAppearances","originalDict","rawVal","xfa","maybeMK","newRef","AP","rotationMatrix","exportValue","lineCount","defaultPadding","defaultHPadding","totalWidth","totalHeight","encodedLines","encodingError","encodedString","fakeUnicodeFont","newFont","oldFont","savedDefaultAppearance","defaultVPadding","bottomPadding","prevInfo","renderedText","appearanceData","numberOfLines","roundWithTwoDigits","textWidth","cachedLines","isTooBig","fsize","hPadding","vPadding","shiftStr","localFont","acroFormFont","subFontDict","subResourcesDict","_f","maximumLength","AFDateTime","canUseHTMLDateTime","actionsToVisit","formatAction","isDate","isRTL","combWidth","cells","hShift","previousWidth","renderedComb","lastSpacePosInStringStart","lastSpacePosInStringEnd","startChunk","currentWidth","allText","regex","_m","_ButtonWidgetAnnotation_instances","getOperatorListForAppearance_fn","_ButtonWidgetAnnotation","isRadio","isPushButton","setCanvasName","unchecked","xShift","yShift","normalAppearance","opt","onState","stateToIndex","fieldParent","kidDict","kidOnState","optInfo","customAppearance","asValue","yes","exportValues","otherYes","checkedAppearance","uncheckedAppearance","fieldParentValue","savedAppearance","savedMatrix","__superGet","isOptionArray","indices","valueIndices","displayValue","numberOfVisibleLines","firstIndex","minIndex","maxIndex","vpadding","parentItem","parentFlags","oldAnnotation","user","freetext","da","helv","lineAscent","clipBox","lineCoordinates","interiorColor","borderAdjust","controlPointsDistance","xMid","yMid","xOffset","yOffset","rawVertices","vertices","rawInkLists","inkList","outlines","ink","appearanceBuffer","outline","c1x","c1y","c2x","c2y","highlight","xEnd","_savedHasOwnCanvas","_StampAnnotation_static","createNewAppearanceStreamForDrawing_fn","stamp","xobject","areContours","_MEDIA_MIME_TYPE_RE","_MediaAnnotation","assetRef","assetDict","contentType","MediaAnnotation","_RichMediaAnnotation_static","findAsset_fn","_RichMediaAnnotation","asset","configurations","configRef","instances","instanceRef","rawAsset","_ScreenAnnotation_static","renditionActions_fn","isPlayAction_fn","findRenditionAsset_fn","findClipAsset_fn","_ScreenAnnotation","aa","rendition","seen","renditions","clip","rawData","contentTypeHint","explicitType","PARAMS","calculateMD5","h0","h3","padded","rotateArg","decodeString","DatasetXMLParser","DatasetReader","_annotation","_quadPoints","_text","_extraChars","_lastIntersectingQuadIndex","_canTakeExtraChars","_SingleIntersector_instances","intersects_fn","SingleIntersector","STEPS","_intersectors","_grid","_minX","_maxX","_minY","_maxY","_invXRatio","_invYRatio","_Intersector_instances","getGridIndex_fn","Intersector","intersectors","iMin","iMax","Word64","highInteger","lowInteger","word","places","lowAdd","highAdd","calculate_sha_other_PARAMS","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","calculateSHA512","mode384","h4","h5","h6","h7","t2","calculateSHA384","calculate_sha256_PARAMS","rotr","calculate_sha256_ch","calculate_sha256_maj","calculate_sha256_sigma","calculate_sha256_sigmaPrime","calculate_sha256_littleSigma","calculate_sha256_littleSigmaPrime","calculateSHA256","_nextChunk","DecryptStream","hasMoreData","ARCFourCipher","keyLength","NullCipher","AESBaseCipher","cipherKey","s0","finalize","sourceLength","iv","plain","lastBlock","psLen","cipher","AES128Cipher","rcon","t3","t4","AES256Cipher","PDFBase","password","userBytes","ownerValidationSalt","ownerPassword","hashData","userValidationSalt","userPassword","ownerKeySalt","ownerEncryption","userKeySalt","userEncryption","PDF17","PDF20","combinedLength","combinedArray","_cipherCache","_CipherTransform_instances","getCipher_fn","CipherTransform","resolveCipher","stringFilterName","streamFilterName","cryptFilterName","defaultFilterName","Cipher","pad","_fileId","_CipherTransformFactory_instances","createEncryptionKey20_fn","prepareKeyData_fn","decodeUserPassword_fn","buildObjectKey_fn","_CipherTransformFactory","fileId","algorithm","cfDict","streamCryptoName","handlerDict","stmf","strf","eff","ownerBytes","revision","encryptMetadata","fileIdBytes","passwordBytes","encryptionKey","uBytes","perms","effCF","authEvent","decodedPassword","cryptFilter","cfm","passwordLength","pdfAlgorithm","hashDataSize","keyLengthInBytes","checkData","derivedKey","isAes","CipherTransformFactory","XRef","startXRef","trailerDict","tableState","byteWidths","streamState","typeFieldWidth","offsetFieldWidth","generationFieldWidth","entryRanges","generation","typeByte","offsetByte","generationByte","readToken","skipUntil","skipped","gEndobjRegExp","gStartxrefRegExp","objRegExp","trailerBytes","startxrefBytes","xrefBytes","bufferStr","trailers","xrefStms","contentLength","updateEntries","xrefTagOffset","xrefStm","trailerDicts","isEncrypted","trailerError","validPagesDict","pagesDict","pagesCount","startXRefParsedCache","xrefEntry","suppressEncryption","LETTER_SIZE_MEDIABOX","_resourcesPromise","_Page_instances","createPartialEvaluator_fn","getInheritableProperty_fn","onSubStreamError_fn","replaceIdByRef_fn","getMergedResources_fn","Page","globalIdFactory","xfaFactory","idCounters","box","cropBox","mediaBox","partialEvaluator","deletedAnnotations","existingAnnotations","annotationsArray","deletedRef","contentStreamPromise","resourcesPromise","newAnnotsByPage","newAnnots","newAnnotationsPromise","annotationGlobalsPromise","missingBitmaps","annotationWithBitmaps","pageListPromise","contentStream","pageOpList","newAnnotations","intentAny","intentDisplay","intentPrint","opListPromises","opLists","form","separateForm","separateCanvas","langPromise","annotationsData","textContentPromises","highlightedAnnotations","isVisible","annots","fieldObjects","annotationPromises","sortedAnnotations","popupAnnotations","widgetAnnotations","cachedAnnotations","streamDict","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","find","backwards","signatureEnd","_pagePromises","_version","_PDFDocument_instances","hasOnlyDocumentSignatures_fn","loadXfaImages_fn","loadXfaFonts_fn","getLinearizationPage_fn","collectFieldObjects_fn","PDFDocument","linearization","startXRefLength","formInfo","hasFields","hasSignatures","hasOnlyDocumentSignatures","catalog","docInfo","infoDict","customValue","EMPTY_FINGERPRINT","hashOriginal","hashModified","cachedPromise","pagesTree","reasonAll","visitedRefs","allFields","fieldPromises","fieldRef","allPromises","catalogJsActions","fieldObject","calculationOrder","firstCall","recursionDepth","isSignature","isInvisible","parseFont","partName","parseDocBaseUrl","BasePdfManager","docId","enableXfa","LocalPdfManager","NetworkPdfManager","CallbackKind","StreamKind","onFn","wrapReason","_messageAC","_MessageHandler_instances","onMessage_fn","createStreamSink_fn","processStreamMessage_fn","deleteStreamController_fn","MessageHandler","sourceName","targetName","comObj","ah","callbackId","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","lastDesiredSize","streamController","dataReason","writeObject","encryptRef","writeValue","writeDict","writeStream","isFilterZeroFlateDecode","isFilterZeroImageDecode","newFilter","newParams","writeArray","writeInt","writeString","computeMD5","filesize","xrefInfo","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","xml","nodePath","updateAcroform","acroFormRef","hasXfa","hasXfaDatasetsEntry","xfaDatasetsRef","newXfa","updateXFA","xfaData","datasets","xfaDataStream","getXRefTable","baseOffset","newRefs","indexes","getIndexes","indexesPosition","computeIDs","getXRefStreamTable","xrefTableData","maxGen","objStreamRef","maxGenSize","sizes","structSize","objOffset","md5","getTrailerDict","useXrefStream","refForXrefTable","writeChanges","incrementalUpdate","originalData","MAX_LEAVES_PER_PAGES_NODE","MAX_IN_NAME_TREE_NODE","PageData","documentData","DocumentData","XRefWrapper","getNewRef","_newAnnotationsParams","_primaryDocument","_resourceStreamCache","_PDFEditor_instances","cloneObject_fn","collectDependencies_fn","isResourceStream_fn","rawStreamBytes_fn","serializeDict_fn","resourceStreamKey_fn","collectResourceStream_fn","dedupResourceStream_fn","cloneStructTreeNode_fn","getFilteredPageIndices_fn","resolveInsertAfterIndices_fn","collectDocumentData_fn","postCollectPageData_fn","setPostponedRefCopies_fn","fixPostponedRefCopies_fn","visitObject_fn","mergeStructTrees_fn","collectValidDestinations_fn","findDuplicateNamedDestinations_fn","fixNamedDestinations_fn","collectOutlineDestinations_fn","isValidOutlineDest_fn","filterOutlineItems_fn","buildOutline_fn","setOutlineItemDest_fn","makeOutline_fn","mergeAcroForms_fn","setAcroFormQ_fn","setAcroFormDefaultBasicValues_fn","setAcroFormCalculationOrder_fn","setAcroFormDefaultAppearance_fn","setAcroFormDefaultResources_fn","fixFields_fn","cloneFields_fn","collectPageLabels_fn","makePageCopy_fn","modalPageSize_fn","makeImagePage_fn","makePageTree_fn","makeNameNumTree_fn","makePageLabelsTree_fn","collectEmbeddedFiles_fn","makeEmbeddedFilesTree_fn","makeDestinationsTree_fn","makeStructTree_fn","makeAcroForm_fn","makeRoot_fn","makeInfo_fn","makeEncrypt_fn","createChanges_fn","createObjectStream_fn","PDFEditor","useObjectStreams","author","newDict","pageInfos","primaryDocument","reservePageSlot","newPageIndex","docPageInfos","allDocumentData","imageEntries","pageInfo","includePages","excludePages","pageIndices","filteredPageIndices","imageSlots","modalPageSize","imageEntry","infoMap","fileIds","xrefTableRef","mustClone","resourceStreamPath","oldRefMapping","existingRef","oldRef","postponedRefCopies","postponedActions","newObj","dictStr","resourceStreamPromises","pending","childPath","collected","cycleRef","bucket","parentStructRef","removedStructElements","dedupIDs","dedupClasses","dedupRoles","pagesMap","newKids","structElemIndices","pgRef","setAsSpan","newKidRef","newKid","newNodeRef","newNode","newClassName","newClassNames","roleName","newRoleName","stringId","newId","headers","structElemRef","compile","inc","exc","counts","insertAfterList","hasContent","updatedPageInfos","maxExistingPos","insertAfter","threshold","existingInfo","insertPos","pageIndicesArr","infoIdx","destinations","idTree","namespaces","pageData","usedNamedDestinations","fieldToParent","hasSignatureAnnotations","newAnnotationIndex","destString","annot","oldPageRef","newStructParentId","newParentTree","oldStructParentMapping","usedStructParents","newStructParent","structTreeKids","newIdTree","newClassMap","newRoleMap","newNamespaces","newStructTreeAF","newStructTreePronunciationLexicon","classMap","structTreeAF","structTreePronunciationLexicon","nodeRef","_id","classDict","mappedName","newMappedName","namespaceRef","newNamespace","afRef","lexiconRef","newParent","newParents","newDestinations","namedDestinations","getUniqueDestinationName","dedupedName","dedupNamedDestinations","pointingNamedDestinations","pointingDest","newName","fixDestination","collect","unsafeUrl","attachment","setOCGState","filteredChildren","hasValidOwnDest","outlineItems","itemDict","rawDict","newDest","actionRef","outlineRootRef","outlineRootDict","assignRefs","fillItems","totalCount","childCount","newFields","firstQ","firstDocData","sigFlags","sf","co","coRef","newCoRef","firstDA","firstDR","firstDRRef","dr","lastNonNullParent","acroFormDefaultAppearance","acroFormDefaultResources","acroFormQ","daToFix","drToFix","lastData","oldKidRef","kidsArray","resourcesValuesCache","newResourcesRef","resKey","resValue","newResValue","firstRealPage","labelsByPageIndex","oldPageIndices","stFirstIndex","newLabel","defaultLabel","newPageLabels","lastRef","boxName","userUnit","imagesPromises","newLastRef","pageObjectRefs","best","pageSize","pageW","pageH","availW","availH","imgW","imgH","drawW","drawH","tx","ty","xobjectDict","resourcesDict","contentsStream","contentsRef","maxLeaves","kidsChunks","kidsRefs","areNames","allEntries","keyA","keyB","treeRef","treeDict","isRoot","entriesChunks","entriesRefs","entriesRef","entriesDict","pageLabelsRef","embeddedFiles","docEmbeddedFiles","displayName","deduped","structTreeRef","idTreeRef","classMapRef","roleMapRef","namespacesRef","structTreeAFRef","structTreePronunciationLexiconRef","oldInfoDict","encryptDict","objRefs","streamBuffer","objOffsets","objStream","_PDFStreamReader","_PDFStreamRangeReader","BasePDFStream","PDFStreamReader","PDFStreamRangeReader","BasePDFStreamReader","BasePDFStreamRangeReader","PDFWorkerStream","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","msgHandler","readableStream","WorkerTask","_WorkerMessageHandler","port","testMessageProcessed","docParams","terminated","cancelXHRs","WorkerTasks","apiVersion","workerVersion","buildMsg","workerHandlerName","ensureNotTerminated","startWorkerTask","finishWorkerTask","loadDocument","isPureXfa","fingerprints","htmlForXfa","getPdfManager","disableAutoFetch","rangeChunkSize","pdfManagerArgs","fullReader","newPdfManager","cachedChunks","readData","loaded","getPassword","setupDoc","onSuccess","doc","onFailure","pdfManagerReady","passwordEx","pageIndexesToSkip","pagePromises","newDocumentId","pdfEditor","globalPromises","_structTreeRoot","newAnnotationPromises","newXrefInfo","pageId","operatorListInfo","waitOn","cleanupPromise","WorkerMessageHandler"],"mappings":"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QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,CAAC,GAC1SC,KAAkB,CAAC,IAAI,WAAW,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QA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Cd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,OACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,OACd,EAAE,YAAY,OACd,EAAE,YAAY,MACd,EAAE,UAAU,MACZ,EAAE,UAAU,MACZ,EAAE,UAAU,MACZ,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,OACd,EAAE,YAAY,OACd,EAAE,YAAY,OACd,EAAE,YAAY,OACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,OACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MACd,EAAE,YAAY,MA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EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,MACR,EAAE,MAAM,OACR,EAAE,MAAM,MACR,EAAE,MAAM,OACR,EAAE,OAAO,OACT,EAAE,MAAM,OACR,EAAE,OAAO,OACT,EAAE,MAAM,MACR,EAAE,MAAM,MACR,EAAE,MAAM,MACR,EAAE,MAAM,OACR,EAAE,MAAM,MACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,MAAM,OACR,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,MACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,EAAE,OAAO,OACT,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AAQ,MAAQ,MAAQ,OAAQ,OAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,MAAQ,MAAQ,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,MAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,MAAQ,OAAQ,OAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,MAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,MAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,MAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,OAAQ,OAAQ,KAAM,GAAG,CAAC,OAAQ,OAAQ,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,MAAO,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,OAAQ,KAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAM,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,GAAG,CAAC,QAAS,MAAO,GAAG,CAAC,SAAS,OAAO,GAAG,CAAC,OAAQ,OAAQ,QAAS,MAAO,GAAG,CAAC,QAAS,MAAO,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,QAAS,MAAO,GAAG,CAAC,OAAS,OAAS,OAAS,KAAO,GAAG,CAAC,QAAS,MAAO,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,MAAQ,IAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAQ,KAAM,GAAG,CAAC,OAAS,KAAO,GAAG,CAAC,MAAS,KAAO,GAAG,CAAC,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,GAAG,CAAC,QAAS,QAAS,QAAS,MAAO,CAAC;AAC/5F,SAASC,GAAmB3sE,GAAO4sE,IAAe,IAAI;AACpD,MAAIA,MAAiB,IAAI;AACvB,UAAMzuC,IAAQuuC,GAAcE,CAAY;AACxC,aAAS7qE,IAAI,GAAG8lB,IAAKsW,EAAM,QAAQp8B,IAAI8lB,GAAI9lB,KAAK;AAC9C,UAAI/B,KAASm+B,EAAMp8B,CAAC,KAAK/B,KAASm+B,EAAMp8B,IAAI,CAAC;AAC3C,eAAO6qE;AAAA,EAGb;AACA,WAAS7qE,IAAI,GAAG8lB,IAAK6kD,GAAc,QAAQ3qE,IAAI8lB,GAAI9lB,KAAK;AACtD,UAAMo8B,IAAQuuC,GAAc3qE,CAAC;AAC7B,aAASwX,IAAI,GAAGmqB,IAAKvF,EAAM,QAAQ5kB,IAAImqB,GAAInqB,KAAK;AAC9C,UAAIvZ,KAASm+B,EAAM5kB,CAAC,KAAKvZ,KAASm+B,EAAM5kB,IAAI,CAAC;AAC3C,eAAOxX;AAAA,EAGb;AACA,SAAO;AACT;AACA,MAAM8qE,KAAoB,WAAA,+BAAA,GAA2B,GAC/CC,KAAgB,oBAAI,IAAG;AAC7B,SAASC,GAAuBxgD,GAAM;AACpC,QAAMygD,IAAiBF,GAAc,IAAIvgD,CAAI;AAC7C,MAAIygD;AACF,WAAOA;AAET,QAAMC,IAAS1gD,EAAK,MAAMsgD,EAAiB,GACrCK,IAAW;AAAA,IACf,cAAc,CAAC,EAACD,KAAA,QAAAA,EAAS;AAAA,IACzB,sBAAsB,CAAC,EAACA,KAAA,QAAAA,EAAS;AAAA,IACjC,uBAAuB,CAAC,EAACA,KAAA,QAAAA,EAAS;AAAA,EACtC;AACE,SAAAH,GAAc,IAAIvgD,GAAM2gD,CAAQ,GACzBA;AACT;AACA,SAASC,KAAqB;AAC5B,EAAAL,GAAc,MAAK;AACrB;AAcA,MAAMM,KAAwB,IACxBC,KAAY;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,EAEV,aAAa;AAKf,GACMC,KAA2B,CAAC,WAAW,SAAS,oBAAoB,SAAS,UAAU,YAAY,cAAc,UAAU,WAAW,aAAa,eAAe,aAAa,cAAc,YAAY,QAAQ,SAAS,UAAU,UAAU,SAAS,QAAQ,OAAO,OAAO,SAAS,QAAQ,QAAQ,OAAO,SAAS,SAAS,QAAQ,SAAS,aAAa,QAAQ,SAAS,WAAW,YAAY,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,eAAe,aAAa,gBAAgB,eAAe,cAAc,SAAS,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,aAAa,OAAO,cAAc,cAAc,aAAa,SAAS,YAAY,UAAU,UAAU,aAAa,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,SAAS,YAAY,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,QAAQ,YAAY,WAAW,UAAU,aAAa,cAAc,cAAc,aAAa,aAAa,SAAS,YAAY,YAAY,MAAM,UAAU,YAAY,aAAa,aAAa,gBAAgB,OAAO,MAAM,eAAe,aAAa,WAAW,MAAM,YAAY,eAAe,gBAAgB,SAAS,MAAM,UAAU,gBAAgB,cAAc,cAAc,WAAW,UAAU,eAAe,SAAS,iBAAiB,kBAAkB,YAAY,oBAAoB,UAAU,UAAU,UAAU,MAAM,MAAM,UAAU,UAAU,gBAAgB,iBAAiB,aAAa,cAAc,UAAU,WAAW,aAAa,aAAa,YAAY,YAAY,iBAAiB,kBAAkB,MAAM,MAAM,aAAa,kBAAkB,kBAAkB,gBAAgB,eAAe,eAAe,eAAe,UAAU,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,eAAe,SAAS,UAAU,UAAU,eAAe,UAAU,YAAY,cAAc,SAAS,UAAU,SAAS,aAAa,QAAQ,WAAW,gBAAgB,UAAU,SAAS,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,OAAO,OAAO,UAAU,UAAU,SAAS,SAAS,SAAS,YAAY,eAAe,eAAe,iBAAiB,WAAW,cAAc,iBAAiB,SAAS,UAAU,UAAU,cAAc,YAAY,YAAY,UAAU,UAAU,UAAU,UAAU,QAAQ;AAChmF,SAASC,GAAiBhrE,GAAM+pE,GAAkB;AAChD,MAAIA,EAAiB/pE,CAAI,MAAM;AAC7B,WAAOA;AAET,QAAMgqE,IAAUF,GAAmB9pE,GAAM+pE,CAAgB;AACzD,MAAIC,MAAY;AACd,eAAWnxE,KAAOkxE;AAChB,UAAIA,EAAiBlxE,CAAG,MAAMmxE;AAC5B,eAAOnxE;AAAA;AAIb,SAAAylB,GAAK,kDAAkDte,CAAI,GACpDA;AACT;AACA,SAASirE,GAAsBhjD,GAAYijD,GAAiBC,GAAY;AACtE,QAAMC,IAAoB,uBAAO,OAAO,IAAI;AAC5C,MAAIC,GAAS3gD,GAAU4gD;AACvB,QAAMC,IAAiB,CAAC,EAAEtjD,EAAW,QAAQ6iD,GAAU;AACvD,MAAI7iD,EAAW;AAEb,SADAqjD,IAAeJ,GACVxgD,IAAW,GAAGA,IAAW4gD,EAAa,QAAQ5gD;AACjD,MAAA2gD,IAAUF,EAAW,QAAQG,EAAa5gD,CAAQ,CAAC,GACnD0gD,EAAkB1gD,CAAQ,IAAI2gD,KAAW,IAAIA,IAAU;AAAA,WAEhDpjD,EAAW;AAEpB,SADAqjD,IAAe9B,GAAYvhD,EAAW,gBAAgB,GACjDyC,IAAW,GAAGA,IAAW4gD,EAAa,QAAQ5gD;AACjD,MAAA2gD,IAAUF,EAAW,QAAQG,EAAa5gD,CAAQ,CAAC,GACnD0gD,EAAkB1gD,CAAQ,IAAI2gD,KAAW,IAAIA,IAAU;AAAA,WAEhDE;AACT,SAAK7gD,KAAYwgD;AACf,MAAAE,EAAkB1gD,CAAQ,IAAIwgD,EAAgBxgD,CAAQ;AAAA;AAIxD,SADA4gD,IAAelC,IACV1+C,IAAW,GAAGA,IAAW4gD,EAAa,QAAQ5gD;AACjD,MAAA2gD,IAAUF,EAAW,QAAQG,EAAa5gD,CAAQ,CAAC,GACnD0gD,EAAkB1gD,CAAQ,IAAI2gD,KAAW,IAAIA,IAAU;AAG3D,QAAMG,IAAcvjD,EAAW;AAC/B,MAAI8hD;AACJ,MAAIyB;AACF,SAAK9gD,KAAY8gD,GAAa;AAC5B,YAAMC,IAAYD,EAAY9gD,CAAQ;AAEtC,UADA2gD,IAAUF,EAAW,QAAQM,CAAS,GAClCJ,MAAY,IAAI;AAClB,QAAKtB,MACHA,IAAmBL,GAAgB;AAErC,cAAMgC,IAAoBV,GAAiBS,GAAW1B,CAAgB;AACtE,QAAI2B,MAAsBD,MACxBJ,IAAUF,EAAW,QAAQO,CAAiB;AAAA,MAElD;AACA,MAAAN,EAAkB1gD,CAAQ,IAAI2gD,KAAW,IAAIA,IAAU;AAAA,IACzD;AAEF,SAAOD;AACT;AACA,SAASO,GAAkB3rE,GAAM;AAC/B,SAAOA,EAAK,WAAW,SAAS,GAAG,EAAE,WAAW,OAAO,EAAE;AAC3D;AACA,MAAM4rE,KAA8B5gD,GAAsB,OAAK;AAC7D,IAAE,IAAM,IAAI,OACZ,EAAE,IAAM,IAAI,OACZ,EAAE,IAAM,IAAI,OACZ,EAAE,IAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI,OACZ,EAAE,KAAM,IAAI;AACd,CAAC,GACK6gD,KAAsB;AAC5B,SAASC,GAAkB;AAAA,EACzB,MAAMn5B;AAAA,EACN,OAAA5iB;AAAA,EACA,QAAAC;AACF,GAAG;AACD,MAAID,IAAQ87C,MAAuB77C,IAAS67C;AAC1C,WAAO;AAET,QAAME,IAAyB,KACzBC,IAAc,IAAI,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAC9EC,IAASl8C,IAAQ,GACjBm8C,IAAS,IAAI,WAAWD,KAAUj8C,IAAS,EAAE;AACnD,MAAIxwB,GAAGwX,GAAGm1D;AACV,QAAMC,IAAWr8C,IAAQ,IAAI,IACvB1qB,IAAO,IAAI,WAAW+mE,IAAWp8C,CAAM;AAC7C,MAAIvO,IAAM;AACV,aAAWof,KAAQ8R,GAAK;AACtB,QAAI+P,IAAO;AACX,WAAOA,IAAO;AACZ,MAAAr9C,EAAKoc,GAAK,IAAIof,IAAO6hB,IAAO,IAAI,KAChCA,MAAS;AAAA,EAEb;AACA,MAAI9pC,IAAQ;AAMZ,OALA6I,IAAM,GACFpc,EAAKoc,CAAG,MAAM,MAChByqD,EAAO,CAAC,IAAI,GACZ,EAAEtzD,IAEC5B,IAAI,GAAGA,IAAI+Y,GAAO/Y;AACrB,IAAI3R,EAAKoc,CAAG,MAAMpc,EAAKoc,IAAM,CAAC,MAC5ByqD,EAAOl1D,CAAC,IAAI3R,EAAKoc,CAAG,IAAI,IAAI,GAC5B,EAAE7I,IAEJ6I;AAMF,OAJIpc,EAAKoc,CAAG,MAAM,MAChByqD,EAAOl1D,CAAC,IAAI,GACZ,EAAE4B,IAECpZ,IAAI,GAAGA,IAAIwwB,GAAQxwB,KAAK;AAC3B,IAAAiiB,IAAMjiB,IAAI4sE,GACVD,IAAK3sE,IAAIysE,GACL5mE,EAAKoc,IAAM2qD,CAAQ,MAAM/mE,EAAKoc,CAAG,MACnCyqD,EAAOC,CAAE,IAAI9mE,EAAKoc,CAAG,IAAI,IAAI,GAC7B,EAAE7I;AAEJ,QAAIG,KAAO1T,EAAKoc,CAAG,IAAI,IAAI,MAAMpc,EAAKoc,IAAM2qD,CAAQ,IAAI,IAAI;AAC5D,SAAKp1D,IAAI,GAAGA,IAAI+Y,GAAO/Y;AACrB,MAAA+B,KAAOA,KAAO,MAAM1T,EAAKoc,IAAM,CAAC,IAAI,IAAI,MAAMpc,EAAKoc,IAAM2qD,IAAW,CAAC,IAAI,IAAI,IACzEJ,EAAYjzD,CAAG,MACjBmzD,EAAOC,IAAKn1D,CAAC,IAAIg1D,EAAYjzD,CAAG,GAChC,EAAEH,IAEJ6I;AAMF,QAJIpc,EAAKoc,IAAM2qD,CAAQ,MAAM/mE,EAAKoc,CAAG,MACnCyqD,EAAOC,IAAKn1D,CAAC,IAAI3R,EAAKoc,CAAG,IAAI,IAAI,GACjC,EAAE7I,IAEAA,IAAQmzD;AACV,aAAO;AAAA,EAEX;AAOA,OANAtqD,IAAM2qD,KAAYp8C,IAAS,IAC3Bm8C,IAAK3sE,IAAIysE,GACL5mE,EAAKoc,CAAG,MAAM,MAChByqD,EAAOC,CAAE,IAAI,GACb,EAAEvzD,IAEC5B,IAAI,GAAGA,IAAI+Y,GAAO/Y;AACrB,IAAI3R,EAAKoc,CAAG,MAAMpc,EAAKoc,IAAM,CAAC,MAC5ByqD,EAAOC,IAAKn1D,CAAC,IAAI3R,EAAKoc,CAAG,IAAI,IAAI,GACjC,EAAE7I,IAEJ6I;AAMF,MAJIpc,EAAKoc,CAAG,MAAM,MAChByqD,EAAOC,IAAKn1D,CAAC,IAAI,GACjB,EAAE4B,IAEAA,IAAQmzD;AACV,WAAO;AAET,QAAM/oC,IAAQ,IAAI,WAAW,CAAC,GAAGipC,GAAQ,IAAI,GAAG,CAACA,GAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,GAC9DI,IAAU,CAAA,GACV;AAAA,IACJ,GAAA9oD;AAAA,IACA,GAAApC;AAAA,IACA,GAAAqC;AAAA,IACA,GAAArB;AAAA,IACA,GAAApT;AAAA,IACA,GAAAotC;AAAA,EACJ,IAAM,IAAI,UAAS,EAAG,UAAU,IAAIpsB,GAAO,KAAKC,CAAM,EAAE,cAAc,GAAG,CAACA,CAAM;AAC9E,OAAKxwB,IAAI,GAAGoZ,KAASpZ,KAAKwwB,GAAQxwB,KAAK;AACrC,QAAIgiB,IAAIhiB,IAAIysE;AACZ,UAAM30D,IAAMkK,IAAIuO;AAChB,WAAOvO,IAAIlK,KAAO,CAAC40D,EAAO1qD,CAAC;AACzB,MAAAA;AAEF,QAAIA,MAAMlK;AACR;AAEF,QAAI9N,IAAIgY,IAAIyqD,GACR1zD,IAAI/Y;AACR,IAAA6sE,EAAQ,KAAKruD,GAAQ,QAAQuF,IAAI/Z,IAAIga,IAAIjL,IAAIxJ,GAAGoS,IAAI3X,IAAI2Y,IAAI5J,IAAI4jC,CAAC;AACjE,UAAMz6B,IAAKF;AACX,QAAIyH,IAAOijD,EAAO1qD,CAAC;AACnB,OAAG;AACD,YAAMzb,IAAOi9B,EAAM/Z,CAAI;AACvB;AACE,QAAAzH,KAAKzb;AAAA,aACE,CAACmmE,EAAO1qD,CAAC;AAClB,YAAM8qD,IAAKJ,EAAO1qD,CAAC;AACnB,MAAI8qD,MAAO,KAAKA,MAAO,MACrBrjD,IAAOqjD,GACPJ,EAAO1qD,CAAC,IAAI,MAEZyH,IAAOqjD,IAAK,KAAOrjD,KAAQ,GAC3BijD,EAAO1qD,CAAC,KAAKyH,KAAQ,IAAIA,KAAQ,IAEnCzf,IAAIgY,IAAIyqD,GACR1zD,IAAIiJ,IAAIyqD,IAAS,GACjBI,EAAQ,KAAKruD,GAAQ,QAAQuF,IAAI/Z,IAAIga,IAAIjL,IAAIxJ,GAAGoS,IAAI3X,IAAI2Y,IAAI5J,IAAI4jC,CAAC,GAC5D+vB,EAAO1qD,CAAC,KACX,EAAE5I;AAAA,IAEN,SAAS8I,MAAOF;AAChB,MAAEhiB;AAAA,EACJ;AACA,SAAO,CAACue,EAAI,aAAa,CAAC,IAAI,aAAasuD,CAAO,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,GAAGt8C,GAAOC,CAAM,CAAC,CAAC;AAC/F;AAG2Bh4B,GAAoB,IAAI;AAEnD,MAAMu0E,KAAkB,CAAC,WAAW,SAAS,UAAU,YAAY,cAAc,UAAU,WAAW,aAAa,cAAc,aAAa,cAAc,YAAY,QAAQ,SAAS,UAAU,UAAU,SAAS,QAAQ,OAAO,OAAO,SAAS,QAAQ,QAAQ,OAAO,SAAS,SAAS,QAAQ,SAAS,aAAa,QAAQ,SAAS,WAAW,YAAY,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,eAAe,aAAa,gBAAgB,eAAe,cAAc,aAAa,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,aAAa,OAAO,cAAc,cAAc,cAAc,QAAQ,YAAY,YAAY,OAAO,UAAU,WAAW,YAAY,eAAe,gBAAgB,iBAAiB,iBAAiB,kBAAkB,MAAM,MAAM,UAAU,UAAU,aAAa,kBAAkB,aAAa,UAAU,kBAAkB,gBAAgB,iBAAiB,kBAAkB,YAAY,eAAe,gBAAgB,SAAS,SAAS,cAAc,SAAS,UAAU,SAAS,aAAa,YAAY,QAAQ,WAAW,gBAAgB,UAAU,SAAS,UAAU,MAAM,eAAe,UAAU,UAAU,MAAM,gBAAgB,MAAM,YAAY,UAAU,UAAU,MAAM,cAAc,eAAe,cAAc,MAAM,aAAa,OAAO,WAAW,aAAa,SAAS,cAAc,UAAU,aAAa,UAAU,SAAS,iBAAiB,eAAe,cAAc,SAAS,OAAO,YAAY,iBAAiB,aAAa,UAAU,eAAe,aAAa,UAAU,SAAS,UAAU,YAAY,UAAU,eAAe,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,SAAS,UAAU,YAAY,UAAU,eAAe,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,aAAa,QAAQ,GAC7vEC,KAAgB,CAAC,WAAW,SAAS,eAAe,qBAAqB,kBAAkB,kBAAkB,kBAAkB,cAAc,qBAAqB,sBAAsB,kBAAkB,kBAAkB,SAAS,UAAU,UAAU,YAAY,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,SAAS,aAAa,iBAAiB,uBAAuB,kBAAkB,iBAAiB,aAAa,aAAa,gBAAgB,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,MAAM,MAAM,MAAM,OAAO,OAAO,qBAAqB,sBAAsB,mBAAmB,kBAAkB,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,iBAAiB,aAAa,UAAU,cAAc,mBAAmB,gBAAgB,eAAe,eAAe,eAAe,iBAAiB,cAAc,cAAc,kBAAkB,eAAe,cAAc,kBAAkB,eAAe,aAAa,gBAAgB,cAAc,WAAW,iBAAiB,qBAAqB,aAAa,gBAAgB,eAAe,gBAAgB,YAAY,aAAa,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,gBAAgB,kBAAkB,kBAAkB,iBAAiB,eAAe,eAAe,oBAAoB,eAAe,kBAAkB,cAAc,WAAW,iBAAiB,eAAe,eAAe,oBAAoB,kBAAkB,eAAe,eAAe,oBAAoB,kBAAkB,YAAY,eAAe,eAAe,eAAe,oBAAoB,eAAe,kBAAkB,WAAW,eAAe,eAAe,eAAe,oBAAoB,kBAAkB,eAAe,cAAc,gBAAgB,GAC32EC,KAAsB,CAAC,WAAW,SAAS,kBAAkB,kBAAkB,qBAAqB,sBAAsB,kBAAkB,kBAAkB,SAAS,UAAU,UAAU,YAAY,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,SAAS,aAAa,iBAAiB,uBAAuB,kBAAkB,aAAa,aAAa,gBAAgB,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,MAAM,MAAM,MAAM,OAAO,OAAO,qBAAqB,sBAAsB,kBAAkB,iBAAiB,aAAa,UAAU,gBAAgB,cAAc,kBAAkB,cAAc,WAAW,iBAAiB,aAAa,gBAAgB,eAAe,gBAAgB,YAAY,aAAa,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,gBAAgB,kBAAkB,kBAAkB,eAAe;AA/iuBhyC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC;AAyjuBA,MAAMC,GAAY;AAAA,EAMhB,YAAY;AAAA,IACV,aAAAC,IAAc;AAAA,IACd,WAAAC,IAAY;AAAA,EAChB,GAAK;AATL,IAAAloD,GAAA,MAAA8nD;AACE,IAAA9nD,GAAA,MAAAynD;AACA,IAAAznD,GAAA,MAAA0nD,IAAa;AACb,IAAA1nD,GAAA,MAAA2nD,IAAkB;AAClB,IAAA3nD,GAAA,MAAA4nD,IAAO;AACP,IAAA5nD,GAAA,MAAA6nD;AAKE,IAAA18C,GAAA,MAAKw8C,IAAkB,CAAC,CAACM,IACzBxoD,EAAA,MAAKqoD,IAAAC,IAAL,WAAcE,KAAeC;AAAA,EAC/B;AAAA,EAgBA,IAAI,OAAO;AACT,WAAO3lD,EAAA,MAAKklD,IAAK,SAAS,GAAGllD,EAAA,MAAKqlD,GAAI;AAAA,EACxC;AAAA,EACA,IAAI,SAAS;AACX,WAAOrlD,EAAA,MAAKqlD;AAAA,EACd;AAAA,EACA,KAAKpjE,GAAG;AACN,IAAA2mB,GAAA,MAAKy8C,IAALrlD,EAAA,MAAKqlD,MAAQpjE;AAAA,EACf;AAAA,EACA,SAAS+hB,GAAK;AACZ,UAAMmhB,IAASnlB,EAAA,MAAKqlD,MAAOrhD,EAAI;AAC/B,IAAI,CAAChE,EAAA,MAAKolD,OAAmBjgC,IAASnlB,EAAA,MAAKmlD,OACzCjoD,EAAA,MAAKqoD,IAAAC,IAAL,WAAcrgC,IAEhBnlB,EAAA,MAAKklD,IAAK,IAAIlhD,GAAKhE,EAAA,MAAKqlD,GAAI,GAC5Bz8C,GAAA,MAAKy8C,IAAOlgC;AAAA,EACd;AAAA,EACA,SAASz/B,GAAK;AACZ,UAAMy/B,IAASnlB,EAAA,MAAKqlD,MAAO;AAC3B,IAAI,CAACrlD,EAAA,MAAKolD,OAAmBjgC,IAASnlB,EAAA,MAAKmlD,OACzCjoD,EAAA,MAAKqoD,IAAAC,IAAL,WAAcrgC,IAEhBnlB,EAAA,MAAKslD,IAAM,SAAStlD,EAAA,MAAKqlD,KAAM3/D,CAAG,GAClCkjB,GAAA,MAAKy8C,IAAOlgC;AAAA,EACd;AAAA,EACA,aAAaz/B,GAAK;AAChB,UAAMy/B,IAASnlB,EAAA,MAAKqlD,MAAO;AAC3B,IAAI,CAACrlD,EAAA,MAAKolD,OAAmBjgC,IAASnlB,EAAA,MAAKmlD,OACzCjoD,EAAA,MAAKqoD,IAAAC,IAAL,WAAcrgC,IAEhBnlB,EAAA,MAAKslD,IAAM,SAAStlD,EAAA,MAAKqlD,KAAM15C,GAAUjmB,GAAK,QAAS,KAAM,CAAC,GAC9DkjB,GAAA,MAAKy8C,IAAOlgC;AAAA,EACd;AAAA,EACA,SAASz/B,GAAK;AACZ,UAAMy/B,IAASnlB,EAAA,MAAKqlD,MAAO;AAC3B,IAAI,CAACrlD,EAAA,MAAKolD,OAAmBjgC,IAASnlB,EAAA,MAAKmlD,OACzCjoD,EAAA,MAAKqoD,IAAAC,IAAL,WAAcrgC,IAEhBnlB,EAAA,MAAKslD,IAAM,SAAStlD,EAAA,MAAKqlD,KAAM3/D,CAAG,GAClCkjB,GAAA,MAAKy8C,IAAOlgC;AAAA,EACd;AACF;AApEE+/B,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eACAC,KAAA,eALFC,KAAA,eAaEC,KAAQ,SAACG,GAAW;AAClB,MAAI3lD,EAAA,MAAKolD;AACP,IAAAx8C,GAAA,MAAKu8C,IAAaQ;AAAA;AAElB,WAAO3lD,EAAA,MAAKmlD,MAAaQ;AACvB,MAAA/8C,GAAA,MAAKu8C,IAALnlD,EAAA,MAAKmlD,MAAc;AAGvB,QAAMS,IAAS,IAAI,WAAW5lD,EAAA,MAAKmlD,GAAU;AAC7C,EAAInlD,EAAA,MAAKklD,OACPU,EAAO,IAAI5lD,EAAA,MAAKklD,KAAM,CAAC,GAEzBt8C,GAAA,MAAKs8C,IAAOU,IACZh9C,GAAA,MAAK08C,IAAQ,IAAI,SAASM,EAAO,MAAM;AACzC;AA4DF,MAAMC,KAAmB;AACzB,SAASC,GAA+BlxB,GAAO;AAC7C,SAAOA,IAAQ,SAAUA,KAAS;AACpC;AACA,SAASmxB,GAAuB93B,GAAM+3B,IAAgB,IAAO;AAC3D,SAAOxsD,GAAK,cAAcy0B,EAAK,IAAI,CAAC2G,GAAO58C,OAAO,CAACguE,KAAiBhuE,IAAI,MAAM8tE,GAA+BlxB,CAAK,IAAIA,IAAQ,QAAUA,CAAK,CAAC;AAChJ;AACA,MAAMqxB,KAAqB,CAAC,WAAW,SAAS,UAAU,YAAY,cAAc,UAAU,WAAW,aAAa,cAAc,aAAa,cAAc,YAAY,QAAQ,SAAS,UAAU,UAAU,SAAS,QAAQ,OAAO,OAAO,SAAS,QAAQ,QAAQ,OAAO,SAAS,SAAS,QAAQ,SAAS,aAAa,QAAQ,SAAS,WAAW,YAAY,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,eAAe,aAAa,gBAAgB,eAAe,cAAc,aAAa,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,aAAa,OAAO,cAAc,cAAc,cAAc,QAAQ,YAAY,YAAY,OAAO,UAAU,WAAW,YAAY,eAAe,gBAAgB,iBAAiB,iBAAiB,kBAAkB,MAAM,MAAM,UAAU,UAAU,aAAa,kBAAkB,aAAa,UAAU,kBAAkB,gBAAgB,iBAAiB,kBAAkB,YAAY,eAAe,gBAAgB,SAAS,SAAS,cAAc,SAAS,UAAU,SAAS,aAAa,YAAY,QAAQ,WAAW,gBAAgB,UAAU,SAAS,UAAU,MAAM,eAAe,UAAU,UAAU,MAAM,gBAAgB,MAAM,YAAY,UAAU,UAAU,MAAM,cAAc,eAAe,cAAc,MAAM,aAAa,OAAO,WAAW,aAAa,SAAS,cAAc,UAAU,aAAa,UAAU,SAAS,iBAAiB,eAAe,cAAc,SAAS,OAAO,YAAY,iBAAiB,aAAa,UAAU,eAAe,aAAa,UAAU,SAAS,UAAU,YAAY,UAAU,eAAe,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,SAAS,UAAU,YAAY,UAAU,eAAe,aAAa,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,UAAU,UAAU,eAAe,aAAa,UAAU,UAAU,aAAa,UAAU,eAAe,qBAAqB,kBAAkB,kBAAkB,kBAAkB,cAAc,qBAAqB,sBAAsB,kBAAkB,kBAAkB,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,iBAAiB,uBAAuB,kBAAkB,iBAAiB,aAAa,aAAa,gBAAgB,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,MAAM,OAAO,OAAO,qBAAqB,sBAAsB,mBAAmB,kBAAkB,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,iBAAiB,aAAa,UAAU,cAAc,mBAAmB,gBAAgB,eAAe,eAAe,eAAe,iBAAiB,cAAc,cAAc,kBAAkB,eAAe,cAAc,kBAAkB,eAAe,aAAa,gBAAgB,qBAAqB,aAAa,gBAAgB,eAAe,gBAAgB,YAAY,aAAa,gBAAgB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,gBAAgB,eAAe,eAAe,iBAAiB,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,gBAAgB,kBAAkB,kBAAkB,iBAAiB,eAAe,eAAe,oBAAoB,eAAe,kBAAkB,cAAc,WAAW,iBAAiB,eAAe,eAAe,oBAAoB,kBAAkB,eAAe,eAAe,oBAAoB,kBAAkB,YAAY,eAAe,eAAe,eAAe,oBAAoB,eAAe,kBAAkB,WAAW,eAAe,eAAe,eAAe,oBAAoB,kBAAkB,eAAe,cAAc,kBAAkB,WAAW,WAAW,WAAW,WAAW,SAAS,QAAQ,QAAQ,SAAS,UAAU,WAAW,SAAS,UAAU,GAC5hJC,KAA2B,KAC3BC,KAAqB,UACrBC,KAAqB,GACrBC,KAAoB,GACpBC,KAA2B,MAC3BC,KAA2B,CAAC,MAAM;AAAA,EACtC,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AAAA,EACf,MAAM;AACR,GAAG,MAAM;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AAAA,EACf,MAAM;AACR,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AACjB,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG,MAAM;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AACP,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AACP,GAAG,MAAM,MAAM;AAAA,EACb,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AACjB,GAAG,MAAM,MAAM,MAAM;AAAA,EACnB,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AAAA,EACf,MAAM;AACR,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AACjB,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AACjB,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AACjB,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AACjB,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,eAAe;AAAA,EACf,MAAM;AACR,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG,MAAM;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AACP,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,CAAC,GACKC,KAA6B,CAAC,MAAM,MAAM,MAAM;AAAA,EACpD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG,MAAM,MAAM,MAAM;AAAA,EACnB,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,QAAQvvB,GAAO1hD,GAAO;AACpB,IAAA0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC;AAAA,EACvD;AACF,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,QAAQ0hD,GAAO1hD,GAAO;AACpB,IAAA0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC;AAAA,EACvD;AACF,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,QAAQ0hD,GAAO1hD,GAAO;AACpB,IAAA0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC;AAAA,EACvD;AACF,GAAG,MAAM;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,QAAQ0hD,GAAO1hD,GAAO;AACpB,IAAA0hD,EAAM1hD,IAAQ,CAAC,IAAI,CAAC0hD,EAAM1hD,IAAQ,CAAC;AAAA,EACrC;AACF,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG,MAAM,MAAM;AAAA,EACb,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG,MAAM;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,QAAQ0hD,GAAO1hD,GAAO;AACpB,IAAA0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC,IAAI0hD,EAAM1hD,IAAQ,CAAC;AAAA,EACvD;AACF,GAAG,MAAM;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG,MAAM,MAAM,MAAM;AAAA,EACnB,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,GAAG;AAAA,EACD,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,YAAY;AACd,CAAC;AACD,MAAMkxE,GAAU;AAAA,EACd,YAAYC,GAAMjmD,GAAYkmD,GAAqB;AACjD,SAAK,QAAQD,EAAK,SAAQ,GAC1B,KAAK,aAAajmD,GAClB,KAAK,sBAAsB,CAAC,CAACkmD;AAAA,EAC/B;AAAA,EACA,QAAQ;AAj3uBV,QAAAzkD;AAk3uBI,UAAMzB,IAAa,KAAK,YAClBmmD,IAAM,IAAIC,GAAI,KAAK,MAAM,MAAM;AACrC,SAAK,MAAMD;AACX,UAAMrvB,IAAS,KAAK,YAAW,GACzBuvB,IAAY,KAAK,WAAWvvB,EAAO,MAAM,GACzCwvB,IAAe,KAAK,WAAWD,EAAU,MAAM,GAC/CE,IAAc,KAAK,WAAWD,EAAa,MAAM,GACjDE,IAAkB,KAAK,WAAWD,EAAY,MAAM,GACpDE,IAAgB,KAAK,UAAUH,EAAa,IAAI,IAAI,CAAC,CAAC,GACtDI,IAAU,KAAK,WAAWC,IAAYF,GAAeN,EAAI,OAAO;AACtE,IAAAA,EAAI,SAASrvB,EAAO,KACpBqvB,EAAI,QAAQ,KAAK,eAAeE,EAAU,GAAG,GAC7CF,EAAI,UAAU,KAAK,iBAAiBI,EAAY,GAAG,GACnDJ,EAAI,UAAUO,GACdP,EAAI,kBAAkBK,EAAgB,KACtC,KAAK,iBAAiBL,EAAI,OAAO,GACjCA,EAAI,YAAYO,EAAQ,QAAQ,KAAK;AACrC,UAAME,IAAmBF,EAAQ,UAAU,aAAa,GAClDG,IAAkB,KAAK,WAAWD,CAAgB,EAAE;AAC1D,IAAAT,EAAI,kBAAkBU,EAAgB;AACtC,UAAMC,IAAaJ,EAAQ,UAAU,YAAY;AACjD,IAAII,MACF9mD,EAAW,aAAa8mD;AAE1B,QAAIC,IAAWL,EAAQ,UAAU,UAAU;AAC3C,UAAMM,KAAiBvlD,IAAAzB,EAAW,SAAX,QAAAyB,EAAiB,KAAK,CAAA0yB,MAASA,MAAU,KAAKmxB,GAAuBtlD,EAAW,IAAI,IAAI,MACzGinD,IAA8BF,KAAA,gBAAAA,EAAU,MAAM,GAAG,GAAG,KAAK1B,KACzD6B,IAA2BH,KAAA,gBAAAA,EAAU,KAAK1B;AAChD,QAAI0B,KAAA,QAAAA,EAAU,MAAM,CAAA5yB,MAASA,MAAU,MAAM6yB;AAC3C,MAAAD,IAAWC,GACXN,EAAQ,UAAU,YAAYK,CAAQ;AAAA,aAC7BG,GAA0B;AACnC,YAAMC,IAAoB7B,GAAuByB,CAAQ,GACnDK,IAAyBJ,KAAkBhnD,EAAW,KAAK,KAAK,CAAAm0B,MAASA,IAAQ,CAAC,KAAK,CAACn0B,EAAW,KAAK,KAAKqlD,EAA8B,KAAKnoD,GAAaiqD,GAAmBH,CAAc;AACpM,OAAII,KAA0BH,OAC5BF,IAAWK,IAAyBD,IAAoB7B,GAAuByB,GAAU,EAAI,GAC7FL,EAAQ,UAAU,YAAYK,CAAQ;AAAA,IAE1C;AACA,IAAIA,KAAA,QAAAA,EAAU,KAAK,CAAA5yB,MAASA,MAAU,OACpCn0B,EAAW,SAAS,KAAK,IAAI+mD,EAAS,CAAC,GAAGA,EAAS,CAAC,CAAC,GACrD/mD,EAAW,UAAU,KAAK,IAAI+mD,EAAS,CAAC,GAAGA,EAAS,CAAC,CAAC,GACtD/mD,EAAW,eAAe;AAE5B,QAAIqnD,GAASjlD;AACb,QAAI+jD,EAAI,WAAW;AACjB,YAAMmB,IAAe,KAAK,WAAWZ,EAAQ,UAAU,SAAS,CAAC,EAAE;AACnE,eAASnvE,IAAI,GAAG8lB,IAAKiqD,EAAa,OAAO/vE,IAAI8lB,GAAI,EAAE9lB,GAAG;AACpD,cAAMgwE,IAAUD,EAAa,IAAI/vE,CAAC,GAC5BiwE,IAAW,KAAK,WAAWb,IAAY,KAAK,UAAUY,CAAO,GAAGpB,EAAI,OAAO;AACjF,aAAK,iBAAiBqB,CAAQ,GAC9BrB,EAAI,QAAQ,KAAKqB,CAAQ;AAAA,MAC3B;AACA,MAAAplD,IAAW,MACXilD,IAAU,KAAK,cAAcX,EAAQ,UAAU,SAAS,GAAGG,EAAgB,OAAOV,EAAI,SAAS,EAAI,GACnGA,EAAI,WAAW,KAAK,cAAcO,EAAQ,UAAU,UAAU,GAAGG,EAAgB,KAAK;AAAA,IACxF;AACE,MAAAQ,IAAU,KAAK,cAAcX,EAAQ,UAAU,SAAS,GAAGG,EAAgB,OAAOV,EAAI,SAAS,EAAK,GACpG/jD,IAAW,KAAK,cAAcskD,EAAQ,UAAU,UAAU,GAAG1mD,GAAYmmD,EAAI,SAASkB,EAAQ,OAAO;AAEvG,IAAAlB,EAAI,UAAUkB,GACdlB,EAAI,WAAW/jD;AACf,UAAMqlD,IAAsB,KAAK,iBAAiB;AAAA,MAChD,aAAaZ;AAAA,MACb,gBAAgBH,EAAQ,YAAY;AAAA,MACpC,iBAAiBF,EAAgB;AAAA,MACjC,UAAUL,EAAI;AAAA,MACd,SAASA,EAAI;AAAA,MACb,aAAaO,EAAQ;AAAA,IAC3B,CAAK;AACD,WAAAP,EAAI,cAAcsB,EAAoB,aACtCtB,EAAI,QAAQsB,EAAoB,OAChCtB,EAAI,SAASsB,EAAoB,QAC1BtB;AAAA,EACT;AAAA,EACA,cAAc;AACZ,QAAI58D,IAAQ,KAAK;AACjB,UAAMm+D,IAAcn+D,EAAM;AAC1B,QAAImF,IAAS;AACb,WAAOA,IAASg5D,KAAen+D,EAAMmF,CAAM,MAAM;AAC/C,QAAEA;AAEJ,QAAIA,KAAUg5D;AACZ,YAAM,IAAI3vD,GAAY,oBAAoB;AAE5C,IAAIrJ,MAAW,MACb2H,GAAK,qBAAqB,GAC1B9M,IAAQA,EAAM,SAASmF,CAAM,GAC7B,KAAK,QAAQnF;AAEf,UAAMo+D,IAAQp+D,EAAM,CAAC,GACfq+D,IAAQr+D,EAAM,CAAC,GACfs+D,IAAUt+D,EAAM,CAAC,GACjBu+D,IAAUv+D,EAAM,CAAC;AAEvB,WAAO;AAAA,MACL,KAFa,IAAIw+D,GAAUJ,GAAOC,GAAOC,GAASC,CAAO;AAAA,MAGzD,QAAQD;AAAA,IACd;AAAA,EACE;AAAA,EACA,UAAU5nD,GAAM;AACd,UAAM4b,IAAO,IAAI,SAAS5b,EAAK,QAAQA,EAAK,YAAYA,EAAK,WAAW;AACxE,QAAIzG,IAAM;AACV,aAASwuD,IAAe;AACtB,UAAIxyE,IAAQyqB,EAAKzG,GAAK;AACtB,aAAIhkB,MAAU,KACLyyE,EAAiB,IACfzyE,MAAU,MACnBA,IAAQqmC,EAAK,SAASriB,CAAG,GACzBA,KAAO,GACAhkB,KACEA,MAAU,MACnBA,IAAQqmC,EAAK,SAASriB,CAAG,GACzBA,KAAO,GACAhkB,KACEA,KAAS,MAAMA,KAAS,MAC1BA,IAAQ,MACNA,KAAS,OAAOA,KAAS,OAC1BA,IAAQ,OAAO,MAAMyqB,EAAKzG,GAAK,IAAI,MAClChkB,KAAS,OAAOA,KAAS,MAC3B,GAAGA,IAAQ,OAAO,OAAOyqB,EAAKzG,GAAK,IAAI,OAEhDjD,EAAK,yBAAyB/gB,CAAK,0BAA0B,GACtD;AAAA,IACT;AACA,aAASyyE,IAAoB;AAC3B,UAAI/wD,IAAM;AAEV,YAAM+L,IAAS,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,GAAG,GACrFluB,IAASkrB,EAAK;AACpB,aAAOzG,IAAMzkB,KAAQ;AACnB,cAAMmkB,IAAI+G,EAAKzG,GAAK,GACduB,IAAK7B,KAAK,GACV4B,IAAK5B,IAAI;AAKf,YAJI6B,MAAO,OAGX7D,KAAO+L,EAAOlI,CAAE,GACZD,MAAO;AACT;AAEF,QAAA5D,KAAO+L,EAAOnI,CAAE;AAAA,MAClB;AACA,aAAO,WAAW5D,CAAG;AAAA,IACvB;AACA,QAAIgxD,IAAW,CAAA;AACf,UAAMC,IAAU,CAAA;AAChB,IAAA3uD,IAAM;AACN,UAAMnK,IAAM4Q,EAAK;AACjB,WAAOzG,IAAMnK,KAAK;AAChB,UAAI6J,IAAI+G,EAAKzG,CAAG;AAChB,MAAIN,KAAK,MACHA,MAAM,OACRA,IAAIA,KAAK,IAAI+G,EAAK,EAAEzG,CAAG,IAEzB2uD,EAAQ,KAAK,CAACjvD,GAAGgvD,CAAQ,CAAC,GAC1BA,IAAW,CAAA,GACX,EAAE1uD,KAEF0uD,EAAS,KAAKF,GAAc;AAAA,IAEhC;AACA,WAAOG;AAAA,EACT;AAAA,EACA,WAAW3uD,GAAK;AACd,UAAM4uD,IAAW,IAAIC,GAAQ,GACvB9+D,IAAQ,KAAK,OACboH,IAAQpH,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK,GACvC2mC,IAAU,CAAA;AAChB,QAAI9wC,IAAMmK,GACNjiB,GAAG8lB;AACP,QAAI1M,MAAU,GAAG;AACf,YAAM23D,IAAa/+D,EAAMiQ,GAAK,GACxBgrB,IAAWhrB,KAAO7I,IAAQ,KAAK23D,IAAa;AAClD,WAAK/wE,IAAI,GAAG8lB,IAAK1M,IAAQ,GAAGpZ,IAAI8lB,GAAI,EAAE9lB,GAAG;AACvC,YAAImX,IAAS;AACb,iBAASK,IAAI,GAAGA,IAAIu5D,GAAY,EAAEv5D;AAChC,UAAAL,MAAW,GACXA,KAAUnF,EAAMiQ,GAAK;AAEvB,QAAA2mC,EAAQ,KAAK3b,IAAW91B,CAAM;AAAA,MAChC;AACA,MAAAW,IAAM8wC,EAAQxvC,CAAK;AAAA,IACrB;AACA,SAAKpZ,IAAI,GAAG8lB,IAAK8iC,EAAQ,SAAS,GAAG5oD,IAAI8lB,GAAI,EAAE9lB,GAAG;AAChD,YAAMgxE,IAAcpoB,EAAQ5oD,CAAC,GACvBixE,IAAYroB,EAAQ5oD,IAAI,CAAC;AAC/B,MAAA6wE,EAAS,IAAI7+D,EAAM,SAASg/D,GAAaC,CAAS,CAAC;AAAA,IACrD;AACA,WAAO;AAAA,MACL,KAAKJ;AAAA,MACL,QAAQ/4D;AAAA,IACd;AAAA,EACE;AAAA,EACA,eAAeva,GAAO;AACpB,UAAM0P,IAAQ,CAAA;AACd,aAASjN,IAAI,GAAG8lB,IAAKvoB,EAAM,OAAOyC,IAAI8lB,GAAI,EAAE9lB,GAAG;AAC7C,YAAMQ,IAAOjD,EAAM,IAAIyC,CAAC;AACxB,MAAAiN,EAAM,KAAKyT,GAAclgB,CAAI,CAAC;AAAA,IAChC;AACA,WAAOyM;AAAA,EACT;AAAA,EACA,iBAAiB1P,GAAO;AACtB,UAAMm9D,IAAU,IAAIwW,GAAU;AAC9B,aAASlxE,IAAI,GAAG8lB,IAAKvoB,EAAM,OAAOyC,IAAI8lB,GAAI,EAAE9lB,GAAG;AAC7C,YAAM6F,IAAOtI,EAAM,IAAIyC,CAAC;AACxB,MAAA06D,EAAQ,IAAIh6C,GAAc7a,CAAI,CAAC;AAAA,IACjC;AACA,WAAO60D;AAAA,EACT;AAAA,EACA,WAAWyW,GAAMzoD,GAAMgyC,GAAS;AAC9B,UAAM0W,IAAU,IAAID,EAAKzW,CAAO;AAChC,eAAW,CAACrhE,GAAK4E,CAAK,KAAKyqB;AACzB,MAAA0oD,EAAQ,SAAS/3E,GAAK4E,CAAK;AAE7B,WAAOmzE;AAAA,EACT;AAAA,EACA,gBAAgB70E,GAAOsJ,GAAMwrE,GAAgBpC,GAAiB;AAC5D,QAAI,CAACppE,KAAQtJ,EAAM,YAAYsxE;AAC7B,aAAO;AAET,UAAMvpC,IAAO,IAAI,SAASz+B,EAAK,QAAQA,EAAK,YAAYA,EAAK,WAAW;AACxE,QAAIyrE,IAAY/0E,EAAM;AACtB,UAAM0iD,IAAQ1iD,EAAM;AACpB,QAAIiB,IAASqI,EAAK;AAClB,aAAS2R,IAAI,GAAGA,IAAIha,KAAS;AAC3B,YAAMS,IAAQ4H,EAAK2R,GAAG;AACtB,UAAI+5D,IAAoB;AACxB,UAAItzE,MAAU,IAAI;AAChB,cAAMs5B,IAAI1xB,EAAK2R,GAAG;AAClB,QAAI+f,MAAM,KACR1xB,EAAK2R,IAAI,CAAC,IAAI,KACd3R,EAAK2R,IAAI,CAAC,IAAI,IACd85D,IAAY,KAEZC,IAAoB/C,GAA2Bj3C,CAAC;AAAA,MAEpD,WAAWt5B,MAAU;AACnB,QAAAghD,EAAMqyB,CAAS,IAAIhtC,EAAK,SAAS9sB,CAAC,GAClCA,KAAK,GACL85D;AAAA,eACSrzE,MAAU,IAAI;AACvB,YAAIqzE,KAAa,MACfA,KAAa,GACT,KAAK;AACP,iBAAA/0E,EAAM,OAAO0iD,EAAM,MAAMqyB,GAAWA,IAAY,CAAC,GAC1C;AAGX,QAAAC,IAAoBhD,GAAyBtwE,CAAK;AAAA,MACpD,WAAWA,KAAS,MAAMA,KAAS;AACjC,QAAAghD,EAAMqyB,CAAS,IAAIrzE,IAAQ,KAC3BqzE;AAAA,eACSrzE,KAAS,OAAOA,KAAS;AAClC,QAAAghD,EAAMqyB,CAAS,IAAIrzE,IAAQ,OAAOA,IAAQ,OAAO,KAAK4H,EAAK2R,CAAC,IAAI,MAAM,EAAEvZ,IAAQ,OAAO,KAAK4H,EAAK2R,CAAC,IAAI,KACtGA,KACA85D;AAAA,eACSrzE,MAAU;AACnB,QAAAghD,EAAMqyB,CAAS,IAAIhtC,EAAK,SAAS9sB,CAAC,IAAI,OACtCA,KAAK,GACL85D;AAAA,eACSrzE,MAAU,MAAMA,MAAU,IAAI;AAEvC,YADA1B,EAAM,SAAS+0E,KAAa,GACxB/0E,EAAM,UAAU,GAAG;AACrB,UAAAsJ,EAAK,WAAW2R,IAAI,GAAGA,GAAG,EAAE,GAC5BA,KAAK,GACLha,KAAU;AACV;AAAA,QACF;AACA,QAAAga,KAAKjb,EAAM,QAAQ,KAAK,GACxB+0E,KAAa,GACbC,IAAoBhD,GAAyBtwE,CAAK;AAAA,MACpD,WAAWA,MAAU,MAAMA,MAAU,IAAI;AACvC,cAAMuzE,IAAavzE,MAAU,KAAKozE,IAAiBpC;AACnD,YAAI,CAACuC;AACH,iBAAAD,IAAoBhD,GAAyBtwE,CAAK,GAClD+gB,EAAK,4BAA4BuyD,EAAkB,EAAE,GAC9C;AAET,YAAIE,IAAO;AACX,QAAID,EAAW,QAAQ,OACrBC,IAAO,MACED,EAAW,QAAQ,UAC5BC,IAAO;AAET,cAAMC,IAAazyB,EAAM,EAAEqyB,CAAS,IAAIG;AACxC,YAAIC,IAAa,KAAKA,KAAcF,EAAW,SAAS,MAAME,CAAU;AACtE,iBAAAH,IAAoBhD,GAAyBtwE,CAAK,GAClD+gB,EAAK,iCAAiCuyD,EAAkB,EAAE,GACnD;AAKT,YAHAh1E,EAAM,YAAY+0E,GAClB/0E,EAAM,aAEF,CADU,KAAK,gBAAgBA,GAAOi1E,EAAW,IAAIE,CAAU,GAAGL,GAAgBpC,CAAe;AAEnG,iBAAO;AAET,QAAA1yE,EAAM,aACN+0E,IAAY/0E,EAAM;AAClB;AAAA,MACF,OAAO;AAAA,YAAI0B,MAAU;AACnB,iBAAA1B,EAAM,YAAY+0E,GACX;AACF,YAAIrzE,MAAU,KAAKuZ,MAAM3R,EAAK;AACnC,UAAAA,EAAK2R,IAAI,CAAC,IAAI,IACd+5D,IAAoBhD,GAAyB,EAAE;AAAA,iBACtCtwE,MAAU,GAAG;AACtB,UAAA4H,EAAK,WAAW2R,IAAI,GAAGA,GAAG,EAAE,GAC5BA,KAAK,GACLha,KAAU;AACV;AAAA,QACF;AACE,UAAA+zE,IAAoBhD,GAAyBtwE,CAAK;AAAA;AAEpD,UAAIszE,GAAmB;AAUrB,YATIA,EAAkB,SACpBh1E,EAAM,SAAS+0E,KAAa,GACxBrzE,MAAU,KAAKA,MAAU,KAC3B1B,EAAM,YAAY,KACTA,EAAM,cAAc0B,MAAU,KAAKA,MAAU,QACtD+gB,EAAK,mCAAmC,GACxCnZ,EAAK2R,IAAI,CAAC,IAAIvZ,MAAU,IAAI,IAAI,MAGhCqzE,IAAYC,EAAkB;AAEhC,iBADAvyD,EAAK,+BAA+BuyD,EAAkB,KAAK,eAAeD,IAAY,iBAAiBC,EAAkB,GAAG,GACxHD,MAAc,KAChBzrE,EAAK2R,IAAI,CAAC,IAAI,IACP,MAEF;AAET,QAAIjb,EAAM,sBAAsBg1E,EAAkB,kBAChDh1E,EAAM,qBAAqB,IAC3B+0E,KAAaC,EAAkB,KAC3BD,KAAa,KAAKC,EAAkB,OACtCD,KAAa,IACJA,IAAY,KACrBtyD,EAAK,sDAAsD,GAEzDsyD,IAAY,MACd/0E,EAAM,QAAQ0iD,EAAMqyB,IAAY,CAAC,KAGjC,gBAAgBC,KACd,aAAaA,KACfA,EAAkB,QAAQtyB,GAAOqyB,CAAS,GAE5CA,KAAaC,EAAkB,eACtBA,EAAkB,iBAAiBA,EAAkB,gBAC9DD,IAAY;AAAA,MAEhB;AAAA,IACF;AACA,WAAI9zE,IAASqI,EAAK,UAChBA,EAAK,KAAK,IAAIrI,CAAM,GAEtBjB,EAAM,YAAY+0E,GACX;AAAA,EACT;AAAA,EACA,iBAAiB;AAAA,IACf,aAAAK;AAAA,IACA,gBAAAN;AAAA,IACA,iBAAApC;AAAA,IACA,UAAA2C;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,EACJ,GAAK;AACD,UAAMC,IAAQ,CAAA,GACRC,IAAS,CAAA,GACT54D,IAAQu4D,EAAY;AAC1B,aAAS3xE,IAAI,GAAGA,IAAIoZ,GAAOpZ,KAAK;AAC9B,YAAMiyE,IAAaN,EAAY,IAAI3xE,CAAC,GAC9BzD,IAAQ;AAAA,QACZ,WAAW;AAAA,QACX,WAAW;AAAA,QACX,OAAO,CAAA;AAAA,QACP,OAAO;AAAA,QACP,oBAAoB;AAAA,QACpB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,UAAI21E,IAAQ,IACRC,IAAiB,MACjBC,IAAmBN;AACvB,UAAIF,KAAYC,EAAQ,QAAQ;AAC9B,cAAMQ,IAAUT,EAAS,WAAW5xE,CAAC;AACrC,QAAIqyE,MAAY,OACdrzD,EAAK,kCAAkC,GACvCkzD,IAAQ,KAENG,KAAWR,EAAQ,WACrB7yD,EAAK,mCAAmC,GACxCkzD,IAAQ,KAENA,MACFE,IAAmBP,EAAQQ,CAAO,EAAE,aACpCF,IAAiBC,EAAiB;AAAA,MAEtC,MAAO,CAAIf,MACTc,IAAiBd;AAKnB,UAHIa,MACFA,IAAQ,KAAK,gBAAgB31E,GAAO01E,GAAYE,GAAgBlD,CAAe,IAE7E1yE,EAAM,UAAU,MAAM;AACxB,cAAM+1E,IAAeF,EAAiB,UAAU,eAAe;AAC/D,QAAAJ,EAAOhyE,CAAC,IAAIsyE,IAAe/1E,EAAM;AAAA,MACnC,OAAO;AACL,cAAMg2E,IAAeH,EAAiB,UAAU,eAAe;AAC/D,QAAAJ,EAAOhyE,CAAC,IAAIuyE;AAAA,MACd;AACA,MAAIh2E,EAAM,SAAS,SACjBw1E,EAAM/xE,CAAC,IAAIzD,EAAM,OAEd21E,KACHP,EAAY,IAAI3xE,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AAAA,IAE3C;AACA,WAAO;AAAA,MACL,aAAA2xE;AAAA,MACA,OAAAI;AAAA,MACA,QAAAC;AAAA,IACN;AAAA,EACE;AAAA,EACA,uBAAuBQ,GAAY;AACjC,UAAMV,IAAc,KAAK,WAAWW,IAAgB,CAAA,GAAID,EAAW,OAAO;AAC1E,IAAAA,EAAW,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,GAC9BA,EAAW,cAAcV;AAAA,EAC3B;AAAA,EACA,iBAAiBU,GAAY;AAC3B,QAAI,CAACA,EAAW,QAAQ,SAAS,GAAG;AAClC,WAAK,uBAAuBA,CAAU;AACtC;AAAA,IACF;AACA,UAAME,IAAgBF,EAAW,UAAU,SAAS;AACpD,QAAI,CAAC,MAAM,QAAQE,CAAa,KAAKA,EAAc,WAAW,GAAG;AAC/D,MAAAF,EAAW,aAAa,SAAS;AACjC;AAAA,IACF;AACA,UAAMvjE,IAAOyjE,EAAc,CAAC,GACtBv7D,IAASu7D,EAAc,CAAC;AAC9B,QAAIzjE,MAAS,KAAKkI,KAAU,KAAK,MAAM,QAAQ;AAC7C,WAAK,uBAAuBq7D,CAAU;AACtC;AAAA,IACF;AACA,QAAIr7D,IAASlI,IAAO,KAAK,MAAM;AAC7B,YAAM,IAAIuR,GAAY,2CAA2C;AAEnE,UAAMmyD,IAAiBx7D,IAASlI,GAC1B2jE,IAAW,KAAK,MAAM,SAASz7D,GAAQw7D,CAAc,GACrDjqD,IAAO,KAAK,UAAUkqD,CAAQ,GAC9Bd,IAAc,KAAK,WAAWW,IAAgB/pD,GAAM8pD,EAAW,OAAO;AAC5E,IAAAA,EAAW,cAAcV;AACzB,UAAMe,IAAYf,EAAY,UAAU,WAAW,GAC7CgB,IAAYhB,EAAY,UAAU,WAAW,GAC7CiB,IAAWjB,EAAY,UAAU,UAAU,GAC3CkB,IAAkBlB,EAAY,UAAU,iBAAiB;AAS/D,QARIe,MAAc,KAAKC,MAAc,KAAKC,MAAa,KAAKC,MAAoB,MAC9ElB,EAAY,UAAU,aAAa3D,EAAkB,GACrD2D,EAAY,UAAU,aAAa1D,EAAkB,GACrD0D,EAAY,UAAU,YAAYzD,EAAiB,IAEjD2E,MAAoB,KACtBlB,EAAY,UAAU,mBAAmBxD,EAAwB,GAE/DuE,IAAY,GAAG;AACjB,UAAII,IAAgB;AACpB,iBAAWC,KAAS,CAACpB,EAAY,UAAU,YAAY,GAAGA,EAAY,UAAU,YAAY,CAAC;AAC3F,YAAKoB;AAGL,mBAASlzE,IAAI,GAAGA,IAAIkzE,EAAM,QAAQlzE,KAAK;AACrC,YAAIkzE,EAAMlzE,CAAC,IAAIizE,MACbA,IAAgBC,EAAMlzE,CAAC;AAI7B,UAAIizE,IAAgB,GAAG;AAErB,cAAME,IAAa,MAAMF,GACnBG,IAAeD,KAAchF,KAAqB,KAAK,KAAKgF,IAAa,GAAS,IAAI,MAAY,QAClGE,IAAe,KAAK,MAAM,MAAYJ,CAAa,IAAI,KACvDK,IAAU3/C,GAAUk/C,GAAWO,GAAcC,CAAY;AAC/D,QAAIC,MAAYT,KACdf,EAAY,UAAU,aAAawB,CAAO;AAAA,MAE9C;AAAA,IACF;AACA,QAAI,CAACxB,EAAY,UAAU,OAAO;AAChC;AAEF,UAAMyB,IAAczB,EAAY,UAAU,OAAO,GAC3C0B,IAAiBr8D,IAASo8D;AAChC,QAAIA,MAAgB,KAAKC,KAAkB,KAAK,MAAM,QAAQ;AAC5D,WAAK,uBAAuBhB,CAAU;AACtC;AAAA,IACF;AACA,UAAMhB,IAAa,KAAK,WAAWgC,CAAc;AACjD,IAAA1B,EAAY,aAAaN,EAAW;AAAA,EACtC;AAAA,EACA,cAAcvvD,GAAKzkB,GAAQk9D,GAAS+Y,GAAK;AACvC,QAAIxxD,MAAQ;AACV,aAAO,IAAIyxD,GAAW,IAAMC,GAA0B,WAAW5G,EAAe;AAC3E,QAAI9qD,MAAQ;AACjB,aAAO,IAAIyxD,GAAW,IAAMC,GAA0B,QAAQ3G,EAAa;AACtE,QAAI/qD,MAAQ;AACjB,aAAO,IAAIyxD,GAAW,IAAMC,GAA0B,eAAe1G,EAAmB;AAE1F,UAAM;AAAA,MACJ,OAAAj7D;AAAA,IACN,IAAQ,MACE4hE,IAAS5hE,EAAMiQ,GAAK,GACpB6tD,IAAU,CAAC2D,IAAM,IAAI,SAAS;AACpC,QAAIziE,GAAIoI,GAAOpZ;AAEf,YADAxC,KAAU,GACFo2E,GAAM;AAAA,MACZ,KAAK;AACH,aAAK5zE,IAAI,GAAGA,IAAIxC,GAAQwC;AACtB,UAAAgR,IAAKgB,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK,GACpC6tD,EAAQ,KAAK2D,IAAMziE,IAAK0pD,EAAQ,IAAI1pD,CAAE,CAAC;AAEzC;AAAA,MACF,KAAK;AACH,eAAO8+D,EAAQ,UAAUtyE;AAGvB,eAFAwT,IAAKgB,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK,GACpC7I,IAAQpH,EAAMiQ,GAAK,GACdjiB,IAAI,GAAGA,KAAKoZ,GAAOpZ;AACtB,YAAA8vE,EAAQ,KAAK2D,IAAMziE,MAAO0pD,EAAQ,IAAI1pD,GAAI,CAAC;AAG/C;AAAA,MACF,KAAK;AACH,eAAO8+D,EAAQ,UAAUtyE;AAGvB,eAFAwT,IAAKgB,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK,GACpC7I,IAAQpH,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK,GAClCjiB,IAAI,GAAGA,KAAKoZ,GAAOpZ;AACtB,YAAA8vE,EAAQ,KAAK2D,IAAMziE,MAAO0pD,EAAQ,IAAI1pD,GAAI,CAAC;AAG/C;AAAA,MACF;AACE,cAAM,IAAIwP,GAAY,wBAAwB;AAAA,IACtD;AACI,WAAO,IAAIkzD,GAAW,IAAOE,GAAQ9D,CAAO;AAAA,EAC9C;AAAA,EACA,cAAc7tD,GAAKwG,GAAYiyC,GAASoV,GAAS;AAC/C,UAAMjlD,IAAW,uBAAO,OAAO,IAAI,GAC7B7Y,IAAQ,KAAK;AACnB,QAAI6hE,IAAa,IACbD,GAAQ5zE,GAAG8lB,GACX3b,IAAM;AACV,aAAS2pE,IAAiB;AACxB,YAAMC,IAAmB/hE,EAAMiQ,GAAK;AACpC,WAAKjiB,IAAI,GAAGA,IAAI+zE,GAAkB/zE,KAAK;AACrC,cAAMigB,IAAOjO,EAAMiQ,GAAK,GAClB+xD,KAAOhiE,EAAMiQ,GAAK,KAAK,MAAMjQ,EAAMiQ,GAAK,IAAI;AAClD,QAAA4I,EAAS5K,CAAI,IAAI6vD,EAAQ,QAAQpV,EAAQ,IAAIsZ,CAAG,CAAC;AAAA,MACnD;AAAA,IACF;AACA,QAAI/xD,MAAQ,KAAKA,MAAQ,GAAG;AAC1B,MAAA4xD,IAAa,IACbD,IAAS3xD;AACT,YAAM6pD,IAAe7pD,IAAMwnD,KAAiBG;AAC5C,WAAK5pE,IAAI,GAAG8lB,IAAKgqD,EAAQ,QAAQ9vE,IAAI8lB,GAAI9lB,KAAK;AAC5C,cAAMzC,IAAQuuE,EAAa,QAAQgE,EAAQ9vE,CAAC,CAAC;AAC7C,QAAIzC,MAAU,OACZstB,EAASttB,CAAK,IAAIyC;AAAA,MAEtB;AAAA,IACF,OAAO;AACL,YAAMi0E,IAAYhyD;AAElB,cADA2xD,IAAS5hE,EAAMiQ,GAAK,GACZ2xD,IAAS,KAAI;AAAA,QACnB,KAAK;AACH,gBAAMM,IAAcliE,EAAMiQ,GAAK;AAC/B,eAAKjiB,IAAI,GAAGA,KAAKk0E,GAAal0E;AAC5B,YAAA6qB,EAAS7Y,EAAMiQ,GAAK,CAAC,IAAIjiB;AAE3B;AAAA,QACF,KAAK;AACH,gBAAMm0E,IAAcniE,EAAMiQ,GAAK;AAC/B,cAAImyD,IAAM;AACV,eAAKp0E,IAAI,GAAGA,IAAIm0E,GAAan0E,KAAK;AAChC,kBAAMiqB,IAAQjY,EAAMiQ,GAAK,GACnB8qC,IAAO/6C,EAAMiQ,GAAK;AACxB,qBAASzK,IAAIyS,GAAOzS,KAAKyS,IAAQ8iC,GAAMv1C;AACrC,cAAAqT,EAASrT,CAAC,IAAI48D;AAAA,UAElB;AACA;AAAA,QACF;AACE,gBAAM,IAAI5zD,GAAY,4BAA4BozD,CAAM,SAAS;AAAA,MAC3E;AACM,YAAMS,IAAUpyD;AAChB,MAAI2xD,IAAS,QACX5hE,EAAMiiE,CAAS,KAAK,KACpBH,EAAc,IAEhB3pE,IAAM6H,EAAM,SAASiiE,GAAWI,CAAO;AAAA,IACzC;AACA,WAAAT,KAAU,KACH,IAAIU,GAAYT,GAAYD,GAAQ/oD,GAAU1gB,CAAG;AAAA,EAC1D;AAAA,EACA,cAAc8X,GAAKzkB,GAAQ;AACzB,UAAMwU,IAAQ,KAAK,OACb4hE,IAAS5hE,EAAMiQ,GAAK,GACpB2vD,IAAW,CAAA;AACjB,QAAI5xE;AACJ,YAAQ4zE,GAAM;AAAA,MACZ,KAAK;AACH,aAAK5zE,IAAI,GAAGA,IAAIxC,GAAQ,EAAEwC,GAAG;AAC3B,gBAAMgR,IAAKgB,EAAMiQ,GAAK;AACtB,UAAA2vD,EAAS,KAAK5gE,CAAE;AAAA,QAClB;AACA;AAAA,MACF,KAAK;AACH,cAAMmjE,IAAcniE,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK;AACnD,aAAKjiB,IAAI,GAAGA,IAAIm0E,GAAa,EAAEn0E,GAAG;AAChC,cAAIikB,IAAQjS,EAAMiQ,GAAK,KAAK,IAAIjQ,EAAMiQ,GAAK;AAC3C,UAAIjiB,MAAM,KAAKikB,MAAU,MACvBjF,EAAK,iFAAsF,GAC3FiF,IAAQ;AAEV,gBAAMouD,IAAUrgE,EAAMiQ,GAAK,GACrB3b,IAAO0L,EAAMiQ,CAAG,KAAK,IAAIjQ,EAAMiQ,IAAM,CAAC;AAC5C,mBAASzK,IAAIyM,GAAOzM,IAAIlR,GAAM,EAAEkR;AAC9B,YAAAo6D,EAAS,KAAKS,CAAO;AAAA,QAEzB;AACA,QAAApwD,KAAO;AACP;AAAA,MACF;AACE,cAAM,IAAIzB,GAAY,kCAAkCozD,CAAM,IAAI;AAAA,IAC1E;AACI,QAAIhC,EAAS,WAAWp0E;AACtB,YAAM,IAAIgjB,GAAY,mCAAmC;AAE3D,WAAO,IAAI+zD,GAAYX,GAAQhC,CAAQ;AAAA,EACzC;AACF;AACA,MAAM/C,GAAI;AAAA,EAaR,YAAY2F,IAAgB,GAAG;AAZ/B,IAAA1sD,EAAA,gBAAS;AACT,IAAAA,EAAA,eAAQ,CAAA;AACR,IAAAA,EAAA,iBAAU;AACV,IAAAA,EAAA,iBAAU,IAAIopD,GAAU;AACxB,IAAAppD,EAAA,yBAAkB;AAClB,IAAAA,EAAA,kBAAW;AACX,IAAAA,EAAA,iBAAU;AACV,IAAAA,EAAA,qBAAc;AACd,IAAAA,EAAA,iBAAU,CAAA;AACV,IAAAA,EAAA,kBAAW;AACX,IAAAA,EAAA,mBAAY;AACZ,IAAAA,EAAA,yBAAkB;AAEhB,SAAK,gBAAgB0sD;AAAA,EACvB;AAAA,EACA,sBAAsB;AACpB,QAAI,KAAK,YAAY,SAAS,OAAO;AACnC,MAAAx1D,EAAK,2DAA2D;AAChE;AAAA,IACF;AACA,UAAMy1D,IAAY,KAAK,YAAY,IAAI,CAAC;AACxC,SAAK,YAAY,IAAIA,CAAS,GAC1B,KAAK,aACP,KAAK,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,CAAC,CAAC;AAAA,EAEzD;AAAA,EACA,WAAWzjE,GAAI;AACb,WAAIA,IAAK,KAAKA,KAAM,KAAK,YAAY,QAC5B,KAEK,KAAK,YAAY,IAAIA,CAAE,EACxB,SAAS;AAAA,EACxB;AACF;AACA,MAAMw/D,GAAU;AAAA,EACd,YAAYJ,GAAOC,GAAOC,GAASC,GAAS;AAC1C,SAAK,QAAQH,GACb,KAAK,QAAQC,GACb,KAAK,UAAUC,GACf,KAAK,UAAUC;AAAA,EACjB;AACF;AACA,MAAMW,GAAW;AAAA,EAAjB;AACE,IAAAppD,EAAA,iBAAU,CAAA;AAAA;AAAA,EACV,IAAIvqB,GAAO;AACT,WAAIA,KAAS,KAAKA,KAAS2wE,KAA2B,IAC7CD,GAAmB1wE,CAAK,IAE7BA,IAAQ2wE,MAA4B,KAAK,QAAQ,SAC5C,KAAK,QAAQ3wE,IAAQ2wE,EAAwB,IAE/CD,GAAmB,CAAC;AAAA,EAC7B;AAAA,EACA,OAAOtuD,GAAK;AACV,QAAIpiB,IAAQ0wE,GAAmB,QAAQtuD,CAAG;AAC1C,WAAIpiB,MAAU,KACLA,KAETA,IAAQ,KAAK,QAAQ,QAAQoiB,CAAG,GAC5BpiB,MAAU,KACLA,IAAQ2wE,KAEV;AAAA,EACT;AAAA,EACA,IAAIjwE,GAAO;AACT,SAAK,QAAQ,KAAKA,CAAK;AAAA,EACzB;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;AACA,MAAM6yE,GAAS;AAAA,EAAf;AACE,IAAAhpD,EAAA,iBAAU,CAAA;AACV,IAAAA,EAAA,gBAAS;AAAA;AAAA,EACT,IAAIjiB,GAAM;AACR,SAAK,UAAUA,EAAK,QACpB,KAAK,QAAQ,KAAKA,CAAI;AAAA,EACxB;AAAA,EACA,IAAItI,GAAOsI,GAAM;AACf,SAAK,UAAUA,EAAK,SAAS,KAAK,QAAQtI,CAAK,EAAE,QACjD,KAAK,QAAQA,CAAK,IAAIsI;AAAA,EACxB;AAAA,EACA,IAAItI,GAAO;AACT,WAAO,KAAK,QAAQA,CAAK;AAAA,EAC3B;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;AACA,MAAMm3E,GAAQ;AAAA,EACZ,YAAYC,GAAQja,GAAS;AAC3B,SAAK,eAAeia,EAAO,cAC3B,KAAK,eAAeA,EAAO,cAC3B,KAAK,WAAWA,EAAO,UACvB,KAAK,QAAQA,EAAO,OACpB,KAAK,UAAUA,EAAO,SACtB,KAAK,QAAQA,EAAO,OACpB,KAAK,UAAUja,GACf,KAAK,SAAS,uBAAO,OAAO,IAAI;AAAA,EAClC;AAAA,EACA,SAASrhE,GAAK4E,GAAO;AACnB,QAAI,EAAE5E,KAAO,KAAK;AAChB,aAAO;AAET,QAAI4E,EAAM,WAAW;AACnB,aAAO;AAET,eAAWyP,KAAOzP;AAChB,UAAI,MAAMyP,CAAG;AACX,eAAAsR,EAAK,2BAA2B/gB,CAAK,cAAc5E,CAAG,IAAI,GACnD;AAGX,UAAMowB,IAAO,KAAK,MAAMpwB,CAAG;AAC3B,YAAIowB,MAAS,SAASA,MAAS,SAASA,MAAS,cAC/CxrB,IAAQA,EAAM,CAAC,IAEjB,KAAK,OAAO5E,CAAG,IAAI4E,GACZ;AAAA,EACT;AAAA,EACA,UAAUuC,GAAMvC,GAAO;AACrB,QAAI,EAAEuC,KAAQ,KAAK;AACjB,YAAM,IAAIggB,GAAY,4BAA4BhgB,CAAI,GAAG;AAE3D,SAAK,OAAO,KAAK,aAAaA,CAAI,CAAC,IAAIvC;AAAA,EACzC;AAAA,EACA,QAAQuC,GAAM;AACZ,WAAO,KAAK,aAAaA,CAAI,KAAK,KAAK;AAAA,EACzC;AAAA,EACA,UAAUA,GAAM;AACd,QAAI,EAAEA,KAAQ,KAAK;AACjB,YAAM,IAAIggB,GAAY,2BAA2BhgB,CAAI,GAAG;AAE1D,UAAMnH,IAAM,KAAK,aAAamH,CAAI;AAClC,WAAMnH,KAAO,KAAK,SAGX,KAAK,OAAOA,CAAG,IAFb,KAAK,SAASA,CAAG;AAAA,EAG5B;AAAA,EACA,aAAamH,GAAM;AACjB,WAAO,KAAK,OAAO,KAAK,aAAaA,CAAI,CAAC;AAAA,EAC5C;AAAA,EACA,OAAO,aAAao0E,GAAQ;AAC1B,UAAMD,IAAS;AAAA,MACb,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,MACd,UAAU,CAAA;AAAA,MACV,OAAO,CAAA;AAAA,MACP,SAAS,CAAA;AAAA,MACT,OAAO,CAAA;AAAA,IACb;AACI,eAAW3mD,KAAS4mD,GAAQ;AAC1B,YAAMv7E,IAAM,MAAM,QAAQ20B,EAAM,CAAC,CAAC,KAAKA,EAAM,CAAC,EAAE,CAAC,KAAK,KAAKA,EAAM,CAAC,EAAE,CAAC,IAAIA,EAAM,CAAC;AAChF,MAAA2mD,EAAO,aAAat7E,CAAG,IAAI20B,EAAM,CAAC,GAClC2mD,EAAO,aAAa3mD,EAAM,CAAC,CAAC,IAAI30B,GAChCs7E,EAAO,MAAMt7E,CAAG,IAAI20B,EAAM,CAAC,GAC3B2mD,EAAO,SAASt7E,CAAG,IAAI20B,EAAM,CAAC,GAC9B2mD,EAAO,QAAQt7E,CAAG,IAAI,MAAM,QAAQ20B,EAAM,CAAC,CAAC,IAAIA,EAAM,CAAC,IAAI,CAACA,EAAM,CAAC,CAAC,GACpE2mD,EAAO,MAAM,KAAKt7E,CAAG;AAAA,IACvB;AACA,WAAOs7E;AAAA,EACT;AACF;AACA,MAAME,KAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,OAAO,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,iBAAiB,OAAO,IAAI,GAAG,CAAC,GAAG,WAAW,OAAO,IAAI,GAAG,CAAC,GAAG,UAAU,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,IAAI,GAAG,CAAC,GAAG,YAAY,OAAO,IAAI,GAAG,CAAC,GAAG,cAAc,OAAO,IAAI,GAAG,CAAC,GAAG,UAAU,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,qBAAqB,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,sBAAsB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,CAAC,MAAO,GAAG,GAAG,MAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,YAAY,OAAO,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,OAAO,OAAO,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,SAAS,IAAI,GAAG,CAAC,IAAI,WAAW,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,cAAc,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,gBAAgB,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,iBAAiB,SAAS,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,WAAW,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,WAAW,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,OAAO,IAAI,CAAC;AAC90C,MAAMzF,WAAmBsF,GAAQ;AAAA,EAC/B,WAAW,SAAS;AAClB,WAAO90D,GAAO,MAAM,UAAU,KAAK,aAAai1D,EAAgB,CAAC;AAAA,EACnE;AAAA,EACA,YAAYna,GAAS;AACnB,UAAM0U,GAAW,QAAQ1U,CAAO,GAChC,KAAK,cAAc;AAAA,EACrB;AACF;AACA,MAAMoa,KAAuB,CAAC,CAAC,GAAG,cAAc,SAAS,IAAI,GAAG,CAAC,GAAG,cAAc,SAAS,IAAI,GAAG,CAAC,GAAG,eAAe,SAAS,IAAI,GAAG,CAAC,GAAG,oBAAoB,SAAS,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO3G,EAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,OAAOC,EAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,OAAOC,EAAiB,GAAG,CAAC,IAAI,SAAS,OAAO,IAAI,GAAG,CAAC,IAAI,SAAS,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,SAAS,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,SAAS,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,iBAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,OAAOC,EAAwB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,qBAAqB,OAAO,CAAC,GAAG,CAAC,IAAI,iBAAiB,OAAO,CAAC,GAAG,CAAC,IAAI,iBAAiB,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,UAAU,IAAI,CAAC;AACluB,MAAMmE,WAAuBiC,GAAQ;AAAA,EACnC,WAAW,SAAS;AAClB,WAAO90D,GAAO,MAAM,UAAU,KAAK,aAAak1D,EAAoB,CAAC;AAAA,EACvE;AAAA,EACA,YAAYpa,GAAS;AACnB,UAAM+X,GAAe,QAAQ/X,CAAO,GACpC,KAAK,aAAa;AAAA,EACpB;AACF;AACA,MAAMiZ,KAA4B;AAAA,EAChC,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,eAAe;AACjB;AACA,MAAMD,GAAW;AAAA,EACf,YAAYG,GAAYD,GAAQ9D,GAAS;AACvC,SAAK,aAAa+D,GAClB,KAAK,SAASD,GACd,KAAK,UAAU9D;AAAA,EACjB;AACF;AACA,MAAMwE,GAAY;AAAA,EAChB,YAAYT,GAAYD,GAAQ/oD,GAAU1gB,GAAK;AAC7C,SAAK,aAAa0pE,GAClB,KAAK,SAASD,GACd,KAAK,WAAW/oD,GAChB,KAAK,MAAM1gB;AAAA,EACb;AACF;AACA,MAAMoqE,GAAY;AAAA,EAChB,YAAYX,GAAQhC,GAAU;AAC5B,SAAK,SAASgC,GACd,KAAK,WAAWhC;AAAA,EAClB;AAAA,EACA,WAAWmD,GAAY;AACrB,WAAIA,IAAa,KAAKA,KAAc,KAAK,SAAS,SACzC,KAEF,KAAK,SAASA,CAAU;AAAA,EACjC;AACF;AACA,MAAMC,GAAiB;AAAA,EAAvB;AACE,IAAAltD,EAAA,iBAAU,uBAAO,OAAO,IAAI;AAAA;AAAA,EAC5B,WAAWzuB,GAAK;AACd,WAAOA,KAAO,KAAK;AAAA,EACrB;AAAA,EACA,MAAMA,GAAK47E,GAAU;AACnB,QAAI57E,KAAO,KAAK;AACd,YAAM,IAAImnB,GAAY,gCAAgCnnB,CAAG,EAAE;AAE7D,SAAK,QAAQA,CAAG,IAAI47E;AAAA,EACtB;AAAA,EACA,OAAOh3E,GAAO;AACZ,eAAW5E,KAAO,KAAK;AACrB,WAAK,QAAQA,CAAG,KAAK4E;AAAA,EAEzB;AAAA,EACA,iBAAiB5E,GAAKsvB,GAAQ9F,GAAQ;AACpC,QAAI,EAAExpB,KAAO,KAAK;AAChB,YAAM,IAAImnB,GAAY,4BAA4BnnB,CAAG,EAAE;AAEzD,UAAMwM,IAAOgd,EAAO,MACd0wB,IAAa,KAAK,QAAQl6C,CAAG,GAC7B4V,IAAO;AACb,aAASjP,IAAI,GAAG8lB,IAAK6C,EAAO,QAAQ3oB,IAAI8lB,GAAI,EAAE9lB,GAAG;AAC/C,YAAMk1E,IAAUl1E,IAAIiP,IAAOskC,GACrB4hC,IAAUD,IAAU,GACpBE,IAAUF,IAAU,GACpBG,IAAUH,IAAU,GACpBI,IAAUJ,IAAU;AAC1B,UAAIrvE,EAAKqvE,CAAO,MAAM,MAAQrvE,EAAKsvE,CAAO,MAAM,KAAKtvE,EAAKuvE,CAAO,MAAM,KAAKvvE,EAAKwvE,CAAO,MAAM,KAAKxvE,EAAKyvE,CAAO,MAAM;AACnH,cAAM,IAAI90D,GAAY,wCAAwC;AAEhE,YAAMviB,IAAQ0qB,EAAO3oB,CAAC;AACtB,MAAA6F,EAAKqvE,CAAO,IAAI,IAChBrvE,EAAKsvE,CAAO,IAAIl3E,KAAS,KAAK,KAC9B4H,EAAKuvE,CAAO,IAAIn3E,KAAS,KAAK,KAC9B4H,EAAKwvE,CAAO,IAAIp3E,KAAS,IAAI,KAC7B4H,EAAKyvE,CAAO,IAAIr3E,IAAQ;AAAA,IAC1B;AAAA,EACF;AACF;AACA,MAAMs3E,GAAY;AAAA,EAChB,YAAY3G,GAAK;AACf,SAAK,MAAMA;AAAA,EACb;AAAA,EACA,UAAU;AACR,UAAMA,IAAM,KAAK,KACX/rD,IAAS,IAAI4qD,GAAY;AAAA,MAC7B,WAAWmB,EAAI;AAAA,IACrB,CAAK,GACKrvB,IAAS,KAAK,cAAcqvB,EAAI,MAAM;AAC5C,IAAA/rD,EAAO,SAAS08B,CAAM;AACtB,UAAMuvB,IAAY,KAAK,iBAAiBF,EAAI,KAAK;AAEjD,QADA/rD,EAAO,SAASisD,CAAS,GACrBF,EAAI,aACFA,EAAI,QAAQ,QAAQ,YAAY,GAAG;AACrC,YAAMryD,IAAOqyD,EAAI,QAAQ,UAAU,YAAY;AAC/C,MAAAA,EAAI,QAAQ,aAAa,YAAY;AACrC,iBAAWhmD,KAAWgmD,EAAI,SAAS;AACjC,YAAI9qD,IAASvH,EAAK,MAAM,CAAC;AACzB,QAAIqM,EAAQ,QAAQ,YAAY,MAC9B9E,IAAStC,GAAK,UAAUsC,GAAQ8E,EAAQ,UAAU,YAAY,CAAC,IAEjEA,EAAQ,UAAU,cAAc9E,CAAM;AAAA,MACxC;AAAA,IACF;AAEF,UAAM0xD,IAAO5G,EAAI,QAAQ,UAAU,MAAM;AACzC,KAAI4G,KAAA,gBAAAA,EAAM,UAAS,MACjB5G,EAAI,QAAQ,aAAa,MAAM,GAEjCA,EAAI,QAAQ,UAAU,WAAW,CAAC;AAClC,QAAI6G,IAAW,KAAK,gBAAgB,CAAC7G,EAAI,OAAO,GAAG/rD,EAAO,QAAQ+rD,EAAI,SAAS;AAC/E,IAAA/rD,EAAO,SAAS4yD,EAAS,MAAM;AAC/B,UAAMC,IAAiBD,EAAS,SAAS,CAAC,GACpCzG,IAAc,KAAK,mBAAmBJ,EAAI,QAAQ,OAAO;AAC/D,IAAA/rD,EAAO,SAASmsD,CAAW;AAC3B,UAAMC,IAAkB,KAAK,aAAaL,EAAI,eAAe;AAE7D,QADA/rD,EAAO,SAASosD,CAAe,GAC3BL,EAAI,YAAYA,EAAI,QAAQ,QAAQ,UAAU;AAChD,UAAIA,EAAI,SAAS;AACf,QAAA8G,EAAe,iBAAiB,YAAY,CAAC9G,EAAI,SAAS,MAAM,GAAG/rD,CAAM;AAAA,WACpE;AACL,cAAMgI,IAAW,KAAK,gBAAgB+jD,EAAI,QAAQ;AAClD,QAAA8G,EAAe,iBAAiB,YAAY,CAAC7yD,EAAO,MAAM,GAAGA,CAAM,GACnEA,EAAO,SAASgI,CAAQ;AAAA,MAC1B;AAEF,UAAMilD,IAAU,KAAK,eAAelB,EAAI,SAASA,EAAI,YAAY,OAAOA,EAAI,SAASA,EAAI,SAAS;AAClG,IAAA8G,EAAe,iBAAiB,WAAW,CAAC7yD,EAAO,MAAM,GAAGA,CAAM,GAClEA,EAAO,SAASitD,CAAO;AACvB,UAAM6B,IAAc,KAAK,mBAAmB/C,EAAI,WAAW;AAG3D,QAFA8G,EAAe,iBAAiB,eAAe,CAAC7yD,EAAO,MAAM,GAAGA,CAAM,GACtEA,EAAO,SAAS8uD,CAAW,GACvB/C,EAAI,WAAW;AACjB,MAAA8G,EAAe,iBAAiB,YAAY,CAAC7yD,EAAO,MAAM,GAAGA,CAAM;AACnE,YAAM+uD,IAAW,KAAK,gBAAgBhD,EAAI,QAAQ;AAClD,MAAA/rD,EAAO,SAAS+uD,CAAQ,GACxB6D,IAAW,KAAK,gBAAgB7G,EAAI,SAAS/rD,EAAO,QAAQ,EAAI,GAChE6yD,EAAe,iBAAiB,WAAW,CAAC7yD,EAAO,MAAM,GAAGA,CAAM,GAClEA,EAAO,SAAS4yD,EAAS,MAAM;AAC/B,YAAME,IAAmBF,EAAS;AAClC,WAAK,oBAAoB7G,EAAI,SAAS+G,GAAkB9yD,CAAM;AAAA,IAChE;AACA,gBAAK,oBAAoB,CAAC+rD,EAAI,OAAO,GAAG,CAAC8G,CAAc,GAAG7yD,CAAM,GAChEA,EAAO,SAAS,CAAC,CAAC,CAAC,GACZA,EAAO;AAAA,EAChB;AAAA,EACA,aAAa5kB,GAAO;AAClB,WAAI,OAAO,UAAUA,CAAK,IACjB,KAAK,cAAcA,CAAK,IAE1B,KAAK,YAAYA,CAAK;AAAA,EAC/B;AAAA,EACA,WAAW,oBAAoB;AAC7B,WAAO2hB,GAAO,MAAM,qBAAqB,+CAA+C;AAAA,EAC1F;AAAA,EACA,YAAYmJ,GAAK;AACf,QAAI9qB,IAAQ8qB,EAAI,SAAQ;AACxB,UAAMjH,IAAIyzD,GAAY,kBAAkB,KAAKt3E,CAAK;AAClD,QAAI6jB,GAAG;AACL,YAAM8zD,IAAU,WAAW,SAAS9zD,EAAE,CAAC,IAAI,CAACA,EAAE,CAAC,IAAI,KAAKA,EAAE,CAAC,EAAE,OAAO;AACpE,MAAA7jB,KAAS,KAAK,MAAM8qB,IAAM6sD,CAAO,IAAIA,GAAS,SAAQ;AAAA,IACxD;AACA,QAAIC,IAAU,IACV,GAAG/vD;AACP,SAAK,IAAI,GAAGA,IAAK7nB,EAAM,QAAQ,IAAI6nB,GAAI,EAAE,GAAG;AAC1C,YAAM/B,IAAI9lB,EAAM,CAAC;AACjB,MAAI8lB,MAAM,MACR8xD,KAAW53E,EAAM,EAAE,CAAC,MAAM,MAAM,MAAM,MAC7B8lB,MAAM,MACf8xD,KAAW,MACF9xD,MAAM,MACf8xD,KAAW,MAEXA,KAAW9xD;AAAA,IAEf;AACA,IAAA8xD,KAAWA,EAAQ,SAAS,IAAI,MAAM;AACtC,UAAMtlC,IAAM,CAAC,EAAE;AACf,SAAK,IAAI,GAAGzqB,IAAK+vD,EAAQ,QAAQ,IAAI/vD,GAAI,KAAK;AAC5C,MAAAyqB,EAAI,KAAK,SAASslC,EAAQ,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAEpD,WAAOtlC;AAAA,EACT;AAAA,EACA,cAActyC,GAAO;AACnB,QAAIgiB;AACJ,WAAIhiB,KAAS,QAAQA,KAAS,MAC5BgiB,IAAO,CAAChiB,IAAQ,GAAG,IACVA,KAAS,OAAOA,KAAS,QAClCA,KAAS,KACTgiB,IAAO,EAAEhiB,KAAS,KAAK,KAAKA,IAAQ,GAAI,KAC/BA,KAAS,SAASA,KAAS,QACpCA,IAAQ,CAACA,IAAQ,KACjBgiB,IAAO,EAAEhiB,KAAS,KAAK,KAAKA,IAAQ,GAAI,KAC/BA,KAAS,UAAUA,KAAS,QACrCgiB,IAAO,CAAC,IAAMhiB,KAAS,IAAI,KAAMA,IAAQ,GAAI,IAE7CgiB,IAAO,CAAC,IAAMhiB,KAAS,KAAK,KAAMA,KAAS,KAAK,KAAMA,KAAS,IAAI,KAAMA,IAAQ,GAAI,GAEhFgiB;AAAA,EACT;AAAA,EACA,cAAcs/B,GAAQ;AACpB,WAAO,CAACA,EAAO,OAAOA,EAAO,OAAO,GAAGA,EAAO,OAAO;AAAA,EACvD;AAAA,EACA,iBAAiBtyC,GAAO;AACtB,UAAM6hE,IAAY,IAAIgC,GAAQ;AAC9B,eAAWtwE,KAAQyM,GAAO;AACxB,YAAMzP,IAAS,KAAK,IAAIgD,EAAK,QAAQ,GAAG;AACxC,UAAIs1E,IAAgB,IAAI,MAAMt4E,CAAM;AACpC,eAASga,IAAI,GAAGA,IAAIha,GAAQga,KAAK;AAC/B,YAAIgT,IAAOhqB,EAAKgX,CAAC;AACjB,SAAIgT,IAAO,OAAOA,IAAO,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,OAAOA,MAAS,SACvLA,IAAO,MAETsrD,EAAct+D,CAAC,IAAIgT;AAAA,MACrB;AACA,MAAAsrD,IAAgBA,EAAc,KAAK,EAAE,GACjCA,MAAkB,OACpBA,IAAgB,kBAElBhH,EAAU,IAAIhuD,GAAcg1D,CAAa,CAAC;AAAA,IAC5C;AACA,WAAO,KAAK,aAAahH,CAAS;AAAA,EACpC;AAAA,EACA,gBAAgBiH,GAAOv4E,GAAQw4E,GAAe;AAC5C,UAAML,IAAmB,CAAA;AACzB,QAAI5F,IAAe,IAAIe,GAAQ;AAC/B,eAAWb,KAAY8F,GAAO;AAC5B,MAAIC,MACF/F,EAAS,aAAa,gBAAgB,GACtCA,EAAS,aAAa,iBAAiB,GACvCA,EAAS,aAAa,aAAa,GACnCA,EAAS,aAAa,UAAU,GAChCA,EAAS,aAAa,SAAS;AAEjC,YAAMgG,IAAkB,IAAIjB,GAAgB,GACtCkB,IAAe,KAAK,YAAYjG,GAAUgG,CAAe;AAC/D,MAAAN,EAAiB,KAAKM,CAAe,GACrClG,EAAa,IAAImG,CAAY,GAC7BD,EAAgB,OAAOz4E,CAAM;AAAA,IAC/B;AACA,WAAAuyE,IAAe,KAAK,aAAaA,GAAc4F,CAAgB,GACxD;AAAA,MACL,UAAUA;AAAA,MACV,QAAQ5F;AAAA,IACd;AAAA,EACE;AAAA,EACA,oBAAoBgG,GAAOI,GAAUtzD,GAAQ;AAC3C,aAAS7iB,IAAI,GAAG8lB,IAAKiwD,EAAM,QAAQ/1E,IAAI8lB,GAAI,EAAE9lB,GAAG;AAC9C,YAAMiwE,IAAW8F,EAAM/1E,CAAC,GAClB8xE,IAAc7B,EAAS;AAC7B,UAAI,CAAC6B,KAAe,CAAC7B,EAAS,QAAQ,SAAS;AAC7C,cAAM,IAAIzvD,GAAY,qCAAqC;AAE7D,YAAM41D,IAAqB,IAAIpB,GAAgB,GACzCqB,IAAkB,KAAK,YAAYvE,GAAasE,CAAkB;AACxE,UAAIE,IAAezzD,EAAO;AAO1B,UANAuzD,EAAmB,OAAOE,CAAY,GACjCD,EAAgB,WACnBC,IAAe,IAEjBH,EAASn2E,CAAC,EAAE,iBAAiB,WAAW,CAACq2E,EAAgB,QAAQC,CAAY,GAAGzzD,CAAM,GACtFA,EAAO,SAASwzD,CAAe,GAC3BvE,EAAY,cAAcA,EAAY,QAAQ,OAAO,GAAG;AAC1D,cAAMyE,IAAQ,KAAK,aAAazE,EAAY,UAAU;AACtD,QAAAsE,EAAmB,iBAAiB,SAAS,CAACC,EAAgB,MAAM,GAAGxzD,CAAM,GAC7EA,EAAO,SAAS0zD,CAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAAA,EACA,YAAY7tD,GAAM8tD,GAAe;AAC/B,UAAMjmC,IAAM,CAAA;AACZ,eAAWl3C,KAAOqvB,EAAK,OAAO;AAC5B,UAAI,EAAErvB,KAAOqvB,EAAK;AAChB;AAEF,UAAIC,IAASD,EAAK,OAAOrvB,CAAG,GACxBo9E,IAAQ/tD,EAAK,MAAMrvB,CAAG;AAO1B,UANK,MAAM,QAAQo9E,CAAK,MACtBA,IAAQ,CAACA,CAAK,IAEX,MAAM,QAAQ9tD,CAAM,MACvBA,IAAS,CAACA,CAAM,IAEdA,EAAO,WAAW,GAGtB;AAAA,iBAASnR,IAAI,GAAGmqB,IAAK80C,EAAM,QAAQj/D,IAAImqB,GAAI,EAAEnqB,GAAG;AAC9C,gBAAMiS,IAAOgtD,EAAMj/D,CAAC,GACdvZ,IAAQ0qB,EAAOnR,CAAC;AACtB,kBAAQiS,GAAI;AAAA,YACV,KAAK;AAAA,YACL,KAAK;AACH,cAAA8mB,EAAI,KAAK,GAAG,KAAK,aAAatyC,CAAK,CAAC;AACpC;AAAA,YACF,KAAK;AACH,oBAAMuC,IAAOkoB,EAAK,aAAarvB,CAAG;AAClC,cAAKm9E,EAAc,WAAWh2E,CAAI,KAChCg2E,EAAc,MAAMh2E,GAAM+vC,EAAI,MAAM,GAEtCA,EAAI,KAAK,IAAM,GAAG,GAAG,GAAG,CAAC;AACzB;AAAA,YACF,KAAK;AAAA,YACL,KAAK;AACH,cAAAA,EAAI,KAAK,GAAG,KAAK,aAAatyC,CAAK,CAAC;AACpC,uBAAS85B,IAAI,GAAGyb,IAAK7qB,EAAO,QAAQoP,IAAIyb,GAAI,EAAEzb;AAC5C,gBAAAwY,EAAI,KAAK,GAAG,KAAK,aAAa5nB,EAAOoP,CAAC,CAAC,CAAC;AAE1C;AAAA,YACF;AACE,oBAAM,IAAIvX,GAAY,wBAAwBiJ,CAAI,EAAE;AAAA,UAChE;AAAA,QACM;AACA,QAAA8mB,EAAI,KAAK,GAAG7nB,EAAK,QAAQrvB,CAAG,CAAC;AAAA;AAAA,IAC/B;AACA,WAAOk3C;AAAA,EACT;AAAA,EACA,mBAAmBmqB,GAAS;AAC1B,UAAMsU,IAAc,IAAI8B,GAAQ;AAChC,eAAW7qE,KAAUy0D;AACnB,MAAAsU,EAAY,IAAIluD,GAAc7a,CAAM,CAAC;AAEvC,WAAO,KAAK,aAAa+oE,CAAW;AAAA,EACtC;AAAA,EACA,mBAAmB2C,GAAa;AAC9B,UAAM+E,IAAmB,IAAI5F,GAAQ;AACrC,aAAS9wE,IAAI,GAAGA,IAAI2xE,EAAY,OAAO3xE,KAAK;AAC1C,YAAM22E,IAAQhF,EAAY,IAAI3xE,CAAC;AAC/B,UAAI22E,EAAM,WAAW,GAAG;AACtB,QAAAD,EAAiB,IAAI,IAAI,WAAW,CAAC,KAAM,EAAI,CAAC,CAAC;AACjD;AAAA,MACF;AACA,MAAAA,EAAiB,IAAIC,CAAK;AAAA,IAC5B;AACA,WAAO,KAAK,aAAaD,CAAgB;AAAA,EAC3C;AAAA,EACA,eAAe5G,GAAS8G,GAAWlc,GAASmc,GAAW;AACrD,QAAItmC;AACJ,UAAMumC,IAAsBF,IAAY;AACxC,QAAIC,GAAW;AACb,YAAME,IAAQD,IAAsB;AACpC,MAAAvmC,IAAM,IAAI,WAAW,CAAC,GAAG,GAAG,GAAGwmC,KAAS,IAAI,KAAMA,IAAQ,GAAI,CAAC;AAAA,IACjE,OAAO;AACL,YAAMv5E,IAAS,IAAIs5E,IAAsB;AACzC,MAAAvmC,IAAM,IAAI,WAAW/yC,CAAM;AAC3B,UAAIw5E,IAAe;AACnB,YAAMC,IAAcnH,EAAQ,QAAQ;AACpC,UAAIoH,IAAS;AACb,eAASl3E,IAAI,GAAGA,IAAIuwC,EAAI,QAAQvwC,KAAK,GAAG;AACtC,YAAIg0E,IAAM;AACV,YAAIgD,IAAeC,GAAa;AAC9B,gBAAMz2E,IAAOsvE,EAAQ,QAAQkH,GAAc;AAC3C,UAAAhD,IAAMtZ,EAAQ,OAAOl6D,CAAI,GACrBwzE,MAAQ,OACVA,IAAM,GACDkD,MACHA,IAAS,IACTl4D,EAAK,iBAAiBxe,CAAI,iBAAiB;AAAA,QAGjD;AACA,QAAA+vC,EAAIvwC,CAAC,IAAIg0E,KAAO,IAAI,KACpBzjC,EAAIvwC,IAAI,CAAC,IAAIg0E,IAAM;AAAA,MACrB;AAAA,IACF;AACA,WAAOzjC;AAAA,EACT;AAAA,EACA,gBAAgB1lB,GAAU;AACxB,WAAOA,EAAS;AAAA,EAClB;AAAA,EACA,gBAAgB+mD,GAAU;AACxB,UAAMgC,IAAShC,EAAS;AACxB,QAAIrhC,GAAKvwC;AACT,YAAQ4zE,GAAM;AAAA,MACZ,KAAK;AACH,QAAArjC,IAAM,IAAI,WAAW,IAAIqhC,EAAS,SAAS,MAAM,GACjDrhC,EAAI,CAAC,IAAIqjC,GACTrjC,EAAI,IAAIqhC,EAAS,UAAU,CAAC;AAC5B;AAAA,MACF,KAAK;AACH,cAAM3nD,IAAQ;AACd,YAAIktD,IAASvF,EAAS,SAAS,CAAC;AAChC,cAAM7xC,IAAS,CAAC6zC,GAAQ,GAAG,GAAG3pD,KAAS,IAAI,KAAMA,IAAQ,KAAMktD,CAAM;AACrE,aAAKn3E,IAAI,GAAGA,IAAI4xE,EAAS,SAAS,QAAQ5xE,KAAK;AAC7C,gBAAMo3E,IAAYxF,EAAS,SAAS5xE,CAAC;AACrC,UAAIo3E,MAAcD,MAChBp3C,EAAO,KAAK//B,KAAK,IAAI,KAAMA,IAAI,KAAMo3E,CAAS,GAC9CD,IAASC;AAAA,QAEb;AACA,cAAMC,KAAat3C,EAAO,SAAS,KAAK;AACxC,QAAAA,EAAO,CAAC,IAAIs3C,KAAa,IAAI,KAC7Bt3C,EAAO,CAAC,IAAIs3C,IAAY,KACxBt3C,EAAO,KAAK//B,KAAK,IAAI,KAAMA,IAAI,GAAI,GACnCuwC,IAAM,IAAI,WAAWxQ,CAAM;AAC3B;AAAA,IACR;AACI,WAAOwQ;AAAA,EACT;AAAA,EACA,aAAahzC,GAAO44E,IAAW,IAAI;AApjxBrC,QAAAjsD;AAqjxBI,UAAMotD,IAAU/5E,EAAM,SAChB6b,IAAQk+D,EAAQ;AACtB,QAAIl+D,MAAU;AACZ,aAAO,IAAI,WAAW,CAAC;AAEzB,QAAIm+D,IAAa,GACfv3E;AACF,SAAKA,IAAI,GAAGA,IAAIoZ,GAAO,EAAEpZ;AACvB,MAAAu3E,KAAcD,EAAQt3E,CAAC,EAAE;AAE3B,QAAI+wE;AACJ,IAAIwG,IAAa,MACfxG,IAAa,IACJwG,IAAa,QACtBxG,IAAa,IACJwG,IAAa,WACtBxG,IAAa,IAEbA,IAAa;AAEf,UAAMlrE,IAAO,IAAI,WAAW,IAAIkrE,KAAc33D,IAAQ,KAAKm+D,CAAU;AACrE,QAAIt1D,IAAM;AACV,IAAApc,EAAKoc,GAAK,IAAI7I,KAAS,IAAI,KAC3BvT,EAAKoc,GAAK,IAAI7I,IAAQ,KACtBvT,EAAKoc,GAAK,IAAI8uD;AACd,QAAIyC,IAAiB;AACrB,SAAKxzE,IAAI,GAAGA,IAAIoZ,IAAQ,GAAGpZ;AACzB,MAAI+wE,MAAe,IACjBlrE,EAAKoc,GAAK,IAAIuxD,IAAiB,MACtBzC,MAAe,KACxBlrE,EAAKoc,GAAK,IAAIuxD,KAAkB,IAAI,KACpC3tE,EAAKoc,GAAK,IAAIuxD,IAAiB,OACtBzC,MAAe,KACxBlrE,EAAKoc,GAAK,IAAIuxD,KAAkB,KAAK,KACrC3tE,EAAKoc,GAAK,IAAIuxD,KAAkB,IAAI,KACpC3tE,EAAKoc,GAAK,IAAIuxD,IAAiB,QAE/B3tE,EAAKoc,GAAK,IAAIuxD,MAAmB,KAAK,KACtC3tE,EAAKoc,GAAK,IAAIuxD,KAAkB,KAAK,KACrC3tE,EAAKoc,GAAK,IAAIuxD,KAAkB,IAAI,KACpC3tE,EAAKoc,GAAK,IAAIuxD,IAAiB,MAE7B8D,EAAQt3E,CAAC,MACXwzE,KAAkB8D,EAAQt3E,CAAC,EAAE;AAGjC,SAAKA,IAAI,GAAGA,IAAIoZ,GAAOpZ;AACrB,OAAAkqB,IAAAisD,EAASn2E,CAAC,MAAV,QAAAkqB,EAAa,OAAOjI,IACpBpc,EAAK,IAAIyxE,EAAQt3E,CAAC,GAAGiiB,CAAG,GACxBA,KAAOq1D,EAAQt3E,CAAC,EAAE;AAEpB,WAAO6F;AAAA,EACT;AACF;AAKA,MAAM2xE,KAAgBhsD,GAAsB,SAAU,GAAG;AACvD,IAAE,aAAa,IAAI,eACnB,EAAE,YAAY,aACd,EAAE,UAAU,WACZ,EAAE,SAAS,UACX,EAAE,YAAY,IAAI,cAClB,EAAE,gBAAgB,IAAI,kBACtB,EAAE,cAAc,IAAI,gBACpB,EAAE,eAAe,gBACjB,EAAE,cAAc,IAAI,gBACpB,EAAE,mBAAmB,IAAI,qBACzB,EAAE,iBAAiB,IAAI,mBACvB,EAAE,kBAAkB,IAAI,oBACxB,EAAE,uBAAuB,IAAI,yBAC7B,EAAE,qBAAqB,IAAI,uBAC3B,EAAE,cAAc,aAChB,EAAE,kBAAkB,IAAI,kBACxB,EAAE,wBAAwB,IAAI,yBAC9B,EAAE,oBAAoB,IAAI,qBAC1B,EAAE,aAAa,aACf,EAAE,iBAAiB,IAAI,kBACvB,EAAE,uBAAuB,IAAI,yBAC7B,EAAE,mBAAmB,IAAI,qBACzB,EAAE,aAAa,IAAI,aACnB,EAAE,kBAAkB,IAAI,kBACxB,EAAE,wBAAwB,IAAI,yBAC9B,EAAE,oBAAoB,IAAI,qBAC1B,EAAE,QAAQ,aACV,EAAE,YAAY,IAAI,kBAClB,EAAE,kBAAkB,IAAI,yBACxB,EAAE,cAAc,IAAI,qBACpB,EAAE,UAAU,aACZ,EAAE,oBAAoB,IAAI,yBAC1B,EAAE,cAAc,IAAI,kBACpB,EAAE,gBAAgB,IAAI,qBACtB,EAAE,+BAA+B,IAAI,yBACrC,EAAE,mBAAmB,IAAI,kBACzB,EAAE,uBAAuB,IAAI,qBAC7B,EAAE,iBAAiB,aACnB,EAAE,qBAAqB,IAAI,kBAC3B,EAAE,2BAA2B,IAAI,yBACjC,EAAE,uBAAuB,IAAI,qBAC7B,EAAE,oBAAoB,IAAI,uBAC1B,EAAE,gBAAgB,IAAI,mBACtB,EAAE,aAAa,WACf,EAAE,iBAAiB,IAAI,gBACvB,EAAE,uBAAuB,IAAI,uBAC7B,EAAE,mBAAmB,IAAI,mBACzB,EAAE,2BAA2B,IAAI,uBACjC,EAAE,qBAAqB,IAAI,gBAC3B,EAAE,uBAAuB,IAAI,mBAC7B,EAAE,iBAAiB,WACnB,EAAE,sBAAsB,IAAI,yBAC5B,EAAE,kBAAkB,IAAI,qBACxB,EAAE,qBAAqB,IAAI,kBAC3B,EAAE,aAAa,IAAI,UACnB,EAAE,mBAAmB,IAAI,UACzB,EAAE,eAAe,IAAI,UACrB,EAAE,gBAAgB,eAClB,EAAE,oBAAoB,IAAI,cAC1B,EAAE,0BAA0B,IAAI,oBAChC,EAAE,sBAAsB,IAAI,gBAC5B,EAAE,kBAAkB,eACpB,EAAE,sBAAsB,IAAI,cAC5B,EAAE,4BAA4B,IAAI,oBAClC,EAAE,8BAA8B,IAAI,oBACpC,EAAE,wBAAwB,IAAI,cAC9B,EAAE,wBAAwB,IAAI,gBAC9B,EAAE,0BAA0B,IAAI,gBAChC,EAAE,oBAAoB,eACtB,EAAE,wBAAwB,IAAI,cAC9B,EAAE,8BAA8B,IAAI,oBACpC,EAAE,0BAA0B,IAAI;AAClC,CAAC,GACKisD,KAAuBjsD,GAAsB,SAAU,GAAG;AAC9D,IAAE,UAAU,kBACZ,EAAE,cAAc,IAAI,sBACpB,EAAE,qBAAqB,IAAI,4BAC3B,EAAE,iBAAiB,IAAI,wBACvB,EAAE,YAAY,8BACd,EAAE,gBAAgB,IAAI,2BACtB,EAAE,uBAAuB,IAAI,iCAC7B,EAAE,mBAAmB,IAAI,6BACzB,EAAE,aAAa,IAAI,kBACnB,EAAE,YAAY,IAAI,sBAClB,EAAE,kBAAkB,IAAI,4BACxB,EAAE,cAAc,IAAI,wBACpB,EAAE,SAAS,mBACX,EAAE,eAAe,qBACjB,EAAE,wBAAwB,IAAI,8BAC9B,EAAE,qBAAqB,IAAI,2BAC3B,EAAE,uBAAuB,IAAI,6BAC7B,EAAE,2BAA2B,IAAI;AACnC,CAAC,GACKksD,KAAmBlsD,GAAsB,SAAU,GAAG;AAC1D,IAAE,UAAU,aACZ,EAAE,cAAc,IAAI,kBACpB,EAAE,oBAAoB,IAAI,yBAC1B,EAAE,gBAAgB,IAAI,qBACtB,EAAE,gBAAgB,aAClB,EAAE,oBAAoB,IAAI,kBAC1B,EAAE,0BAA0B,IAAI,yBAChC,EAAE,sBAAsB,IAAI,qBAC5B,EAAE,cAAc,iBAChB,EAAE,kBAAkB,IAAI,sBACxB,EAAE,wBAAwB,IAAI,4BAC9B,EAAE,oBAAoB,IAAI,wBAC1B,EAAE,aAAa,aACf,EAAE,iBAAiB,IAAI,kBACvB,EAAE,uBAAuB,IAAI,yBAC7B,EAAE,mBAAmB,IAAI,qBACzB,EAAE,SAAS,aACX,EAAE,gBAAgB,IAAI,kBACtB,EAAE,sBAAsB,IAAI,yBAC5B,EAAE,gBAAgB,IAAI,aACtB,EAAE,sBAAsB,IAAI,qBAC5B,EAAE,kBAAkB,IAAI,aACxB,EAAE,wBAAwB,IAAI,qBAC9B,EAAE,gBAAgB,WAClB,EAAE,oBAAoB,IAAI,gBAC1B,EAAE,0BAA0B,IAAI,uBAChC,EAAE,sBAAsB,IAAI,mBAC5B,EAAE,iBAAiB,IAAI,kBACvB,EAAE,WAAW,IAAI,aACjB,EAAE,gBAAgB,IAAI,kBACtB,EAAE,sBAAsB,IAAI,wBAC5B,EAAE,kBAAkB,IAAI,oBACxB,EAAE,WAAW,IAAI,aACjB,EAAE,gBAAgB,IAAI,kBACtB,EAAE,sBAAsB,IAAI,wBAC5B,EAAE,kBAAkB,IAAI,oBACxB,EAAE,YAAY,IAAI,cAClB,EAAE,iBAAiB,IAAI,mBACvB,EAAE,uBAAuB,IAAI,yBAC7B,EAAE,mBAAmB,IAAI,qBACzB,EAAE,YAAY,IAAI,cAClB,EAAE,iBAAiB,IAAI,mBACvB,EAAE,uBAAuB,IAAI,yBAC7B,EAAE,mBAAmB,IAAI,qBACzB,EAAE,gBAAgB,gBAClB,EAAE,gBAAgB;AACpB,CAAC,GACKmsD,KAAgBnsD,GAAsB,SAAU,GAAG;AACvD,IAAE,cAAc,IAAI,IACpB,EAAE,YAAY,IAAI,IAClB,EAAE,WAAW,IACb,EAAE,QAAQ,IACV,EAAE,aAAa,IACf,EAAE,WAAW,IACb,EAAE,qBAAqB,IAAI,IAC3B,EAAE,UAAU,IACZ,EAAE,OAAO,IACT,EAAE,OAAO,IACT,EAAE,QAAQ,IACV,EAAE,SAAS,IACX,EAAE,cAAc,IAChB,EAAE,OAAO,IACT,EAAE,QAAQ,IACV,EAAE,kBAAkB,IAAI,IACxB,EAAE,WAAW,IACb,EAAE,oBAAoB,IAAI,IAC1B,EAAE,iBAAiB,IAAI,IACvB,EAAE,eAAe,IAAI,IACrB,EAAE,SAAS,IACX,EAAE,cAAc,IAAI,IACpB,EAAE,cAAc,IAAI,IACpB,EAAE,UAAU,IACZ,EAAE,gBAAgB,IAAI,IACtB,EAAE,gBAAgB,IAAI,IACtB,EAAE,UAAU,IACZ,EAAE,UAAU,IACZ,EAAE,WAAW,IACb,EAAE,UAAU,IACZ,EAAE,UAAU,IACZ,EAAE,SAAS,IACX,EAAE,SAAS,IACX,EAAE,UAAU,IACZ,EAAE,mBAAmB,IAAI,IACzB,EAAE,oBAAoB,IAAI,IAC1B,EAAE,YAAY,IACd,EAAE,YAAY,IAAI,IAClB,EAAE,aAAa,IACf,EAAE,aAAa,IAAI,IACnB,EAAE,YAAY,IACd,EAAE,YAAY,IACd,EAAE,SAAS,IACX,EAAE,UAAU,IACZ,EAAE,iBAAiB,IAAI,IACvB,EAAE,gBAAgB,IAAI,IACtB,EAAE,aAAa,IACf,EAAE,cAAc,IAAI,IACpB,EAAE,SAAS,IACX,EAAE,UAAU,IACZ,EAAE,aAAa,IACf,EAAE,WAAW,IACb,EAAE,YAAY,IACd,EAAE,YAAY,IACd,EAAE,UAAU,IAAI,IAChB,EAAE,UAAU,IACZ,EAAE,YAAY,IACd,EAAE,YAAY,IACd,EAAE,eAAe,IAAI,IACrB,EAAE,WAAW,IACb,EAAE,UAAU,IACZ,EAAE,UAAU,IACZ,EAAE,aAAa,IACf,EAAE,iBAAiB,IAAI,IACvB,EAAE,kBAAkB,IAAI,IACxB,EAAE,gBAAgB,IAAI,IACtB,EAAE,UAAU,IACZ,EAAE,mBAAmB,IAAI,IACzB,EAAE,UAAU,IACZ,EAAE,WAAW,IACb,EAAE,iBAAiB,IAAI,IACvB,EAAE,YAAY,IACd,EAAE,cAAc,IAAI,IACpB,EAAE,cAAc,IAAI,IACpB,EAAE,UAAU,IACZ,EAAE,aAAa,IAAI,IACnB,EAAE,SAAS,IACX,EAAE,SAAS,IACX,EAAE,UAAU,IACZ,EAAE,UAAU,IACZ,EAAE,kBAAkB,IACpB,EAAE,kBAAkB,IAAI,IACxB,EAAE,iBAAiB,IAAI,IACvB,EAAE,gBAAgB,IAClB,EAAE,SAAS,IACX,EAAE,eAAe,IAAI,IACrB,EAAE,SAAS,IACX,EAAE,UAAU,IACZ,EAAE,SAAS,IACX,EAAE,SAAS,IACX,EAAE,SAAS,IACX,EAAE,WAAW,IAAI,IACjB,EAAE,WAAW,IAAI,IACjB,EAAE,UAAU,IAAI,IAChB,EAAE,YAAY,IAAI,IAClB,EAAE,UAAU,IAAI,IAChB,EAAE,cAAc,IAAI,IACpB,EAAE,uBAAuB,IAAI,IAC7B,EAAE,gBAAgB,IAClB,EAAE,WAAW,IACb,EAAE,WAAW,IACb,EAAE,UAAU,IACZ,EAAE,oBAAoB,IAAI,IAC1B,EAAE,WAAW,IACb,EAAE,cAAc,IAAI,IACpB,EAAE,mBAAmB,IAAI,IACzB,EAAE,UAAU,IACZ,EAAE,UAAU,IACZ,EAAE,WAAW,IACb,EAAE,QAAQ,IACV,EAAE,aAAa,IAAI,IACnB,EAAE,QAAQ,IACV,EAAE,QAAQ,IACV,EAAE,UAAU,IACZ,EAAE,UAAU,IACZ,EAAE,WAAW,IACb,EAAE,OAAO,IACT,EAAE,gBAAgB,IAAI,IACtB,EAAE,aAAa,IAAI,IACnB,EAAE,UAAU,IACZ,EAAE,QAAQ,IACV,EAAE,SAAS,IACX,EAAE,UAAa,IACf,EAAE,iBAAiB,IAAI,IACvB,EAAE,SAAS,IACX,EAAE,WAAW,IAAI,IACjB,EAAE,gBAAgB,IAAI,IACtB,EAAE,YAAY,IAAI,IAClB,EAAE,aAAa,IACf,EAAE,SAAS,IACX,EAAE,QAAQ,IACV,EAAE,YAAY,IAAI,IAClB,EAAE,UAAU,IACZ,EAAE,OAAO;AACX,CAAC,GACKosD,KAAkBpsD,GAAsB,SAAU,GAAG;AACzD,IAAE,WAAW,IACb,EAAE,SAAS,IACX,EAAE,eAAe,IACjB,EAAE,YAAY,IACd,EAAE,gBAAgB,IAAI,IACtB,EAAE,mBAAmB,IAAI;AAC3B,CAAC,GACKqsD,KAA8BrsD,GAAsB,SAAU,GAAG;AACrE,IAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,MACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,GAAG,IAAI,OACT,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,KACV,EAAE,IAAI,IAAI,OACV,EAAE,IAAI,IAAI,MACV,EAAE,IAAI,IAAI;AACZ,CAAC,GACKssD,KAAuCtsD,GAAsB,SAAU,GAAG;AAC9E,IAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI;AACX,CAAC,GACKusD,KAAoCvsD,GAAsB,SAAU,GAAG;AAC3E,IAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,IACP,EAAE,CAAC,IAAI,KACP,EAAE,CAAC,IAAI,KACP,EAAE,CAAC,IAAI,KACP,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,EAAE,IAAI,IACR,EAAE,EAAE,IAAI,KACR,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,IACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,GAAG,IAAI,KACT,EAAE,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AAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,OAAO,KACTA,EAAE,MAAM,KACRA,EAAE,OAAO,KACTA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,OAAO,KACTA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,OAAO,KACTA,EAAE,MAAM,KACRA,EAAE,OAAO,KACTA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,MAAM,KACRA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,OAAO,KACTA,EAAE,O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SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,GAAG,GAAG,QAAQ,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC3tJC,KAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAA2B,CAAC,QAAQ,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACzwJC,KAA2B;AAAA,EAC/B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAAuB,CAAC,QAAQ,GAAG,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,OAAO,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,OAAO,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC1rJC,KAAuB;AAAA,EAC3B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAAwB,CAAC,QAAQ,GAAG,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACpvJC,KAAwB;AAAA,EAC5B,YAAY;AAAA,EACZ,SAAS;AACX,GAGMC,KAAuB,CAAC,SAAS,GAAG,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,QAAQ,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAChjLC,KAAuB;AAAA,EAC3B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAA6B,CAAC,SAAS,GAAG,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,QAAQ,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACzjLC,KAA6B;AAAA,EACjC,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAAyB,CAAC,SAAS,GAAG,GAAG,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,QAAQ,QAAQ,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,QAAQ,GAAG,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACv6KC,KAAyB;AAAA,EAC7B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAA0B,CAAC,SAAS,GAAG,GAAG,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,QAAQ,QAAQ,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,QAAQ,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC52KC,KAA0B;AAAA,EAC9B,YAAY;AAAA,EACZ,SAAS;AACX,GAGMC,KAA2B,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAM,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAC13GC,KAA4B,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAC/gHC,KAAiC,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAC93GC,KAAkC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GACrhHC,KAA6B,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GACz3GC,KAA8B,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GACjhHC,KAA8B,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAM,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAC53GC,KAA+B,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAGlhHC,KAAuB,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,OAAO,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,GAAG,GAAG,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,OAAO,QAAQ,OAAO,QAAQ,OAAO,GAAG,SAAS,SAAS,SAAS,OAAO,QAAQ,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,OAAO,OAAO,OAAO,SAAS,SAAS,SAAS,GAAG,OAAO,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC36IC,KAAuB;AAAA,EAC3B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAA6B,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,GAAG,GAAG,SAAS,OAAO,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,GAAG,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,OAAO,OAAO,OAAO,QAAQ,QAAQ,SAAS,GAAG,MAAM,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACt9IC,KAA6B;AAAA,EACjC,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAAyB,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,MAAM,OAAO,OAAO,OAAO,MAAM,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,GAAG,GAAG,OAAO,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,OAAO,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,GAAG,GAAG,SAAS,OAAO,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,GAAG,SAAS,SAAS,SAAS,OAAO,QAAQ,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,QAAQ,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,OAAO,OAAO,OAAO,SAAS,SAAS,SAAS,GAAG,OAAO,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACj5IC,KAAyB;AAAA,EAC7B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAA0B,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,MAAM,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,OAAO,SAAS,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,QAAQ,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,MAAM,SAAS,GAAG,GAAG,OAAO,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,OAAO,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,GAAG,GAAG,SAAS,OAAO,GAAG,GAAG,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,OAAO,QAAQ,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,GAAG,SAAS,SAAS,SAAS,OAAO,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,OAAO,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,OAAO,QAAQ,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,OAAO,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,OAAO,SAAS,GAAG,GAAG,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACp6IC,KAA0B;AAAA,EAC9B,YAAY;AAAA,EACZ,SAAS;AACX,GAGMC,KAAqB,CAAC,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,OAAO,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,OAAO,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC7rJC,KAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAA2B,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,OAAO,GAAG,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC7tJC,KAA2B;AAAA,EAC/B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAAuB,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,MAAM,SAAS,KAAK,QAAQ,QAAQ,SAAS,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,KAAK,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,QAAQ,KAAK,QAAQ,SAAS,QAAQ,QAAQ,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,GAAG,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,GAAG,GAAG,OAAO,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAC/uJC,KAAuB;AAAA,EAC3B,YAAY;AAAA,EACZ,SAAS;AACX,GACMC,KAAwB,CAAC,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,KAAK,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAA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AM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAC74CC,KAAc,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AACrkD,SAASC,GAAM/sG,GAAG;AAChB,UAAQA,I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AO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,SAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,SAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,SAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,SAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,SAAU,GAAG,IAAIA,GAAO,YAAY,SAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,SAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,WAAY,SAAU,GAAG,IAAIA,GAAO,WAAY,SAAU,GAAG,IAAIA,GAAO,WAAY,UAAU,GAAG,IAAIA,GAAO,YAAY,SAAU,GAAG,IAAIA,GAAO,YAAY,UAAU,GAAG,IAAIA,GAAO,Y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","x_google_ignoreList":[0]}