{"version":3,"file":"pdf.image_decoders.mjs","mappings":"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E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAC7E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAA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","sources":["webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/./src/shared/util.js","webpack://pdf.js/./src/core/primitives.js","webpack://pdf.js/./src/core/base_stream.js","webpack://pdf.js/./src/core/core_utils.js","webpack://pdf.js/./external/jbig2/jbig2.js","webpack://pdf.js/./src/core/jbig2_ccittFax.js","webpack://pdf.js/./src/shared/math_clamp.js","webpack://pdf.js/./src/core/colorspace.js","webpack://pdf.js/./external/qcms/qcms_utils.js","webpack://pdf.js/./external/qcms/qcms.js","webpack://pdf.js/./src/core/icc_colorspace.js","webpack://pdf.js/./src/core/colorspace_utils.js","webpack://pdf.js/./src/shared/image_utils.js","webpack://pdf.js/./src/core/jpg.js","webpack://pdf.js/./external/openjpeg/openjpeg.js","webpack://pdf.js/./src/core/stream.js","webpack://pdf.js/./src/core/jpx.js","webpack://pdf.js/./src/pdf.image_decoders.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 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/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];\nconst F32_BBOX_INIT = new Float32Array(BBOX_INIT);\n\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n *  - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n *    `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n *  - SAVE is used, on the worker-thread, when saving modified annotations.\n *  - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n *    annotations are rendered onto the canvas (i.e. by being included in the\n *    operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n *    and their `annotationMode`-option.\n *  - IS_EDITING is used when editing is active in the viewer.\n *  - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n *    `OperatorList`-constructor (on the worker-thread).\n */\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};\n\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\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};\n\nconst AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\n  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};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\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};\n\nconst MeshFigureType = {\n  TRIANGLES: 1,\n  LATTICE: 2,\n  PATCH: 3,\n};\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};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\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};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\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};\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};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\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};\n\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  // PLEASE NOTE: We purposely keep any removed operators commented out, since\n  //              re-numbering the list would risk breaking third-party users.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  // beginAnnotations: 78,\n  // endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  // paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n  setStrokeTransparent: 92,\n  setFillTransparent: 93,\n  rawFillPath: 94,\n};\n\n// In order to have a switch statement that is fast (i.e. which use a jump\n// table), we need to have the OPS in a contiguous range.\nconst DrawOPS = {\n  moveTo: 0,\n  lineTo: 1,\n  curveTo: 2,\n  quadraticCurveTo: 3,\n  closePath: 4,\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    // eslint-disable-next-line no-console\n    console.info(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    // eslint-disable-next-line no-console\n    console.warn(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\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}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n  if (options && typeof url === \"string\") {\n    // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n    if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n      const dots = url.match(/\\./g);\n      // Avoid accidentally matching a *relative* URL pointing to a file named\n      // e.g. \"www.pdf\" or similar.\n      if (dots?.length >= 2) {\n        url = `http://${url}`;\n      }\n    }\n\n    // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n    // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n    if (options.tryConvertEncoding) {\n      try {\n        url = stringToUTF8String(url);\n      } catch {}\n    }\n  }\n\n  const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n  return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;\n}\n\n/**\n * Remove, or replace, the hash property of the URL.\n *\n * @param {URL|string} url - The absolute, or relative, URL.\n * @param {string} hash - The hash property (use an empty string to remove it).\n * @param {boolean} [allowRel] - Allow relative URLs.\n * @returns {string} The resulting URL string.\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  // Support well-formed relative URLs, necessary for `web/app.js` in GENERIC\n  // builds, by optionally falling back to string parsing.\n  if (allowRel && createValidAbsoluteUrl(url, \"http://example.com\")) {\n    return url.split(\"#\", 1)[0] + `${hash ? `#${hash}` : \"\"}`;\n  }\n  return \"\";\n}\n\n// Extract the final component from a path string.\nfunction stripPath(str) {\n  return str.substring(str.lastIndexOf(\"/\") + 1);\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      prop in obj,\n      `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n    );\n  }\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: !nonSerializable,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message, name) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      this.constructor === BaseException\n    ) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n\n  return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\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}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\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}\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}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(\n      this,\n      \"isOffscreenCanvasSupported\",\n      typeof OffscreenCanvas !== \"undefined\"\n    );\n  }\n\n  static get isImageDecoderSupported() {\n    return shadow(\n      this,\n      \"isImageDecoderSupported\",\n      typeof ImageDecoder !== \"undefined\"\n    );\n  }\n\n  static get isFloat16ArraySupported() {\n    return shadow(\n      this,\n      \"isFloat16ArraySupported\",\n      typeof Float16Array !== \"undefined\"\n    );\n  }\n\n  static get isSanitizerSupported() {\n    return shadow(\n      this,\n      \"isSanitizerSupported\",\n      typeof Sanitizer !== \"undefined\"\n    );\n  }\n\n  static get platform() {\n    const { platform, userAgent } = navigator;\n\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:\n        (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n        userAgent.includes(\"Firefox\"),\n    });\n  }\n\n  static get isCSSRoundSupported() {\n    return shadow(\n      this,\n      \"isCSSRoundSupported\",\n      globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n    );\n  }\n\n  static get isAlphaColorInputSupported() {\n    return shadow(\n      this,\n      \"isAlphaColorInputSupported\",\n      (() => {\n        if (typeof document === \"undefined\") {\n          return false;\n        }\n        const input = document.createElement(\"input\");\n        input.type = \"color\";\n        input.setAttribute(\"alpha\", \"\");\n        input.value = \"#ff000080\";\n        // If alpha is supported the color picker retains the alpha channel, so\n        // the value won't be a plain opaque color (7-char #rrggbb).\n        return input.value !== \"#ff0000\";\n      })()\n    );\n  }\n}\n\nclass Util {\n  static get hexNums() {\n    return shadow(\n      this,\n      \"hexNums\",\n      Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\"))\n    );\n  }\n\n  static makeHexColor(r, g, b) {\n    return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;\n  }\n\n  static domMatrixToTransform(dm) {\n    return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];\n  }\n\n  // Apply a scaling matrix to some min/max values.\n  // If a scaling factor is negative then min and max must be\n  // swapped.\n  static scaleMinMax(transform, minMax) {\n    let temp;\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[2];\n        minMax[2] = temp;\n      }\n      minMax[0] *= transform[0];\n      minMax[2] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[1];\n        minMax[1] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[1] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[1];\n      minMax[1] = temp;\n      temp = minMax[2];\n      minMax[2] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[1];\n        minMax[1] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[1] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[2];\n        minMax[2] = temp;\n      }\n      minMax[0] *= transform[2];\n      minMax[2] *= transform[2];\n    }\n    minMax[0] += transform[4];\n    minMax[1] += transform[5];\n    minMax[2] += transform[4];\n    minMax[3] += transform[5];\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // Multiplies m (an array-based transform) by md (a DOMMatrix transform).\n  static multiplyByDOMMatrix(m, md) {\n    return [\n      m[0] * md.a + m[2] * md.b,\n      m[1] * md.a + m[3] * md.b,\n      m[0] * md.c + m[2] * md.d,\n      m[1] * md.c + m[3] * md.d,\n      m[0] * md.e + m[2] * md.f + m[4],\n      m[1] * md.e + m[3] * md.f + m[5],\n    ];\n  }\n\n  // For 2d affine transforms\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\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\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\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\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\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\n    if (m1 !== 0 || m2 !== 0) {\n      // Non-scaling matrix: shouldn't be frequent.\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\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\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\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    // Multiply matrix m with its transpose.\n    const a = m0 ** 2 + m1 ** 2;\n    const b = m0 * m2 + m1 * m3;\n    const c = m2 ** 2 + m3 ** 2;\n\n    // Solve the second degree polynomial to get roots.\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\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  static normalizeRect(rect) {\n    const r = rect.slice(0); // clone rect\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\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'null'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(\n      Math.min(rect1[0], rect1[2]),\n      Math.min(rect2[0], rect2[2])\n    );\n    const xHigh = Math.min(\n      Math.max(rect1[0], rect1[2]),\n      Math.max(rect2[0], rect2[2])\n    );\n    if (xLow > xHigh) {\n      return null;\n    }\n    const yLow = Math.max(\n      Math.min(rect1[1], rect1[3]),\n      Math.min(rect2[1], rect2[3])\n    );\n    const yHigh = Math.min(\n      Math.max(rect1[1], rect1[3]),\n      Math.max(rect2[1], rect2[3])\n    );\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\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\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\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\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(\n          x0,\n          x1,\n          x2,\n          x3,\n          y0,\n          y1,\n          y2,\n          y3,\n          -c / b,\n          minMax\n        );\n      }\n      return;\n    }\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(\n      x0,\n      x1,\n      x2,\n      x3,\n      y0,\n      y1,\n      y2,\n      y3,\n      (-b + sqrtDelta) / a2,\n      minMax\n    );\n    this.#getExtremumOnCurve(\n      x0,\n      x1,\n      x2,\n      x3,\n      y0,\n      y1,\n      y2,\n      y3,\n      (-b - sqrtDelta) / a2,\n      minMax\n    );\n  }\n\n  // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\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\n    this.#getExtremum(\n      x0,\n      x1,\n      x2,\n      x3,\n      y0,\n      y1,\n      y2,\n      y3,\n      3 * (-x0 + 3 * (x1 - x2) + x3),\n      6 * (x0 - 2 * x1 + x2),\n      3 * (x1 - x0),\n      minMax\n    );\n    this.#getExtremum(\n      x0,\n      x1,\n      x2,\n      x3,\n      y0,\n      y1,\n      y2,\n      y3,\n      3 * (-y0 + 3 * (y1 - y2) + y3),\n      6 * (y0 - 2 * y1 + y2),\n      3 * (y1 - y0),\n      minMax\n    );\n  }\n}\n\nconst PDFStringTranslateTable = [\n  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,\n  0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n  0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n  0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n  0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str, keepEscapeSequence = false) {\n  // See section 7.9.2.2 Text String Type.\n  // The string can contain some language codes bracketed with 0x1b,\n  // so we must remove them.\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\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\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  // ISO Latin 1\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      // eslint-disable-next-line no-empty\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\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\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}\n\nfunction getModificationDate(date = new Date()) {\n  if (!(date instanceof Date)) {\n    date = new Date(date);\n  }\n  const buffer = [\n    date.getUTCFullYear().toString(),\n    (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n    date.getUTCDate().toString().padStart(2, \"0\"),\n    date.getUTCHours().toString().padStart(2, \"0\"),\n    date.getUTCMinutes().toString().padStart(2, \"0\"),\n    date.getUTCSeconds().toString().padStart(2, \"0\"),\n  ];\n\n  return buffer.join(\"\");\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n  if (!NormalizeRegex) {\n    // In order to generate the following regex:\n    //  - create a PDF containing all the chars in the range 0000-FFFF with\n    //    a NFKC which is different of the char.\n    //  - copy and paste all those chars and get the ones where NFKC is\n    //    required.\n    // It appears that most the chars here contain some ligatures.\n    NormalizeRegex =\n      /([\\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) =>\n    p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2)\n  );\n}\n\nfunction getUuid() {\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    typeof crypto.randomUUID === \"function\"\n  ) {\n    return crypto.randomUUID();\n  }\n  const buf = new Uint8Array(32);\n  crypto.getRandomValues(buf);\n  return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\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}\n\n// Helpers for simple `Map.prototype.getOrInsertComputed()` invocations,\n// to avoid duplicate function creation.\nconst makeArr = () => [];\nconst makeMap = () => new Map();\nconst makeObj = () => Object.create(null);\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/Blob/bytes#browser_compatibility\nif (\n  typeof PDFJSDev !== \"undefined\" &&\n  !PDFJSDev.test(\"SKIP_BABEL\") &&\n  typeof Blob.prototype.bytes !== \"function\"\n) {\n  Blob.prototype.bytes = async function () {\n    return new Uint8Array(await this.arrayBuffer());\n  };\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/Response/bytes#browser_compatibility\nif (\n  typeof PDFJSDev !== \"undefined\" &&\n  !PDFJSDev.test(\"SKIP_BABEL\") &&\n  typeof Response.prototype.bytes !== \"function\"\n) {\n  Response.prototype.bytes = async function () {\n    return new Uint8Array(await this.arrayBuffer());\n  };\n}\n\n// TODO: Remove this once Safari 17.4 is the lowest supported version.\nif (\n  typeof PDFJSDev !== \"undefined\" &&\n  !PDFJSDev.test(\"SKIP_BABEL\") &&\n  typeof AbortSignal.any !== \"function\"\n) {\n  AbortSignal.any = function (iterable) {\n    const ac = new AbortController();\n    const { signal } = ac;\n\n    // Return immediately if any of the signals are already aborted.\n    for (const s of iterable) {\n      if (s.aborted) {\n        ac.abort(s.reason);\n        return signal;\n      }\n    }\n    // Register \"abort\" listeners for all signals.\n    for (const s of iterable) {\n      s.addEventListener(\n        \"abort\",\n        () => {\n          ac.abort(s.reason);\n        },\n        { signal } // Automatically remove the listener.\n      );\n    }\n\n    return signal;\n  };\n}\n\nexport {\n  _isValidExplicitDest,\n  AbortException,\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMode,\n  AnnotationPrefix,\n  AnnotationReplyType,\n  AnnotationType,\n  assert,\n  BaseException,\n  BASELINE_FACTOR,\n  BBOX_INIT,\n  bytesToString,\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  DrawOPS,\n  F32_BBOX_INIT,\n  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  getModificationDate,\n  getUuid,\n  getVerbosityLevel,\n  ImageKind,\n  info,\n  InvalidPDFException,\n  isArrayEqual,\n  isNodeJS,\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  makeArr,\n  makeMap,\n  makeObj,\n  MeshFigureType,\n  normalizeUnicode,\n  objectSize,\n  OPS,\n  PageActionEventType,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  RenderingIntentFlag,\n  ResponseException,\n  setVerbosityLevel,\n  shadow,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  stripPath,\n  TextRenderingMode,\n  UnknownErrorException,\n  unreachable,\n  updateUrlHash,\n  utf8StringToString,\n  Util,\n  VerbosityLevel,\n  warn,\n};\n","/* Copyright 2012 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\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n  CmdCache = Object.create(null);\n  NameCache = Object.create(null);\n  RefCache = Object.create(null);\n}\n\nclass Name {\n  constructor(name) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      typeof name !== \"string\"\n    ) {\n      unreachable('Name: The \"name\" must be a string.');\n    }\n    this.name = name;\n  }\n\n  static get(name) {\n    // eslint-disable-next-line no-restricted-syntax\n    return (NameCache[name] ||= new Name(name));\n  }\n}\n\nclass Cmd {\n  constructor(cmd) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      typeof cmd !== \"string\"\n    ) {\n      unreachable('Cmd: The \"cmd\" must be a string.');\n    }\n    this.cmd = cmd;\n  }\n\n  static get(cmd) {\n    // eslint-disable-next-line no-restricted-syntax\n    return (CmdCache[cmd] ||= new Cmd(cmd));\n  }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n  __nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n\n  #map = new Map();\n\n  objId = null;\n\n  suppressEncryption = false;\n\n  xref;\n\n  constructor(xref = null) {\n    this.xref = xref;\n  }\n\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n\n  get size() {\n    return this.#map.size;\n  }\n\n  #getValue(isAsync, key1, key2, key3) {\n    let value = this.#map.get(key1);\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.#getValue: Expected keys to be ordered by length.\");\n      }\n      value = this.#map.get(key2);\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.#getValue: Expected keys to be ordered by length.\");\n        }\n        value = this.#map.get(key3);\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return isAsync\n        ? this.xref.fetchAsync(value, this.suppressEncryption)\n        : this.xref.fetch(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Automatically dereferences Ref objects.\n  get(key1, key2, key3) {\n    return this.#getValue(/* isAsync = */ false, key1, key2, key3);\n  }\n\n  // Same as get(), but returns a promise and uses fetchIfRefAsync().\n  async getAsync(key1, key2, key3) {\n    return this.#getValue(/* isAsync = */ true, key1, key2, key3);\n  }\n\n  // Same as get(), but dereferences all elements if the result is an Array.\n  getArray(key1, key2, key3) {\n    let value = this.#getValue(/* isAsync = */ false, key1, key2, key3);\n\n    if (Array.isArray(value)) {\n      value = value.slice(); // Ensure that we don't modify the Dict data.\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\n  // No dereferencing.\n  getRaw(key) {\n    return this.#map.get(key);\n  }\n\n  getKeys() {\n    return this.#map.keys();\n  }\n\n  // No dereferencing.\n  getRawValues() {\n    return this.#map.values();\n  }\n\n  getRawEntries() {\n    return this.#map.entries();\n  }\n\n  set(key, value) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      if (typeof key !== \"string\") {\n        unreachable('Dict.set: The \"key\" must be a string.');\n      } else if (value === undefined) {\n        unreachable('Dict.set: The \"value\" cannot be undefined.');\n      }\n    }\n    this.#map.set(key, value);\n  }\n\n  setIfNotExists(key, value) {\n    if (!this.has(key)) {\n      this.set(key, value);\n    }\n  }\n\n  setIfNumber(key, value) {\n    if (typeof value === \"number\") {\n      this.set(key, value);\n    }\n  }\n\n  setIfArray(key, value) {\n    if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n      this.set(key, value);\n    }\n  }\n\n  setIfDefined(key, value) {\n    if (value !== undefined && value !== null) {\n      this.set(key, value);\n    }\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\n  setIfDict(key, value) {\n    if (value instanceof Dict) {\n      this.set(key, value);\n    }\n  }\n\n  has(key) {\n    return this.#map.has(key);\n  }\n\n  *[Symbol.iterator]() {\n    for (const [key, value] of this.#map) {\n      yield [\n        key,\n        value instanceof Ref && this.xref\n          ? this.xref.fetch(value, this.suppressEncryption)\n          : value,\n      ];\n    }\n  }\n\n  static get empty() {\n    const emptyDict = new Dict(null);\n\n    emptyDict.set = (key, value) => {\n      unreachable(\"Should not call `set` on the empty dictionary.\");\n    };\n    return shadow(this, \"empty\", emptyDict);\n  }\n\n  static merge({ xref, dictArray, mergeSubDicts = false }) {\n    const mergedDict = new Dict(xref),\n      properties = new Map();\n\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      for (const [key, value] of dict.getRawEntries()) {\n        let property = properties.get(key);\n        if (property === undefined) {\n          property = [];\n          properties.set(key, property);\n        } else if (!mergeSubDicts || !(value instanceof Dict)) {\n          // Ignore additional entries, if either:\n          //  - This is a \"shallow\" merge, where only the first element matters.\n          //  - The value is *not* a `Dict`, since other types cannot be merged.\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\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\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\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\n  delete(key) {\n    this.#map.delete(key);\n  }\n}\n\nclass Ref {\n  constructor(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  toString() {\n    // This function is hot, so we make the string as compact as possible.\n    // |this.gen| is almost always zero, so we treat that case specially.\n    if (this.gen === 0) {\n      return `${this.num}R`;\n    }\n    return `${this.num}R${this.gen}`;\n  }\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\n    // eslint-disable-next-line no-restricted-syntax\n    return (RefCache[str] = new Ref(\n      parseInt(m[1], 10),\n      !m[2] ? 0 : parseInt(m[2], 10)\n    ));\n  }\n\n  static get(num, gen) {\n    const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n    // eslint-disable-next-line no-restricted-syntax\n    return (RefCache[key] ||= new Ref(num, gen));\n  }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n  constructor(parent = null) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      parent &&\n      !(parent instanceof RefSet)\n    ) {\n      unreachable('RefSet: Invalid \"parent\" value.');\n    }\n    this._set = new Set(parent?._set);\n  }\n\n  has(ref) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      !(ref instanceof Ref) &&\n      typeof ref !== \"string\"\n    ) {\n      unreachable('RefSet: Invalid \"ref\" value in has.');\n    }\n    return this._set.has(ref.toString());\n  }\n\n  put(ref) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      !(ref instanceof Ref) &&\n      typeof ref !== \"string\"\n    ) {\n      unreachable('RefSet: Invalid \"ref\" value in put.');\n    }\n    this._set.add(ref.toString());\n  }\n\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n\n  clear() {\n    this._set.clear();\n  }\n}\n\nclass RefSetCache {\n  _map = new Map();\n\n  get size() {\n    return this._map.size;\n  }\n\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n\n  clear() {\n    this._map.clear();\n  }\n\n  *values() {\n    yield* this._map.values();\n  }\n\n  *items() {\n    for (const [ref, value] of this._map) {\n      yield [Ref.fromString(ref), value];\n    }\n  }\n\n  *keys() {\n    for (const ref of this._map.keys()) {\n      yield Ref.fromString(ref);\n    }\n  }\n}\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return (\n    v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n  );\n}\n\nfunction isRefsEqual(v1, v2) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      v1 instanceof Ref && v2 instanceof Ref,\n      \"isRefsEqual: Both parameters should be `Ref`s.\"\n    );\n  }\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n  CIRCULAR_REF,\n  clearPrimitiveCaches,\n  Cmd,\n  Dict,\n  EOF,\n  isCmd,\n  isDict,\n  isName,\n  isRefsEqual,\n  Name,\n  Ref,\n  RefSet,\n  RefSetCache,\n};\n","/* Copyright 2021 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\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n  constructor() {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      this.constructor === BaseStream\n    ) {\n      unreachable(\"Cannot initialize BaseStream.\");\n    }\n  }\n\n  // eslint-disable-next-line getter-return\n  get length() {\n    unreachable(\"Abstract getter `length` accessed\");\n  }\n\n  // eslint-disable-next-line getter-return\n  get isEmpty() {\n    unreachable(\"Abstract getter `isEmpty` accessed\");\n  }\n\n  get isDataLoaded() {\n    return shadow(this, \"isDataLoaded\", true);\n  }\n\n  getByte() {\n    unreachable(\"Abstract method `getByte` called\");\n  }\n\n  getBytes(length) {\n    unreachable(\"Abstract method `getBytes` called\");\n  }\n\n  /**\n   * NOTE: This method can only be used to get image-data that is guaranteed\n   *       to be fully loaded, since otherwise intermittent errors may occur;\n   *       note the `ObjectLoader` class.\n   */\n  async getImageData(length, decoderOptions) {\n    return this.getBytes(length, decoderOptions);\n  }\n\n  async asyncGetBytes() {\n    unreachable(\"Abstract method `asyncGetBytes` called\");\n  }\n\n  get isAsync() {\n    return false;\n  }\n\n  get isAsyncDecoder() {\n    return false;\n  }\n\n  get isImageStream() {\n    return false;\n  }\n\n  get canAsyncDecodeImageFromBuffer() {\n    return false;\n  }\n\n  async getTransferableImage() {\n    return null;\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n    return peekedByte;\n  }\n\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\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\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\n  getByteRange(begin, end) {\n    unreachable(\"Abstract method `getByteRange` called\");\n  }\n\n  getString(length) {\n    return bytesToString(this.getBytes(length));\n  }\n\n  skip(n) {\n    this.pos += n || 1;\n  }\n\n  reset() {\n    unreachable(\"Abstract method `reset` called\");\n  }\n\n  moveStart() {\n    unreachable(\"Abstract method `moveStart` called\");\n  }\n\n  makeSubStream(start, length, dict = null) {\n    unreachable(\"Abstract method `makeSubStream` called\");\n  }\n\n  /**\n   * @returns {Array | null}\n   */\n  getBaseStreams() {\n    return null;\n  }\n\n  getOriginalStream() {\n    return this.stream?.getOriginalStream() || this;\n  }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 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\nimport {\n  AnnotationEditorPrefix,\n  assert,\n  BaseException,\n  makeArr,\n  objectSize,\n  stringToPDFString,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\nconst MAX_INT_32 = 2 ** 31 - 1;\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n\nconst RESOURCES_KEYS_OPERATOR_LIST = [\n  \"ColorSpace\",\n  \"ExtGState\",\n  \"Font\",\n  \"Pattern\",\n  \"Properties\",\n  \"Shading\",\n  \"XObject\",\n];\n\nconst RESOURCES_KEYS_TEXT_CONTENT = [\n  \"ExtGState\",\n  \"Font\",\n  \"Properties\",\n  \"XObject\",\n];\n\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}\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}\n\nclass ParserEOFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n}\n\nclass XRefEntryException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n}\n\nclass XRefParseException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array<ArrayBuffer>} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    for (const item of arr) {\n      assert(\n        item instanceof ArrayBuffer,\n        \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n      );\n    }\n  }\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}\n\nasync function fetchBinaryData(url) {\n  const response = await fetch(url);\n  if (!response.ok) {\n    throw new Error(\n      `Failed to fetch file \"${url}\" with \"${response.statusText}\".`\n    );\n  }\n  return response.bytes();\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n *   array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n *   the key is found. If set to `false`, we always walk up the entire parent\n *   chain, for example to be able to find `\\Resources` placed on multiple\n *   levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n  dict,\n  key,\n  getArray = false,\n  stopWhenFound = true,\n}) {\n  let values;\n  const visited = new RefSet();\n\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}\n\n/**\n * Get the parent dictionary to update when a property is set.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {Ref} ref - The reference to the dictionary.\n * @param {XRef} xref - The `XRef` instance.\n */\nfunction getParentToUpdate(dict, ref, xref) {\n  const visited = new RefSet();\n  const firstDict = dict;\n  const result = { dict: null, 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}\n\nfunction deepCompare(a, b) {\n  if (a === b) {\n    return true;\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\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\n  return false;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n  \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n  \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n  \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n *   to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n  assert(\n    Number.isInteger(number) && number > 0,\n    \"The number should be a positive integer.\"\n  );\n\n  const roman =\n    \"M\".repeat((number / 1000) | 0) +\n    ROMAN_NUMBER_MAP[((number % 1000) / 100) | 0] +\n    ROMAN_NUMBER_MAP[10 + (((number % 100) / 10) | 0)] +\n    ROMAN_NUMBER_MAP[20 + (number % 10)];\n  return lowerCase ? roman.toLowerCase() : roman;\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * Checks if something is an Array containing only boolean values,\n * and (optionally) checks its length.\n * @param {any} arr\n * @param {number | null} len\n * @returns {boolean}\n */\nfunction isBooleanArray(arr, len) {\n  return (\n    Array.isArray(arr) &&\n    (len === null || arr.length === len) &&\n    arr.every(x => typeof x === \"boolean\")\n  );\n}\n\n/**\n * Checks if something is an Array containing only numbers,\n * and (optionally) checks its length.\n * @param {any} arr\n * @param {number | null} len\n * @returns {boolean}\n */\nfunction isNumberArray(arr, len) {\n  if (Array.isArray(arr)) {\n    return (\n      (len === null || arr.length === len) &&\n      arr.every(x => typeof x === \"number\")\n    );\n  }\n\n  // This check allows us to have typed arrays but not the\n  // BigInt64Array/BigUint64Array types (their elements aren't \"number\").\n  return (\n    ArrayBuffer.isView(arr) &&\n    !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) &&\n    (len === null || arr.length === len)\n  );\n}\n\n// Returns the matrix, or the fallback value if it's invalid.\nfunction lookupMatrix(arr, fallback) {\n  return isNumberArray(arr, 6) ? arr : fallback;\n}\n\n// Returns the rectangle, or the fallback value if it's invalid.\nfunction lookupRect(arr, fallback) {\n  return isNumberArray(arr, 4) ? arr : fallback;\n}\n\n// Returns the normalized rectangle, or the fallback value if it's invalid.\nfunction lookupNormalRect(arr, fallback) {\n  return isNumberArray(arr, 4) ? Util.normalizeRect(arr) : fallback;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\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 { name: m[1], pos: parseInt(m[2], 10) };\n    }\n    return { name: component, 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    // Whitespace or delimiters aren't regular chars, so escape them.\n    if (\n      char < 0x21 ||\n      char > 0x7e ||\n      char === 0x23 /* # */ ||\n      char === 0x28 /* ( */ ||\n      char === 0x29 /* ) */ ||\n      char === 0x3c /* < */ ||\n      char === 0x3e /* > */ ||\n      char === 0x5b /* [ */ ||\n      char === 0x5d /* ] */ ||\n      char === 0x7b /* { */ ||\n      char === 0x7d /* } */ ||\n      char === 0x2f /* / */ ||\n      char === 0x25 /* % */\n    ) {\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\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\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}\n\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n\n  let parent = null;\n  if (entry instanceof Ref) {\n    if (parents.has(entry)) {\n      // If we've already found entry then we've a cycle.\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(\n        code,\n        /* keepEscapeSequence = */ true\n      ).replaceAll(\"\\x00\", \"\");\n      if (code) {\n        list.push(code.trim());\n      }\n    }\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n\n  if (parent) {\n    parents.remove(parent);\n  }\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    // additionalActionsDicts contains dicts from ancestors\n    // as they're found in the tree from bottom to top.\n    // So the dicts are visited in reverse order to guarantee\n    // that actions from elder ancestors will be overwritten\n    // by ones from younger ancestors.\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  // Collect the Action if any (we may have one on pushbutton).\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}\n\nconst XMLEntities = {\n  /* < */ 0x3c: \"&lt;\",\n  /* > */ 0x3e: \"&gt;\",\n  /* & */ 0x26: \"&amp;\",\n  /* \" */ 0x22: \"&quot;\",\n  /* ' */ 0x27: \"&apos;\",\n};\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      // char is represented by two u16\n      i++;\n    }\n    yield char;\n  }\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      // ascii\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        // char is represented by two u16\n        i++;\n      }\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n  return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\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    // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\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}\n\nfunction validateCSSFont(cssFontInfo) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\n    \"100\",\n    \"200\",\n    \"300\",\n    \"400\",\n    \"500\",\n    \"600\",\n    \"700\",\n    \"800\",\n    \"900\",\n    \"1000\",\n    \"normal\",\n    \"bold\",\n    \"bolder\",\n    \"lighter\",\n  ]);\n\n  const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n  if (!validateFontName(fontFamily, true)) {\n    return false;\n  }\n\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n    ? weight\n    : DEFAULT_CSS_FONT_WEIGHT;\n\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle =\n    isNaN(angle) || angle < -90 || angle > 90\n      ? DEFAULT_CSS_FONT_OBLIQUE\n      : italicAngle.toString();\n\n  return true;\n}\n\nfunction recoverJsURL(str) {\n  // Attempt to recover valid URLs from `JS` entries with certain\n  // white-listed formats:\n  //  - window.open('http://example.com')\n  //  - app.launchURL('http://example.com', true)\n  //  - xfa.host.gotoURL('http://example.com')\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\n    \"^\\\\s*(\" +\n      URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n      \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n    \"i\"\n  );\n\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\n  return null;\n}\n\nfunction numberToString(value) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      typeof value === \"number\",\n      `numberToString - the value (${value}) should be a number.`\n    );\n  }\n\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n\n  const roundedValue = Math.round(value * 100);\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n\n  return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n  const newAnnotationsByPage = new Map();\n  // The concept of page in a XFA is very different, so\n  // editing is just not implemented.\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(AnnotationEditorPrefix)) {\n      continue;\n    }\n    newAnnotationsByPage\n      .getOrInsertComputed(value.pageIndex, makeArr)\n      .push(value);\n  }\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\n// If the string is null or undefined then it is returned as is.\nfunction stringToAsciiOrUTF16BE(str) {\n  if (str === null || str === undefined) {\n    return str;\n  }\n  return isAscii(str) ? str : stringToUTF16String(str, /* bigEndian = */ true);\n}\n\nfunction isAscii(str) {\n  if (typeof str !== \"string\") {\n    return false;\n  }\n  return !str || /^[\\x00-\\x7F]*$/.test(str);\n}\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}\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(\n      String.fromCharCode((char >> 8) & 0xff),\n      String.fromCharCode(char & 0xff)\n    );\n  }\n  return buf.join(\"\");\n}\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}\n\n/**\n * Get the number of bytes to use to represent the given positive integer.\n * If n is zero, the function returns 0 which means that we don't need to waste\n * a byte to represent it.\n * @param {number} x - a positive integer.\n * @returns {number}\n */\nfunction getSizeInBytes(x) {\n  // n bits are required for numbers up to 2^n - 1.\n  // So for a number x, we need ceil(log2(1 + x)) bits.\n  return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);\n}\n\nexport {\n  arrayBuffersToBytes,\n  codePointIter,\n  collectActions,\n  deepCompare,\n  encodeToXmlString,\n  escapePDFName,\n  escapeString,\n  fetchBinaryData,\n  getInheritableProperty,\n  getLookupTableFactory,\n  getNewAnnotationsMap,\n  getParentToUpdate,\n  getRotationMatrix,\n  getSizeInBytes,\n  IDENTITY_MATRIX,\n  isAscii,\n  isBooleanArray,\n  isNumberArray,\n  isWhiteSpace,\n  lookupMatrix,\n  lookupNormalRect,\n  lookupRect,\n  MAX_INT_32,\n  MissingDataException,\n  numberToString,\n  ParserEOFException,\n  parseXFAPath,\n  PDF_VERSION_REGEXP,\n  recoverJsURL,\n  RESOURCES_KEYS_OPERATOR_LIST,\n  RESOURCES_KEYS_TEXT_CONTENT,\n  stringToAsciiOrUTF16BE,\n  stringToUTF16HexString,\n  stringToUTF16String,\n  toRomanNumerals,\n  validateCSSFont,\n  validateFontName,\n  XRefEntryException,\n  XRefParseException,\n};\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nasync function JBig2(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"j\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"jbig2.wasm\")}return new URL(\"jbig2.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};function _createImageData(size){Module.imageData=new Uint8Array(size)}var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};function _setImageData(array_ptr,pitch8,pitch32,height){if(pitch32===pitch8){Module.imageData=new Uint8ClampedArray(HEAPU8.subarray(array_ptr,array_ptr+pitch32*height));return}const destSize=pitch8*height;const imageData=Module.imageData=new Uint8ClampedArray(destSize);for(let srcStart=array_ptr,destStart=0;destStart<destSize;srcStart+=pitch32,destStart+=pitch8){imageData.set(HEAPU8.subarray(srcStart,srcStart+pitch8),destStart)}}function _setLineData(line_ptr,pitch8,offset){Module.imageData.set(HEAPU8.subarray(line_ptr,line_ptr+pitch8),offset)}var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"writeArrayToMemory\"]=writeArrayToMemory;var _malloc,_free,_jbig2_decode,_ccitt_decode,__emscripten_timeout,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"k\"];_free=Module[\"_free\"]=wasmExports[\"l\"];_jbig2_decode=Module[\"_jbig2_decode\"]=wasmExports[\"m\"];_ccitt_decode=Module[\"_ccitt_decode\"]=wasmExports[\"n\"];__emscripten_timeout=wasmExports[\"o\"];memory=wasmMemory=wasmExports[\"i\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={e:__abort_js,b:__emscripten_runtime_keepalive_clear,c:__setitimer_js,g:_createImageData,d:_emscripten_resize_heap,a:_proc_exit,h:_setImageData,f:_setLineData};function run(){preRun();function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default JBig2;\n","/* Copyright 2026 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\nimport { BaseException, warn } from \"../shared/util.js\";\nimport { fetchBinaryData } from \"./core_utils.js\";\nimport JBig2 from \"../../external/jbig2/jbig2.js\";\n\nclass Jbig2Error extends BaseException {\n  constructor(msg) {\n    super(msg, \"Jbig2Error\");\n  }\n}\n\nclass JBig2CCITTFaxImage {\n  static #buffer = null;\n\n  static #handler = null;\n\n  static #modulePromise = null;\n\n  static #useWasm = true;\n\n  static #useWorkerFetch = true;\n\n  static #wasmUrl = null;\n\n  static setOptions({ handler, useWasm, useWorkerFetch, wasmUrl }) {\n    this.#useWasm = useWasm;\n    this.#useWorkerFetch = useWorkerFetch;\n    this.#wasmUrl = wasmUrl;\n\n    if (!useWorkerFetch) {\n      this.#handler = handler;\n    }\n  }\n\n  static async #getJsModule(fallbackCallback) {\n    const path =\n      typeof PDFJSDev === \"undefined\"\n        ? `../${this.#wasmUrl}jbig2_nowasm_fallback.js`\n        : `${this.#wasmUrl}jbig2_nowasm_fallback.js`;\n\n    let instance = null;\n    try {\n      const mod = await (typeof PDFJSDev === \"undefined\"\n        ? import(path) // eslint-disable-line no-unsanitized/method\n        : __raw_import__(path));\n      instance = mod.default();\n    } catch (e) {\n      warn(`JBig2CCITTFaxImage#getJsModule: ${e}`);\n    }\n    fallbackCallback(instance);\n  }\n\n  static async #instantiateWasm(fallbackCallback, imports, successCallback) {\n    const filename = \"jbig2.wasm\";\n    try {\n      if (!this.#buffer) {\n        if (this.#useWorkerFetch) {\n          this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);\n        } else {\n          if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n            throw new Error(\"Only worker-thread fetching supported.\");\n          }\n          this.#buffer = await this.#handler.sendWithPromise(\n            \"FetchBinaryData\",\n            { kind: \"wasmUrl\", filename }\n          );\n        }\n      }\n      const results = await WebAssembly.instantiate(this.#buffer, imports);\n      return successCallback(results.instance);\n    } catch (reason) {\n      warn(`JBig2CCITTFaxImage#instantiateWasm: ${reason}`);\n\n      this.#getJsModule(fallbackCallback);\n      return null;\n    } finally {\n      this.#handler = null;\n    }\n  }\n\n  static async decode(bytes, width, height, globals, CCITTOptions) {\n    if (!this.#modulePromise) {\n      const { promise, resolve } = Promise.withResolvers();\n      const promises = [promise];\n      if (!this.#useWasm) {\n        this.#getJsModule(resolve);\n      } else {\n        promises.push(\n          JBig2({\n            warn,\n            instantiateWasm: this.#instantiateWasm.bind(this, resolve),\n          })\n        );\n      }\n      this.#modulePromise = Promise.race(promises);\n    }\n    const module = await this.#modulePromise;\n\n    if (!module) {\n      throw new Jbig2Error(\"JBig2 failed to initialize\");\n    }\n    let ptr, globalsPtr;\n\n    try {\n      const size = bytes.length;\n      ptr = module._malloc(size);\n      module.writeArrayToMemory(bytes, ptr);\n\n      if (CCITTOptions) {\n        module._ccitt_decode(\n          ptr,\n          size,\n          width,\n          height,\n          CCITTOptions.K,\n          CCITTOptions.EndOfLine ? 1 : 0,\n          CCITTOptions.EncodedByteAlign ? 1 : 0,\n          CCITTOptions.BlackIs1 ? 1 : 0,\n          CCITTOptions.Columns,\n          CCITTOptions.Rows\n        );\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 { imageData } = module;\n      module.imageData = null;\n\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  static cleanup() {\n    this.#modulePromise = null;\n  }\n}\n\nexport { JBig2CCITTFaxImage, Jbig2Error };\n","/* Copyright 2026 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\n// TODO: Replace all occurrences of this function, and remove the file, once\n//       https://github.com/tc39/proposal-math-clamp/ is generally available.\nfunction MathClamp(v, min, max) {\n  // eslint-disable-next-line prefer-math-clamp/prefer-math-clamp\n  return Math.min(Math.max(v, min), max);\n}\n\nexport { MathClamp };\n","/* Copyright 2012 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\nimport {\n  assert,\n  FeatureTest,\n  FormatError,\n  info,\n  shadow,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MathClamp } from \"../shared/math_clamp.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\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\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}\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\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}\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}\n\nfunction isDefaultDecodeHelper(decode, expectedLen) {\n  if (!Array.isArray(decode)) {\n    return true;\n  }\n  const decodeLen = decode.length;\n\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}\n\nclass ColorSpace {\n  static #rgbBuf = new Uint8ClampedArray(3);\n\n  constructor(name, numComps) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      this.constructor === ColorSpace\n    ) {\n      unreachable(\"Cannot initialize ColorSpace.\");\n    }\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  /**\n   * Converts the color value to the RGB color. The color components are\n   * located in the src array starting from the srcOffset. Returns the array\n   * of the rgb components, each value ranging from [0,255].\n   */\n  getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) {\n    this.getRgbItem(src, srcOffset, output, 0);\n    return output;\n  }\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\n  /**\n   * Converts the color value to the RGB color, similar to the getRgb method.\n   * The result placed into the dest array starting from the destOffset.\n   */\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    unreachable(\"Should not call ColorSpace.getRgbItem\");\n  }\n\n  /**\n   * Converts the specified number of the color values to the RGB colors.\n   * The colors are located in the src array starting from the srcOffset.\n   * The result is placed into the dest array starting from the destOffset.\n   * The src array items shall be in [0,2^bits) range, the dest array items\n   * will be in [0,255] range. alpha01 indicates how many alpha components\n   * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n   * array).\n   */\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n  }\n\n  /**\n   * Determines the number of bytes required to store the result of the\n   * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n   * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n   */\n  getOutputLength(inputLength, alpha01) {\n    unreachable(\"Should not call ColorSpace.getOutputLength\");\n  }\n\n  /**\n   * Returns true if source data will be equal the result/output data.\n   */\n  isPassthrough(bits) {\n    return false;\n  }\n\n  /**\n   * Refer to the static `ColorSpace.isDefaultDecode` method below.\n   */\n  isDefaultDecode(decode, bpc) {\n    return ColorSpace.isDefaultDecode(decode, this.numComps);\n  }\n\n  /**\n   * Fills in the RGB colors in the destination buffer.  alpha01 indicates\n   * how many alpha components there are in the dest array; it will be either\n   * 0 (RGB array) or 1 (RGBA array).\n   */\n  fillRgb(\n    dest,\n    originalWidth,\n    originalHeight,\n    width,\n    height,\n    actualHeight,\n    bpc,\n    comps,\n    alpha01\n  ) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n      );\n    }\n    const count = originalWidth * originalHeight;\n    let rgbBuf = null;\n    const numComponentColors = 1 << bpc;\n    const needsResizing = originalHeight !== height || originalWidth !== width;\n\n    if (this.isPassthrough(bpc)) {\n      rgbBuf = comps;\n    } else if (\n      this.numComps === 1 &&\n      count > numComponentColors &&\n      this.name !== \"DeviceGray\" &&\n      this.name !== \"DeviceRGB\"\n    ) {\n      // Optimization: create a color map when there is just one component and\n      // we are converting more colors than the size of the color map. We\n      // don't build the map if the colorspace is gray or rgb since those\n      // methods are faster than building a map. This mainly offers big speed\n      // ups for indexed and alternate colorspaces.\n      //\n      // TODO it may be worth while to cache the color map. While running\n      // testing I never hit a cache so I will leave that out for now (perhaps\n      // we are reparsing colorspaces too much?).\n      const allColors =\n        bpc <= 8\n          ? new Uint8Array(numComponentColors)\n          : 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(\n        allColors,\n        0,\n        numComponentColors,\n        colorMap,\n        0,\n        bpc,\n        /* alpha01 = */ 0\n      );\n\n      if (!needsResizing) {\n        // Fill in the RGB values directly into |dest|.\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      // Fill in the RGB values directly into |dest|.\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, /* alpha01 = */ 0);\n    }\n\n    if (rgbBuf) {\n      if (needsResizing) {\n        resizeRgbImage(\n          rgbBuf,\n          dest,\n          originalWidth,\n          originalHeight,\n          width,\n          height,\n          alpha01\n        );\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\n  /**\n   * True if the colorspace has components in the default range of [0, 1].\n   * This should be true for all colorspaces except for lab color spaces\n   * which are [0,100], [-128, 127], [-128, 127].\n   */\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", true);\n  }\n\n  /**\n   * Checks if a decode map matches the default decode map for a color space.\n   * This handles the general decode maps where there are two values per\n   * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n   * This does not handle Lab, Indexed, or Pattern decode maps since they are\n   * slightly different.\n   * @param {Array} decode - Decode map (usually from an image).\n   * @param {number} numComps - Number of components the color space has.\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}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces.  A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\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\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const tmpBuf = this.tmpBuf;\n    this.tintFn(src, srcOffset, tmpBuf, 0);\n    this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\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 =\n      (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n    let pos = isPassthrough ? destOffset : 0;\n    const baseBuf = isPassthrough\n      ? dest\n      : new Uint8ClampedArray(baseNumComps * count);\n    const numComps = this.numComps;\n\n    const scaled = new Float32Array(numComps);\n    const tinted = new Float32Array(baseNumComps);\n    let i, j;\n\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\n    if (!isPassthrough) {\n      base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(\n      (inputLength * this.base.numComps) / this.numComps,\n      alpha01\n    );\n  }\n}\n\nclass PatternCS extends ColorSpace {\n  constructor(baseCS) {\n    super(\"Pattern\", null);\n    this.base = baseCS;\n  }\n\n  isDefaultDecode(decode, bpc) {\n    unreachable(\"Should not call PatternCS.isDefaultDecode\");\n  }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n  constructor(base, highVal, lookup) {\n    super(\"Indexed\", 1);\n    this.base = base;\n    this.highVal = highVal;\n\n    const length = base.numComps * (highVal + 1);\n    this.lookup = new Uint8Array(length);\n\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\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const { base, highVal, lookup } = this;\n    const start =\n      MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps;\n    base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const { base, highVal, lookup } = this;\n    const { numComps } = base;\n    const outputDelta = base.getOutputLength(numComps, alpha01);\n\n    for (let i = 0; i < count; ++i) {\n      const lookupPos =\n        MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps;\n      base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n      destOffset += outputDelta;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n  }\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}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceGray\", 1);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const c = src[srcOffset] * 255;\n    dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\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\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGB\", 3);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    dest[destOffset] = src[srcOffset] * 255;\n    dest[destOffset + 1] = src[srcOffset + 1] * 255;\n    dest[destOffset + 2] = src[srcOffset + 2] * 255;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\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\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceRgbaCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGBA\", 4);\n  }\n\n  getOutputLength(inputLength, _alpha01) {\n    return inputLength * 4;\n  }\n\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n\n  fillRgb(\n    dest,\n    originalWidth,\n    originalHeight,\n    width,\n    height,\n    actualHeight,\n    bpc,\n    comps,\n    alpha01\n  ) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbaCS.fillRgb: Unsupported \"dest\" type.'\n      );\n    }\n    if (originalHeight !== height || originalWidth !== width) {\n      resizeRgbaImage(\n        comps,\n        dest,\n        originalWidth,\n        originalHeight,\n        width,\n        height,\n        alpha01\n      );\n    } else {\n      copyRgbaImage(comps, dest, alpha01);\n    }\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceCmykCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceCMYK\", 4);\n  }\n\n  // The coefficients below was found using numerical analysis: the method of\n  // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n  // where color_value is the tabular value from the table of sampled RGB colors\n  // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n  // CMYK color conversion using the estimation below:\n  //   f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\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\n    dest[destOffset] =\n      255 +\n      c *\n        (-4.387332384609988 * c +\n          54.48615194189176 * m +\n          18.82290502165302 * y +\n          212.25662451639585 * k +\n          -285.2331026137004) +\n      m *\n        (1.7149763477362134 * m -\n          5.6096736904047315 * y +\n          -17.873870861415444 * k -\n          5.497006427196366) +\n      y *\n        (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n      k * (-21.86122147463605 * k - 189.48180835922747);\n\n    dest[destOffset + 1] =\n      255 +\n      c *\n        (8.841041422036149 * c +\n          60.118027045597366 * m +\n          6.871425592049007 * y +\n          31.159100130055922 * k +\n          -79.2970844816548) +\n      m *\n        (-15.310361306967817 * m +\n          17.575251261109482 * y +\n          131.35250912493976 * k -\n          190.9453302588951) +\n      y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n      k * (-20.737325471181034 * k - 187.80453709719578);\n\n    dest[destOffset + 2] =\n      255 +\n      c *\n        (0.8842522430003296 * c +\n          8.078677503112928 * m +\n          30.89978309703729 * y -\n          0.23883238689178934 * k +\n          -14.183576799673286) +\n      m *\n        (10.49593273432072 * m +\n          63.02378494754052 * y +\n          50.606957656360734 * k -\n          112.23884253719248) +\n      y *\n        (0.03296041114873217 * y +\n          115.60384449646641 * k +\n          -193.58209356861505) +\n      k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, 1, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\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\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength / 4) * (3 + alpha01)) | 0;\n  }\n}\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nclass CalGrayCS extends ColorSpace {\n  constructor(whitePoint, blackPoint, gamma) {\n    super(\"CalGray\", 1);\n\n    if (!whitePoint) {\n      throw new FormatError(\n        \"WhitePoint missing - required for color space CalGray\"\n      );\n    }\n    // Translate arguments to spec variables.\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\n    // Validate variables as per spec.\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      throw new FormatError(\n        `Invalid WhitePoint components for ${this.name}, no fallback available`\n      );\n    }\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\n    if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n      warn(\n        `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n          `ZB: ${this.ZB}, only default values are supported.`\n      );\n    }\n\n    if (this.G < 1) {\n      info(\n        `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`\n      );\n      this.G = 1;\n    }\n  }\n\n  #toRgb(src, srcOffset, dest, destOffset, scale) {\n    // A represents a gray component of a calibrated gray space.\n    // A <---> AG in the spec\n    const A = src[srcOffset] * scale;\n    const AG = A ** this.G;\n\n    // Computes L as per spec. ( = this.YW * AG )\n    // Except if other than default BlackPoint values are used.\n    const L = this.YW * AG;\n    // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n    // Convert values to rgb range [0, 255].\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\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, dest, destOffset, 1);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 1 / ((1 << bits) - 1);\n\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\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass CalRGBCS extends ColorSpace {\n  // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n  // matrices.\n  // prettier-ignore\n  static #BRADFORD_SCALE_MATRIX = new Float32Array([\n    0.8951, 0.2664, -0.1614,\n    -0.7502, 1.7135, 0.0367,\n    0.0389, -0.0685, 1.0296]);\n\n  // prettier-ignore\n  static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n    0.9869929, -0.1470543, 0.1599627,\n    0.4323053, 0.5183603, 0.0492912,\n    -0.0085287, 0.0400428, 0.9684867]);\n\n  // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n  // prettier-ignore\n  static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n    3.2404542, -1.5371385, -0.4985314,\n    -0.9692660, 1.8760108, 0.0415560,\n    0.0556434, -0.2040259, 1.0572252]);\n\n  static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n  static #tempNormalizeMatrix = new Float32Array(3);\n\n  static #tempConvertMatrix1 = new Float32Array(3);\n\n  static #tempConvertMatrix2 = new Float32Array(3);\n\n  static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n  constructor(whitePoint, blackPoint, gamma, matrix) {\n    super(\"CalRGB\", 3);\n\n    if (!whitePoint) {\n      throw new FormatError(\n        \"WhitePoint missing - required for color space CalRGB\"\n      );\n    }\n    // Translate arguments to spec variables.\n    const [XW, YW, ZW] = (this.whitePoint = whitePoint);\n    const [XB, YB, ZB] = (this.blackPoint = blackPoint || new Float32Array(3));\n\n    [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);\n    [\n      this.MXA,\n      this.MYA,\n      this.MZA,\n      this.MXB,\n      this.MYB,\n      this.MZB,\n      this.MXC,\n      this.MYC,\n      this.MZC,\n    ] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n    // Validate variables as per spec.\n    if (XW < 0 || ZW < 0 || YW !== 1) {\n      throw new FormatError(\n        `Invalid WhitePoint components for ${this.name}, no fallback available`\n      );\n    }\n\n    if (XB < 0 || YB < 0 || ZB < 0) {\n      info(\n        `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n          \"falling back to default.\"\n      );\n      this.blackPoint = new Float32Array(3);\n    }\n\n    if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n      info(\n        `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n          `${this.name}, falling back to default.`\n      );\n      this.GR = this.GG = this.GB = 1;\n    }\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\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\n  #toD65(sourceWhitePoint, LMS, result) {\n    const D65X = 0.95047;\n    const D65Y = 1;\n    const D65Z = 1.08883;\n\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\n  #sRGBTransferFunction(color) {\n    // See http://en.wikipedia.org/wiki/SRGB.\n    if (color <= 0.0031308) {\n      return MathClamp(12.92 * color, 0, 1);\n    }\n    // Optimization:\n    // If color is close enough to 1, skip calling the following transform\n    // since calling Math.pow is expensive. If color is larger than\n    // the threshold, the final result is larger than 254.5 since\n    // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n    // 254.50000003134699\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\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\n  #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    // In case the blackPoint is already the default blackPoint then there is\n    // no need to do compensation.\n    if (\n      sourceBlackPoint[0] === 0 &&\n      sourceBlackPoint[1] === 0 &&\n      sourceBlackPoint[2] === 0\n    ) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    // For the blackPoint calculation details, please see\n    // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n    // AdobeBPC.pdf.\n    // The destination blackPoint is the default blackPoint [0, 0, 0].\n    const zeroDecodeL = this.#decodeL(0);\n\n    const X_DST = zeroDecodeL;\n    const X_SRC = this.#decodeL(sourceBlackPoint[0]);\n\n    const Y_DST = zeroDecodeL;\n    const Y_SRC = this.#decodeL(sourceBlackPoint[1]);\n\n    const Z_DST = zeroDecodeL;\n    const Z_SRC = this.#decodeL(sourceBlackPoint[2]);\n\n    const X_Scale = (1 - X_DST) / (1 - X_SRC);\n    const X_Offset = 1 - X_Scale;\n\n    const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    const Y_Offset = 1 - Y_Scale;\n\n    const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    const Z_Offset = 1 - Z_Scale;\n\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\n  #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    // In case the whitePoint is already flat then there is no need to do\n    // normalization.\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\n    const LMS = result;\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n    const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;\n    this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n    this.#matrixProduct(\n      CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n      LMS_Flat,\n      result\n    );\n  }\n\n  #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    const LMS = result;\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n    const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;\n    this.#toD65(sourceWhitePoint, LMS, LMS_D65);\n\n    this.#matrixProduct(\n      CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n      LMS_D65,\n      result\n    );\n  }\n\n  #toRgb(src, srcOffset, dest, destOffset, scale) {\n    // A, B and C represent a red, green and blue components of a calibrated\n    // rgb space.\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\n    // A <---> AGR in the spec\n    // B <---> BGG in the spec\n    // C <---> CGB in the spec\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\n    // Computes intermediate variables L, M, N as per spec.\n    // To decode X, Y, Z values map L, M, N directly to them.\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\n    // The following calculations are based on this document:\n    // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n    // AdobeBPC.pdf.\n    const XYZ = CalRGBCS.#tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;\n\n    this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);\n\n    const XYZ_Black = CalRGBCS.#tempConvertMatrix1;\n    this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);\n\n    const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;\n    this.#normalizeWhitePointToD65(\n      CalRGBCS.#FLAT_WHITEPOINT_MATRIX,\n      XYZ_Black,\n      XYZ_D65\n    );\n\n    const SRGB = CalRGBCS.#tempConvertMatrix1;\n    this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n    // Convert the values to rgb range [0, 255].\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\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, dest, destOffset, 1);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 1 / ((1 << bits) - 1);\n\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\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n}\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass LabCS extends ColorSpace {\n  constructor(whitePoint, blackPoint, range) {\n    super(\"Lab\", 3);\n\n    if (!whitePoint) {\n      throw new FormatError(\n        \"WhitePoint missing - required for color space Lab\"\n      );\n    }\n    // Translate args to spec variables\n    [this.XW, this.YW, this.ZW] = whitePoint;\n    [this.amin, this.amax, this.bmin, this.bmax] = range || [\n      -100, 100, -100, 100,\n    ];\n\n    // These are here just for completeness - the spec doesn't offer any\n    // formulas that use BlackPoint in Lab\n    [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n\n    // Validate vars as per spec\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      throw new FormatError(\n        \"Invalid WhitePoint components, no fallback available\"\n      );\n    }\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\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\n  // Function g(x) from spec\n  #fn_g(x) {\n    return x >= 6 / 29 ? x ** 3 : (108 / 841) * (x - 4 / 29);\n  }\n\n  #decode(value, high1, low2, high2) {\n    return low2 + (value * (high2 - low2)) / high1;\n  }\n\n  // If decoding is needed maxVal should be 2^bits per component - 1.\n  #toRgb(src, srcOffset, maxVal, dest, destOffset) {\n    // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n    // not the usual [0, 1]. If a command like setFillColor is used the src\n    // values will already be within the correct range. However, if we are\n    // converting an image we have to map the values to the correct range given\n    // above.\n    // Ls,as,bs <---> L*,a*,b* in the spec\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\n    // Adjust limits of 'as' and 'bs'\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\n    // Computes intermediate variables X,Y,Z as per spec\n    const M = (Ls + 16) / 116;\n    const L = M + as / 500;\n    const N = M - bs / 200;\n\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\n    let r, g, b;\n    // Using different conversions for D50 and D65 white points,\n    // per http://www.color.org/srgb.pdf\n    if (this.ZW < 1) {\n      // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\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      // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\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    // Convert the color values to the [0,255] range (clamping is automatic).\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\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'LabCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, false, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\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\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n\n  isDefaultDecode(decode, bpc) {\n    // XXX: Decoding is handled with the lab conversion because of the strange\n    // ranges that are used.\n    return true;\n  }\n\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", false);\n  }\n}\n\nexport {\n  AlternateCS,\n  CalGrayCS,\n  CalRGBCS,\n  ColorSpace,\n  DeviceCmykCS,\n  DeviceGrayCS,\n  DeviceRgbaCS,\n  DeviceRgbCS,\n  IndexedCS,\n  LabCS,\n  PatternCS,\n};\n","/* Copyright 2025 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\nclass QCMS {\n  static #memoryArray = null;\n\n  static _memory = null;\n\n  static _mustAddAlpha = false;\n\n  static _destBuffer = null;\n\n  static _destOffset = 0;\n\n  static _destLength = 0;\n\n  static _cssColor = \"\";\n\n  static _makeHexColor = null;\n\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}\n\nfunction copy_result(ptr, len) {\n  // This function is called from the wasm module (it's an external\n  // \"C\" function). Its goal is to copy the result from the wasm memory\n  // to the destination buffer without any intermediate copies.\n  const { _mustAddAlpha, _destBuffer, _destOffset, _destLength, _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}\n\nfunction copy_rgb(ptr) {\n  const { _destBuffer, _destOffset, _memoryArray } = QCMS;\n  _destBuffer[_destOffset] = _memoryArray[ptr];\n  _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1];\n  _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2];\n}\n\nfunction make_cssRGB(ptr) {\n  const { _memoryArray } = QCMS;\n  QCMS._cssColor = QCMS._makeHexColor(\n    _memoryArray[ptr],\n    _memoryArray[ptr + 1],\n    _memoryArray[ptr + 2]\n  );\n}\n\nexport { copy_result, copy_rgb, make_cssRGB, QCMS };\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nimport { copy_result, copy_rgb, make_cssRGB } from './qcms_utils.js';\n\n\n/**\n * @enum {0 | 1 | 2 | 3 | 4 | 5}\n */\nexport const DataType = Object.freeze({\n    RGB8: 0, \"0\": \"RGB8\",\n    RGBA8: 1, \"1\": \"RGBA8\",\n    BGRA8: 2, \"2\": \"BGRA8\",\n    Gray8: 3, \"3\": \"Gray8\",\n    GrayA8: 4, \"4\": \"GrayA8\",\n    CMYK: 5, \"5\": \"CMYK\",\n});\n\n/**\n * @enum {0 | 1 | 2 | 3}\n */\nexport const Intent = Object.freeze({\n    Perceptual: 0, \"0\": \"Perceptual\",\n    RelativeColorimetric: 1, \"1\": \"RelativeColorimetric\",\n    Saturation: 2, \"2\": \"Saturation\",\n    AbsoluteColorimetric: 3, \"3\": \"AbsoluteColorimetric\",\n});\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {Uint8Array} src\n */\nexport function 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}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src1\n * @param {number} src2\n * @param {number} src3\n * @param {number} src4\n * @param {boolean} css\n */\nexport function qcms_convert_four(transformer, src1, src2, src3, src4, css) {\n    wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src\n * @param {boolean} css\n */\nexport function qcms_convert_one(transformer, src, css) {\n    wasm.qcms_convert_one(transformer, src, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src1\n * @param {number} src2\n * @param {number} src3\n * @param {boolean} css\n */\nexport function qcms_convert_three(transformer, src1, src2, src3, css) {\n    wasm.qcms_convert_three(transformer, src1, src2, src3, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n */\nexport function qcms_drop_transformer(transformer) {\n    wasm.qcms_drop_transformer(transformer);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {Uint8Array} mem\n * @param {DataType} in_type\n * @param {Intent} intent\n * @returns {number}\n */\nexport function 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}\n\nfunction getStringFromWasm0(ptr, len) {\n    ptr = ptr >>> 0;\n    return decodeText(ptr, len);\n}\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}\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}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\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', { ignoreBOM: true, fatal: true });\n        cachedTextDecoder.decode();\n        numBytesDecoded = len;\n    }\n    return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\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}\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\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\n                } else { 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\n        if (instance instanceof WebAssembly.Instance) {\n            return { instance, module };\n        } else {\n            return instance;\n        }\n    }\n\n    function expectedResponseType(type) {\n        switch (type) {\n            case 'basic': case 'cors': case 'default': return true;\n        }\n        return false;\n    }\n}\n\nfunction initSync(module) {\n    if (wasm !== undefined) return wasm;\n\n\n    if (module !== undefined) {\n        if (Object.getPrototypeOf(module) === Object.prototype) {\n            ({module} = module)\n        } else {\n            console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n        }\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}\n\nasync function __wbg_init(module_or_path) {\n    if (wasm !== undefined) return wasm;\n\n\n    if (module_or_path !== undefined) {\n        if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n            ({module_or_path} = module_or_path)\n        } else {\n            console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n        }\n    }\n\n\n    const imports = __wbg_get_imports();\n\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\n    const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n    return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","/* Copyright 2025 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\nimport {\n  DataType,\n  initSync,\n  Intent,\n  qcms_convert_array,\n  qcms_convert_four,\n  qcms_convert_one,\n  qcms_convert_three,\n  qcms_drop_transformer,\n  qcms_transformer_from_memory,\n} from \"../../external/qcms/qcms.js\";\nimport { shadow, Util, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { QCMS } from \"../../external/qcms/qcms_utils.js\";\n\nfunction fetchSync(url) {\n  // Parsing and using color spaces is still synchronous,\n  // so we must load the wasm module synchronously.\n  // TODO: Make the color space stuff asynchronous and use fetch.\n  const xhr = new XMLHttpRequest();\n  xhr.open(\"GET\", url, false);\n  xhr.responseType = \"arraybuffer\";\n  xhr.send(null);\n  return xhr.response;\n}\n\nclass IccColorSpace extends ColorSpace {\n  #transformer;\n\n  #convertPixel;\n\n  static #useWasm = true;\n\n  static #wasmUrl = null;\n\n  static #finalizer = null;\n\n  constructor(iccProfile, name, numComps) {\n    if (!IccColorSpace.isUsable) {\n      throw new Error(\"No ICC color space support\");\n    }\n\n    super(name, numComps);\n\n    let inType;\n    switch (numComps) {\n      case 1:\n        inType = DataType.Gray8;\n        this.#convertPixel = (src, srcOffset, css) =>\n          qcms_convert_one(this.#transformer, src[srcOffset] * 255, css);\n        break;\n      case 3:\n        inType = DataType.RGB8;\n        this.#convertPixel = (src, srcOffset, css) =>\n          qcms_convert_three(\n            this.#transformer,\n            src[srcOffset] * 255,\n            src[srcOffset + 1] * 255,\n            src[srcOffset + 2] * 255,\n            css\n          );\n        break;\n      case 4:\n        inType = DataType.CMYK;\n        this.#convertPixel = (src, srcOffset, css) =>\n          qcms_convert_four(\n            this.#transformer,\n            src[srcOffset] * 255,\n            src[srcOffset + 1] * 255,\n            src[srcOffset + 2] * 255,\n            src[srcOffset + 3] * 255,\n            css\n          );\n        break;\n      default:\n        throw new Error(`Unsupported number of components: ${numComps}`);\n    }\n    this.#transformer = qcms_transformer_from_memory(\n      iccProfile,\n      inType,\n      Intent.Perceptual\n    );\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\n  getRgbHex(src, srcOffset) {\n    this.#convertPixel(src, srcOffset, /* css */ true);\n    return QCMS._cssColor;\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    QCMS._destBuffer = dest;\n    QCMS._destOffset = destOffset;\n    QCMS._destLength = 3;\n    this.#convertPixel(src, srcOffset, /* css */ false);\n    QCMS._destBuffer = null;\n  }\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\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength / this.numComps) * (3 + alpha01)) | 0;\n  }\n\n  static setOptions({ useWasm, useWorkerFetch, wasmUrl }) {\n    if (!useWorkerFetch) {\n      this.#useWasm = false;\n      return;\n    }\n    this.#useWasm = useWasm;\n    this.#wasmUrl = wasmUrl;\n  }\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\n    return shadow(this, \"isUsable\", isUsable);\n  }\n}\n\nclass CmykICCBasedCS extends IccColorSpace {\n  static #iccUrl;\n\n  constructor() {\n    const iccProfile = new Uint8Array(\n      fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`)\n    );\n    super(iccProfile, \"DeviceCMYK\", 4);\n  }\n\n  static setOptions({ iccUrl }) {\n    this.#iccUrl = iccUrl;\n  }\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\n    return shadow(this, \"isUsable\", isUsable);\n  }\n}\n\nexport { CmykICCBasedCS, IccColorSpace };\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\nimport {\n  AlternateCS,\n  CalGrayCS,\n  CalRGBCS,\n  DeviceCmykCS,\n  DeviceGrayCS,\n  DeviceRgbaCS,\n  DeviceRgbCS,\n  IndexedCS,\n  LabCS,\n  PatternCS,\n} from \"./colorspace.js\";\nimport { CmykICCBasedCS, IccColorSpace } from \"./icc_colorspace.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { shadow, unreachable, warn } from \"../shared/util.js\";\nimport { MathClamp } from \"../shared/math_clamp.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nclass ColorSpaceUtils {\n  static parse({\n    cs,\n    xref,\n    resources = null,\n    pdfFunctionFactory,\n    globalColorSpaceCache,\n    localColorSpaceCache,\n    asyncIfNotCached = false,\n  }) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      (!globalColorSpaceCache || !localColorSpaceCache)\n    ) {\n      unreachable(\n        'ColorSpaceUtils.parse - expected \"globalColorSpaceCache\"/\"localColorSpaceCache\" argument.'\n      );\n    }\n    const options = {\n      xref,\n      resources,\n      pdfFunctionFactory,\n      globalColorSpaceCache,\n      localColorSpaceCache,\n    };\n    let csName, csRef, parsedCS;\n\n    // Check if the ColorSpace is cached first, to avoid re-parsing it.\n    if (cs instanceof Ref) {\n      csRef = cs;\n\n      const cachedCS =\n        globalColorSpaceCache.getByRef(csRef) ||\n        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\n      const cachedCS = localColorSpaceCache.getByName(csName);\n      if (cachedCS) {\n        return cachedCS;\n      }\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\n    // Attempt to cache the parsed ColorSpace, by name and/or reference.\n    if (csName || csRef) {\n      localColorSpaceCache.set(csName, csRef, parsedCS);\n\n      if (csRef) {\n        globalColorSpaceCache.set(/* name = */ null, csRef, parsedCS);\n      }\n    }\n    return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS;\n  }\n\n  /**\n   * NOTE: This method should *only* be invoked from `this.#parse`,\n   *       when parsing \"sub\" ColorSpaces.\n   */\n  static #subParse(cs, options) {\n    const { globalColorSpaceCache } = options;\n    let csRef;\n\n    // Check if the ColorSpace is cached first, to avoid re-parsing it.\n    if (cs instanceof Ref) {\n      csRef = cs;\n\n      const cachedCS = globalColorSpaceCache.getByRef(csRef);\n      if (cachedCS) {\n        return cachedCS;\n      }\n    }\n    const parsedCS = this.#parse(cs, options);\n\n    // Only cache the parsed ColorSpace globally, by reference.\n    if (csRef) {\n      globalColorSpaceCache.set(/* name = */ null, csRef, parsedCS);\n    }\n    return parsedCS;\n  }\n\n  static #parse(cs, options) {\n    const { xref, resources, pdfFunctionFactory, globalColorSpaceCache } =\n      options;\n\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(/* baseCS = */ 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          // Fallback to the default gray color space.\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\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\n          const stream = xref.fetchIfRef(cs[1]);\n          const dict = stream.dict;\n          numComps = dict.get(\"N\");\n\n          if (IccColorSpace.isUsable) {\n            try {\n              const iccCS = new IccColorSpace(\n                stream.getBytes(),\n                \"ICCBased\",\n                numComps\n              );\n              if (isRef) {\n                globalColorSpaceCache.set(/* name = */ 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\n          const altRaw = dict.getRaw(\"Alternate\");\n          if (altRaw) {\n            const altCS = this.#subParse(altRaw, options);\n            // Ensure that the number of components are correct,\n            // and also (indirectly) that it is not a PatternCS.\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          // Fallback to the default gray color space.\n          warn(`Unimplemented ColorSpace object: ${mode}`);\n          return this.gray;\n      }\n    }\n    // Fallback to the default gray color space.\n    warn(`Unrecognized ColorSpace object: ${cs}`);\n    return this.gray;\n  }\n\n  static get gray() {\n    return shadow(this, \"gray\", new DeviceGrayCS());\n  }\n\n  static get rgb() {\n    return shadow(this, \"rgb\", new DeviceRgbCS());\n  }\n\n  static get rgba() {\n    return shadow(this, \"rgba\", new DeviceRgbaCS());\n  }\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\nexport { ColorSpaceUtils };\n","/* Copyright 2022 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\nimport { FeatureTest, ImageKind } from \"./util.js\";\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\n  return null;\n}\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\n    ? [nonBlackColor, black]\n    : [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\n  for (let i = 0; i < height; ++i) {\n    for (\n      const max = srcPos + widthInSource;\n      srcPos < max;\n      ++srcPos, destPos += 8\n    ) {\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\n  return { srcPos, 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\n  if (FeatureTest.isLittleEndian) {\n    // It's a way faster to do the shuffle manually instead of working\n    // component by component with some Uint8 arrays.\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i], // R2B1G1R1\n        s2 = src32[i + 1], // G3R3B2G2\n        s3 = src32[i + 2]; // B4G4R4B3\n\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\n    for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n      dest[destPos++] =\n        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], // R1G1B1R2\n        s2 = src32[i + 1], // G2B2R3G3\n        s3 = src32[i + 2]; // B3R4G4B4\n\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\n    for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n      dest[destPos++] =\n        (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | alphaMask;\n    }\n  }\n\n  return { srcPos: srcPos + len, 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\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2014 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\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { ColorSpaceUtils } from \"./colorspace_utils.js\";\nimport { DeviceCmykCS } from \"./colorspace.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\n\nclass JpegError extends BaseException {\n  constructor(msg) {\n    super(msg, \"JpegError\");\n  }\n}\n\nclass DNLMarkerError extends BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n}\n\nclass EOIMarkerError extends BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n *   (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n *   (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n *   Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n *   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n   0,\n   1,  8,\n  16,  9,  2,\n   3, 10, 17, 24,\n  32, 25, 18, 11, 4,\n   5, 12, 19, 26, 33, 40,\n  48, 41, 34, 27, 20, 13,  6,\n   7, 14, 21, 28, 35, 42, 49, 56,\n  57, 50, 43, 36, 29, 22, 15,\n  23, 30, 37, 44, 51, 58,\n  59, 52, 45, 38, 31,\n  39, 46, 53, 60,\n  61, 54, 47,\n  55, 62,\n  63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\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 = [{ children: [], index: 0 }];\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 = { children: [], index: 0 }));\n        p.children[p.index] = q.children;\n        p = q;\n      }\n      k++;\n    }\n    if (i + 1 < length) {\n      // p here points to last code\n      code.push((q = { children: [], index: 0 }));\n      p.children[p.index] = q.children;\n      p = q;\n    }\n  }\n  return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n  data,\n  view,\n  offset,\n  frame,\n  components,\n  resetInterval,\n  spectralStart,\n  spectralEnd,\n  successivePrev,\n  successive,\n  parseDNLMarker = false\n) {\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n\n  const startOffset = offset;\n  let bitsData = 0,\n    bitsCount = 0;\n\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 === /* DNL = */ 0xdc && parseDNLMarker) {\n          offset += 2; // Skip marker length.\n\n          const scanLines = view.getUint16(offset);\n          offset += 2;\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\n              \"Found DNL marker (0xFFDC) while parsing scan data\",\n              scanLines\n            );\n          }\n        } else if (nextByte === /* EOI = */ 0xd9) {\n          if (parseDNLMarker) {\n            // NOTE: only 8-bit JPEG images are supported in this decoder.\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n            // Heuristic to attempt to handle corrupt JPEG images with too\n            // large `scanLines` parameter, by falling back to the currently\n            // parsed number of scanLines when it's at least (approximately)\n            // one \"half\" order of magnitude smaller than expected (fixes\n            // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n            if (\n              maybeScanLines > 0 &&\n              Math.round(frame.scanLines / maybeScanLines) >= 5\n            ) {\n              throw new DNLMarkerError(\n                \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n                  \"possibly caused by incorrect `scanLines` parameter\",\n                maybeScanLines\n              );\n            }\n          }\n          throw new EOIMarkerError(\n            \"Found EOI marker (0xFFD9) while parsing scan data\"\n          );\n        }\n        throw new JpegError(\n          `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n        );\n      }\n      // unstuff 0\n    }\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\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\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\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\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\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\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\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] =\n        receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\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: // initial state\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: // skipping r zero items\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: // set value for a zero item\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: // eob\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\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\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\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\n  let mcu = 0,\n    fileMarker;\n  const mcuExpected =\n    componentsLength === 1\n      ? components[0].blocksPerLine * components[0].blocksPerColumn\n      : mcusPerLine * frame.mcusPerColumn;\n\n  let h, v;\n  while (mcu <= mcuExpected) {\n    // reset interval stuff\n    const mcuToRead = resetInterval\n      ? Math.min(mcuExpected - mcu, resetInterval)\n      : mcuExpected;\n\n    // The `mcuToRead === 0` case should only occur when all of the expected\n    // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n    // some corrupt JPEG images contain more data than intended and we thus\n    // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n      eobrun = 0;\n\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\n    // find marker\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, view, offset);\n    if (!fileMarker) {\n      break; // Reached the end of the image data without finding any marker.\n    }\n    if (fileMarker.invalid) {\n      // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n      // past those to attempt to find a valid marker (fixes issue4090.pdf).\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      warn(\n        `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n      );\n      offset = fileMarker.offset;\n    }\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      // RSTx\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n\n  return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n//   Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n//   'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n//   IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n//   988-991.\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\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n\n  // inverse DCT on rows\n  for (let row = 0; row < 64; row += 8) {\n    // gather block data\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\n    // dequant p0\n    p0 *= qt[row];\n\n    // check for all-zero AC coefficients\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    // dequant p1 ... p7\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\n    // stage 4\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\n    // stage 3\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\n    // stage 2\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\n    // stage 1\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\n  // inverse DCT on columns\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\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 8192) >> 14;\n      // Convert to 8-bit.\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\n    // stage 4\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\n    // stage 3\n    // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n    // converting to UInt8 range later.\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\n    // stage 2\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\n    // stage 1\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\n    // Convert to 8-bit integers.\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\n    // store block data\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}\n\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n\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}\n\nfunction findNextFileMarker(data, view, currentPos, startPos = currentPos) {\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n\n  if (currentPos >= maxPos) {\n    return null; // Don't attempt to read non-existent data and just return.\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; // Don't attempt to read non-existent data and just return.\n    }\n    newMarker = view.getUint16(newPos);\n  }\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos,\n  };\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(\n      (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n    );\n    const blocksPerColumn = Math.ceil(\n      (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n    );\n    const blocksPerLineForMcu = mcusPerLine * component.h;\n    const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n    const blocksBufferSize =\n      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}\n\nfunction readDataBlock(data, view, offset) {\n  const length = view.getUint16(offset);\n  offset += 2;\n  let endOffset = offset + length - 2;\n\n  const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n  if (fileMarker?.invalid) {\n    warn(\n      \"readDataBlock - incorrect length, current marker is: \" +\n        fileMarker.invalid\n    );\n    endOffset = fileMarker.offset;\n  }\n\n  const array = data.subarray(offset, endOffset);\n  return {\n    appData: array,\n    oldOffset: offset,\n    newOffset: offset + array.length,\n  };\n}\n\nfunction skipData(data, view, offset) {\n  const length = view.getUint16(offset);\n  offset += 2;\n  const endOffset = offset + length - 2;\n\n  const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n  if (fileMarker?.invalid) {\n    return fileMarker.offset;\n  }\n  return endOffset;\n}\n\nclass JpegImage {\n  constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\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 !== /* SOI (Start of Image) = */ 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = view.getUint16(offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n      switch (fileMarker) {\n        case 0xffe1: // APP1 - Exif\n          // TODO: Remove this once https://github.com/w3c/webcodecs/issues/870\n          //       is fixed.\n          const { appData, oldOffset, newOffset } = readDataBlock(\n            data,\n            view,\n            offset\n          );\n          offset = newOffset;\n\n          // 'Exif\\x00\\x00'\n          if (\n            appData[0] === 0x45 &&\n            appData[1] === 0x78 &&\n            appData[2] === 0x69 &&\n            appData[3] === 0x66 &&\n            appData[4] === 0 &&\n            appData[5] === 0\n          ) {\n            if (exifOffsets) {\n              throw new JpegError(\"Duplicate EXIF-blocks found.\");\n            }\n            // Don't do the EXIF-block replacement here, see `JpegStream`,\n            // since that can modify the original PDF document.\n            exifOffsets = { exifStart: oldOffset + 6, exifEnd: newOffset };\n          }\n          fileMarker = view.getUint16(offset);\n          offset += 2;\n          continue;\n        case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n        case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n        case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n          // Skip marker length.\n          // Skip precision.\n          // Skip scanLines.\n          // Skip samplesPerLine.\n          numComponents = data[offset + (2 + 1 + 2 + 2)];\n          break markerLoop;\n        case 0xffff: // Fill bytes\n          if (data[offset] !== 0xff) {\n            // Avoid skipping a valid marker.\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\n  parse(data, { dnlScanLines = null } = {}) {\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\n    let fileMarker = view.getUint16(offset);\n    offset += 2;\n    if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = view.getUint16(offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n      let i, j, l;\n      switch (fileMarker) {\n        case 0xffe0: // APP0 (Application Specific)\n        case 0xffe1: // APP1\n        case 0xffe2: // APP2\n        case 0xffe3: // APP3\n        case 0xffe4: // APP4\n        case 0xffe5: // APP5\n        case 0xffe6: // APP6\n        case 0xffe7: // APP7\n        case 0xffe8: // APP8\n        case 0xffe9: // APP9\n        case 0xffea: // APP10\n        case 0xffeb: // APP11\n        case 0xffec: // APP12\n        case 0xffed: // APP13\n        case 0xffee: // APP14\n        case 0xffef: // APP15\n        case 0xfffe: // COM (Comment)\n          const { appData, newOffset } = readDataBlock(data, view, offset);\n          offset = newOffset;\n\n          if (fileMarker === 0xffe0) {\n            // 'JFIF\\x00'\n            if (\n              appData[0] === 0x4a &&\n              appData[1] === 0x46 &&\n              appData[2] === 0x49 &&\n              appData[3] === 0x46 &&\n              appData[4] === 0\n            ) {\n              jfif = {\n                version: { major: appData[5], minor: appData[6] },\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(\n                  14,\n                  14 + 3 * appData[12] * appData[13]\n                ),\n              };\n            }\n          }\n          // TODO APP1 - Exif\n          if (fileMarker === 0xffee) {\n            // 'Adobe'\n            if (\n              appData[0] === 0x41 &&\n              appData[1] === 0x64 &&\n              appData[2] === 0x6f &&\n              appData[3] === 0x62 &&\n              appData[4] === 0x65\n            ) {\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\n        case 0xffdb: // DQT (Define Quantization Tables)\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              // 8 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              // 16 bit values\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\n        case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n        case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n        case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n          offset += 2; // Skip marker length.\n\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, // See comment below.\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\n        case 0xffc4: // DHT (Define Huffman Tables)\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\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n              huffmanTableSpec & 15\n            ] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n          break;\n\n        case 0xffdd: // DRI (Define Restart Interval)\n          offset += 2; // Skip marker length.\n\n          resetInterval = view.getUint16(offset);\n          offset += 2;\n          break;\n\n        case 0xffda: // SOS (Start of Scan)\n          // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n          // of the first scan segment and may only occur once in an image.\n          // Furthermore, to prevent an infinite loop, do *not* attempt to\n          // parse DNL markers during re-parsing of the JPEG scan data.\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n          offset += 2; // Skip marker length.\n\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(\n              data,\n              view,\n              offset,\n              frame,\n              components,\n              resetInterval,\n              spectralStart,\n              spectralEnd,\n              successiveApproximation >> 4,\n              successiveApproximation & 15,\n              parseDNLMarker\n            );\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, { dnlScanLines: ex.scanLines });\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\n        case 0xffdc: // DNL (Define Number of Lines)\n          // Ignore the marker, since it's being handled in `decodeScan`.\n          offset += 4;\n          break;\n\n        case 0xffff: // Fill bytes\n          if (data[offset] !== 0xff) {\n            // Avoid skipping a valid marker.\n            offset--;\n          }\n          break;\n\n        default:\n          // Could be incorrect encoding -- the last 0xFF byte of the previous\n          // block could have been eaten by the encoder, hence we fallback to\n          // `startPos = offset - 3` when looking for the next valid marker.\n          const nextFileMarker = findNextFileMarker(\n            data,\n            view,\n            /* currentPos = */ offset - 2,\n            /* startPos = */ offset - 3\n          );\n          if (nextFileMarker?.invalid) {\n            warn(\n              \"JpegImage.parse - unexpected data, current marker is: \" +\n                nextFileMarker.invalid\n            );\n            offset = nextFileMarker.offset;\n            break;\n          }\n          if (!nextFileMarker || offset >= maxOffset) {\n            warn(\n              \"JpegImage.parse - reached the end of the image data \" +\n                \"without finding an EOI marker (0xFFD9).\"\n            );\n            break markerLoop;\n          }\n          throw new JpegError(\n            \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n          );\n      }\n\n      if (offset < maxOffset) {\n        fileMarker = view.getUint16(offset);\n        offset += 2;\n      } else {\n        fileMarker = 0;\n      }\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      // Prevent errors when DQT markers are placed after SOF{n} markers,\n      // by assigning the `quantizationTable` entry after the entire image\n      // has been parsed (fixes issue7406.pdf).\n      const quantizationTable = quantizationTables[component.quantizationId];\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\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\n  _getLinearizedBlockData(width, height, isSourcePDF = false) {\n    const scaleX = this.width / width,\n      scaleY = this.height / height;\n\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; // used to clear the 3 LSBs\n    let lastComponentScaleX;\n\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      // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n      // component data, that's only necessary when `componentScaleX` changes.\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      // linearize the blocks of the component\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\n    // decodeTransform contains pairs of multiplier (-256..256) and additive\n    let transform = this._decodeTransform;\n\n    // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n    // (this can be observed by extracting the raw image data).\n    // Since the conversion algorithms (see below) were written primarily for\n    // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n    // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n    //\n    // Unfortunately it's not (always) possible to tell, from the image data\n    // alone, if it needs to be inverted. Thus in an attempt to provide better\n    // out-of-box behaviour when `JpegImage` is used standalone, default to\n    // inverting JPEG (CMYK) images if and only if the image data does *not*\n    // come from a PDF file and no `decodeTransform` was passed by the user.\n    if (!isSourcePDF && numComponents === 4 && !transform) {\n      transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n    }\n\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\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      // The adobe transform marker overrides any previous setting.\n      return !!this.adobe.transformCode;\n    }\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        // If the Adobe transform marker is not present and the image\n        // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n        // then the colours should *not* be transformed.\n        return false;\n      } else if (\n        this.components[0].index === /* \"R\" = */ 0x52 &&\n        this.components[1].index === /* \"G\" = */ 0x47 &&\n        this.components[2].index === /* \"B\" = */ 0x42\n      ) {\n        // If the three components are indexed as RGB in ASCII\n        // then the colours should *not* be transformed.\n        return false;\n      }\n      return true;\n    }\n    // `this.numComponents !== 3`\n    if (this._colorTransform === 1) {\n      // If the Adobe transform marker is not present and the image\n      // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n      // then the colours should be transformed.\n      return true;\n    }\n    return false;\n  }\n\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; 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\n  _convertYccToRgba(data, out) {\n    for (let i = 0, j = 0, length = data.length; i < length; 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\n  _convertYcckToRgb(data) {\n    this._convertYcckToCmyk(data);\n    return this._convertCmykToRgb(data);\n  }\n\n  _convertYcckToRgba(data) {\n    this._convertYcckToCmyk(data);\n    return this._convertCmykToRgba(data);\n  }\n\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; 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      // K in data[i + 3] is unchanged\n    }\n    return data;\n  }\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\n  _convertCmykToRgba(data) {\n    ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1);\n\n    if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) {\n      // The alpha-component isn't updated by `DeviceCmykCS`, doing it manually.\n      for (let i = 3, ii = data.length; i < ii; i += 4) {\n        data[i] = 255;\n      }\n    }\n    return data;\n  }\n\n  getData({\n    width,\n    height,\n    forceRGBA = false,\n    forceRGB = false,\n    isSourcePDF = false,\n  }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        isSourcePDF === true,\n        'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n      );\n    }\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n    // Type of data: Uint8ClampedArray(width * height * numComponents)\n    const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\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\nexport { JpegError, JpegImage };\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nasync function OpenJPEG(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"s\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"openjpeg.wasm\")}return new URL(\"openjpeg.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};function _copy_pixels_1(compG_ptr,nb_pixels){compG_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);imageData.set(compG)}function _copy_pixels_3(compR_ptr,compG_ptr,compB_ptr,nb_pixels){compR_ptr>>=2;compG_ptr>>=2;compB_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*3);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);for(let i=0;i<nb_pixels;i++){imageData[3*i]=compR[i];imageData[3*i+1]=compG[i];imageData[3*i+2]=compB[i]}}function _copy_pixels_4(compR_ptr,compG_ptr,compB_ptr,compA_ptr,nb_pixels){compR_ptr>>=2;compG_ptr>>=2;compB_ptr>>=2;compA_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);const compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels);for(let i=0;i<nb_pixels;i++){imageData[4*i]=compR[i];imageData[4*i+1]=compG[i];imageData[4*i+2]=compB[i];imageData[4*i+3]=compA[i]}}var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):\"\";var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0};function _gray_to_rgba(compG_ptr,nb_pixels){compG_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);for(let i=0;i<nb_pixels;i++){imageData[4*i]=imageData[4*i+1]=imageData[4*i+2]=compG[i];imageData[4*i+3]=255}}function _graya_to_rgba(compG_ptr,compA_ptr,nb_pixels){compG_ptr>>=2;compA_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels);for(let i=0;i<nb_pixels;i++){imageData[4*i]=imageData[4*i+1]=imageData[4*i+2]=compG[i];imageData[4*i+3]=compA[i]}}function _jsPrintWarning(message_ptr){const message=UTF8ToString(message_ptr);(Module.warn||console.warn)(`OpenJPEG: ${message}`)}function _rgb_to_rgba(compR_ptr,compG_ptr,compB_ptr,nb_pixels){compR_ptr>>=2;compG_ptr>>=2;compB_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);for(let i=0;i<nb_pixels;i++){imageData[4*i]=compR[i];imageData[4*i+1]=compG[i];imageData[4*i+2]=compB[i];imageData[4*i+3]=255}}function _storeErrorMessage(message_ptr){const message=UTF8ToString(message_ptr);if(!Module.errorMessages){Module.errorMessages=message}else{Module.errorMessages+=\"\\n\"+message}}var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"writeArrayToMemory\"]=writeArrayToMemory;var _malloc,_free,_jp2_decode,__emscripten_timeout,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"t\"];_free=Module[\"_free\"]=wasmExports[\"u\"];_jp2_decode=Module[\"_jp2_decode\"]=wasmExports[\"v\"];__emscripten_timeout=wasmExports[\"w\"];memory=wasmMemory=wasmExports[\"r\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={m:__abort_js,l:__emscripten_runtime_keepalive_clear,i:__setitimer_js,f:_copy_pixels_1,e:_copy_pixels_3,d:_copy_pixels_4,j:_emscripten_resize_heap,o:_environ_get,p:_environ_sizes_get,n:_fd_seek,b:_fd_write,q:_gray_to_rgba,h:_graya_to_rgba,c:_jsPrintWarning,k:_proc_exit,g:_rgb_to_rgba,a:_storeErrorMessage};function run(){preRun();function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default OpenJPEG;\n","/* Copyright 2012 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\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n  constructor(arrayBuffer, start, length, dict) {\n    super();\n\n    this.bytes =\n      arrayBuffer instanceof Uint8Array\n        ? arrayBuffer\n        : 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\n  get length() {\n    return this.end - this.start;\n  }\n\n  get isEmpty() {\n    return this.length === 0;\n  }\n\n  getByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      this.pos = strEnd;\n      return bytes.subarray(pos, strEnd);\n    }\n    let end = pos + length;\n    if (end > strEnd) {\n      end = strEnd;\n    }\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\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\n  reset() {\n    this.pos = this.start;\n  }\n\n  moveStart() {\n    this.start = this.pos;\n  }\n\n  makeSubStream(start, length, dict = null) {\n    return new Stream(this.bytes.buffer, start, length, dict);\n  }\n\n  clone() {\n    return new Stream(\n      this.bytes.buffer,\n      this.start,\n      this.end - this.start,\n      this.dict.clone()\n    );\n  }\n}\n\nclass StringStream extends Stream {\n  constructor(str) {\n    super(stringToBytes(str));\n  }\n}\n\nclass NullStream extends Stream {\n  constructor() {\n    super(new Uint8Array(0));\n  }\n}\n\nexport { NullStream, Stream, StringStream };\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\nimport { BaseException, warn } from \"../shared/util.js\";\nimport { fetchBinaryData } from \"./core_utils.js\";\nimport OpenJPEG from \"../../external/openjpeg/openjpeg.js\";\nimport { Stream } from \"./stream.js\";\n\nclass JpxError extends BaseException {\n  constructor(msg) {\n    super(msg, \"JpxError\");\n  }\n}\n\nclass JpxImage {\n  static #buffer = null;\n\n  static #handler = null;\n\n  static #modulePromise = null;\n\n  static #useWasm = true;\n\n  static #useWorkerFetch = true;\n\n  static #wasmUrl = null;\n\n  static setOptions({ handler, useWasm, useWorkerFetch, wasmUrl }) {\n    this.#useWasm = useWasm;\n    this.#useWorkerFetch = useWorkerFetch;\n    this.#wasmUrl = wasmUrl;\n\n    if (!useWorkerFetch) {\n      this.#handler = handler;\n    }\n  }\n\n  static async #getJsModule(fallbackCallback) {\n    const path =\n      typeof PDFJSDev === \"undefined\"\n        ? `../${this.#wasmUrl}openjpeg_nowasm_fallback.js`\n        : `${this.#wasmUrl}openjpeg_nowasm_fallback.js`;\n\n    let instance = null;\n    try {\n      const mod = await (typeof PDFJSDev === \"undefined\"\n        ? import(path) // eslint-disable-line no-unsanitized/method\n        : __raw_import__(path));\n      instance = mod.default();\n    } catch (e) {\n      warn(`JpxImage#getJsModule: ${e}`);\n    }\n    fallbackCallback(instance);\n  }\n\n  static async #instantiateWasm(fallbackCallback, imports, successCallback) {\n    const filename = \"openjpeg.wasm\";\n    try {\n      if (!this.#buffer) {\n        if (this.#useWorkerFetch) {\n          this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);\n        } else {\n          if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n            throw new Error(\"Only worker-thread fetching supported.\");\n          }\n          this.#buffer = await this.#handler.sendWithPromise(\n            \"FetchBinaryData\",\n            { kind: \"wasmUrl\", filename }\n          );\n        }\n      }\n      const results = await WebAssembly.instantiate(this.#buffer, imports);\n      return successCallback(results.instance);\n    } catch (reason) {\n      warn(`JpxImage#instantiateWasm: ${reason}`);\n\n      this.#getJsModule(fallbackCallback);\n      return null;\n    } finally {\n      this.#handler = null;\n    }\n  }\n\n  static async decode(\n    bytes,\n    {\n      numComponents = 4,\n      isIndexedColormap = false,\n      smaskInData = false,\n      reducePower = 0,\n    } = {}\n  ) {\n    if (!this.#modulePromise) {\n      const { promise, resolve } = Promise.withResolvers();\n      const promises = [promise];\n      if (!this.#useWasm) {\n        this.#getJsModule(resolve);\n      } else {\n        promises.push(\n          OpenJPEG({\n            warn,\n            instantiateWasm: this.#instantiateWasm.bind(this, resolve),\n          })\n        );\n      }\n      this.#modulePromise = Promise.race(promises);\n    }\n    const module = await this.#modulePromise;\n\n    if (!module) {\n      throw new JpxError(\"OpenJPEG failed to initialize\");\n    }\n    let ptr;\n\n    try {\n      const size = bytes.length;\n      ptr = module._malloc(size);\n      module.writeArrayToMemory(bytes, ptr);\n      const ret = module._jp2_decode(\n        ptr,\n        size,\n        numComponents > 0 ? numComponents : 0,\n        !!isIndexedColormap,\n        !!smaskInData,\n        reducePower\n      );\n      if (ret) {\n        const { errorMessages } = module;\n        if (errorMessages) {\n          delete module.errorMessages;\n          throw new JpxError(errorMessages);\n        }\n        throw new JpxError(\"Unknown error\");\n      }\n      const { imageData } = module;\n      module.imageData = null;\n\n      return imageData;\n    } finally {\n      if (ptr) {\n        module._free(ptr);\n      }\n    }\n  }\n\n  static cleanup() {\n    this.#modulePromise = null;\n  }\n\n  static parseImageProperties(stream) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      if (stream instanceof ArrayBuffer || ArrayBuffer.isView(stream)) {\n        stream = new Stream(stream);\n      } else {\n        throw new JpxError(\"Invalid data format, must be a TypedArray.\");\n      }\n    }\n    // No need to use OpenJPEG here since we're only getting very basic\n    // information which are located in the first bytes of the file.\n    let newByte = stream.getByte();\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = (oldByte << 8) | newByte;\n      // Image and tile size (SIZ)\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0; // Byte 4\n        const Ysiz = stream.getInt32() >>> 0; // Byte 8\n        const XOsiz = stream.getInt32() >>> 0; // Byte 12\n        const YOsiz = stream.getInt32() >>> 0; // Byte 16\n        stream.skip(16);\n        const Csiz = stream.getUint16(); // Byte 36\n        return {\n          width: Xsiz - XOsiz,\n          height: Ysiz - YOsiz,\n          // Results are always returned as `Uint8ClampedArray`s.\n          bitsPerComponent: 8,\n          componentsCount: Csiz,\n        };\n      }\n    }\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n}\n\nexport { JpxError, JpxImage };\n","/* Copyright 2018 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\nimport {\n  getVerbosityLevel,\n  setVerbosityLevel,\n  VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n  Jbig2Error,\n  JBig2CCITTFaxImage as Jbig2Image,\n} from \"./core/jbig2_ccittFax.js\";\nimport { JpegError, JpegImage } from \"./core/jpg.js\";\nimport { JpxError, JpxImage } from \"./core/jpx.js\";\n\nglobalThis.pdfjsImageDecoders = {\n  getVerbosityLevel,\n  Jbig2Error,\n  Jbig2Image,\n  JpegError,\n  JpegImage,\n  JpxError,\n  JpxImage,\n  setVerbosityLevel,\n  VerbosityLevel,\n};\n\nexport {\n  getVerbosityLevel,\n  Jbig2Error,\n  Jbig2Image,\n  JpegError,\n  JpegImage,\n  JpxError,\n  JpxImage,\n  setVerbosityLevel,\n  VerbosityLevel,\n};\n"],"names":["isNodeJS","process","versions","nw","electron","type","BBOX_INIT","Infinity","F32_BBOX_INIT","Float32Array","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","IS_EDITING","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","POPUP","SIGNATURE","COMMENT","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","INK_COLOR_AND_OPACITY","HIGHLIGHT_COLOR","HIGHLIGHT_THICKNESS","HIGHLIGHT_FREE","HIGHLIGHT_SHOW_ALL","DRAW_STEP","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","MeshFigureType","TRIANGLES","LATTICE","PATCH","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","VerbosityLevel","ERRORS","WARNINGS","INFOS","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","setStrokeTransparent","setFillTransparent","rawFillPath","DrawOPS","quadraticCurveTo","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","parse","updateUrlHash","hash","allowRel","res","href","split","stripPath","str","substring","lastIndexOf","shadow","obj","prop","value","nonSerializable","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","prototype","constructor","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","status","missing","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","Uint8Array","charCodeAt","objectSize","keys","isLittleEndian","buffer8","view32","Uint32Array","buffer","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","isImageDecoderSupported","ImageDecoder","isFloat16ArraySupported","Float16Array","isSanitizerSupported","Sanitizer","platform","userAgent","navigator","isAndroid","includes","isLinux","isMac","isWindows","isFirefox","isCSSRoundSupported","globalThis","CSS","supports","isAlphaColorInputSupported","document","input","createElement","setAttribute","Util","hexNums","Array","from","n","toString","padStart","makeHexColor","r","g","b","domMatrixToTransform","dm","a","c","d","e","f","scaleMinMax","minMax","temp","m1","m2","multiplyByDOMMatrix","m","md","applyTransform","p","pos","p0","p1","applyTransformToBezier","m0","m3","m4","m5","pI","pI1","applyInverseTransform","axialAlignedBoundingBox","rect","output","r0","r1","r2","r3","a0","a2","a1","a3","b0","b2","b1","b3","m1r0","m1r2","m2r1","m2r3","max","inverseTransform","singularValueDecompose2dScale","matrix","first","second","sqrt","normalizeRect","slice","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","pointBoundingBox","x","y","rectBoundingBox","x0","y0","x1","y1","getExtremumOnCurve","#getExtremumOnCurve","x2","x3","y2","y3","t","mt","tt","ttt","getExtremum","#getExtremum","abs","delta","sqrtDelta","bezierBoundingBox","PDFStringTranslateTable","stringToPDFString","keepEscapeSequence","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","p2","normalize","get","getUuid","crypto","randomUUID","buf","getRandomValues","AnnotationPrefix","_isValidExplicitDest","validRef","validName","dest","isArray","page","zoom","args","argsLen","allowNull","arg","makeArr","makeMap","makeObj","create","CIRCULAR_REF","Symbol","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","__nonSerializable__","map","objId","suppressEncryption","xref","assignXref","newXref","size","getValue","#getValue","isAsync","key1","key2","key3","Ref","fetchAsync","fetch","getAsync","getArray","getRaw","key","getKeys","getRawValues","values","getRawEntries","entries","set","setIfNotExists","has","setIfNumber","setIfArray","ArrayBuffer","isView","setIfDefined","setIfName","setIfDict","iterator","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","dict","property","subDict","clear","clone","delete","num","gen","fromString","ref","exec","parseInt","RefSet","parent","_set","Set","put","add","remove","RefSetCache","_map","putAlias","aliasRef","items","isName","v","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","getImageData","decoderOptions","asyncGetBytes","isAsyncDecoder","isImageStream","canAsyncDecodeImageFromBuffer","getTransferableImage","peekByte","peekedByte","peekBytes","getUint16","getInt32","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","getOriginalStream","stream","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","byteLength","data","item","fetchBinaryData","response","ok","statusText","getInheritableProperty","stopWhenFound","visited","getParentToUpdate","firstDict","result","deepCompare","value1","value2","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","roman","repeat","toLowerCase","isWhiteSpace","ch","isBooleanArray","len","every","isNumberArray","BigInt64Array","BigUint64Array","lookupMatrix","fallback","lookupRect","lookupNormalRect","parseXFAPath","path","positionPattern","component","escapePDFName","char","escapeString","_collectJS","entry","list","parents","element","js","trim","collectActions","eventType","actions","additionalActionsDicts","additionalActions","rawActionDict","action","actionDict","Action","XMLEntities","codePointIter","codePointAt","encodeToXmlString","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","RegExp","test","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","getOrInsertComputed","pageIndex","stringToAsciiOrUTF16BE","isAscii","stringToUTF16String","stringToUTF16HexString","bigEndian","getRotationMatrix","rotation","width","height","getSizeInBytes","ceil","log2","JBig2","moduleArg","moduleRtn","Module","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","arguments_","thisProgram","quit_","toThrow","_scriptName","import","meta","scriptDirectory","readAsync","readBinary","credentials","arrayBuffer","out","log","bind","err","error","wasmBinary","ABORT","EXITSTATUS","readyPromiseResolve","readyPromiseReject","HEAP8","HEAPU8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","HEAPU64","runtimeInitialized","updateMemoryViews","wasmMemory","Int8Array","Int16Array","Uint16Array","Int32Array","Float64Array","preRun","addOnPreRun","shift","callRuntimeCallbacks","onPreRuns","initRuntime","wasmExports","postRun","addOnPostRun","onPostRuns","abort","what","WebAssembly","RuntimeError","wasmBinaryFile","getWasmImports","imports","wasmImports","createWasm","receiveInstance","instance","module","exports","assignWasmExports","Promise","resolve","reject","inst","mod","ExitStatus","callbacks","cb","noExitRuntime","__abort_js","runtimeKeepaliveCounter","__emscripten_runtime_keepalive_clear","timers","handleException","keepRuntimeAlive","_proc_exit","exitJS","implicit","_exit","maybeExit","callUserCallback","func","_emscripten_get_now","performance","now","__setitimer_js","which","timeout_ms","clearTimeout","id","setTimeout","__emscripten_timeout","_createImageData","imageData","getHeapMax","alignMemory","alignment","growMemory","oldHeapSize","pages","grow","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","newSize","replacement","_setImageData","array_ptr","pitch8","pitch32","Uint8ClampedArray","destSize","srcStart","destStart","_setLineData","line_ptr","offset","writeArrayToMemory","array","_malloc","_free","_jbig2_decode","_ccitt_decode","memory","__indirect_function_table","h","run","doRun","Jbig2Error","JBig2CCITTFaxImage","handler","modulePromise","useWasm","useWorkerFetch","wasmUrl","setOptions","getJsModule","#getJsModule","fallbackCallback","default","instantiateWasm","#instantiateWasm","successCallback","filename","sendWithPromise","kind","results","instantiate","reason","globals","CCITTOptions","promise","withResolvers","promises","race","ptr","globalsPtr","EndOfLine","EncodedByteAlign","BlackIs1","Columns","Rows","globalsSize","cleanup","MathClamp","resizeRgbImage","src","w1","h1","w2","h2","alpha01","COMPONENTS","xRatio","yRatio","newIndex","oldIndex","xScaled","w1Scanline","floor","py","j","resizeRgbaImage","src32","dest32","rgbMask","copyRgbaImage","isDefaultDecodeHelper","expectedLen","decodeLen","ColorSpace","rgbBuf","numComps","getRgb","srcOffset","getRgbItem","getRgbHex","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","AlternateCS","base","tintFn","tmpBuf","scale","baseNumComps","baseBuf","scaled","tinted","PatternCS","baseCS","IndexedCS","highVal","outputDelta","lookupPos","DeviceGrayCS","q","DeviceRgbCS","DeviceRgbaCS","_alpha01","DeviceCmykCS","toRgb","#toRgb","srcScale","k","CalGrayCS","whitePoint","blackPoint","gamma","XW","YW","ZW","XB","YB","ZB","G","A","AG","L","val","CalRGBCS","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","GR","GG","GB","MXA","MYA","MZA","MXB","MYB","MZB","MXC","MYC","MZC","matrixProduct","#matrixProduct","toFlat","#toFlat","sourceWhitePoint","LMS","toD65","#toD65","D65X","D65Y","D65Z","sRGBTransferFunction","#sRGBTransferFunction","color","decodeL","#decodeL","compensateBlackPoint","#compensateBlackPoint","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","normalizeWhitePointToFlat","#normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","#normalizeWhitePointToD65","LMS_D65","B","AGR","BGG","CGB","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCS","range","amin","amax","bmin","bmax","fn_g","#fn_g","#decode","high1","low2","high2","maxVal","Ls","as","bs","M","N","QCMS","memoryArray","_memory","_mustAddAlpha","_destBuffer","_destOffset","_destLength","_cssColor","_makeHexColor","_memoryArray","copy_result","copy_rgb","make_cssRGB","DataType","freeze","RGB8","RGBA8","BGRA8","Gray8","GrayA8","CMYK","Intent","Perceptual","RelativeColorimetric","Saturation","AbsoluteColorimetric","qcms_convert_array","transformer","ptr0","passArray8ToWasm0","wasm","__wbindgen_malloc","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","ret","__wbg_get_imports","import0","__proto__","__wbg___wbindgen_throw_6b64449b9b9ed33c","arg0","arg1","getStringFromWasm0","__wbg_copy_result_0d15f3bf9d9012ae","__wbg_copy_rgb_0106d9d9464fce43","__wbg_make_cssRGB_8e24b34f71f5363e","__wbindgen_init_externref_table","table","__wbindgen_externrefs","decodeText","cachedUint8ArrayMemory0","getUint8ArrayMemory0","malloc","cachedTextDecoder","ignoreBOM","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","wasmModule","__wbg_finalize_init","__wbindgen_start","__wbg_load","Response","instantiateStreaming","validResponse","expectedResponseType","headers","Instance","initSync","getPrototypeOf","__wbg_init","module_or_path","Request","fetchSync","xhr","XMLHttpRequest","open","responseType","send","IccColorSpace","convertPixel","finalizer","iccProfile","isUsable","inType","FinalizationRegistry","register","_module","CmykICCBasedCS","iccUrl","ColorSpaceUtils","cs","resources","pdfFunctionFactory","globalColorSpaceCache","localColorSpaceCache","asyncIfNotCached","csName","csRef","parsedCS","cachedCS","getByRef","getByName","subParse","#subParse","#parse","fetchIfRef","gray","rgb","rgba","cmyk","colorSpaces","resourcesCS","mode","params","isRef","iccCS","altRaw","altCS","hiVal","convertToRGBA","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","elem","len32","alphaMask","s1","s2","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","children","index","pop","getBlockBufferOffset","row","col","blocksPerLine","decodeScan","view","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","readBit","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","node","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","sign","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p3","p4","p5","p6","p7","buildComponentData","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","readDataBlock","endOffset","appData","oldOffset","newOffset","skipData","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","canUseImageDecoder","DataView","byteOffset","exifOffsets","numComponents","markerLoop","exifStart","exifEnd","dnlScanLines","maxOffset","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","l","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","scaleX","scaleY","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYccToRgba","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_convertYcckToRgba","_convertCmykToRgba","getData","forceRGBA","forceRGB","rgbaData","grayColor","OpenJPEG","EmscriptenEH","EmscriptenSjLj","_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","strings","lang","language","replace","env","USER","LOGNAME","PATH","PWD","HOME","LANG","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","endIdx","u","stringToUTF8","outPtr","_environ_get","__environ","environ_buf","bufSize","envp","string","lengthBytesUTF8","_environ_sizes_get","penviron_count","penviron_buf_size","INT53_MAX","INT53_MIN","bigintToI53Checked","NaN","_fd_seek","fd","whence","printCharBuffers","UTF8Decoder","findStringEnd","heapOrArray","idx","maxBytesToRead","ignoreNul","maxIdx","UTF8ArrayToString","endPtr","u0","u1","u2","printChar","curr","UTF8ToString","_fd_write","iov","iovcnt","pnum","_gray_to_rgba","_graya_to_rgba","_jsPrintWarning","message_ptr","_rgb_to_rgba","_storeErrorMessage","errorMessages","_jp2_decode","o","Stream","strEnd","StringStream","NullStream","JpxError","JpxImage","isIndexedColormap","smaskInData","reducePower","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","Jbig2Image","pdfjsImageDecoders"],"sourceRoot":""}