1 line
1.3 MiB
1 line
1.3 MiB
{"version":3,"file":"pdf.js","mappings":"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","sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.aggregate-error.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-native.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/clear-error-stack.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/install-error-cause.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-close.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/error-stack-installable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-apply.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/queue.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-browser.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.any.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/structured-clone.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice-simple.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.structured-clone.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/regexp-flags.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/base_factory.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_text.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/shared/scripting_utils.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_layer.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/webpack/runtime/node module decorator","webpack://pdfjs-dist/build/pdf/src/pdf.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn ","/* 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 \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\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 * - 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 * - 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 ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\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 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 AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\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 StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\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 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 /** @deprecated unused */\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};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\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 console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\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 try {\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 && 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 (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\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: true,\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 (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\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 MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\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 (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\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\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array<any>|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array<Array<any>|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\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}\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n },\n};\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n },\n};\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\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 // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\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 // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\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(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\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 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if (\n (orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])\n ) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n // Y: first and second points belong to different rectangles?\n if (\n (orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])\n ) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\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) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\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) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\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 code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\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 isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\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 stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n 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 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\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise<any>} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n IsEvalSupportedCached,\n IsLittleEndianCached,\n isSameOrigin,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 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 __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\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/* 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 process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.21.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string') {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromisePrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromisePrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n // eslint-disable-next-line unicorn/no-thenable -- safe\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../modules/es.array.iterator');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar regExpFlags = require('../internals/regexp-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getFlags = uncurryThis(regExpFlags);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n }) && structuredCloneImplementation;\n};\n\n// FF94+, Safari TP134+, Chrome Canary 98+, NodeJS 17.0+, Deno 1.13+\n// current FF and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE || !checkNewErrorsSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// current Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor, structured cloning implementation\n// from `performance.mark` is too naive and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, kind) {\n throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n switch (type) {\n case 'Array':\n cloned = [];\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, 'flags' in value ? value.flags : getFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n cloned = new C(\n // this is safe, since arraybuffer cannot have circular references\n structuredCloneInternal(value.buffer, map),\n value.byteOffset,\n type === 'DataView' ? value.byteLength : value.length\n );\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n C = global.DataTransfer;\n if (isConstructor(C)) {\n dataTransfer = new C();\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(booleanValueOf(value));\n break;\n case 'Number':\n cloned = Object(numberValueOf(value));\n break;\n case 'String':\n cloned = Object(stringValueOf(value));\n break;\n case 'Date':\n cloned = new Date(getTime(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n } break;\n case 'SharedArrayBuffer':\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'CryptoKey':\n case 'GPUCompilationMessage':\n case 'GPUCompilationInfo':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n if (deep) switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n } else while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n type = classof(value);\n\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'ArrayBuffer':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n\n return structuredCloneInternal(value, map);\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\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\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n AnnotationMode,\n assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isSameOrigin,\n MissingPDFException,\n PasswordException,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n isDataScheme,\n loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n} from \"./node_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nconst DefaultCanvasFactory =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n ? NodeCanvasFactory\n : DOMCanvasFactory;\nconst DefaultCMapReaderFactory =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n ? NodeCMapReaderFactory\n : DOMCMapReaderFactory;\nconst DefaultStandardFontDataFactory =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n ? NodeStandardFontDataFactory\n : DOMStandardFontDataFactory;\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n * parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n * {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type {IPDFStreamFactory}\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n * that takes document initialization parameters (including a \"url\") and\n * returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n * Int16Array | Uint16Array |\n * Int32Array | Uint32Array | Float32Array |\n * Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string|URL} [url] - The URL of the PDF.\n * @property {TypedArray|Array<number>|string} [data] - Binary PDF data. Use\n * typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n * or all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n * transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n * per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n * parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n * from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n * attempting to recover valid absolute URLs for annotations, and outline\n * items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n * located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n * packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n * reading built-in CMap files. Providing a custom factory is useful for\n * environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n * embedded in the PDF document will fallback to a system font.\n * The default value is `true` in web environments and `false` in Node.js;\n * unless `disableFontFace === true` in which case this defaults to `false`\n * regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n * files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n * when reading the standard font files. Providing a custom factory is useful\n * for environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n * worker-thread when reading CMap and standard font files. When `true`,\n * the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n * pixels, i.e. width * height. Images above this value will not be rendered.\n * Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n * as JavaScript. Primarily used to improve performance of font rendering, and\n * when parsing PDF functions. The default value is `true`.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n * OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n * If disabled, fonts will be rendered using a built-in font renderer that\n * constructs the glyphs with primitive path commands.\n * The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n * which are unused during rendering of PDF documents, when exporting the\n * parsed font data from the worker-thread. This may be useful for debugging\n * purposes (and backwards compatibility), but note that it will lead to\n * increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n * The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n * context to create elements with and to load resources, such as fonts,\n * into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n * files. When enabled, and if the server supports partial content requests,\n * then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n * By default PDF.js attempts to load PDF files in chunks. The default value\n * is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n * data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n *\n * NOTE: It is also necessary to disable streaming, see above, in order for\n * disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n * (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string|URL|TypedArray|PDFDataRangeTransport|DocumentInitParameters}\n * src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n * already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\" || src instanceof URL) {\n source = { url: src };\n } else if (isArrayBuffer(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\n \"Invalid parameter in getDocument, \" +\n \"need either string, URL, Uint8Array, or parameter object.\"\n );\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n \"Invalid parameter object: need either .data, .range or .url\"\n );\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n // The full path is required in the 'url' field.\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n warn(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString(); // Support Node.js environments.\n continue;\n }\n throw new Error(\n \"Invalid PDF url data: \" +\n \"either string or URL-object is expected in the url property.\"\n );\n case \"range\":\n rangeTransport = value;\n continue;\n case \"worker\":\n worker = value;\n continue;\n case \"data\":\n // Converting string or array-like data to Uint8Array.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n value instanceof Buffer // eslint-disable-line no-undef\n ) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break; // Use the data as-is when it's already a Uint8Array.\n } else if (typeof value === \"string\") {\n params[key] = stringToBytes(value);\n } else if (\n typeof value === \"object\" &&\n value !== null &&\n !isNaN(value.length)\n ) {\n params[key] = new Uint8Array(value);\n } else if (isArrayBuffer(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either typed array, \" +\n \"string, or array-like object is expected in the data property.\"\n );\n }\n continue;\n }\n params[key] = value;\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory =\n params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory =\n params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (\n typeof params.docBaseUrl !== \"string\" ||\n isDataScheme(params.docBaseUrl)\n ) {\n // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n // URLs anyway. We want to avoid sending them to the worker-thread, since\n // they contain the *entire* PDF document and can thus be arbitrarily long.\n params.docBaseUrl = null;\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch =\n params.CMapReaderFactory === DOMCMapReaderFactory &&\n params.StandardFontDataFactory === DOMStandardFontDataFactory;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS;\n }\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts =\n !(\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n isNodeJS\n ) && !params.disableFontFace;\n }\n if (typeof params.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise\n .then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(\n worker,\n params,\n rangeTransport,\n docId\n );\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n },\n rangeTransport\n );\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n resolve(networkStream);\n });\n\n return Promise.all([workerIdPromise, networkStreamPromise]).then(\n function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n params\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise<string>} A promise that is resolved when the worker ID of\n * the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename =\n pdfDataRangeTransport.contentDispositionFilename;\n }\n const workerId = await worker.messageHandler.sendWithPromise(\n \"GetDocRequest\",\n {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n // Only send the required properties, and *not* the entire object.\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch\n ? source.standardFontDataUrl\n : null,\n }\n );\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n static get idCounters() {\n return shadow(this, \"idCounters\", { doc: 0 });\n }\n\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique identifier for the document loading task.\n * @type {string}\n */\n this.docId = `d${PDFDocumentLoadingTask.idCounters.doc++}`;\n\n /**\n * Whether the loading task is destroyed or not.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if a wrong or no password was provided.\n * The callback receives two parameters: a function that should be called\n * with the new password, and a reason (see {@link PasswordResponses}).\n * @type {function}\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar).\n * The callback receives an {@link OnProgressParameters} argument.\n * @type {function}\n */\n this.onProgress = null;\n\n /**\n * Callback for when an unsupported feature is used in the PDF document.\n * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n * @type {function}\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise<PDFDocumentProxy>}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Abort all network requests and destroy the worker.\n * @returns {Promise<void>} A promise that is resolved when destruction is\n * completed.\n */\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n /**\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} [progressiveDone]\n * @param {string} [contentDispositionFilename]\n */\n constructor(\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n Object.defineProperty(this, \"fingerprint\", {\n get() {\n deprecated(\n \"`PDFDocumentProxy.fingerprint`, \" +\n \"please use `PDFDocumentProxy.fingerprints` instead.\"\n );\n return this.fingerprints[0];\n },\n });\n\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n deprecated(\n \"`PDFDocumentProxy.getStats`, \" +\n \"please use the `PDFDocumentProxy.stats`-getter instead.\"\n );\n return this.stats || { streamTypes: {}, fontTypes: {} };\n },\n });\n }\n }\n\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n /**\n * @type {number} Total number of pages in the PDF file.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {Array<string, string|null>} A (not guaranteed to be) unique ID to\n * identify the PDF document.\n * NOTE: The first element will always be defined for all PDF documents,\n * whereas the second element is only defined for *modified* PDF documents.\n */\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n /**\n * @typedef {Object} PDFDocumentStats\n * @property {Object<string, boolean>} streamTypes - Used stream types in the\n * document (an item is set to true if specific stream ID was used in the\n * document).\n * @property {Object<string, boolean>} fontTypes - Used font types in the\n * document (an item is set to true if specific font ID was used in the\n * document).\n */\n\n /**\n * @type {PDFDocumentStats | null} The current statistics about document\n * structures, or `null` when no statistics exists.\n */\n get stats() {\n return this._transport.stats;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n /**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n *\n * @type {Object | null} An object representing a HTML tree structure\n * to render the XFA, or `null` when no XFA form exists.\n */\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise<PDFPageProxy>} A promise that is resolved with\n * a {@link PDFPageProxy} object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {RefProxy} ref - The page reference.\n * @returns {Promise<number>} A promise that is resolved with the page index,\n * starting from zero, that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise<Object<string, Array<any>>>} A promise that is resolved\n * with a mapping from named destinations to references.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @returns {Promise<Array<any> | null>} A promise that is resolved with all\n * information of the given named destination, or `null` when the named\n * destination is not present in the PDF file.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise<Array<string> | null>} A promise that is resolved with\n * an {Array} containing the page labels that correspond to the page\n * indexes, or `null` when no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise<string>} A promise that is resolved with a {string}\n * containing the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise<string>} A promise that is resolved with a {string}\n * containing the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise<Object | null>} A promise that is resolved with an\n * {Object} containing the viewer preferences, or `null` when no viewer\n * preferences are present in the PDF file.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise<any | null>} A promise that is resolved with an {Array}\n * containing the destination, or `null` when no open action is present\n * in the PDF.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n /**\n * @returns {Promise<any>} A promise that is resolved with a lookup table\n * for mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise<Array<string> | null>} A promise that is resolved with\n * an {Array} of all the JavaScript strings in the name tree, or `null`\n * if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @returns {Promise<Object | null>} A promise that is resolved with\n * an {Object} with the JavaScript actions:\n * - from the name tree (like getJavaScript);\n * - from A or AA entries in the catalog dictionary.\n * , or `null` if no JavaScript exists.\n */\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n /**\n * @typedef {Object} OutlineNode\n * @property {string} title\n * @property {boolean} bold\n * @property {boolean} italic\n * @property {Uint8ClampedArray} color - The color in RGB format to use for\n * display purposes.\n * @property {string | Array<any> | null} dest\n * @property {string | null} url\n * @property {string | undefined} unsafeUrl\n * @property {boolean | undefined} newWindow\n * @property {number | undefined} count\n * @property {Array<OutlineNode>} items\n */\n\n /**\n * @returns {Promise<Array<OutlineNode>>} A promise that is resolved with an\n * {Array} that is a tree outline (if it has one) of the PDF file.\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise<OptionalContentConfig>} A promise that is resolved with\n * an {@link OptionalContentConfig} that contains all the optional content\n * groups (assuming that the document has any).\n */\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n /**\n * @returns {Promise<Array<number> | null>} A promise that is resolved with\n * an {Array} that contains the permission flags for the PDF document, or\n * `null` when no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n * resolved with an {Object} that has `info` and `metadata` properties.\n * `info` is an {Object} filled with anything available in the information\n * dictionary and similarly `metadata` is a {Metadata} object with\n * information from the metadata section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @typedef {Object} MarkInfo\n * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n * @property {boolean} Marked\n * @property {boolean} UserProperties\n * @property {boolean} Suspects\n */\n\n /**\n * @returns {Promise<MarkInfo | null>} A promise that is resolved with\n * a {MarkInfo} object that contains the MarkInfo flags for the PDF\n * document, or `null` when no MarkInfo values are present in the PDF file.\n */\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n /**\n * @returns {Promise<TypedArray>} A promise that is resolved with a\n * {TypedArray} that has the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise<{ length: number }>} A promise that is resolved when the\n * document's data is loaded. It is resolved with an {Object} that contains\n * the `length` property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * Cleans up resources allocated by the document on both the main and worker\n * threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n * NOTE: This will increase persistent memory usage, hence don't use this\n * option unless absolutely necessary. The default value is `false`.\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @type {DocumentInitParameters} A subset of the current\n * {DocumentInitParameters}, which are needed in the viewer.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n /**\n * @returns {Promise<Uint8Array>} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n this._transport.annotationStorage.size <= 0\n ) {\n deprecated(\n \"saveDocument called while `annotationStorage` is empty, \" +\n \"please use the getData-method instead.\"\n );\n }\n return this._transport.saveDocument();\n }\n\n /**\n * @returns {Promise<Object<string, Array<Object>> | null>} A promise that is\n * resolved with an {Object} containing /AcroForm field data for the JS\n * sandbox, or `null` when no field data is present in the PDF file.\n */\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n /**\n * @returns {Promise<boolean>} A promise that is resolved with `true`\n * if some /AcroForm fields have JavaScript actions.\n */\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n /**\n * @returns {Promise<Array<string> | null>} A promise that is resolved with an\n * {Array<string>} containing IDs of annotations that have a calculation\n * action, or `null` when no such annotations are present in the PDF file.\n */\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n * @property {boolean} [includeMarkedContent] - When true include marked\n * content items in the items array of TextContent. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array<TextItem | TextMarkedContent>} items - Array of\n * {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n * items are included when includeMarkedContent is true.\n * @property {Object<string, TextStyle>} styles - {@link TextStyle} objects,\n * indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array<any>} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n * line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n * 'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n * 'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n * can be 'display' (viewable annotations), 'print' (printable annotations),\n * or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n * the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n * onto the canvas, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {Array<any>} [transform] - Additional transform, applied just\n * before viewport transform.\n * @property {Object} [imageLayer] - An object that has `beginLayout`,\n * `endLayout` and `appendImage` functions.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n * when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n * Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n * <color> value, a `CanvasGradient` object (a linear or radial gradient) or\n * a `CanvasPattern` object (a repetitive image). The default value is\n * 'rgb(255,255,255)'.\n * @property {Promise<OptionalContentConfig>} [optionalContentConfigPromise] -\n * A promise that should resolve with an {@link OptionalContentConfig}\n * created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n * the configuration will be fetched automatically with the default visibility\n * states set.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n * in the operatorList, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array<StructTreeNode | StructTreeContent>} children - Array of\n * {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n * elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array<number>} fnArray - Array containing the operator functions.\n * @property {Array<any>} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n /** @type {PDFObjects} */\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {RefProxy | null} The reference that points to this page.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @type {Array<number>} An array of the visible portion of the PDF page in\n * user space units [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise<Array<any>>} A promise that is resolved with an\n * {Array} of the annotation objects.\n */\n getAnnotations({ intent = \"display\" } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n if (!promise) {\n promise = this._transport.getAnnotations(\n this._pageIndex,\n intentArgs.renderingIntent\n );\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n deprecated(\n \"`title`-property on annotation, please use `titleObj` instead.\"\n );\n return annotation.titleObj.str;\n },\n });\n }\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n deprecated(\n \"`contents`-property on annotation, please use `contentsObj` instead.\"\n );\n return annotation.contentsObj.str;\n },\n });\n }\n }\n return annotations;\n });\n }\n }\n return promise;\n }\n\n /**\n * @returns {Promise<Object>} A promise that is resolved with an\n * {Object} with JS actions.\n */\n getJSActions() {\n return (this._jsActionsPromise ||= this._transport.getPageJSActions(\n this._pageIndex\n ));\n }\n\n /**\n * @returns {Promise<Object | null>} A promise that is resolved with\n * an {Object} with a fake DOM object (a tree structure where elements\n * are {Object} with a name, attributes (class, style, ...), value and\n * children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n */\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n *\n * @param {RenderParameters} params - Page render parameters.\n * @returns {RenderTask} An object that contains a promise that is\n * resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n }) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n if (arguments[0]?.renderInteractiveForms !== undefined) {\n deprecated(\n \"render no longer accepts the `renderInteractiveForms`-option, \" +\n \"please use the `annotationMode`-option instead.\"\n );\n if (\n arguments[0].renderInteractiveForms === true &&\n annotationMode === AnnotationMode.ENABLE\n ) {\n annotationMode = AnnotationMode.ENABLE_FORMS;\n }\n }\n if (arguments[0]?.includeAnnotationStorage !== undefined) {\n deprecated(\n \"render no longer accepts the `includeAnnotationStorage`-option, \" +\n \"please use the `annotationMode`-option instead.\"\n );\n if (\n arguments[0].includeAnnotationStorage === true &&\n annotationMode === AnnotationMode.ENABLE\n ) {\n annotationMode = AnnotationMode.ENABLE_STORAGE;\n }\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode\n );\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance =\n canvasFactory ||\n new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n const intentPrint = !!(\n intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n );\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error),\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n });\n\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n Promise.all([\n intentState.displayReadyCapability.promise,\n optionalContentConfigPromise,\n ])\n .then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig,\n });\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @param {GetOperatorListParameters} params - Page getOperatorList\n * parameters.\n * @returns {Promise<PDFOperatorList>} A promise resolved with an\n * {@link PDFOperatorList} object that represents the page's operator list.\n */\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n /* isOpList = */ true\n );\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise<TextContent>} A promise that is resolved with a\n * {@link TextContent} object that represents the page's text content.\n */\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n // TODO: We need to revisit this once the XFA foreground patch lands and\n // only do this for non-foreground XFA.\n return this.getXfa().then(xfa => {\n return XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({ value, done }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * @returns {Promise<StructTreeNode>} A promise that is resolved with a\n * {@link StructTreeNode} object that represents the page's structure tree,\n * or `null` when no structure tree is present for the current page.\n */\n getStructTree() {\n return (this._structTreePromise ||= this._transport.getStructTree(\n this._pageIndex\n ));\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intentState.opListReadCapability) {\n // Avoid errors below, since the renderTasks are just stubs.\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n *\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @private\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n for (const { renderTasks, operatorList } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n if (resetStats && this._stats) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n return true;\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList({ renderingIntent, cacheKey }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Number.isInteger(renderingIntent) && renderingIntent > 0,\n '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n );\n }\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage:\n renderingIntent & RenderingIntentFlag.ANNOTATIONS_STORAGE\n ? this._transport.annotationStorage.serializable\n : null,\n }\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n reason instanceof Error,\n '_abortOperatorList: Expected valid \"reason\" argument.'\n );\n }\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.size > 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader\n .cancel(new AbortException(reason.message))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n postMessage(obj, transfers) {\n const event = {\n data:\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"SKIP_BABEL\") ||\n transfers\n ? structuredClone(obj, transfers)\n : structuredClone(obj),\n };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n * the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0,\n};\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n PDFWorkerUtil.isWorkerDisabled = true;\n\n PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n ? \"../pdf.worker.js\"\n : \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n static get _workerPorts() {\n return shadow(this, \"_workerPorts\", new WeakMap());\n }\n\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n if (port && PDFWorker._workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker._workerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n /**\n * Promise for worker initialization completion.\n * @type {Promise<void>}\n */\n get promise() {\n return this._readyCapability.promise;\n }\n\n /**\n * The current `workerPort`, when it exists.\n * @type {Worker}\n */\n get port() {\n return this._port;\n }\n\n /**\n * The current MessageHandler-instance.\n * @type {MessageHandler}\n */\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {\n // Ignoring \"ready\" event -- MessageHandler should already be initialized\n // and ready to accept messages.\n });\n this._readyCapability.resolve();\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (\n typeof Worker !== \"undefined\" &&\n !PDFWorkerUtil.isWorkerDisabled &&\n !PDFWorker._mainThreadWorkerMessageHandler\n ) {\n let workerSrc = PDFWorker.workerSrc;\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n !isSameOrigin(window.location.href, workerSrc)\n ) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(\n new URL(workerSrc, window.location).href\n );\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([255]);\n // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n // typed array. Also, checking if we can use transfers.\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n warn(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n // It might take time for the worker to initialize. We will try to send\n // the \"test\" message immediately, and once the \"ready\" message arrives.\n // The worker shall process only the first received \"test\" message.\n sendTest();\n return;\n } catch (e) {\n info(\"The worker has been disabled.\");\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal\n .then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n })\n .catch(reason => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n );\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker._workerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (this._workerPorts.has(params.port)) {\n return this._workerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n /**\n * The current `workerSrc`, when it exists.\n * @type {string}\n */\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n // Loads worker code into the main-thread.\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a `<script>` tag.\n return mainWorkerMessageHandler;\n }\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n const worker = await import(\"pdfjs/core/worker.js\");\n return worker.WorkerMessageHandler;\n }\n if (\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n // eslint-disable-next-line no-undef\n typeof __non_webpack_require__ === \"function\"\n ) {\n // Since bundlers, such as Webpack, cannot be told to leave `require`\n // statements alone we are thus forced to jump through hoops in order\n // to prevent `Critical dependency: ...` warnings in third-party\n // deployments of the built `pdf.js`/`pdf.worker.js` files; see\n // https://github.com/webpack/webpack/issues/8826\n //\n // The following hack is based on the assumption that code running in\n // Node.js won't ever be affected by e.g. Content Security Policies that\n // prevent the use of `eval`. If that ever occurs, we should revert this\n // to a normal `__non_webpack_require__` statement and simply document\n // the Webpack warnings instead (telling users to ignore them).\n //\n // eslint-disable-next-line no-eval\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await loadScript(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n PDFWorker.getWorkerSrc = function () {\n deprecated(\n \"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\"\n );\n return this.workerSrc;\n };\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n #docStats = null;\n\n #pageCache = new Map();\n\n #pagePromises = new Map();\n\n #metadataPromise = null;\n\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement,\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked,\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl,\n });\n }\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = createPromiseCapability();\n\n this.setupMessageHandler();\n }\n\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new AnnotationStorage());\n }\n\n get stats() {\n return this.#docStats;\n }\n\n getRenderingIntent(\n intent,\n annotationMode = AnnotationMode.ENABLE,\n isOpList = false\n ) {\n let renderingIntent = RenderingIntentFlag.DISPLAY; // Default value.\n let lastModified = \"\";\n\n switch (intent) {\n case \"any\":\n renderingIntent = RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = RenderingIntentFlag.PRINT;\n break;\n default:\n warn(`getRenderingIntent - invalid intent: ${intent}`);\n }\n\n switch (annotationMode) {\n case AnnotationMode.DISABLE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case AnnotationMode.ENABLE:\n break;\n case AnnotationMode.ENABLE_FORMS:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case AnnotationMode.ENABLE_STORAGE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n\n lastModified = this.annotationStorage.lastModified;\n break;\n default:\n warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n\n if (isOpList) {\n renderingIntent += RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${lastModified}`,\n };\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = createPromiseCapability();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(\n new Error(\"Worker was destroyed during onPassword callback\")\n );\n }\n\n const waitOn = [];\n // We need to wait for all renderings to be completed, e.g.\n // timeout/rAF can take a long time.\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n // Allow `AnnotationStorage`-related clean-up when destroying the document.\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n // We also need to wait for the worker to finish its long running tasks.\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(\n new AbortException(\"Worker was terminated.\")\n );\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const { messageHandler, loadingTask } = this;\n\n messageHandler.on(\"GetReader\", (data, sink) => {\n assert(\n this._networkStream,\n \"GetReader - no `IPDFStream` instance available.\"\n );\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total,\n };\n };\n sink.onPull = () => {\n this._fullReader\n .read()\n .then(function ({ value, done }) {\n if (done) {\n sink.close();\n return;\n }\n assert(\n isArrayBuffer(value),\n \"GetReader - expected an ArrayBuffer.\"\n );\n // Enqueue data chunk into sink, and transfer it\n // to other side as `Transferable` object.\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })\n .catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n throw readyReason;\n });\n };\n });\n\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = createPromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n // If stream or range are disabled, it's our only way to report\n // loading progress.\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total,\n });\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength,\n });\n }, headersCapability.reject);\n\n return headersCapability.promise;\n });\n\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(\n this._networkStream,\n \"GetRangeReader - no `IPDFStream` instance available.\"\n );\n const rangeReader = this._networkStream.getRangeReader(\n data.begin,\n data.end\n );\n\n // When streaming is enabled, it's possible that the data requested here\n // has already been fetched via the `_fullRequestReader` implementation.\n // However, given that the PDF data is loaded asynchronously on the\n // main-thread and then sent via `postMessage` to the worker-thread,\n // it may not have been available during parsing (hence the attempt to\n // use range requests here).\n //\n // To avoid wasting time and resources here, we'll thus *not* dispatch\n // range requests if the data was already loaded but has not been sent to\n // the worker-thread yet (which will happen via the `_fullRequestReader`).\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader\n .read()\n .then(function ({ value, done }) {\n if (done) {\n sink.close();\n return;\n }\n assert(\n isArrayBuffer(value),\n \"GetRangeReader - expected an ArrayBuffer.\"\n );\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })\n .catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n throw readyReason;\n });\n };\n });\n\n messageHandler.on(\"GetDoc\", ({ pdfInfo }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new UnknownErrorException(ex.message, ex.details);\n break;\n default:\n unreachable(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = createPromiseCapability();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this._passwordCapability.reject(password);\n } else {\n this._passwordCapability.resolve({ password });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(\n new PasswordException(exception.message, exception.code)\n );\n }\n return this._passwordCapability.promise;\n });\n\n messageHandler.on(\"DataLoaded\", data => {\n // For consistency: Ensure that progress is always reported when the\n // entire PDF file has been loaded, regardless of how it was fetched.\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length,\n });\n\n this.downloadInfoCapability.resolve(data);\n });\n\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n if (params.pdfBug && globalThis.FontInspector?.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n },\n };\n }\n const font = new FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry,\n });\n\n this.fontLoader\n .bind(font)\n .catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", { id });\n })\n .finally(() => {\n if (!params.fontExtraProperties && font.data) {\n // Immediately release the `font.data` property once the font\n // has been attached to the DOM, since it's no longer needed,\n // rather than waiting for a `PDFDocumentProxy.cleanup` call.\n // Since `font.data` could be very large, e.g. in some cases\n // multiple megabytes, this will help reduce memory usage.\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n // Ignore any pending requests if the worker was terminated.\n return;\n }\n\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n\n // Heuristic that will allow us not to store large data.\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData?.data?.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total,\n });\n });\n\n messageHandler.on(\"DocStats\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Ensure that a `PDFDocumentProxy.stats` call-site cannot accidentally\n // modify this internal data.\n this.#docStats = Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes),\n });\n });\n\n messageHandler.on(\n \"UnsupportedFeature\",\n this._onUnsupportedFeature.bind(this)\n );\n\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.CMapReaderFactory) {\n return Promise.reject(\n new Error(\n \"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"\n )\n );\n }\n return this.CMapReaderFactory.fetch(data);\n });\n\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.StandardFontDataFactory) {\n return Promise.reject(\n new Error(\n \"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"\n )\n );\n }\n return this.StandardFontDataFactory.fetch(data);\n });\n }\n\n _onUnsupportedFeature({ featureId }) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this.loadingTask.onUnsupportedFeature?.(featureId);\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (\n !Number.isInteger(pageNumber) ||\n pageNumber <= 0 ||\n pageNumber > this._numPages\n ) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler\n .sendWithPromise(\"GetPage\", {\n pageIndex,\n })\n .then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n const page = new PDFPageProxy(\n pageIndex,\n pageInfo,\n this,\n this._params.ownerDocument,\n this._params.pdfBug\n );\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n getPageIndex(ref) {\n if (\n typeof ref !== \"object\" ||\n ref === null ||\n !Number.isInteger(ref.num) ||\n ref.num < 0 ||\n !Number.isInteger(ref.gen) ||\n ref.gen < 0\n ) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen,\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent,\n });\n }\n\n saveDocument() {\n return this.messageHandler\n .sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: this._fullReader?.filename ?? null,\n })\n .finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n\n getFieldObjects() {\n return (this._getFieldObjectsPromise ||=\n this.messageHandler.sendWithPromise(\"GetFieldObjects\", null));\n }\n\n hasJSActions() {\n return (this._hasJSActionsPromise ||= this.messageHandler.sendWithPromise(\n \"HasJSActions\",\n null\n ));\n }\n\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id,\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex,\n });\n }\n\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex,\n });\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler\n .sendWithPromise(\"GetOptionalContentConfig\", null)\n .then(results => {\n return new OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return (this.#metadataPromise ||= this.messageHandler\n .sendWithPromise(\"GetMetadata\", null)\n .then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null,\n };\n }));\n }\n\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n\n async startCleanup(keepLoadedFonts = false) {\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return; // No need to manually clean-up when destruction has started.\n }\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(\n `startCleanup: Page ${page.pageNumber} is currently rendering.`\n );\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n }\n\n get loadingParams() {\n const params = this._params;\n return shadow(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n enableXfa: params.enableXfa,\n });\n }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n */\nclass PDFObjects {\n #objs = Object.create(null);\n\n /**\n * Ensures there is an object defined for `objId`.\n *\n * @param {string} objId\n * @returns {Object}\n */\n #ensureObj(objId) {\n const obj = this.#objs[objId];\n if (obj) {\n return obj;\n }\n return (this.#objs[objId] = {\n capability: createPromiseCapability(),\n data: null,\n });\n }\n\n /**\n * If called *without* callback, this returns the data of `objId` but the\n * object needs to be resolved. If it isn't, this method throws.\n *\n * If called *with* a callback, the callback is called with the data of the\n * object once the object is resolved. That means, if you call this method\n * and the object is already resolved, the callback gets called right away.\n *\n * @param {string} objId\n * @param {function} [callback]\n * @returns {any}\n */\n get(objId, callback = null) {\n // If there is a callback, then the get can be async and the object is\n // not required to be resolved right now.\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n // If there isn't a callback, the user expects to get the resolved data\n // directly.\n const obj = this.#objs[objId];\n // If there isn't an object yet or the object isn't resolved, then the\n // data isn't ready yet!\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n\n /**\n * @param {string} objId\n * @returns {boolean}\n */\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n\n /**\n * Resolves the object `objId` with optional `data`.\n *\n * @param {string} objId\n * @param {any} [data]\n */\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n\n clear() {\n this.#objs = Object.create(null);\n }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n */\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n\n /**\n * Callback for incremental rendering -- a function that will be called\n * each time the rendering is paused. To continue rendering call the\n * function that is the first argument to the callback.\n * @type {function}\n */\n this.onContinue = null;\n }\n\n /**\n * Promise for rendering task completion.\n * @type {Promise<void>}\n */\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n /**\n * Cancels the rendering task. If the task is currently rendering it will\n * not be cancelled until graphics pauses with a timeout. The promise that\n * this object extends will be rejected when cancelled.\n */\n cancel() {\n this._internalRenderTask.cancel();\n }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass InternalRenderTask {\n static get canvasInUse() {\n return shadow(this, \"canvasInUse\", new WeakSet());\n }\n\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame =\n useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = createPromiseCapability();\n this.task = new RenderTask(this);\n // caching this-bound methods\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {\n // Ignoring errors, since we only want to know when rendering is\n // no longer pending.\n });\n }\n\n initializeGraphics({ transparency = false, optionalContentConfig }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.canvasInUse.has(this._canvas)) {\n throw new Error(\n \"Cannot use the same canvas during multiple render() operations. \" +\n \"Use different canvas or ensure previous operations were \" +\n \"cancelled or completed.\"\n );\n }\n InternalRenderTask.canvasInUse.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const { canvasContext, viewport, transform, imageLayer, background } =\n this.params;\n\n this.gfx = new CanvasGraphics(\n canvasContext,\n this.commonObjs,\n this.objs,\n this.canvasFactory,\n imageLayer,\n optionalContentConfig,\n this.annotationCanvasMap\n );\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background,\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n if (this._canvas) {\n InternalRenderTask.canvasInUse.delete(this._canvas);\n }\n this.callback(\n error ||\n new RenderingCancelledException(\n `Rendering cancelled, page ${this._pageIndex + 1}`,\n \"canvas\"\n )\n );\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n this._continue();\n }\n\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(\n this.operatorList,\n this.operatorListIdx,\n this._continueBound,\n this.stepper\n );\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n if (this._canvas) {\n InternalRenderTask.canvasInUse.delete(this._canvas);\n }\n this.callback();\n }\n }\n }\n}\n\n/** @type {string} */\nconst version =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : null;\n/** @type {string} */\nconst build =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : null;\n\nexport {\n build,\n DefaultCanvasFactory,\n DefaultCMapReaderFactory,\n DefaultStandardFontDataFactory,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFDocumentLoadingTask,\n PDFDocumentProxy,\n PDFPageProxy,\n PDFWorker,\n RenderTask,\n setPDFNetworkStreamFactory,\n version,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/* Copyright 2015 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 BaseCanvasFactory,\n BaseCMapReaderFactory,\n BaseStandardFontDataFactory,\n BaseSVGFactory,\n} from \"./base_factory.js\";\nimport { BaseException, stringToBytes, Util, warn } from \"../shared/util.js\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass PixelsPerInch {\n static CSS = 96.0;\n\n static PDF = 72.0;\n\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({ ownerDocument = globalThis.document } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n /**\n * @ignore\n */\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\n\nasync function fetchData(url, asTypedArray = false) {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n isValidFetchUrl(url, document.baseURI)\n ) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray\n ? new Uint8Array(await response.arrayBuffer())\n : stringToBytes(await response.text());\n }\n\n // The Fetch API is not supported.\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, /* asTypedArray = */ true);\n\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = stringToBytes(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n}\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n /**\n * @ignore\n */\n _fetchData(url, compressionType) {\n return fetchData(url, /* asTypedArray = */ this.isCompressed).then(data => {\n return { cMapData: data, compressionType };\n });\n }\n}\n\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n /**\n * @ignore\n */\n _fetchData(url) {\n return fetchData(url, /* asTypedArray = */ true);\n }\n}\n\nclass DOMSVGFactory extends BaseSVGFactory {\n /**\n * @ignore\n */\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array<number>} viewBox - The xMin, yMin, xMax and\n * yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset. The\n * default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset. The\n * default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be flipped.\n * The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} [scale] - The scale, overriding the one in the cloned\n * viewport. The default value is `this.scale`.\n * @property {number} [rotation] - The rotation, in degrees, overriding the one\n * in the cloned viewport. The default value is `this.rotation`.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `this.offsetX`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `this.offsetY`.\n * @property {boolean} [dontFlip] - If true, the x-axis will not be flipped.\n * The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n /**\n * @param {PageViewportParameters}\n */\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n // creating transform to convert pdf coordinate system to the normal\n // canvas like coordinates taking in account scale and rotation\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n // Normalize the rotation, by clamping it to the [0, 360) range.\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\n \"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\"\n );\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n // creating transform for the following operations:\n // translate(-centerX, -centerY), rotate and flip vertically,\n // scale, and translate(offsetCanvasX, offsetCanvasY)\n this.transform = [\n rotateA * scale,\n rotateB * scale,\n rotateC * scale,\n rotateD * scale,\n offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY,\n ];\n\n this.width = width;\n this.height = height;\n }\n\n /**\n * Clones viewport, with optional additional properties.\n * @param {PageViewportCloneParameters} [params]\n * @returns {PageViewport} Cloned viewport.\n */\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * Converts PDF point to the viewport coordinates. For examples, useful for\n * converting PDF location into canvas pixel coordinates.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @returns {Object} Object containing `x` and `y` properties of the\n * point in the viewport coordinate space.\n * @see {@link convertToPdfPoint}\n * @see {@link convertToViewportRectangle}\n */\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n\n /**\n * Converts PDF rectangle to the viewport coordinates.\n * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n * @returns {Array} Array containing corresponding coordinates of the\n * rectangle in the viewport coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToViewportRectangle(rect) {\n const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n /**\n * Converts viewport coordinates to the PDF location. For examples, useful\n * for converting canvas pixel location into PDF one.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @returns {Object} Object containing `x` and `y` properties of the\n * point in the PDF coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\n\nclass RenderingCancelledException extends BaseException {\n constructor(msg, type) {\n super(msg, \"RenderingCancelledException\");\n this.type = type;\n }\n}\n\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\n/**\n * Gets the filename from a given URL.\n * @param {string} url\n * @returns {string}\n */\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(\n anchor > 0 ? anchor : url.length,\n query > 0 ? query : url.length\n );\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\n/**\n * Returns the filename or guessed filename from the url (see issue 3455).\n * @param {string} url - The original PDF location.\n * @param {string} defaultFilename - The value returned if the filename is\n * unknown, or the protocol is unsupported.\n * @returns {string} Guessed PDF filename.\n */\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n // SCHEME HOST 1.PATH 2.QUERY 3.REF\n // Pattern to get last matching NAME.pdf\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename =\n reFilename.exec(splitURI[1]) ||\n reFilename.exec(splitURI[2]) ||\n reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf\n try {\n suggestedFilename = reFilename.exec(\n decodeURIComponent(suggestedFilename)\n )[0];\n } catch (ex) {\n // Possible (extremely rare) errors:\n // URIError \"Malformed URI\", e.g. for \"%AA.pdf\"\n // TypeError \"null has no properties\", e.g. for \"%2F.pdf\"\n }\n }\n }\n return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n warn(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n warn(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now(),\n });\n // Remove timer from started so it can be called again.\n delete this.started[name];\n }\n\n toString() {\n // Find the longest name for padding purposes.\n const outBuf = [];\n let longest = 0;\n for (const time of this.times) {\n const name = time.name;\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const { protocol } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n // The Fetch API only supports the http/https protocols, and not file/ftp.\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false; // `new URL()` will throw on incorrect data.\n }\n}\n\n/**\n * @param {string} src\n * @param {boolean} [removeScriptElement]\n * @returns {Promise<void>}\n */\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n /**\n * Convert a PDF date string to a JavaScript `Date` object.\n *\n * The PDF date string format is described in section 7.9.4 of the official\n * PDF 32000-1:2008 specification. However, in the PDF 1.7 reference (sixth\n * edition) Adobe describes the same format including a trailing apostrophe.\n * This syntax in incorrect, but Adobe Acrobat creates PDF files that contain\n * them. We ignore all apostrophes as they are not necessary for date parsing.\n *\n * Moreover, Adobe Acrobat doesn't handle changing the date to universal time\n * and doesn't use the user's time zone (effectively ignoring the HH' and mm'\n * parts of the date string).\n *\n * @param {string} input\n * @returns {Date|null}\n */\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n\n // Lazily initialize the regular expression.\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\n \"^D:\" + // Prefix (required)\n \"(\\\\d{4})\" + // Year (required)\n \"(\\\\d{2})?\" + // Month (optional)\n \"(\\\\d{2})?\" + // Day (optional)\n \"(\\\\d{2})?\" + // Hour (optional)\n \"(\\\\d{2})?\" + // Minute (optional)\n \"(\\\\d{2})?\" + // Second (optional)\n \"([Z|+|-])?\" + // Universal time relation (optional)\n \"(\\\\d{2})?\" + // Offset hour (optional)\n \"'?\" + // Splitting apostrophe (optional)\n \"(\\\\d{2})?\" + // Offset minute (optional)\n \"'?\" // Trailing apostrophe (optional)\n );\n }\n\n // Optional fields that don't satisfy the requirements from the regular\n // expression (such as incorrect digit counts or numbers that are out of\n // range) will fall back the defaults from the specification.\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n\n // JavaScript's `Date` object expects the month to be between 0 and 11\n // instead of 1 and 12, so we have to correct for that.\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n // Universal time relation 'Z' means that the local time is equal to the\n // universal time, whereas the relations '+'/'-' indicate that the local\n // time is later respectively earlier than the universal time. Every date\n // is normalized to universal time.\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\n\n/**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n */\nfunction getXfaPageViewport(xfaPage, { scale = 1, rotation = 0 }) {\n const { width, height } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n\n return new PageViewport({\n viewBox,\n scale,\n rotation,\n });\n}\n\nexport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n DOMSVGFactory,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n isDataScheme,\n isPdfFile,\n isValidFetchUrl,\n loadScript,\n PageViewport,\n PDFDateString,\n PixelsPerInch,\n RenderingCancelledException,\n StatTimer,\n};\n","/* Copyright 2015 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 { CMapCompressionType, unreachable } from \"../shared/util.js\";\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n unreachable(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\"),\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n /**\n * @ignore\n */\n _createCanvas(width, height) {\n unreachable(\"Abstract method `_createCanvas` called.\");\n }\n}\n\nclass BaseCMapReaderFactory {\n constructor({ baseUrl = null, isCompressed = false }) {\n if (this.constructor === BaseCMapReaderFactory) {\n unreachable(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({ name }) {\n if (!this.baseUrl) {\n throw new Error(\n 'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'\n );\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed\n ? CMapCompressionType.BINARY\n : CMapCompressionType.NONE;\n\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(\n `Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`\n );\n });\n }\n\n /**\n * @ignore\n */\n _fetchData(url, compressionType) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\n\nclass BaseStandardFontDataFactory {\n constructor({ baseUrl = null }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n unreachable(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n\n async fetch({ filename }) {\n if (!this.baseUrl) {\n throw new Error(\n 'The standard font \"baseUrl\" parameter must be specified, ensure that ' +\n 'the \"standardFontDataUrl\" API parameter is provided.'\n );\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n\n /**\n * @ignore\n */\n _fetchData(url) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\n\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n unreachable(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n\n return svg;\n }\n\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n\n /**\n * @ignore\n */\n _createSVG(type) {\n unreachable(\"Abstract method `_createSVG` called.\");\n }\n}\n\nexport {\n BaseCanvasFactory,\n BaseCMapReaderFactory,\n BaseStandardFontDataFactory,\n BaseSVGFactory,\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 {\n assert,\n bytesToString,\n IsEvalSupportedCached,\n shadow,\n string32,\n unreachable,\n UNSUPPORTED_FEATURES,\n warn,\n} from \"../shared/util.js\";\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n // For testing only.\n styleElement = null,\n }) {\n if (this.constructor === BaseFontLoader) {\n unreachable(\"Cannot initialize BaseFontLoader.\");\n }\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n\n this.nativeFontFaces = [];\n this.styleElement =\n typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ? styleElement\n : null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n this._document.documentElement\n .getElementsByTagName(\"head\")[0]\n .appendChild(styleElement);\n }\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n // Add the font to the DOM only once; skip if the font is already loaded.\n if (font.attached || font.missingFile) {\n return;\n }\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: UNSUPPORTED_FEATURES.errorFontLoadNative,\n });\n warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n\n // When font loading failed, fall back to the built-in font renderer.\n font.disableFontFace = true;\n throw ex;\n }\n }\n return; // The font was, asynchronously, loaded.\n }\n\n // !this.isFontLoadingAPISupported\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return; // The font was, synchronously, loaded.\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent([rule], [font], request);\n });\n // The font was, asynchronously, loaded.\n }\n }\n\n _queueLoadingCallback(callback) {\n unreachable(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n return shadow(\n this,\n \"isFontLoadingAPISupported\",\n hasFonts && !this.styleElement\n );\n }\n return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n\n // eslint-disable-next-line getter-return\n get isSyncFontLoadingSupported() {\n unreachable(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n // eslint-disable-next-line getter-return\n get _loadTestFont() {\n unreachable(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n unreachable(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n FontLoader = class MozcentralFontLoader extends BaseFontLoader {\n get isSyncFontLoadingSupported() {\n return shadow(this, \"isSyncFontLoadingSupported\", true);\n }\n };\n} else {\n // PDFJSDev.test('CHROME || GENERIC')\n\n FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0,\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\")) {\n if (typeof navigator === \"undefined\") {\n // Node.js - we can pretend that sync font loading is supported.\n supported = true;\n } else {\n // User agent string sniffing is bad, but there is no reliable way to\n // tell if the font is fully loaded and ready to be used with canvas.\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(\n navigator.userAgent\n );\n if (m?.[1] >= 14) {\n supported = true;\n }\n // TODO - other browsers...\n }\n }\n return shadow(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n // Sending all completed requests in order of how they were queued.\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback,\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n // This is a CFF font with 1 glyph for '.' that fills its entire width\n // and height.\n return atob(\n \"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" +\n \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" +\n \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" +\n \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" +\n \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" +\n \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" +\n \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" +\n \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" +\n \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" +\n \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" +\n \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" +\n \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" +\n \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" +\n \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" +\n \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" +\n \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" +\n \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\"\n );\n };\n return shadow(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n /** Hack begin */\n // There's currently no event when a font has finished downloading so the\n // following code is a dirty hack to 'guess' when a font is ready.\n // It's assumed fonts are loaded in order, so add a known test font after\n // the desired fonts and then test for the loading of that test font.\n\n function int32(data, offset) {\n return (\n (data.charCodeAt(offset) << 24) |\n (data.charCodeAt(offset + 1) << 16) |\n (data.charCodeAt(offset + 2) << 8) |\n (data.charCodeAt(offset + 3) & 0xff)\n );\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n\n // The temporary canvas is used to determine if fonts are loaded.\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n\n let called = 0;\n function isFontReady(name, callback) {\n called++;\n // With setTimeout clamping this gives the font ~100ms to load.\n if (called > 30) {\n warn(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"1.875em \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n // Chromium seems to cache fonts based on a hash of the actual font data,\n // so the font must be modified for each load test else it will appear to\n // be loaded already.\n // TODO: This could maybe be made faster by avoiding the btoa of the full\n // font by splitting it in chunks before hand and padding the font id.\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n data = spliceString(\n data,\n COMMENT_OFFSET,\n loadTestFontId.length,\n loadTestFontId\n );\n // CFF checksum is important for IE, adjusting it\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n }\n if (i < loadTestFontId.length) {\n // align to 4 bytes boundary\n checksum =\n (checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i)) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n\n const names = [];\n for (const font of fonts) {\n names.push(font.loadedName);\n }\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (const name of names) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.appendChild(span);\n }\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n /** Hack end */\n }\n };\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nclass FontFaceObject {\n constructor(\n translatedData,\n {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null,\n }\n ) {\n this.compiledGlyphs = Object.create(null);\n // importing translated data\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight,\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(\n this.cssFontInfo.fontFamily,\n this.data,\n css\n );\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = bytesToString(this.data);\n // Add the @font-face rule to the document.\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n this._onUnsupportedFeature({\n featureId: UNSUPPORTED_FEATURES.errorFontGetPath,\n });\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n return (this.compiledGlyphs[character] = function (c, size) {\n // No-op function, to allow rendering to continue.\n });\n }\n\n // If we can, compile cmds into JS for MAXIMUM SPEED...\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n // eslint-disable-next-line no-new-func\n return (this.compiledGlyphs[character] = new Function(\n \"c\",\n \"size\",\n jsBuf.join(\"\")\n ));\n }\n // ... but fall back on using Function.prototype.apply() if we're\n // blocked from using eval() for whatever reason (like CSP policies).\n return (this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n });\n }\n}\n\nexport { FontFaceObject, FontLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n BaseCanvasFactory,\n BaseCMapReaderFactory,\n BaseStandardFontDataFactory,\n} from \"./base_factory.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { unreachable } from \"../shared/util.js\";\n\nlet NodeCanvasFactory = class {\n constructor() {\n unreachable(\"Not implemented: NodeCanvasFactory\");\n }\n};\n\nlet NodeCMapReaderFactory = class {\n constructor() {\n unreachable(\"Not implemented: NodeCMapReaderFactory\");\n }\n};\n\nlet NodeStandardFontDataFactory = class {\n constructor() {\n unreachable(\"Not implemented: NodeStandardFontDataFactory\");\n }\n};\n\nif ((typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS) {\n const fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = __non_webpack_require__(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n };\n\n NodeCanvasFactory = class extends BaseCanvasFactory {\n /**\n * @ignore\n */\n _createCanvas(width, height) {\n const Canvas = __non_webpack_require__(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n };\n\n NodeCMapReaderFactory = class extends BaseCMapReaderFactory {\n /**\n * @ignore\n */\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return { cMapData: data, compressionType };\n });\n }\n };\n\n NodeStandardFontDataFactory = class extends BaseStandardFontDataFactory {\n /**\n * @ignore\n */\n _fetchData(url) {\n return fetchData(url);\n }\n };\n}\n\nexport {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap } from \"../shared/util.js\";\n\n/**\n * Key/value storage for annotation data in forms.\n */\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._timeStamp = Date.now();\n this._modified = false;\n\n // Callbacks to signal when the modification state is set or reset.\n // This is used by the viewer to only bind on `beforeunload` if forms\n // are actually edited to prevent doing so unconditionally since that\n // can have undesirable effects.\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n /**\n * Get the value for a given key if it exists, or return the default value.\n *\n * @public\n * @memberof AnnotationStorage\n * @param {string} key\n * @param {Object} defaultValue\n * @returns {Object}\n */\n getValue(key, defaultValue) {\n const value = this._storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n\n /**\n * Set the value for a given key\n *\n * @public\n * @memberof AnnotationStorage\n * @param {string} key\n * @param {Object} value\n */\n setValue(key, value) {\n const obj = this._storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this._storage.set(key, value);\n }\n if (modified) {\n this._timeStamp = Date.now();\n this._setModified();\n }\n }\n\n getAll() {\n return this._storage.size > 0 ? objectFromMap(this._storage) : null;\n }\n\n get size() {\n return this._storage.size;\n }\n\n /**\n * @private\n */\n _setModified() {\n if (!this._modified) {\n this._modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n /**\n * PLEASE NOTE: Only intended for usage within the API itself.\n * @ignore\n */\n get serializable() {\n return this._storage.size > 0 ? this._storage : null;\n }\n\n /**\n * PLEASE NOTE: Only intended for usage within the API itself.\n * @ignore\n */\n get lastModified() {\n return this._timeStamp.toString();\n }\n}\n\nexport { AnnotationStorage };\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 FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n IsLittleEndianCached,\n OPS,\n shadow,\n TextRenderingMode,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n getShadingPattern,\n PathType,\n TilingPattern,\n} from \"./pattern_helper.js\";\nimport { PixelsPerInch } from \"./display_utils.js\";\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n// Minimal font size that would be used during canvas fillText operations.\nconst MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\n\n// Defines the time the `executeOperatorList`-method is going to be executing\n// before it stops and shedules a continue of execution.\nconst EXECUTION_TIME = 15; // ms\n// Defines the number of steps before checking the execution time.\nconst EXECUTION_STEPS = 10;\n\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\n\nconst FULL_CHUNK_HEIGHT = 16;\n\n// Because of https://bugs.chromium.org/p/chromium/issues/detail?id=1170396\n// some curves aren't rendered correctly.\n// Multiplying lineWidth by this factor should help to have \"correct\"\n// rendering with no artifacts.\n// Once the bug is fixed upstream, we can remove this constant and its use.\nconst LINEWIDTH_SCALE_FACTOR = 1.000001;\n\n/**\n * Overrides certain methods on a 2d ctx so that when they are called they\n * will also call the same method on the destCtx. The methods that are\n * overridden are all the transformation state modifiers, path creation, and\n * save/restore. We only forward these specific methods because they are the\n * only state modifiers that we cannot copy over when we switch contexts.\n *\n * To remove mirroring call `ctx._removeMirroring()`.\n *\n * @param {Object} ctx - The 2d canvas context that will duplicate its calls on\n * the destCtx.\n * @param {Object} destCtx - The 2d canvas context that will receive the\n * forwarded calls.\n */\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\n\nfunction addContextCurrentTransform(ctx) {\n if (ctx._transformStack) {\n // Reset the transform stack.\n ctx._transformStack = [];\n }\n // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n if (ctx.mozCurrentTransform) {\n return;\n }\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._originalResetTransform = ctx.resetTransform;\n\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n try {\n // The call to getOwnPropertyDescriptor throws an exception in Node.js:\n // \"TypeError: Method lineWidth called on incompatible receiver\n // #<CanvasRenderingContext2D>\".\n const desc = Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(ctx),\n \"lineWidth\"\n );\n\n ctx._setLineWidth = desc.set;\n ctx._getLineWidth = desc.get;\n\n Object.defineProperty(ctx, \"lineWidth\", {\n set: function setLineWidth(width) {\n this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n },\n get: function getLineWidth() {\n return this._getLineWidth();\n },\n });\n } catch (_) {}\n\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n },\n });\n\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n // Calculation done using WolframAlpha:\n // http://www.wolframalpha.com/input/?\n // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n const [a, b, c, d, e, f] = this._transformMatrix;\n const ad_bc = a * d - b * c;\n const bc_ad = b * c - a * d;\n\n return [\n d / ad_bc,\n b / bc_ad,\n c / bc_ad,\n a / ad_bc,\n (d * e - c * f) / bc_ad,\n (b * e - a * f) / ad_bc,\n ];\n },\n });\n\n ctx.save = function ctxSave() {\n const old = this._transformMatrix;\n this._transformStack.push(old);\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n if (this._transformStack.length === 0) {\n warn(\"Tried to restore a ctx when the stack was already empty.\");\n }\n const prev = this._transformStack.pop();\n if (prev) {\n this._transformMatrix = prev;\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n const m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n const m = this._transformMatrix;\n m[0] *= x;\n m[1] *= x;\n m[2] *= y;\n m[3] *= y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n const m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * a + m[2] * b,\n m[1] * a + m[3] * b,\n m[0] * c + m[2] * d,\n m[1] * c + m[3] * d,\n m[0] * e + m[2] * f + m[4],\n m[1] * e + m[3] * f + m[5],\n ];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n ctx._originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n const cosValue = Math.cos(angle);\n const sinValue = Math.sin(angle);\n\n const m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * cosValue + m[2] * sinValue,\n m[1] * cosValue + m[3] * sinValue,\n m[0] * -sinValue + m[2] * cosValue,\n m[1] * -sinValue + m[3] * cosValue,\n m[4],\n m[5],\n ];\n\n this._originalRotate(angle);\n };\n}\n\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n getCanvas(id, width, height, trackTransform) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n // reset canvas transform for emulated mozCurrentTransform, if needed\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n return canvasEntry;\n }\n\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\n\nfunction compileType3Glyph(imgData) {\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([\n 0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0,\n ]);\n\n const width = imgData.width,\n height = imgData.height,\n width1 = width + 1;\n let i, ii, j, j0;\n const points = new Uint8Array(width1 * (height + 1));\n\n // decodes bit-packed mask data\n const lineSize = (width + 7) & ~7,\n data0 = imgData.data;\n const data = new Uint8Array(lineSize * height);\n let pos = 0;\n for (i = 0, ii = data0.length; i < ii; i++) {\n const elem = data0[i];\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n // finding interesting points: every point is located between mask pixels,\n // so there will be points of the (width + 1)x(height + 1) grid. Every point\n // will have flags assigned based on neighboring mask pixels:\n // 4 | 8\n // --P--\n // 2 | 1\n // We are interested only in points with the flags:\n // - outside corners: 1, 2, 4, 8;\n // - inside corners: 7, 11, 13, 14;\n // - and, intersections: 5, 10.\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n // 'sum' is the position of the current pixel configuration in the 'TYPES'\n // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum =\n (sum >> 2) +\n (data[pos + 1] ? 4 : 0) +\n (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n // building outlines\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const outlines = [];\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n const coords = [p % width1, i];\n\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n // set new direction\n type = pp;\n // delete mark\n points[p] = 0;\n } else {\n // type is 5 or 10, ie, a crossing\n // set new direction\n type = pp & ((0x33 * type) >> 4);\n // set new type for \"future hit\"\n points[p] &= (type >> 2) | (type << 2);\n }\n\n coords.push(p % width1, (p / width1) | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n outlines.push(coords);\n --i;\n }\n\n const drawOutline = function (c) {\n c.save();\n // the path shall be painted in [0..1]x[0..1] space\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n const o = outlines[k];\n c.moveTo(o[0], o[1]);\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor(width, height) {\n // Are soft masks and alpha values shapes or opacities?\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n // Default fore and background colors\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n // Note: fill alpha applies to all non-stroking operations\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n updatePathMinMax(transform, x, y) {\n [x, y] = Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3) {\n const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n this.updatePathMinMax(transform, box[0], box[1]);\n this.updatePathMinMax(transform, box[2], box[3]);\n }\n\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n // Stroked paths can be outside of the path bounding box by 1/2 the line\n // width.\n const scale = Util.singularValueDecompose2dScale(transform);\n const xStrokePad = (scale[0] * this.lineWidth) / 2;\n const yStrokePad = (scale[1] * this.lineWidth) / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n\n updateClipFromPath() {\n const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n\n getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n return Util.intersect(\n this.clipBox,\n this.getPathBoundingBox(pathType, transform)\n );\n }\n}\n\nfunction putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n // Put the image data to the canvas in chunks, rather than putting the\n // whole image at once. This saves JS memory, because the ImageData object\n // is smaller. It also possibly saves C++ memory within the implementation\n // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n // the data passed to putImageData()). |n| shouldn't be too small, however,\n // because too many putImageData() calls will slow things down.\n //\n // Note: as written, if the last chunk is partial, the putImageData() call\n // will (conceptually) put pixels past the bounds of the canvas. But\n // that's ok; any such pixels are ignored.\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n // There are multiple forms in which the pixel data can be passed, and\n // imgData.kind tells us which one this is.\n if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n // Grayscale, 1 bit per pixel (i.e. black-and-white).\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = (width + 7) >> 3;\n let white = 0xffffffff;\n let black = IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n // We ran out of input. Make all remaining pixels transparent.\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n // RGBA, 32-bits per pixel.\n const hasTransferMaps = !!(\n transferMapRed ||\n transferMapGreen ||\n transferMapBlue\n );\n\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === ImageKind.RGB_24BPP) {\n // RGB, 24-bits per pixel.\n const hasTransferMaps = !!(\n transferMapRed ||\n transferMapGreen ||\n transferMapBlue\n );\n\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n for (j = elemsInThisChunk; j--; ) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight =\n i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n // Expand the mask so it can be used by the canvas. Any required\n // inversion has already been handled.\n let destPos = 3; // alpha component offset\n for (let j = 0; j < thisChunkHeight; j++) {\n let elem,\n mask = 0;\n for (let k = 0; k < width; k++) {\n if (!mask) {\n elem = src[srcPos++];\n mask = 128;\n }\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\n \"strokeStyle\",\n \"fillStyle\",\n \"fillRule\",\n \"globalAlpha\",\n \"lineWidth\",\n \"lineCap\",\n \"lineJoin\",\n \"miterLimit\",\n \"globalCompositeOperation\",\n \"font\",\n ];\n for (let i = 0, ii = properties.length; i < ii; i++) {\n const property = properties[i];\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\n\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"0.625em sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n }\n }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = (layerData[i] * alpha * scale) | 0;\n }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const y =\n maskData[i - 3] * 77 + // * 0.3 / 255 * 0x10000\n maskData[i - 2] * 152 + // * 0.59 ....\n maskData[i - 1] * 28; // * 0.11 ....\n layerData[i] = transferMap\n ? (layerData[i] * transferMap[y >> 8]) >> 8\n : (layerData[i] * y) >> 16;\n }\n}\n\nfunction genericComposeSMask(\n maskCtx,\n layerCtx,\n width,\n height,\n subtype,\n backdrop,\n transferMap,\n layerOffsetX,\n layerOffsetY,\n maskOffsetX,\n maskOffsetY\n) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n\n let composeFn;\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n // processing image in chunks to save memory\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(\n layerOffsetX - maskOffsetX,\n row + (layerOffsetY - maskOffsetY),\n width,\n chunkHeight\n );\n const layerData = layerCtx.getImageData(\n layerOffsetX,\n row + layerOffsetY,\n width,\n chunkHeight\n );\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(\n smask.context,\n layerCtx,\n layerWidth,\n layerHeight,\n smask.subtype,\n smask.backdrop,\n smask.transferMap,\n layerOffsetX,\n layerOffsetY,\n smask.offsetX,\n smask.offsetY\n );\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = Util.singularValueDecompose2dScale(transform);\n // Round to a 32bit float so that `<=` check below will pass for numbers that\n // are very close, but not exactly the same 64bit floats.\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround(\n (globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS\n );\n if (interpolate !== undefined) {\n // If the value is explicitly set use it.\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n // Smooth when downscaling.\n return true;\n }\n // Don't smooth when upscaling.\n return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n constructor(\n canvasCtx,\n commonObjs,\n objs,\n canvasFactory,\n imageLayer,\n optionalContentConfig,\n annotationCanvasMap\n ) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(\n this.ctx.canvas.width,\n this.ctx.canvas.height\n );\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n // Patterns are painted relative to the initial page/form transform, see\n // PDF spec 8.7.2 NOTE 1.\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n if (canvasCtx) {\n // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n // the transformation must already be set in canvasCtx._transformMatrix.\n addContextCurrentTransform(canvasCtx);\n }\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null,\n }) {\n // For pdfs that use blend modes we have to clear the canvas else certain\n // blend modes can look wrong since we'd be blending with a white\n // backdrop. The problem with a transparent backdrop though is we then\n // don't get sub pixel anti aliasing on text, creating temporary\n // transparent canvas when we have blend modes.\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\n \"transparent\",\n width,\n height,\n true\n );\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n // The transform can be applied before rendering, transferring it to\n // the new canvas.\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.viewportScale = viewport.scale;\n\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n }\n\n executeOperatorList(\n operatorList,\n executionStartIdx,\n continueCallback,\n stepper\n ) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n\n // Sometimes the OperatorList to execute is empty.\n if (argsArrayLen === i) {\n return i;\n }\n\n const chunkOperations =\n argsArrayLen - i > EXECUTION_STEPS &&\n typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n // If the promise isn't resolved yet, add the continueCallback\n // to the promise and bail out.\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n // If the entire operatorList was executed, stop as were done.\n if (i === argsArrayLen) {\n return i;\n }\n\n // If the execution took longer then a certain amount of time and\n // `continueCallback` is specified, interrupt the execution.\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n\n // If the operatorList isn't executed completely yet OR the execution\n // time was short enough, do another execution round.\n }\n }\n\n endDrawing() {\n // Finishing all opened operations such as SMask group painting.\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n _scaleImage(img, inverseTransform) {\n // Vertical or horizontal scaling shall not be more than 2 to not lose the\n // pixels during drawImage operation, painting on the temporary canvas(es)\n // that are twice smaller in size.\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(\n Math.hypot(inverseTransform[0], inverseTransform[1]),\n 1\n );\n let heightScale = Math.max(\n Math.hypot(inverseTransform[2], inverseTransform[3]),\n 1\n );\n\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (\n (widthScale > 2 && paintWidth > 1) ||\n (heightScale > 2 && paintHeight > 1)\n ) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(\n tmpCanvasId,\n newWidth,\n newHeight\n );\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(\n img,\n 0,\n 0,\n paintWidth,\n paintHeight,\n 0,\n 0,\n newWidth,\n newHeight\n );\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight,\n };\n }\n\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const width = img.width,\n height = img.height;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const maskCanvas = this.cachedCanvases.getCanvas(\n \"maskCanvas\",\n width,\n height\n );\n const maskCtx = maskCanvas.context;\n putBinaryImageMask(maskCtx, img);\n\n // Create the mask canvas at the size it will be drawn at and also set\n // its transform to match the current transform so if there are any\n // patterns applied they will be applied relative to the correct\n // transform.\n const objToCanvas = ctx.mozCurrentTransform;\n let maskToCanvas = Util.transform(objToCanvas, [\n 1 / width,\n 0,\n 0,\n -1 / height,\n 0,\n 0,\n ]);\n maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = Util.applyTransform([width, height], maskToCanvas);\n const rect = Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.ceil(rect[2] - rect[0]);\n const drawnHeight = Math.ceil(rect[3] - rect[1]);\n const fillCanvas = this.cachedCanvases.getCanvas(\n \"fillCanvas\",\n drawnWidth,\n drawnHeight,\n true\n );\n const fillCtx = fillCanvas.context;\n // The offset will be the top-left cordinate mask.\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform.apply(fillCtx, maskToCanvas);\n // Pre-scale if needed to improve image smoothing.\n const scaled = this._scaleImage(\n maskCanvas.canvas,\n fillCtx.mozCurrentTransformInverse\n );\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(\n fillCtx.mozCurrentTransform,\n img.interpolate\n );\n fillCtx.drawImage(\n scaled.img,\n 0,\n 0,\n scaled.img.width,\n scaled.img.height,\n 0,\n 0,\n width,\n height\n );\n fillCtx.globalCompositeOperation = \"source-in\";\n\n const inverse = Util.transform(fillCtx.mozCurrentTransformInverse, [\n 1,\n 0,\n 0,\n 1,\n -offsetX,\n -offsetY,\n ]);\n fillCtx.fillStyle = isPatternFill\n ? fillColor.getPattern(ctx, this, inverse, PathType.FILL)\n : fillColor;\n\n fillCtx.fillRect(0, 0, width, height);\n\n // Round the offsets to avoid drawing fractional pixels.\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY),\n };\n }\n\n // Graphics state\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking = null;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setGState(states) {\n for (let i = 0, ii = states.length; i < ii; i++) {\n const state = states[i];\n const key = state[0];\n const value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n // Else, the state is okay and nothing needs to be done.\n }\n\n /**\n * Soft mask mode takes the current main drawing canvas and replaces it with\n * a temporary canvas. Any drawing operations that happen on the temporary\n * canvas need to be composed with the main canvas that was suspended (see\n * `compose()`). The temporary canvas also duplicates many of its operations\n * on the suspended canvas to keep them in sync, so that when the soft mask\n * mode ends any clipping paths or transformations will still be active and in\n * the right order on the canvas' graphics state stack.\n */\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId,\n drawnWidth,\n drawnHeight,\n true\n );\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform);\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n\n this.setGState([\n [\"BM\", \"source-over\"],\n [\"ca\", 1],\n [\"CA\", 1],\n ]);\n }\n\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n // The soft mask is done, now restore the suspended canvas as the main\n // drawing canvas.\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n\n this.suspendedCtx = null;\n }\n\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n // Whatever was drawn has been moved to the suspended canvas, now clear it\n // out of the current canvas.\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n\n save() {\n if (this.inSMaskMode) {\n // SMask mode may be turned on/off causing us to lose graphics state.\n // Copy the temporary canvas state to the main(suspended) canvas to keep\n // it in sync.\n copyCtxState(this.ctx, this.suspendedCtx);\n // Don't bother calling save on the temporary canvas since state is not\n // saved there.\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n // Graphics state is stored on the main(suspended) canvas. Restore its\n // state then copy it over to the temporary canvas.\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n\n // Ensure that the clipping path is reset (fixes issue6413.pdf).\n this.pendingClip = null;\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n\n // Path\n constructPath(ops, args) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, xw, yh);\n ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n break;\n case OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3],\n x,\n y\n );\n current.updateCurvePathMinMax(\n ctx.mozCurrentTransform,\n startX,\n startY,\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3],\n x,\n y\n );\n j += 6;\n break;\n case OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(\n x,\n y,\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3]\n );\n current.updateCurvePathMinMax(\n ctx.mozCurrentTransform,\n startX,\n startY,\n x,\n y,\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3]\n );\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(\n ctx.mozCurrentTransform,\n startX,\n startY,\n args[j],\n args[j + 1],\n x,\n y,\n x,\n y\n );\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n current.setCurrentPoint(x, y);\n }\n\n closePath() {\n this.ctx.closePath();\n }\n\n stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n // For stroke we want to temporarily change the global alpha to the\n // stroking alpha.\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.STROKE\n );\n this.rescaleAndStroke(/* saveRestore */ false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(/* saveRestore */ true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n // Restore the global alpha to the fill alpha\n ctx.globalAlpha = this.current.fillAlpha;\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.FILL\n );\n needRestore = true;\n }\n\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n\n this.consumePath();\n }\n\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n\n endPath() {\n this.consumePath();\n }\n\n // Clipping\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n\n // Text\n beginText() {\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n // A valid matrix needs all main diagonal elements to be non-zero\n // This also ensures we bypass FF bugzilla bug #719844.\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n warn(\"Invalid font matrix for font \" + fontRefName);\n }\n\n // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n // and in some docs this can be negative (inverted x-y axes).\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return; // we don't need ctx.font for Type3 fonts\n }\n\n const name = fontObj.loadedName || \"sans-serif\";\n\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n\n // Some font backends cannot handle fonts below certain size.\n // Keeping the font at minimal size and using the fontSizeScale to change\n // the current transformation matrix before the fillText/strokeText.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n\n this.ctx.font = document.body.dataset.pdfjsprinting ? `${italic} ${bold} ${browserFontSize}px ${typeface}` : `${italic} ${bold} ${browserFontSize / 16.0}em ${typeface}`;\n }\n\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode =\n textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(\n textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n const patternFill = current.patternFill && !font.missingFile;\n\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n if (\n fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n ctx.fill();\n }\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (\n fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n ctx.fillText(character, x, y);\n }\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath,\n });\n }\n }\n\n get isFontSubpixelAAEnabled() {\n // Checks if anti-aliasing is enabled when scaled text is painted.\n // On Windows GDI scaled fonts looks bad.\n const { context: ctx } = this.cachedCanvases.getCanvas(\n \"isFontSubpixelAAEnabled\",\n 10,\n 10\n );\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n const simpleFillText =\n current.textRenderingMode === TextRenderingMode.FILL &&\n !font.disableFontFace &&\n !current.patternFill;\n\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.FILL\n );\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode =\n current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += (spacingDir * glyph * fontSize) / 1000;\n continue;\n }\n\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx =\n -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n // Some standard fonts may not have the exact width: rescale per\n // character if measured width is greater than expected glyph width\n // and subpixel-aa is enabled, otherwise just center the glyph.\n const measuredWidth =\n ((ctx.measureText(character).width * 1000) / fontSize) *\n fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX +=\n (((width - measuredWidth) / 2000) * fontSize) / fontSizeScale;\n }\n }\n\n // Only attempt to draw the glyph if it is actually in the embedded font\n // file or if there isn't a font file so the fallback font is shown.\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n // common case\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX =\n scaledX + (fontSize * accent.offset.x) / fontSizeScale;\n const scaledAccentY =\n scaledY - (fontSize * accent.offset.y) / fontSizeScale;\n this.paintChar(\n accent.fontChar,\n scaledAccentX,\n scaledAccentY,\n patternTransform\n );\n }\n }\n }\n\n let charWidth;\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n\n return undefined;\n }\n\n showType3Text(glyphs) {\n // Type3 fonts - each glyph is a \"mini-PDF\"\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible =\n current.textRenderingMode === TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = (spacingDir * glyph * fontSize) / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n\n // Type3 fonts\n setCharWidth(xWidth, yWidth) {\n // We can safely ignore this since the width should be the same\n // as the width in the Widths array.\n }\n\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n // TODO According to the spec we're also suppose to ignore any operators\n // that set color or include images while processing this type3 font.\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n }\n\n // Color\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform =\n this.baseTransform || this.ctx.mozCurrentTransform.slice();\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(\n ctx,\n this.commonObjs,\n this.objs,\n this.canvasFactory\n );\n },\n };\n pattern = new TilingPattern(\n IR,\n color,\n this.ctx,\n canvasGraphicsFactory,\n baseTransform\n );\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n\n setStrokeRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n\n setFillRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = getShadingPattern(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.SHADING\n );\n\n const inv = ctx.mozCurrentTransformInverse;\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n\n const bl = Util.applyTransform([0, 0], inv);\n const br = Util.applyTransform([0, height], inv);\n const ul = Util.applyTransform([width, 0], inv);\n const ur = Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n // HACK to draw the gradient onto an infinite rectangle.\n // PDF gradients are drawn across the entire image while\n // Canvas only allows gradients to be drawn in a rectangle\n // The following bug should allow us to remove this.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n\n // Images\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updatePathMinMax(\n this.ctx.mozCurrentTransform,\n bbox[0],\n bbox[1]\n );\n this.current.updatePathMinMax(\n this.ctx.mozCurrentTransform,\n bbox[2],\n bbox[3]\n );\n this.clip();\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n // If there's an active soft mask we don't want it enabled for the group, so\n // clear it out. The mask and suspended canvas will be restored in endGroup.\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n\n const currentCtx = this.ctx;\n // TODO non-isolated groups - according to Rik at adobe non-isolated\n // group results aren't usually that different and they even have tools\n // that ignore this setting. Notes from Rik on implementing:\n // - When you encounter an transparency group, create a new canvas with\n // the dimensions of the bbox\n // - copy the content from the previous canvas to the new canvas\n // - draw as usual\n // - remove the backdrop alpha:\n // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n // value of your transparency group and 'alphaBackdrop' the alpha of the\n // backdrop\n // - remove background color:\n // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n if (!group.isolated) {\n info(\"TODO: Support non-isolated groups.\");\n }\n\n // TODO knockout - supposedly possible with the clever use of compositing\n // modes.\n if (group.knockout) {\n warn(\"Knockout groups not supported.\");\n }\n\n const currentTransform = currentCtx.mozCurrentTransform;\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n // Based on the current transform figure out how big the bounding box\n // will actually be.\n let bounds = Util.getAxialAlignedBoundingBox(\n group.bbox,\n currentCtx.mozCurrentTransform\n );\n // Clip the bounding box to the current canvas.\n const canvasBounds = [\n 0,\n 0,\n currentCtx.canvas.width,\n currentCtx.canvas.height,\n ];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n // Use ceil in case we're between sizes so we don't create canvas that is\n // too small and make the canvas at least 1x1 pixels.\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n // Using two cache entries is case if masks are used one after another.\n cacheId += \"_smask_\" + (this.smaskCounter++ % 2);\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId,\n drawnWidth,\n drawnHeight,\n true\n );\n const groupCtx = scratchCanvas.context;\n\n // Since we created a new canvas that is just the size of the bounding box\n // we have to translate the group ctx.\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n // Saving state and cached mask to be used in setGState.\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null, // used during suspend operation\n });\n } else {\n // Setup the current ctx so when the group is popped we draw it at the\n // right location.\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n // The transparency group inherits all off the current graphics state\n // except the blend mode, soft mask, and alpha constants.\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([\n [\"BM\", \"source-over\"],\n [\"ca\", 1],\n [\"CA\", 1],\n ]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n // Turn off image smoothing to avoid sub pixel interpolation which can\n // look kind of blurry for some pdfs.\n this.ctx.imageSmoothingEnabled = false;\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = this.ctx.mozCurrentTransform;\n this.restore();\n this.ctx.save();\n this.ctx.setTransform.apply(this.ctx, currentMtx);\n const dirtyBox = Util.getAxialAlignedBoundingBox(\n [0, 0, groupCtx.canvas.width, groupCtx.canvas.height],\n currentMtx\n );\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n\n beginAnnotations() {\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n }\n\n endAnnotations() {\n this.restore();\n }\n\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.save();\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(\n this.ctx.mozCurrentTransform\n );\n const { viewportScale } = this;\n const canvasWidth = Math.ceil(\n width * this.outputScaleX * viewportScale\n );\n const canvasHeight = Math.ceil(\n height * this.outputScaleY * viewportScale\n );\n\n this.annotationCanvas = this.canvasFactory.create(\n canvasWidth,\n canvasHeight\n );\n const { canvas, context } = this.annotationCanvas;\n canvas.style.width = `calc(${width}px * var(--viewport-scale-factor))`;\n canvas.style.height = `calc(${height}px * var(--viewport-scale-factor))`;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n addContextCurrentTransform(this.ctx);\n\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(\n this.ctx.canvas.width,\n this.ctx.canvas.height\n );\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n }\n\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n this.restore();\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const width = img.width,\n height = img.height;\n\n const glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({ data: img.data, width, height });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph?.compiled) {\n glyph.compiled(ctx);\n return;\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n\n ctx.save();\n // The mask is drawn with the transform applied. Reset the current\n // transform to draw to the identity.\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectRepeat(\n imgData,\n scaleX,\n skewX = 0,\n skewY = 0,\n scaleY,\n positions\n ) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = ctx.mozCurrentTransform;\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(imgData);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = Util.transform(currentTransform, [\n scaleX,\n skewX,\n skewY,\n scaleY,\n positions[i],\n positions[i + 1],\n ]);\n\n const [x, y] = Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (let i = 0, ii = images.length; i < ii; i++) {\n const image = images[i];\n const width = image.width,\n height = image.height;\n\n const maskCanvas = this.cachedCanvases.getCanvas(\n \"maskCanvas\",\n width,\n height\n );\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, image);\n\n maskCtx.globalCompositeOperation = \"source-in\";\n\n maskCtx.fillStyle = isPatternFill\n ? fillColor.getPattern(\n maskCtx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.FILL\n )\n : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = objId.startsWith(\"g_\")\n ? this.commonObjs.get(objId)\n : this.objs.get(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = objId.startsWith(\"g_\")\n ? this.commonObjs.get(objId)\n : this.objs.get(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height,\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n\n this.save();\n // scale the image to the unit square\n ctx.scale(1 / width, -1 / height);\n\n let imgToPaint;\n // typeof check is needed due to node.js support, see issue #8489\n if (\n (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement) ||\n !imgData.data\n ) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\n \"inlineImage\",\n width,\n height\n );\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse);\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(\n ctx.mozCurrentTransform,\n imgData.interpolate\n );\n ctx.drawImage(\n scaled.img,\n 0,\n 0,\n scaled.paintWidth,\n scaled.paintHeight,\n 0,\n -height,\n width,\n height\n );\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / ctx.mozCurrentTransformInverse[0],\n height: height / ctx.mozCurrentTransformInverse[3],\n });\n }\n this.compose();\n this.restore();\n }\n\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (let i = 0, ii = map.length; i < ii; i++) {\n const entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(\n tmpCanvas.canvas,\n entry.x,\n entry.y,\n entry.w,\n entry.h,\n 0,\n -1,\n 1,\n 1\n );\n if (this.imageLayer) {\n const position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h,\n });\n }\n ctx.restore();\n }\n this.compose();\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n\n // Marked content\n\n markPoint(tag) {\n // TODO Marked content.\n }\n\n markPointProps(tag, properties) {\n // TODO Marked content.\n }\n\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true,\n });\n }\n\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties),\n });\n } else {\n this.markedContentStack.push({\n visible: true,\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n\n // Compatibility\n\n beginCompat() {\n // TODO ignore undefined operators (should we do that anyway?)\n }\n\n endCompat() {\n // TODO stop ignoring undefined operators\n }\n\n // Helper functions\n\n consumePath(clipBox) {\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = this.ctx.mozCurrentTransform;\n if (m[1] === 0 && m[2] === 0) {\n // Fast path\n this._cachedGetSinglePixelWidth =\n 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n\n getScaleForStroking() {\n // A pixel has thicknessX = thicknessY = 1;\n // A transformed pixel is a parallelogram and the thicknesses\n // corresponds to the heights.\n // The goal of this function is to rescale before setting the\n // lineWidth in order to have both thicknesses greater or equal\n // to 1 after transform.\n if (!this._cachedScaleForStroking) {\n const { lineWidth } = this.current;\n const m = this.ctx.mozCurrentTransform;\n let scaleX, scaleY;\n\n if (m[1] === 0 && m[2] === 0) {\n // Fast path\n const normX = Math.abs(m[0]);\n const normY = Math.abs(m[3]);\n if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n // A pixel (base (x, y)) is transformed by M into a parallelogram:\n // - its area is |det(M)|;\n // - heightY (orthogonal to Mx) has a length: |det(M)| / norm(Mx);\n // - heightX (orthogonal to My) has a length: |det(M)| / norm(My).\n // heightX and heightY are the thicknesses of the transformed pixel\n // and they must be both greater or equal to 1.\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[1]);\n const normY = Math.hypot(m[2], m[3]);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking = [scaleX, scaleY];\n }\n return this._cachedScaleForStroking;\n }\n\n // Rescale before stroking in order to have a final lineWidth\n // with both thicknesses greater or equal to 1.\n rescaleAndStroke(saveRestore) {\n const { ctx } = this;\n const { lineWidth } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n\n ctx.lineWidth = lineWidth || 1;\n\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n\n let savedMatrix, savedDashes, savedDashOffset;\n if (saveRestore) {\n savedMatrix = ctx.mozCurrentTransform.slice();\n savedDashes = ctx.getLineDash().slice();\n savedDashOffset = ctx.lineDashOffset;\n }\n\n ctx.scale(scaleX, scaleY);\n\n // How the dashed line is rendered depends on the current transform...\n // so we added a rescale to handle too thin lines and consequently\n // the way the line is dashed will be modified.\n // If scaleX === scaleY, the dashed lines will be rendered correctly\n // else we'll have some bugs (but only with too thin lines).\n // Here we take the max... why not taking the min... or something else.\n // Anyway, as said it's buggy when scaleX !== scaleY.\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n ctx.lineDashOffset /= scale;\n\n ctx.stroke();\n\n if (saveRestore) {\n ctx.setTransform(...savedMatrix);\n ctx.setLineDash(savedDashes);\n ctx.lineDashOffset = savedDashOffset;\n }\n }\n\n getCanvasPosition(x, y) {\n const transform = this.ctx.mozCurrentTransform;\n return [\n transform[0] * x + transform[2] * y + transform[4],\n transform[1] * x + transform[3] * y + transform[5],\n ];\n }\n\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\n\nfor (const op in OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\nexport { CanvasGraphics };\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 {\n FormatError,\n info,\n shadow,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\",\n};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n unreachable(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n getPattern() {\n unreachable(\"Abstract method `getPattern` called.\");\n }\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(\n this._p0[0],\n this._p0[1],\n this._p1[0],\n this._p1[1]\n );\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(\n this._p0[0],\n this._p0[1],\n this._r0,\n this._p1[0],\n this._p1[1],\n this._r1\n );\n }\n\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(\n pathType,\n ctx.mozCurrentTransform\n ) || [0, 0, 0, 0];\n // Create a canvas that is only as big as the current path. This doesn't\n // allow us to cache the pattern, but it generally creates much smaller\n // canvases and saves memory use. See bug 1722807 for an example.\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n\n const tmpCanvas = owner.cachedCanvases.getCanvas(\n \"pattern\",\n width,\n height,\n true\n );\n\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n // Non shading fill patterns are positioned relative to the base transform\n // (usually the page's initial transform), but we may have created a\n // smaller canvas based on the path, so we must account for the shift.\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = Util.transform(inverse, [\n 1,\n 0,\n 0,\n 1,\n ownerBBox[0],\n ownerBBox[1],\n ]);\n\n tmpCtx.transform.apply(tmpCtx, owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform.apply(tmpCtx, this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n // Avoid rendering breaking completely in Firefox 78 ESR,\n // and in Node.js (see issue 13724).\n warn(`RadialAxialShadingPattern.getPattern: \"${ex?.message}\".`);\n }\n } else {\n // Shading fills are applied relative to the current matrix which is also\n // how canvas gradients work, so there's no need to do anything special\n // here.\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n // Very basic Gouraud-shaded triangle rasterization algorithm.\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n if (y < y1) {\n k = 0;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = (car - (car - cbr) * k) | 0;\n bytes[j++] = (cag - (cag - cbg) * k) | 0;\n bytes[j++] = (cab - (cab - cbb) * k) | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(\n data,\n context,\n ps[q],\n ps[q + 1],\n ps[q + verticesPerRow],\n cs[q],\n cs[q + 1],\n cs[q + verticesPerRow]\n );\n drawTriangle(\n data,\n context,\n ps[q + verticesPerRow + 1],\n ps[q + 1],\n ps[q + verticesPerRow],\n cs[q + verticesPerRow + 1],\n cs[q + 1],\n cs[q + verticesPerRow]\n );\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(\n data,\n context,\n ps[i],\n ps[i + 1],\n ps[i + 2],\n cs[i],\n cs[i + 1],\n cs[i + 2]\n );\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n // we will increase scale on some weird factor to let antialiasing take\n // care of \"rough\" edges\n const EXPECTED_SCALE = 1.1;\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n const MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n // We need to keep transparent border around our pattern for fill():\n // createPattern with 'no-repeat' will bleed edges across entire area.\n const BORDER_SIZE = 2;\n\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n\n const width = Math.min(\n Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)),\n MAX_PATTERN_SIZE\n );\n const height = Math.min(\n Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)),\n MAX_PATTERN_SIZE\n );\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY,\n };\n\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n\n const tmpCanvas = cachedCanvases.getCanvas(\n \"mesh\",\n paddedWidth,\n paddedHeight,\n false\n );\n const tmpCtx = tmpCanvas.context;\n\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY,\n };\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n // Obtain scale from matrix and current transformation matrix.\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n // Rasterizing on the main thread since sending/queue large canvases\n // might cause OOM.\n const temporaryPatternCanvas = this._createMeshCanvas(\n scale,\n pathType === PathType.SHADING ? null : this._background,\n owner.cachedCanvases\n );\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (this.matrix) {\n ctx.transform.apply(ctx, this.matrix);\n }\n }\n\n ctx.translate(\n temporaryPatternCanvas.offsetX,\n temporaryPatternCanvas.offsetY\n );\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2,\n};\n\nclass TilingPattern {\n // 10in @ 300dpi shall be enough.\n static get MAX_PATTERN_SIZE() {\n return shadow(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n info(\"TilingType: \" + tilingType);\n\n // A tiling pattern as defined by PDF spec 8.7.2 is a cell whose size is\n // described by bbox, and may repeat regularly by shifting the cell by\n // xstep and ystep.\n // Because the HTML5 canvas API does not support pattern repetition with\n // gaps in between, we use the xstep/ystep instead of the bbox's size.\n //\n // This has the following consequences (similarly for ystep):\n //\n // - If xstep is the same as bbox, then there is no observable difference.\n //\n // - If xstep is larger than bbox, then the pattern canvas is partially\n // empty: the area bounded by bbox is painted, the outside area is void.\n //\n // - If xstep is smaller than bbox, then the pixels between xstep and the\n // bbox boundary will be missing. This is INCORRECT behavior.\n // \"Figures on adjacent tiles should not overlap\" (PDF spec 8.7.3.1),\n // but overlapping cells without common pixels are still valid.\n // TODO: Fix the implementation, to allow this scenario to be painted\n // correctly.\n\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n // Obtain scale from matrix and current transformation matrix.\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = Util.singularValueDecompose2dScale(\n this.baseTransform\n );\n const combinedScale = [\n matrixScale[0] * curMatrixScale[0],\n matrixScale[1] * curMatrixScale[1],\n ];\n\n // Use width and height values that are as close as possible to the end\n // result when the pattern is used. Too low value makes the pattern look\n // blurry. Too large value makes it look too crispy.\n const dimx = this.getSizeAndScale(\n xstep,\n this.ctx.canvas.width,\n combinedScale[0]\n );\n const dimy = this.getSizeAndScale(\n ystep,\n this.ctx.canvas.height,\n combinedScale[1]\n );\n\n const tmpCanvas = owner.cachedCanvases.getCanvas(\n \"pattern\",\n dimx.size,\n dimy.size,\n true\n );\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n // Some bounding boxes have negative x0/y0 cordinates which will cause the\n // some of the drawing to be off of the canvas. To avoid this shift the\n // bounding box over.\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n // To match CanvasGraphics beginDrawing we must save the context here or\n // else we end up with unbalanced save/restores.\n tmpCtx.save();\n\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n\n graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n\n graphics.executeOperatorList(operatorList);\n\n graphics.endDrawing();\n\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0,\n };\n }\n\n getSizeAndScale(step, realOutputSize, scale) {\n // xstep / ystep may be negative -- normalize.\n step = Math.abs(step);\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n // Use the destination canvas's size if it is bigger than the hard-coded\n // limit of MAX_PATTERN_SIZE to avoid clipping patterns that cover the\n // whole canvas.\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return { scale, size };\n }\n\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n // Set color needed by image masks (fixes issues 3226 and 8741).\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = Util.transform(matrix, this.matrix);\n }\n }\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n let domMatrix = new DOMMatrix(matrix);\n // Rescale and so that the ctx.createPattern call generates a pattern with\n // the desired size.\n domMatrix = domMatrix.translate(\n temporaryPatternCanvas.offsetX,\n temporaryPatternCanvas.offsetY\n );\n domMatrix = domMatrix.scale(\n 1 / temporaryPatternCanvas.scaleX,\n 1 / temporaryPatternCanvas.scaleY\n );\n\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n // Avoid rendering breaking completely in Firefox 78 ESR,\n // and in Node.js (see issue 13724).\n warn(`TilingPattern.getPattern: \"${ex?.message}\".`);\n }\n return pattern;\n }\n}\n\nexport { getShadingPattern, PathType, TilingPattern };\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\n/**\n * @typedef {Object} GlobalWorkerOptionsType\n * @property {Worker | null} workerPort - Defines global port for worker\n * process. Overrides the `workerSrc` option.\n * @property {string} workerSrc - A string containing the path and filename\n * of the worker file.\n *\n * NOTE: The `workerSrc` option should always be set, in order to prevent any\n * issues when using the PDF.js library.\n */\n\n/** @type {GlobalWorkerOptionsType} */\nconst GlobalWorkerOptions = Object.create(null);\n\nGlobalWorkerOptions.workerPort =\n GlobalWorkerOptions.workerPort === undefined\n ? null\n : GlobalWorkerOptions.workerPort;\n\nGlobalWorkerOptions.workerSrc =\n GlobalWorkerOptions.workerSrc === undefined\n ? \"\"\n : GlobalWorkerOptions.workerSrc;\n\nexport { GlobalWorkerOptions };\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 AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n PasswordException,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n unreachable(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = createPromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n /**\n * @private\n */\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: createPromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n /**\n * @private\n */\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(\n streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n );\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n /**\n * @private\n */\n async _deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall && streamController.startCall.promise,\n streamController.pullCall && streamController.pullCall.promise,\n streamController.cancelCall && streamController.cancelCall.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\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 { objectFromMap } from \"../shared/util.js\";\n\nclass Metadata {\n #metadataMap;\n\n #data;\n\n constructor({ parsedData, rawData }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n\n getRaw() {\n return this.#data;\n }\n\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n\n getAll() {\n return objectFromMap(this.#metadataMap);\n }\n\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\n\nexport { Metadata };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { objectFromMap, warn } from \"../shared/util.js\";\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n for (const group of data.groups) {\n this._groups.set(\n group.id,\n new OptionalContentGroup(group.name, group.intent)\n );\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n _evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this._evaluateVisibilityExpression(element);\n } else if (this._groups.has(element)) {\n state = this._groups.get(element).visible;\n } else {\n warn(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n\n isVisible(group) {\n if (this._groups.size === 0) {\n return true;\n }\n if (!group) {\n warn(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n warn(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n // Per the spec, the expression should be preferred if available.\n if (group.expression) {\n return this._evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n // Default\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n warn(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n warn(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return;\n }\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n if (this._order) {\n return this._order.slice();\n }\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n return this._groups.size > 0 ? objectFromMap(this._groups) : null;\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n}\n\nexport { OptionalContentConfig };\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, createPromiseCapability } from \"../shared/util.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n assert(\n pdfDataRangeTransport,\n 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.'\n );\n\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename =\n params.contentDispositionFilename || null;\n\n const initialData = params.initialData;\n if (initialData?.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({ begin, chunk });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({ loaded, total });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({ chunk });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(\n found,\n \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\"\n );\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n // Reporting to first range reader, if it exists.\n const firstReader = this._rangeReaders[0];\n if (firstReader?.onProgress) {\n firstReader.onProgress({ loaded: evt.loaded });\n }\n } else {\n const fullReader = this._fullRequestReader;\n if (fullReader?.onProgress) {\n fullReader.onProgress({ loaded: evt.loaded, total: evt.total });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFDataTransportStream.getFullReader can only be called once.\"\n );\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(\n this,\n queuedChunks,\n this._progressiveDone,\n this._contentDispositionFilename\n );\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n constructor(\n stream,\n queuedChunks,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = isPdfFile(contentDispositionFilename)\n ? contentDispositionFilename\n : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return; // Ignore new data.\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return; // ignore new data\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({ value: chunk, done: false });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\nexport { PDFDataTransportStream };\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\nclass XfaText {\n /**\n * Walk an XFA tree and create an array of text nodes that is compatible\n * with a regular PDFs TextContent. Currently, only TextItem.str is supported,\n * all other fields and styles haven't been implemented.\n *\n * @param {Object} xfa - An XFA fake DOM object.\n *\n * @returns {TextContent}\n */\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null),\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str,\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n\n /**\n * @param {string} name - DOM node name. (lower case)\n *\n * @returns {boolean} true if the DOM node should have a corresponding text\n * node.\n */\n static shouldBuildText(name) {\n return !(\n name === \"textarea\" ||\n name === \"input\" ||\n name === \"option\" ||\n name === \"select\"\n );\n }\n}\n\nexport { XfaText };\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\n/** @typedef {import(\"./api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport {\n AnnotationBorderStyleType,\n AnnotationType,\n assert,\n shadow,\n stringToPDFString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n DOMSVGFactory,\n getFilenameFromUrl,\n PDFDateString,\n} from \"./display_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { ColorConverters } from \"../shared/scripting_utils.js\";\nimport { XfaLayer } from \"./xfa_layer.js\";\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1],\n };\n}\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPageProxy} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {Object} svgFactory\n * @property {boolean} [enableScripting]\n * @property {boolean} [hasJSActions]\n * @property {Object} [fieldObjects]\n * @property {Object} [mouseState]\n */\n\nclass AnnotationElementFactory {\n /**\n * @param {AnnotationElementParameters} parameters\n * @returns {AnnotationElement}\n */\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\n\nclass AnnotationElement {\n constructor(\n parameters,\n {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false,\n } = {}\n ) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n /**\n * Create an empty container for the annotation's HTML element.\n *\n * @private\n * @param {boolean} ignoreBorder\n * @memberof AnnotationElement\n * @returns {HTMLSectionElement}\n */\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let { width, height } = getRectDims(data.rect);\n\n container.setAttribute(\"data-annotation-id\", data.id);\n\n // Do *not* modify `data.rect`, since that will corrupt the annotation\n // position on subsequent calls to `_createContainer` (see issue 6804).\n const rect = Util.normalizeRect([\n data.rect[0],\n page.view[3] - data.rect[1] + page.view[1],\n data.rect[2],\n page.view[3] - data.rect[3] + page.view[1],\n ]);\n\n if (data.hasOwnCanvas) {\n const transform = viewport.transform.slice();\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(transform);\n width = Math.ceil(width * scaleX);\n height = Math.ceil(height * scaleY);\n rect[0] *= scaleX;\n rect[1] *= scaleY;\n // Reset the scale part of the transform matrix (which must be diagonal\n // or anti-diagonal) in order to avoid to rescale the canvas.\n // The canvas for the annotation is correctly scaled when it is drawn\n // (see `beginAnnotation` in canvas.js).\n for (let i = 0; i < 4; i++) {\n transform[i] = Math.sign(transform[i]);\n }\n container.style.transform = `matrix(${transform.join(\",\")})`;\n } else {\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n }\n\n container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n // Underline styles only have a bottom border, so we do not need\n // to adjust for all borders. This yields a similar result as\n // Adobe Acrobat/Reader.\n width -= 2 * data.borderStyle.width;\n height -= 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case AnnotationBorderStyleType.BEVELED:\n warn(\"Unimplemented border style: beveled\");\n break;\n\n case AnnotationBorderStyleType.INSET:\n warn(\"Unimplemented border style: inset\");\n break;\n\n case AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n const borderColor = data.borderColor || data.color || null;\n if (borderColor) {\n container.style.borderColor = Util.makeHexColor(\n data.color[0] | 0,\n data.color[1] | 0,\n data.color[2] | 0\n );\n } else {\n // Transparent (invisible) border, so do not draw it at all.\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n\n if (data.hasOwnCanvas) {\n container.style.width = container.style.height = \"auto\";\n } else {\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n }\n return container;\n }\n\n /**\n * Create quadrilaterals from the annotation's quadpoints.\n *\n * @private\n * @param {boolean} ignoreBorder\n * @memberof AnnotationElement\n * @returns {Array<HTMLSectionElement>}\n */\n _createQuadrilaterals(ignoreBorder = false) {\n if (!this.data.quadPoints) {\n return null;\n }\n\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [\n quadPoint[2].x,\n quadPoint[2].y,\n quadPoint[1].x,\n quadPoint[1].y,\n ];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n\n /**\n * Create a popup for the annotation's HTML element. This is used for\n * annotations that do not have a Popup entry in the dictionary, but\n * are of a type that works with popups (such as Highlight annotations).\n *\n * @private\n * @param {HTMLDivElement|HTMLImageElement|null} trigger\n * @param {Object} data\n * @memberof AnnotationElement\n */\n _createPopup(trigger, data) {\n let container = this.container;\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n // If no trigger element is specified, create it.\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true,\n });\n const popup = popupElement.render();\n\n // Position the popup next to the annotation's container.\n popup.style.left = container.style.width;\n\n container.appendChild(popup);\n }\n\n /**\n * Render the quadrilaterals of the annotation.\n *\n * @private\n * @param {string} className\n * @memberof AnnotationElement\n * @returns {Array<HTMLSectionElement>}\n */\n _renderQuadrilaterals(className) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(this.quadrilaterals, \"Missing quadrilaterals during rendering\");\n }\n\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n return this.quadrilaterals;\n }\n\n /**\n * Render the annotation's HTML element(s).\n *\n * @public\n * @memberof AnnotationElement\n * @returns {HTMLSectionElement|Array<HTMLSectionElement>}\n */\n render() {\n unreachable(\"Abstract method `AnnotationElement.render` called\");\n }\n\n /**\n * @private\n * @returns {Array}\n */\n _getElementsByName(name, skipId = null) {\n const fields = [];\n\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const { page, id, exportValues } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue =\n typeof exportValues === \"string\" ? exportValues : null;\n\n const domElement = document.getElementById(id);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n warn(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({ id, exportValue, domElement });\n }\n }\n return fields;\n }\n // Fallback to a regular DOM lookup, to ensure that the standalone\n // viewer components won't break.\n for (const domElement of document.getElementsByName(name)) {\n const { id, exportValue } = domElement;\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({ id, exportValue, domElement });\n }\n return fields;\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n\n return shadow(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\"),\n });\n }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n const isRenderable = !!(\n parameters.data.url ||\n parameters.data.dest ||\n parameters.data.action ||\n parameters.data.isTooltipOnly ||\n parameters.data.resetForm ||\n (parameters.data.actions &&\n (parameters.data.actions.Action ||\n parameters.data.actions[\"Mouse Up\"] ||\n parameters.data.actions[\"Mouse Down\"]))\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n const { data, linkService } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n !linkService.addLinkAttributes\n ) {\n warn(\n \"LinkAnnotationElement.render - missing `addLinkAttributes`-method on the `linkService`-instance.\"\n );\n }\n linkService.addLinkAttributes?.(link, data.url, data.newWindow);\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n } else {\n let hasClickAction = false;\n if (\n data.actions &&\n (data.actions.Action ||\n data.actions[\"Mouse Up\"] ||\n data.actions[\"Mouse Down\"]) &&\n this.enableScripting &&\n this.hasJSActions\n ) {\n hasClickAction = true;\n this._bindJSAction(link, data);\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n } else if (!hasClickAction) {\n this._bindLink(link, \"\");\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map(\n (quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.appendChild(linkElement);\n return quadrilateral;\n }\n );\n }\n\n this.container.className = \"linkAnnotation\";\n var span = document.createElement(\"span\");\n span.style.display = \"none\";\n span.innerHTML = data.url;\n link.appendChild(span);\n this.container.appendChild(link);\n return this.container;\n }\n\n /**\n * Bind internal links to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} destination\n * @memberof LinkAnnotationElement\n */\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === /* isTooltipOnly = */ \"\") {\n link.className = \"internalLink\";\n }\n var span = document.createElement(\"span\");\n span.style.display = 'none';\n span.innerHTML = \"internalLink\";\n link.appendChild(span);\n }\n\n /**\n * Bind named actions to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} action\n * @memberof LinkAnnotationElement\n */\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n link.className = \"internalLink\";\n var span = document.createElement(\"span\");\n span.style.display = 'none';\n span.innerHTML = \"internalLink\";\n link.appendChild(span);\n }\n\n /**\n * Bind JS actions to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} data\n * @memberof LinkAnnotationElement\n */\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([\n [\"Action\", \"onclick\"],\n [\"Mouse Up\", \"onmouseup\"],\n [\"Mouse Down\", \"onmousedown\"],\n ]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name,\n },\n });\n return false;\n };\n }\n\n if (!link.onclick) {\n link.onclick = () => false;\n }\n link.className = \"internalLink\";\n }\n\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n warn(\n `_bindResetFormAction - \"resetForm\" action not supported, ` +\n \"ensure that the `fieldObjects` parameter is provided.\"\n );\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n\n link.onclick = () => {\n if (otherClickAction) {\n otherClickAction();\n }\n\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include,\n } = resetForm;\n\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const { id } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const { id } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\": {\n const value = field.defaultValue || \"\";\n storage.setValue(id, { value, valueAsString: value });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\": {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, { value });\n break;\n }\n case \"combobox\":\n case \"listbox\": {\n const value = field.defaultValue || \"\";\n storage.setValue(id, { value });\n break;\n }\n default:\n continue;\n }\n const domElement = document.getElementById(id);\n if (!domElement || !GetElementsByNameSet.has(domElement)) {\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (this.enableScripting) {\n // Update the values in the sandbox.\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\",\n },\n });\n }\n\n return false;\n };\n }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src =\n this.imageResourcesPath +\n \"annotation-\" +\n this.data.name.toLowerCase() +\n \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({ type: this.data.name });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n // Show only the container for unsupported field types.\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n\n _getKeyModifier(event) {\n const { isWin, isMac } = AnnotationElement.platform;\n return (isWin && event.ctrlKey) || (isMac && event.metaKey);\n }\n\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n // Mouse events\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event),\n },\n });\n });\n } else {\n // Non mouse event\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n },\n });\n });\n }\n }\n\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor =\n color === null\n ? \"transparent\"\n : Util.makeHexColor(color[0], color[1], color[2]);\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = ColorConverters[`${color[0]}_HTML`](\n color.slice(1)\n );\n };\n\n const commonActions = {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n event.target.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3,\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print,\n });\n },\n hidden: event => {\n event.target.style.visibility = event.detail.hidden\n ? \"hidden\"\n : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden,\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n },\n userName: event => {\n // tooltip\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n if (event.detail.required) {\n event.target.setAttribute(\"required\", \"\");\n } else {\n event.target.removeAttribute(\"required\");\n }\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n };\n\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n if (action) {\n action(jsEvent);\n }\n }\n }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable =\n parameters.renderForms ||\n (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n super(parameters, { isRenderable });\n }\n\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(\n base.name,\n /* skipId = */ base.id\n )) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, { [keyInStorage]: value });\n }\n }\n\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n\n this.container.className = \"textWidgetAnnotation\";\n\n let element = null;\n if (this.renderForms) {\n // NOTE: We cannot set the values using `element.value` below, since it\n // prevents the AnnotationLayer rasterizer in `test/driver.js`\n // from parsing the elements correctly for the reference tests.\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue,\n valueAsString: this.data.fieldValue,\n });\n const textContent = storedData.valueAsString || storedData.value || \"\";\n const elementData = {\n userValue: null,\n formattedValue: null,\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n GetElementsByNameSet.add(element);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n elementData.userValue = textContent;\n element.setAttribute(\"id\", id);\n\n element.addEventListener(\"input\", event => {\n storage.setValue(id, { value: event.target.value });\n this.setPropertyOnSiblings(\n element,\n \"value\",\n event.target.value,\n \"value\"\n );\n });\n\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue || \"\";\n element.value = elementData.userValue = defaultValue;\n delete elementData.formattedValue;\n });\n\n let blurListener = event => {\n if (elementData.formattedValue) {\n event.target.value = elementData.formattedValue;\n }\n // Reset the cursor position to the start of the field (issue 12359).\n event.target.scrollLeft = 0;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n });\n\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value || \"\";\n storage.setValue(id, { value: elementData.userValue.toString() });\n if (!elementData.formattedValue) {\n event.target.value = elementData.userValue;\n }\n },\n valueAsString(event) {\n elementData.formattedValue = event.detail.valueAsString || \"\";\n if (event.target !== document.activeElement) {\n // Input hasn't the focus so display formatted string\n event.target.value = elementData.formattedValue;\n }\n storage.setValue(id, {\n formattedValue: elementData.formattedValue,\n });\n },\n selRange(event) {\n const [selStart, selEnd] = event.detail.selRange;\n if (selStart >= 0 && selEnd < event.target.value.length) {\n event.target.setSelectionRange(selStart, selEnd);\n }\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n // Even if the field hasn't any actions\n // leaving it can still trigger some actions with Calculate\n element.addEventListener(\"keydown\", event => {\n // if the key is one of Escape, Enter or Tab\n // then the data are committed\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n // Save the entered value\n elementData.userValue = event.target.value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd,\n },\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n elementData.userValue = event.target.value;\n if (this._mouseState.isDown) {\n // Focus out using the mouse: data are committed\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd,\n },\n });\n }\n _blurListener(event);\n });\n\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.formattedValue = \"\";\n const { data, target } = event;\n const { value, selectionStart, selectionEnd } = target;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data,\n willCommit: false,\n selStart: selectionStart,\n selEnd: selectionEnd,\n },\n });\n });\n }\n\n this._setEventListeners(\n element,\n [\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n ],\n event => event.target.value\n );\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n\n /**\n * Apply text styles to the text in the element.\n *\n * @private\n * @param {HTMLDivElement} element\n * @memberof TextWidgetAnnotationElement\n */\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const { fontSize, fontColor } = this.data.defaultAppearanceData;\n const style = element.style;\n\n // TODO: If the font-size is zero, calculate it based on the height and\n // width of the element.\n // Not setting `style.fontSize` will use the default font-size for now.\n if (fontSize) {\n style.fontSize = `${fontSize / 16.0}em`;\n }\n\n style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderForms });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue,\n }).value;\n if (typeof value === \"string\") {\n // The value has been changed through js and set in annotationStorage.\n value = value !== \"Off\";\n storage.setValue(id, { value });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"id\", id);\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n element.addEventListener(\"change\", event => {\n const { name, checked } = event.target;\n for (const checkbox of this._getElementsByName(name, /* skipId = */ id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, { value: curChecked });\n }\n storage.setValue(id, { value: checked });\n });\n\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, { value: event.target.checked });\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(\n element,\n [\n [\"change\", \"Validate\"],\n [\"change\", \"Action\"],\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n ],\n event => event.target.checked\n );\n }\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderForms });\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue,\n }).value;\n if (typeof value === \"string\") {\n // The value has been changed through js and set in annotationStorage.\n value = value !== data.buttonValue;\n storage.setValue(id, { value });\n }\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"id\", id);\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n element.addEventListener(\"change\", event => {\n const { name, checked } = event.target;\n for (const radio of this._getElementsByName(name, /* skipId = */ id)) {\n storage.setValue(radio.id, { value: false });\n }\n storage.setValue(id, { value: checked });\n });\n\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked =\n defaultValue !== null &&\n defaultValue !== undefined &&\n defaultValue === data.buttonValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, { value: curChecked });\n }\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(\n element,\n [\n [\"change\", \"Validate\"],\n [\"change\", \"Action\"],\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n ],\n event => event.target.checked\n );\n }\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, { ignoreBorder: parameters.data.hasAppearance });\n }\n\n render() {\n // The rendering and functionality of a push button widget annotation is\n // equal to that of a link annotation, but may have more functionality, such\n // as performing actions on form fields (resetting, submitting, et cetera).\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n return container;\n }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderForms });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n\n // For printing/saving we currently only support choice widgets with one\n // option selection. Therefore, listboxes (#12189) and comboboxes (#12224)\n // are not properly printed/saved yet, so we only store the first item in\n // the field value array instead of the entire array. Once support for those\n // two field types is implemented, we should use the same pattern as the\n // other interactive widgets where the return value of `getValue`\n // is used and the full array of field values is stored.\n storage.getValue(id, {\n value:\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined,\n });\n\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n fontSize = 9;\n }\n const fontSizeStyle = `calc(${fontSize}px * var(--zoom-factor))`;\n\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n selectElement.setAttribute(\"id\", id);\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n\n selectElement.style.fontSize = `${fontSize}px`;\n\n if (!this.data.combo) {\n // List boxes have a size and (optionally) multiple selection.\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n\n // Insert the options into the choice field.\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (this.data.combo) {\n optionElement.style.fontSize = fontSizeStyle;\n }\n if (this.data.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n selectElement.appendChild(optionElement);\n }\n\n const getValue = (event, isExport) => {\n const name = isExport ? \"value\" : \"textContent\";\n const options = event.target.options;\n if (!event.target.multiple) {\n return options.selectedIndex === -1\n ? null\n : options[options.selectedIndex][name];\n }\n return Array.prototype.filter\n .call(options, option => option.selected)\n .map(option => option[name]);\n };\n\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return { displayValue: option.textContent, exportValue: option.value };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n });\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(\n options,\n option => option.selected\n );\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n items: getItems(event),\n });\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, { value: null, items: [] });\n },\n insert(event) {\n const { index, displayValue, exportValue } = event.detail.insert;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.insertBefore(\n optionElement,\n selectElement.children[index]\n );\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n items: getItems(event),\n });\n },\n items(event) {\n const { items } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const { displayValue, exportValue } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.appendChild(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n items: getItems(event),\n });\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n });\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(event, /* isExport */ true);\n const value = getValue(event, /* isExport */ false);\n storage.setValue(id, { value: exportValue });\n\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false,\n },\n });\n });\n\n this._setEventListeners(\n selectElement,\n [\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n [\"input\", \"Action\"],\n ],\n event => event.target.checked\n );\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, { value: getValue(event) });\n });\n }\n\n this._setBackgroundColor(selectElement);\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable });\n }\n\n render() {\n // Do not render popup annotations for parent elements with these types as\n // they create the popups themselves (because of custom trigger divs).\n const IGNORE_TYPES = [\n \"Line\",\n \"Square\",\n \"Circle\",\n \"PolyLine\",\n \"Polygon\",\n \"Ink\",\n ];\n\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElements = this.layer.querySelectorAll(selector);\n if (parentElements.length === 0) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n });\n\n // Position the popup next to the parent annotation's container.\n // PDF viewers ignore a popup annotation's rectangle.\n const page = this.page;\n const rect = Util.normalizeRect([\n this.data.parentRect[0],\n page.view[3] - this.data.parentRect[1] + page.view[1],\n this.data.parentRect[2],\n page.view[3] - this.data.parentRect[3] + page.view[1],\n ]);\n const popupLeft =\n rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n\n this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`;\n this.container.style.left = `${popupLeft}px`;\n this.container.style.top = `${popupTop}px`;\n\n this.container.appendChild(popup.render());\n return this.container;\n }\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n\n // For Popup annotations we hide the entire section because it contains\n // only the popup. However, for Text annotations without a separate Popup\n // annotation, we cannot hide the entire container as the image would\n // disappear too. In that special case, hiding the wrapper suffices.\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n\n const color = this.color;\n if (color) {\n // Enlighten the color.\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.appendChild(title);\n\n // The modification date is shown in the popup instead of the creation\n // date if it is available and can be parsed correctly, which is\n // consistent with other viewers such as Adobe Acrobat.\n const dateObject = PDFDateString.toDateObject(this.modificationDate);\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString(),\n });\n popup.appendChild(modificationDate);\n }\n\n if (\n this.richText?.str &&\n (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)\n ) {\n XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup,\n });\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n popup.appendChild(contents);\n }\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n // Attach the event listeners to the trigger element.\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n /**\n * Format the contents of the popup by adding newlines where necessary.\n *\n * @private\n * @param {Object<string, string>} contentsObj\n * @memberof PopupElement\n * @returns {HTMLParagraphElement}\n */\n _formatContents({ str, dir }) {\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n return p;\n }\n\n /**\n * Toggle the visibility of the popup.\n *\n * @private\n * @memberof PopupElement\n */\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n /**\n * Show the popup.\n *\n * @private\n * @param {boolean} pin\n * @memberof PopupElement\n */\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex += 1;\n }\n }\n\n /**\n * Hide the popup.\n *\n * @private\n * @param {boolean} unpin\n * @memberof PopupElement\n */\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex -= 1;\n }\n }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n\n // Create an invisible line with the same starting and ending coordinates\n // that acts as the trigger for the popup. Only the line itself should\n // trigger the popup, not the entire container.\n const data = this.data;\n const { width, height } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n\n // PDF coordinates are calculated from a bottom left origin, so transform\n // the line coordinates to a top left origin for the SVG element.\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(line);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the line instead\n // of to the entire container (which is the default).\n this._createPopup(line, data);\n\n return this.container;\n }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n\n // Create an invisible square with the same rectangle that acts as the\n // trigger for the popup. Only the square itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const { width, height } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the square and half of\n // the borders outside the square by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(square);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the square instead\n // of to the entire container (which is the default).\n this._createPopup(square, data);\n\n return this.container;\n }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n\n // Create an invisible circle with the same ellipse that acts as the\n // trigger for the popup. Only the circle itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const { width, height } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the circle and half of\n // the borders outside the circle by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(circle);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the circle instead\n // of to the entire container (which is the default).\n this._createPopup(circle, data);\n\n return this.container;\n }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup. Only the polyline itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const { width, height } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n\n // Convert the vertices array to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n points = points.join(\" \");\n\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(polyline);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(polyline, data);\n\n return this.container;\n }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n\n this.containerClassName = \"inkAnnotation\";\n\n // Use the polyline SVG element since it allows us to use coordinates\n // directly and to draw both straight lines and curves.\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup.\n const data = this.data;\n const { width, height } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n // Convert the ink list to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: true });\n\n const { filename, content } = this.data.file;\n this.filename = getFilenameFromUrl(filename);\n this.content = content;\n\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: stringToPDFString(filename),\n filename,\n content,\n });\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (\n !this.data.hasPopup &&\n (this.data.titleObj?.str ||\n this.data.contentsObj?.str ||\n this.data.richText)\n ) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n /**\n * Download the file attachment associated with this annotation.\n *\n * @private\n * @memberof FileAttachmentAnnotationElement\n */\n _download() {\n this.downloadManager?.openOrDownloadData(\n this.container,\n this.content,\n this.filename\n );\n }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPageProxy} page\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {boolean} [enableScripting] - Enable embedded script execution.\n * @property {boolean} [hasJSActions] - Some fields have JS actions.\n * The default value is `false`.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n */\n\nclass AnnotationLayer {\n /**\n * Render a new annotation layer with all annotation elements.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n // Ensure that Popup annotations are handled last, since they're dependant\n // upon the parent annotation having already been rendered (please refer to\n // the `PopupAnnotationElement.render` method); fixes issue 11362.\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n const { width, height } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n if (data.annotationType === AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n sortedAnnotations.push(data);\n }\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n const div = parameters.div;\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage:\n parameters.annotationStorage || new AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\n mouseState: parameters.mouseState || { isDown: false },\n });\n if (element.isRenderable) {\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n div.appendChild(renderedElement);\n }\n } else {\n if (element instanceof PopupAnnotationElement) {\n // Popup annotation elements should not be on top of other\n // annotation elements to prevent interfering with mouse events.\n div.prepend(rendered);\n } else {\n div.appendChild(rendered);\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, parameters.annotationCanvasMap);\n }\n\n /**\n * Update the annotation elements on existing annotation layer.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static update(parameters) {\n const { page, viewport, annotations, annotationCanvasMap, div } =\n parameters;\n const transform = viewport.transform;\n const matrix = `matrix(${transform.join(\",\")})`;\n\n let scale, ownMatrix;\n for (const data of annotations) {\n const elements = div.querySelectorAll(\n `[data-annotation-id=\"${data.id}\"]`\n );\n if (elements) {\n for (const element of elements) {\n if (data.hasOwnCanvas) {\n const rect = Util.normalizeRect([\n data.rect[0],\n page.view[3] - data.rect[1] + page.view[1],\n data.rect[2],\n page.view[3] - data.rect[3] + page.view[1],\n ]);\n\n if (!ownMatrix) {\n // When an annotation has its own canvas, then\n // the scale has been already applied to the canvas,\n // so we musn't scale it twice.\n scale = Math.abs(transform[0] || transform[1]);\n const ownTransform = transform.slice();\n for (let i = 0; i < 4; i++) {\n ownTransform[i] = Math.sign(ownTransform[i]);\n }\n ownMatrix = `matrix(${ownTransform.join(\",\")})`;\n }\n\n const left = rect[0] * scale;\n const top = rect[1] * scale;\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n element.style.transformOrigin = `${-left}px ${-top}px`;\n element.style.transform = ownMatrix;\n } else {\n element.style.transform = matrix;\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n div.hidden = false;\n }\n\n static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n\n const { firstChild } = element;\n if (firstChild.nodeName === \"CANVAS\") {\n element.replaceChild(canvas, firstChild);\n } else {\n element.insertBefore(canvas, firstChild);\n }\n }\n annotationCanvasMap.clear();\n }\n}\n\nexport { AnnotationLayer };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * PLEASE NOTE: This file is currently imported in both the `../display/` and\n * `../scripting_api/` folders, hence be EXTREMELY careful about\n * introducing any dependencies here since that can lead to an\n * unexpected/unnecessary size increase of the *built* files.\n */\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255)\n .toString(16)\n .padStart(2, \"0\");\n}\n\n// PDF specifications section 10.3\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n\n static RGB_HTML([r, g, b]) {\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n\n static T_HTML() {\n return \"#00000000\";\n }\n\n static CMYK_RGB([c, y, m, k]) {\n return [\n \"RGB\",\n 1 - Math.min(1, c + k),\n 1 - Math.min(1, m + k),\n 1 - Math.min(1, y + k),\n ];\n }\n\n static CMYK_HTML(components) {\n return this.RGB_HTML(this.CMYK_RGB(components));\n }\n\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\n\nexport { ColorConverters };\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\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { warn } from \"../shared/util.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\n/**\n * @typedef {Object} XfaLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Object} xfaHtml\n * @property {AnnotationStorage} [annotationStorage]\n * @property {IPDFLinkService} linkService\n * @property {string} [intent] - (default value is 'display').\n */\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, { value: null });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, { value: event.target.value });\n });\n break;\n case \"input\":\n if (\n element.attributes.type === \"radio\" ||\n element.attributes.type === \"checkbox\"\n ) {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n // The checked attribute may have been set when opening the file,\n // unset through the UI and we're here because of printing.\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked\n ? event.target.getAttribute(\"xfaOn\")\n : event.target.getAttribute(\"xfaOff\"),\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, { value: event.target.value });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value =\n options.selectedIndex === -1\n ? \"\"\n : options[options.selectedIndex].value;\n storage.setValue(id, { value });\n });\n break;\n }\n }\n\n static setAttributes({ html, element, storage = null, intent, linkService }) {\n const { attributes } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n // Avoid to have a radio group when printing with the same as one\n // already displayed.\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n // We don't need to add dataId in the html object but it can\n // be useful to know its value when writing printing tests:\n // in this case, don't skip dataId to have its value.\n if (value === null || value === undefined || key === \"dataId\") {\n continue;\n }\n\n if (key !== \"style\") {\n if (key === \"textContent\") {\n html.textContent = value;\n } else if (key === \"class\") {\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n } else {\n if (isHTMLAnchorElement && (key === \"href\" || key === \"newWindow\")) {\n continue; // Handled below.\n }\n html.setAttribute(key, value);\n }\n } else {\n Object.assign(html.style, value);\n }\n }\n\n if (isHTMLAnchorElement) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n !linkService.addLinkAttributes\n ) {\n warn(\n \"XfaLayer.setAttribute - missing `addLinkAttributes`-method on the `linkService`-instance.\"\n );\n }\n linkService.addLinkAttributes?.(\n html,\n attributes.href,\n attributes.newWindow\n );\n }\n\n // Set the value after the others to be sure overwrite\n // any other values.\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n\n /**\n * Render the XFA layer.\n *\n * @param {XfaLayerParameters} parameters\n */\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService,\n });\n }\n const stack = [[root, -1, rootHtml]];\n\n const rootDiv = parameters.div;\n rootDiv.appendChild(rootHtml);\n\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n\n // Set defaults.\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n // Text nodes used for the text highlighter.\n const textDivs = [];\n\n while (stack.length > 0) {\n const [parent, i, html] = stack[stack.length - 1];\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack[stack.length - 1][1]];\n if (child === null) {\n continue;\n }\n\n const { name } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.appendChild(node);\n continue;\n }\n\n let childHtml;\n if (child?.attributes?.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.appendChild(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService,\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.appendChild(node);\n }\n }\n\n /**\n * TODO: re-enable that stuff once we've JS implementation.\n * See https://bugzilla.mozilla.org/show_bug.cgi?id=1719465.\n *\n * for (const el of rootDiv.querySelectorAll(\n * \".xfaDisabled input, .xfaDisabled textarea\"\n * )) {\n * el.setAttribute(\"disabled\", true);\n * }\n * for (const el of rootDiv.querySelectorAll(\n * \".xfaReadOnly input, .xfaReadOnly textarea\"\n * )) {\n * el.setAttribute(\"readOnly\", true);\n * }\n */\n\n for (const el of rootDiv.querySelectorAll(\n \".xfaNonInteractive input, .xfaNonInteractive textarea\"\n )) {\n el.setAttribute(\"readOnly\", true);\n }\n\n return {\n textDivs,\n };\n }\n\n /**\n * Update the XFA layer.\n *\n * @param {XfaLayerParameters} parameters\n */\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\n\nexport { XfaLayer };\n","/* Copyright 2015 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 AbortException,\n createPromiseCapability,\n Util,\n} from \"../shared/util.js\";\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {import(\"./api\").TextContent} [textContent] - Text content to\n * render (the object is returned by the page's `getTextContent` method).\n * @property {ReadableStream} [textContentStream] - Text content stream to\n * render (the stream is returned by the page's `streamTextContent` method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {import(\"./display_utils\").PageViewport} viewport - The target\n * viewport to properly layout the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that are correspond\n * to the text items of the textContent input. This is output and shall be\n * initially be set to empty array.\n * @property {Array<string>} [textContentItemsStr] - Strings that correspond to\n * the `str` property of the text items of textContent input. This is output\n * and shall be initially be set to empty array.\n * @property {number} [timeout] - Delay in milliseconds before rendering of the\n * text runs occurs.\n * @property {boolean} [enhanceTextSelection] - Whether to turn on the text\n * selection enhancement.\n */\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n\n // Both properties aren't available by default in Firefox.\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n ctx.restore();\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n // Try basic heuristic to guess ascent/descent.\n // Draw a g with baseline at 0,0 and then get the line\n // number where a pixel has non-null red component (starting\n // from bottom).\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(\n 0,\n 0,\n DEFAULT_FONT_SIZE,\n DEFAULT_FONT_SIZE\n ).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n // Draw an A with baseline at 0,DEFAULT_FONT_SIZE and then get the line\n // number where a pixel has non-null red component (starting\n // from top).\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n // Initialize all used properties to keep the caches monomorphic.\n const textDiv = document.createElement(\"span\");\n const textDivProperties = task._enhanceTextSelection\n ? {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1,\n }\n : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n };\n\n task._textDivs.push(textDiv);\n\n const tx = Util.transform(task._viewport.transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n // Setting the style properties individually, rather than all at once,\n // should be OK since the `textDiv` isn't appended to the document yet.\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight / 16.0}em`;\n textDiv.style.fontFamily = style.fontFamily;\n\n // Keeps screen readers from pausing on every new text span.\n textDiv.setAttribute(\"role\", \"presentation\");\n\n textDiv.textContent = geom.str;\n // geom.dir may be 'ttb' for vertical texts.\n textDiv.dir = geom.dir;\n\n // `fontName` is only used by the FontInspector, and we only use `dataset`\n // here to make the font name available in the debugger.\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n // We don't bother scaling single-char text divs, because it has very\n // little effect on text highlighting. This makes scrolling on docs with\n // lots of such divs a lot faster.\n let shouldScaleText = false;\n if (\n geom.str.length > 1 ||\n (task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str))\n ) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n // When the horizontal/vertical scaling differs significantly, also scale\n // even single-char text to improve highlighting (fixes issue11713.pdf).\n if (\n absScaleX !== absScaleY &&\n Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5\n ) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n let angleCos = 1,\n angleSin = 0;\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n const divWidth =\n (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n const divHeight = fontHeight;\n\n let m, b;\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m,\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n\n // No point in rendering many divs as it would make the browser\n // unusable even after the divs are rendered.\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (let i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n let result = 0;\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n return result;\n}\n\nfunction expand(task) {\n const bounds = task._bounds;\n const viewport = task._viewport;\n\n const expanded = expandBounds(viewport.width, viewport.height, bounds);\n for (let i = 0; i < expanded.length; i++) {\n const div = bounds[i].div;\n const divProperties = task._textDivProperties.get(div);\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n task._textDivProperties.set(div, divProperties);\n continue;\n }\n // Box is rotated -- trying to find padding so rotated div will not\n // exceed its expanded bounds.\n const e = expanded[i],\n b = bounds[i];\n const m = b.m,\n c = m[0],\n s = m[1];\n // Finding intersections with expanded box.\n const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n const ts = new Float64Array(64);\n for (let j = 0, jj = points.length; j < jj; j++) {\n const t = Util.applyTransform(points[j], m);\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n // Not based on math, but to simplify calculations, using cos and sin\n // absolute values to not exceed the box (it can but insignificantly).\n const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n const bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined,\n };\n });\n expandBoundsLTR(width, bounds);\n\n const expanded = new Array(boxes.length);\n for (const b of bounds) {\n const i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0,\n };\n }\n\n // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n // array and objects.\n boxes.map(function (box, i) {\n const e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n }\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n // Sorting by x1 coordinate and walk by the bounds in the same order.\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n\n // First we see on the horizon is a fake boundary.\n const fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0,\n };\n const horizon = [\n {\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary,\n },\n ];\n\n for (const boundary of bounds) {\n // Searching for the affected part of horizon.\n // TODO red-black tree or simple binary search\n let i = 0;\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n let j = horizon.length - 1;\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n let horizonPart, affectedBoundary;\n let q,\n k,\n maxXNew = -Infinity;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n let xNew;\n if (affectedBoundary.x2 > boundary.x1) {\n // In the middle of the previous element, new x shall be at the\n // boundary start. Extending if further if the affected boundary\n // placed on top of the current one.\n xNew =\n affectedBoundary.index > boundary.index\n ? affectedBoundary.x1New\n : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n // We have some space in between, new x in middle will be a fair\n // choice.\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n // Affected boundary has x2new set, using it as new x.\n xNew = affectedBoundary.x2New;\n }\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n // Set new x1 for current boundary.\n boundary.x1New = maxXNew;\n\n // Adjusts new x2 for the affected boundaries.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n // Was not set yet, choosing new x if possible.\n if (affectedBoundary.x2 > boundary.x1) {\n // Current and affected boundaries intersect. If affected boundary\n // is placed on top of the current, shrinking the affected.\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n // Affected boundary is touching new x, pushing it back.\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n // Fixing the horizon.\n const changedHorizon = [];\n let lastBoundary = null;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n // Checking which boundary will be visible.\n const useBoundary =\n affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n if (lastBoundary === useBoundary) {\n // Merging with previous.\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary,\n });\n lastBoundary = useBoundary;\n }\n }\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary,\n });\n }\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary,\n });\n }\n\n // Set x2 new of boundary that is no longer visible (see overlapping case\n // above).\n // TODO more efficient, e.g. via reference counting.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n let used = false;\n for (\n k = i - 1;\n !used && k >= 0 && horizon[k].start >= affectedBoundary.y1;\n k--\n ) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (\n k = j + 1;\n !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2;\n k++\n ) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(\n horizon,\n [i, j - i + 1].concat(changedHorizon)\n );\n }\n\n // Set new x2 for all unset boundaries.\n for (const horizonPart of horizon) {\n const affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nclass TextLayerRenderTask {\n constructor({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection,\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = createPromiseCapability();\n this._renderTimer = null;\n this._bounds = [];\n\n // Always clean-up the temporary canvas once rendering is no longer pending.\n this._capability.promise\n .finally(() => {\n if (!this._enhanceTextSelection) {\n // The `textDiv` properties are no longer needed.\n this._textDivProperties = null;\n }\n\n if (this._layoutTextCtx) {\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n })\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n }\n\n /**\n * Promise for textLayer rendering task completion.\n * @type {Promise<void>}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Cancel rendering of the textLayer.\n */\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader\n .cancel(new AbortException(\"TextLayer task cancelled.\"))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n this._reader = null;\n }\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n\n /**\n * @private\n */\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (\n items[i].type === \"beginMarkedContentProps\" ||\n items[i].type === \"beginMarkedContent\"\n ) {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", `${items[i].id}`);\n }\n parent.appendChild(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(items[i].str);\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n\n /**\n * @private\n */\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n let transform = \"\";\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n const { fontSize, fontFamily } = textDiv.style;\n\n // Only build font string and set to context if different from last.\n if (\n fontSize !== this._layoutTextLastFontSize ||\n fontFamily !== this._layoutTextLastFontFamily\n ) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n // Only measure the width for multi-char text divs, see `appendText`.\n const { width } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n const scale = textDivProperties.canvasWidth / width;\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n transform = `scaleX(${scale})`;\n }\n }\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.appendChild(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.appendChild(br);\n }\n }\n\n /**\n * @private\n */\n _render(timeout = 0) {\n const capability = createPromiseCapability();\n let styleCache = Object.create(null);\n\n // The temporary canvas is used to measure text length in the DOM.\n const canvas = this._document.createElement(\"canvas\");\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"MOZCENTRAL || GENERIC\")\n ) {\n canvas.mozOpaque = true;\n }\n this._layoutTextCtx = canvas.getContext(\"2d\", { alpha: false });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n this._processItems(textItems, textStyles);\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({ value, done }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error(\n 'Neither \"textContent\" nor \"textContentStream\" parameters specified.'\n );\n }\n\n capability.promise.then(() => {\n styleCache = null;\n if (!timeout) {\n // Render right away\n render(this);\n } else {\n // Schedule\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n\n /**\n * @param {boolean} [expandDivs]\n */\n expandTextDivs(expandDivs = false) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n const transformBuf = [],\n paddingBuf = [];\n\n for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n const divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(\n `translateX(${-divProps.paddingLeft / divProps.scale}px)`\n );\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n}\n\n/**\n * @param {TextLayerRenderParameters} renderParameters\n * @returns {TextLayerRenderTask}\n */\nfunction renderTextLayer(renderParameters) {\n const task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection,\n });\n task._render(renderParameters.timeout);\n return task;\n}\n\nexport { renderTextLayer };\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/* globals __non_webpack_require__ */\n\nimport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n ImageKind,\n OPS,\n TextRenderingMode,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { DOMSVGFactory } from \"./display_utils.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\n\n/** @type {any} */\nlet SVGGraphics = class {\n constructor() {\n unreachable(\"Not implemented: SVGGraphics\");\n }\n};\n\nif (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || GENERIC\")\n) {\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\",\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const createObjectURL = function (\n data,\n contentType = \"\",\n forceDataSchema = false\n ) {\n if (\n URL.createObjectURL &&\n typeof Blob !== \"undefined\" &&\n !forceDataSchema\n ) {\n return URL.createObjectURL(new Blob([data], { type: contentType }));\n }\n // Blob/createObjectURL is not available, falling back to data schema.\n const digits =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = ((b1 & 3) << 4) | (b2 >> 4);\n const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n\n const convertImgDataToPng = (function () {\n const PNG_HEADER = new Uint8Array([\n 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,\n ]);\n const CHUNK_WRAPPER_SIZE = 12;\n\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ ((c >> 1) & 0x7fffffff);\n } else {\n c = (c >> 1) & 0x7fffffff;\n }\n }\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = (crc >>> 8) ^ b;\n }\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n\n data[p] = (len >> 24) & 0xff;\n data[p + 1] = (len >> 16) & 0xff;\n data[p + 2] = (len >> 8) & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n\n data.set(body, p);\n p += body.length;\n\n const crc = crc32(data, offset + 4, p);\n data[p] = (crc >> 24) & 0xff;\n data[p + 1] = (crc >> 16) & 0xff;\n data[p + 2] = (crc >> 8) & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return (b << 16) | a;\n }\n\n /**\n * @param {Uint8Array} literals The input data.\n * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n * This is the required format for compressed streams in the PNG format:\n * http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n */\n function deflateSync(literals) {\n if (!isNodeJS) {\n // zlib is certainly not available outside of Node.js. We can either use\n // the pako library for client-side DEFLATE compression, or use the\n // canvas API of the browser to obtain a more optimal PNG file.\n return deflateSyncUncompressed(literals);\n }\n try {\n // NOTE: This implementation is far from perfect, but already way better\n // than not applying any compression.\n //\n // A better algorithm will try to choose a good predictor/filter and\n // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n //\n // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n // Node v3.0.0 Buffer inherits from Uint8Array.\n // Node v8.0.0 zlib.deflateSync accepts Uint8Array as input.\n let input;\n // eslint-disable-next-line no-undef\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n // eslint-disable-next-line no-undef\n input = Buffer.from(literals);\n }\n const output = __non_webpack_require__(\"zlib\").deflateSync(input, {\n level: 9,\n });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n warn(\n \"Not compressing PNG because zlib.deflateSync is unavailable: \" + e\n );\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78; // compression method and flags\n idat[pi++] = 0x9c; // flags\n\n let pos = 0;\n while (len > maxBlockLength) {\n // writing non-final DEFLATE blocks type 0 and length of 65535\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n // writing non-final DEFLATE blocks type 0\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = (len >> 8) & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = ((~len & 0xffff) >> 8) & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n\n const adler = adler32(literals, 0, literals.length); // checksum\n idat[pi++] = (adler >> 24) & 0xff;\n idat[pi++] = (adler >> 16) & 0xff;\n idat[pi++] = (adler >> 8) & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = (width + 7) >> 3;\n break;\n case ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n\n // prefix every row with predictor 0\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0; // no prediction\n literals.set(\n bytes.subarray(offsetBytes, offsetBytes + lineSize),\n offsetLiterals\n );\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n // inverting for image masks\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++; // skipping predictor\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([\n (width >> 24) & 0xff,\n (width >> 16) & 0xff,\n (width >> 8) & 0xff,\n width & 0xff,\n (height >> 24) & 0xff,\n (height >> 16) & 0xff,\n (height >> 8) & 0xff,\n height & 0xff,\n bitDepth, // bit depth\n colorType, // color type\n 0x00, // compression method\n 0x00, // filter method\n 0x00, // interlace method\n ]);\n const idat = deflateSync(literals);\n\n // PNG consists of: header, IHDR+data, IDAT+data, and IEND.\n const pngLength =\n PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n\n // eslint-disable-next-line no-shadow\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind =\n imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n })();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n\n this.textMatrix = IDENTITY_MATRIX;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n\n // Default foreground and background colors\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n\n this.dashArray = [];\n this.dashPhase = 0;\n\n this.dependencies = [];\n\n // Clipping\n this.activeClipUrl = null;\n this.clipGroup = null;\n\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }\n\n // eslint-disable-next-line no-inner-declarations\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({ fnId: 92, fn: \"group\", items: [] });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n }\n\n /**\n * Format a float number as a string.\n *\n * @param value {number} - The float number to format.\n * @returns {string}\n */\n // eslint-disable-next-line no-inner-declarations\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n\n // Remove trailing zeros.\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n /**\n * Format a transform matrix as a string. The standard rotation, scale and\n * translation matrices are replaced by their shorter forms, and for\n * identity matrices an empty string is returned to save memory.\n *\n * @param m {Array} - The transform matrix to format.\n * @returns {string}\n */\n // eslint-disable-next-line no-inner-declarations\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = (Math.acos(m[0]) * 180) / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n return (\n `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` +\n `${pf(m[5])})`\n );\n }\n\n // The counts below are relevant for all pages, so they have to be global\n // instead of being members of `SVGGraphics` (which is recreated for\n // each page).\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n\n SVGGraphics = class {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new DOMSVGFactory();\n\n this.current = new SVGExtraState();\n this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n\n // In `src/shared/util.js` the operator names are mapped to IDs.\n // The list below represents the reverse of that, i.e., it maps IDs\n // to operator names.\n this._operatorIdMapping = [];\n for (const op in OPS) {\n this._operatorIdMapping[OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = Util.transform(\n this.transformMatrix,\n transformMatrix\n );\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i],\n });\n }\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case OPS.beginText:\n this.beginText();\n break;\n case OPS.dependency:\n // Handled in `loadDependencies`, so no warning should be shown.\n break;\n case OPS.setLeading:\n this.setLeading(args);\n break;\n case OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case OPS.setFont:\n this.setFont(args);\n break;\n case OPS.showText:\n this.showText(args[0]);\n break;\n case OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case OPS.endText:\n this.endText();\n break;\n case OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case OPS.setTextMatrix:\n this.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n break;\n case OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case OPS.setGState:\n this.setGState(args[0]);\n break;\n case OPS.fill:\n this.fill();\n break;\n case OPS.eoFill:\n this.eoFill();\n break;\n case OPS.stroke:\n this.stroke();\n break;\n case OPS.fillStroke:\n this.fillStroke();\n break;\n case OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case OPS.clip:\n this.clip(\"nonzero\");\n break;\n case OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case OPS.closePath:\n this.closePath();\n break;\n case OPS.closeStroke:\n this.closeStroke();\n break;\n case OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case OPS.nextLine:\n this.nextLine();\n break;\n case OPS.transform:\n this.transform(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n break;\n case OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n warn(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(\n null,\n \"font-size\",\n `${pf(current.fontSize / 16.0)}em`\n );\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = IDENTITY_MATRIX;\n current.lineMatrix = IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(\n null,\n \"font-size\",\n `${pf(current.fontSize / 16.0)}em`\n );\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n // Word break\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += (spacingDir * glyph * fontSize) / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {\n // TODO: To assist with text selection, we should replace the missing\n // character with a space character if charWidth is not zero.\n // But we cannot just do \"character = ' '\", because the ' ' character\n // might actually map to a different glyph.\n }\n\n let charWidth;\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n current.tspan.setAttributeNS(\n null,\n \"x\",\n current.xcoords.map(pf).join(\" \")\n );\n if (vertical) {\n current.tspan.setAttributeNS(\n null,\n \"y\",\n current.ycoords.map(pf).join(\" \")\n );\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(\n null,\n \"font-size\",\n `${pf(current.fontSize / 16.0)}em`\n );\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode =\n current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (\n fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n // Workaround for Firefox: We must set fill=\"transparent\" because\n // fill=\"none\" would generate an empty clipping path.\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n // Include the text rise in the text matrix since the `pm` function\n // creates the SVG element's `translate` entry (work on a copy to avoid\n // altering the original text matrix).\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(\n null,\n \"transform\",\n `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`\n );\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\n \"addFontStyle: No font data available, \" +\n 'ensure that the \"fontExtraProperties\" API parameter is set.'\n );\n }\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = createObjectURL(\n fontObj.data,\n fontObj.mimetype,\n this.forceDataSchema\n );\n this.cssStyle.textContent +=\n `@font-face { font-family: \"${fontObj.loadedName}\";` +\n ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (\n this.embedFonts &&\n !fontObj.missingFile &&\n !this.embeddedFonts[fontObj.loadedName]\n ) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n if (\n current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG &&\n current.txtElement?.hasChildNodes()\n ) {\n // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n // Path properties\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = Util.makeHexColor(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const inv = Util.inverseTransform(this.transformMatrix);\n const bl = Util.applyTransform([0, 0], inv);\n const br = Util.applyTransform([0, height], inv);\n const ul = Util.applyTransform([width, 0], inv);\n const ur = Util.applyTransform([width, height], inv);\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().appendChild(rect);\n }\n\n /**\n * @private\n */\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n\n /**\n * @private\n */\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0, tx1, ty1] = Util.normalizeRect([\n ...Util.applyTransform([x0, y0], matrix),\n ...Util.applyTransform([x1, y1], matrix),\n ]);\n const [xscale, yscale] = Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n\n // Save current state.\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n\n // Restore saved state.\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n /**\n * @private\n */\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n warn(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\n \"M\",\n pf(x),\n pf(y),\n \"L\",\n pf(xw),\n pf(y),\n \"L\",\n pf(xw),\n pf(yh),\n \"L\",\n pf(x),\n pf(yh),\n \"Z\"\n );\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n case OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\n \"C\",\n pf(args[j]),\n pf(args[j + 1]),\n pf(args[j + 2]),\n pf(args[j + 3]),\n pf(x),\n pf(y)\n );\n j += 6;\n break;\n case OPS.curveTo2:\n d.push(\n \"C\",\n pf(x),\n pf(y),\n pf(args[j]),\n pf(args[j + 1]),\n pf(args[j + 2]),\n pf(args[j + 3])\n );\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\n \"C\",\n pf(args[j]),\n pf(args[j + 1]),\n pf(x),\n pf(y),\n pf(x),\n pf(y)\n );\n j += 4;\n break;\n case OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (\n current.path &&\n ops.length > 0 &&\n ops[0] !== OPS.rectangle &&\n ops[0] !== OPS.moveTo\n ) {\n // If a path does not start with an OPS.rectangle or OPS.moveTo, it has\n // probably been divided into two OPS.constructPath operators by\n // OperatorList. Append the commands to the previous path element.\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n\n // Saving a reference in current.element so that it can be addressed\n // in 'fill' and 'stroke'\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n\n // Painting operators end a path.\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n // Add the current path to a clipping path.\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n // A deep clone is needed when text is used as a clipping path.\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n // The previous clipping group content can go out of order -- resetting\n // cached clipGroups.\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n // Intersect with the previous clipping path.\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n warn(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n /**\n * @private\n */\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(\n null,\n \"stroke-width\",\n pf(lineWidthScale * current.lineWidth) + \"px\"\n );\n element.setAttributeNS(\n null,\n \"stroke-dasharray\",\n dashArray.map(pf).join(\" \")\n );\n element.setAttributeNS(\n null,\n \"stroke-dashoffset\",\n pf(lineWidthScale * current.dashPhase) + \"px\"\n );\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n this.fill();\n }\n\n fillStroke() {\n // Order is important since stroke wants fill to be none.\n // First stroke, then if fill needed, it will be overwritten.\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\")\n ? this.commonObjs.get(objId)\n : this.objs.get(objId);\n if (!imgData) {\n warn(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(\n null,\n \"transform\",\n `scale(${pf(1 / width)} ${pf(-1 / height)})`\n );\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n\n this.defs.appendChild(mask);\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(\n matrix[0],\n matrix[1],\n matrix[2],\n matrix[3],\n matrix[4],\n matrix[5]\n );\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n /**\n * @private\n */\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n\n // Create the definitions element.\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n\n // Create the root group element, which acts a container for all other\n // groups and applies the viewport transform.\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n\n // For the construction of the SVG image we are only interested in the\n // root group, so we expose it as the entry point of the SVG image for\n // the other code in this class.\n this.svg = rootGroup;\n\n return svg;\n }\n\n /**\n * @private\n */\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n\n /**\n * @private\n */\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n return this.tgrp;\n }\n };\n}\n\nexport { SVGGraphics };\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/* globals __non_webpack_require__ */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n} from \"../shared/util.js\";\nimport {\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\n 'Module \"./node_stream.js\" shall not be used with MOZCENTRAL builds.'\n );\n}\n\nconst fs = __non_webpack_require__(\"fs\");\nconst http = __non_webpack_require__(\"http\");\nconst https = __non_webpack_require__(\"https\");\nconst url = __non_webpack_require__(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n // Prepending 'file:///' to Windows absolute path.\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n // Changes protocol to 'file:' if url refers to filesystem.\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp =\n this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n // Check if url refers to filesystem.\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFNodeStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = this.isFsUrl\n ? new PDFNodeStreamFsFullReader(this)\n : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl\n ? new PDFNodeStreamFsRangeReader(this, start, end)\n : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length; // optional\n this._loaded = 0;\n this._filename = null;\n\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n this._headersCapability = createPromiseCapability();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return { value: undefined, done: true };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n const buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n\n readableStream.on(\"end\", () => {\n // Destroy readable to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException(\"streaming is disabled\"));\n }\n\n // Destroy ReadableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return { value: undefined, done: true };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n const buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n\n readableStream.on(\"end\", () => {\n // Destroy readableStream to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n // Destroy readableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers,\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n // Make sure that headers name are in lower case, as mentioned\n // here: https://nodejs.org/api/http.html#http_message_headers.\n return this._readableStream.headers[name.toLowerCase()];\n };\n const { allowRangeRequests, suggestedLength } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n };\n\n this._request = null;\n if (this._url.protocol === \"http:\") {\n this._request = http.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse\n );\n } else {\n this._request = https.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse\n );\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n // Note: `request.end(data)` is used to write `data` to request body\n // and notify end of request. But one should always call `request.end()`\n // even if there is no data to write -- (to notify the end of request).\n this._request.end();\n }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (typeof value === \"undefined\") {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n\n this._request = null;\n if (this._url.protocol === \"http:\") {\n this._request = http.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse\n );\n } else {\n this._request = https.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse\n );\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n // Setting right content length.\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, { start, end: end - 1 }));\n }\n}\n\nexport { PDFNodeStream };\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 MissingPDFException,\n UnexpectedResponseException,\n} from \"../shared/util.js\";\nimport { getFilenameFromContentDispositionHeader } from \"./content_disposition.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange,\n}) {\n assert(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined,\n };\n\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n // The file size is smaller than the size of two chunks, so it does not\n // make any sense to abort the request and retry with a range request.\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n if (isPdfFile(filename)) {\n return filename;\n }\n }\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || (status === 0 && url.startsWith(\"file:\"))) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(\n `Unexpected server response (${status}) while retrieving PDF \"${url}\".`,\n status\n );\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\nexport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\n};\n","/* Copyright 2017 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 { stringToBytes } from \"../shared/util.js\";\n\n// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Move return to the end of the function to prevent Babel from dropping the\n// function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @returns {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n\n // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n // filename*n*=part\n // filename*n=part\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n // RFC 2047, section\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n // filename=value (RFC 5987, section 4.1).\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // After this line there are only function declarations. We cannot put\n // \"return\" here for readability because babel would then drop the function\n // declarations...\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\n \"(?:^|;)\\\\s*\" +\n attributePattern +\n \"\\\\s*=\\\\s*\" +\n // Captures: value = token | quoted-string\n // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n \"(\" +\n '[^\";\\\\s][^;\\\\s]*' +\n \"|\" +\n '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n \")\",\n flags\n );\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {\n // TextDecoder constructor threw - unrecognized encoding.\n }\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n // Maybe multi-byte UTF-8.\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n // Try iso-8859-1 encoding.\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n // Iterate over all filename*n= and filename*n*= with n being an integer\n // of at least zero. Any non-zero number must not start with '0'.\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match; // eslint-disable-line prefer-const\n n = parseInt(n, 10);\n if (n in matches) {\n // Ignore anything after the invalid second filename*0.\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n // Numbers must be consecutive. Truncate when there is a hole.\n break;\n }\n let [quot, part] = matches[n]; // eslint-disable-line prefer-const\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n // Find the first unescaped \" and terminate there.\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1; // Truncates and stop the iteration.\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n // Decodes \"ext-value\" from RFC 5987.\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n // Some servers send \"filename*=\" without encoding 'language' prefix,\n // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n // RFC 2047-decode the result. Firefox tried to drop support for it, but\n // backed out because some servers use it - https://bugzil.la/875615\n // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n // We are more strict and only recognize RFC 2047-encoding if the value\n // starts with \"=?\", since then it is likely that the full value is\n // RFC 2047-encoded.\n\n // Firefox also decodes words even where RFC 2047 section 5 states:\n // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n // RFC 2047, section 2.4\n // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n // charset = token (but let's restrict to characters that denote a\n // possibly valid encoding).\n // encoding = q or b\n // encoded-text = any printable ASCII character other than ? or space.\n // ... but Firefox permits ? and space.\n return value.replace(\n /=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n // RFC 2047 section 4.2.\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n try {\n text = atob(text);\n } catch (e) {}\n return textdecode(charset, text);\n }\n );\n }\n\n return \"\";\n}\n\nexport { getFilenameFromContentDispositionHeader };\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 createPromiseCapability,\n stringToBytes,\n} from \"../shared/util.js\";\nimport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\n 'Module \"./network.js\" shall not be used with MOZCENTRAL builds.'\n );\n}\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n const array = stringToBytes(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = (this.isHttp && args.httpHeaders) || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.getXhr =\n args.getXhr ||\n function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end,\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = (this.pendingRequests[xhrId] = { xhr });\n\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (typeof value === \"undefined\") {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n\n xhr.send(null);\n\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return; // Maybe abortRequest was called...\n }\n pendingRequest.onProgress?.(evt);\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return; // Maybe abortRequest was called...\n }\n\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n // The XHR request might have been aborted in onHeadersReceived()\n // callback, in which case we should abort request.\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n // Success status == 0 can be on ftp, file and other protocols.\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n\n // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n // \"A server MAY ignore the Range header\". This means it's possible to\n // get a 200 rather than a 206 response from a range request.\n const ok_response_on_range_request =\n xhrStatus === OK_RESPONSE &&\n pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (\n !ok_response_on_range_request &&\n xhrStatus !== pendingRequest.expectedStatus\n ) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk,\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk,\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\n\n/** @implements {IPDFStream} */\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials,\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFNetworkStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(\n this._manager,\n this._source\n );\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(\n this._manager,\n begin,\n end\n );\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length; // Optional\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const { allowRangeRequests, suggestedLength } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n if (this._isRangeSupported) {\n // NOTE: by cancelling the full request, and then issuing range\n // requests, there will be an issue for sites where you can only\n // request the pdf once. However, if this is the case, then the\n // server should not be returning that it can support range requests.\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: data.chunk, done: false });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n }\n\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength,\n });\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n this.onClosed?.(this);\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n this._close();\n }\n\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({ loaded: evt.loaded });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\nexport { PDFNetworkStream };\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 AbortException,\n assert,\n createPromiseCapability,\n} from \"../shared/util.js\";\nimport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\n 'Module \"./fetch_stream.js\" shall not be used with MOZCENTRAL builds.'\n );\n}\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController?.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\",\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (typeof value === \"undefined\") {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\n\n/** @implements {IPDFStream} */\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFFetchStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n const url = source.url;\n fetch(\n url,\n createFetchOptions(\n this._headers,\n this._withCredentials,\n this._abortController\n )\n )\n .then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n const { allowRangeRequests, suggestedLength } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n })\n .catch(this._headersCapability.reject);\n\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const { value, done } = await this._reader.read();\n if (done) {\n return { value, done };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n const buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = createPromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(\n url,\n createFetchOptions(\n this._headers,\n this._withCredentials,\n this._abortController\n )\n )\n .then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n })\n .catch(this._readCapability.reject);\n\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const { value, done } = await this._reader.read();\n if (done) {\n return { value, done };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\n }\n const buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\nexport { PDFFetchStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__w_pdfjs_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\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\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/api\").PDFDocumentLoadingTask} PDFDocumentLoadingTask */\n/** @typedef {import(\"./display/api\").PDFDocumentProxy} PDFDocumentProxy */\n/** @typedef {import(\"./display/api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display/api\").RenderTask} RenderTask */\n/** @typedef {import(\"./display/display_utils\").PageViewport} PageViewport */\n\nimport {\n AnnotationMode,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n InvalidPDFException,\n MissingPDFException,\n OPS,\n PasswordResponses,\n PermissionFlag,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n Util,\n VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n build,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n setPDFNetworkStreamFactory,\n version,\n} from \"./display/api.js\";\nimport {\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n isPdfFile,\n isValidFetchUrl,\n loadScript,\n PDFDateString,\n PixelsPerInch,\n RenderingCancelledException,\n} from \"./display/display_utils.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { isNodeJS } from \"./shared/is_node.js\";\nimport { renderTextLayer } from \"./display/text_layer.js\";\nimport { SVGGraphics } from \"./display/svg.js\";\nimport { XfaLayer } from \"./display/xfa_layer.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nif (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n const streamsPromise = Promise.all([\n import(\"pdfjs/display/network.js\"),\n import(\"pdfjs/display/fetch_stream.js\"),\n ]);\n\n setPDFNetworkStreamFactory(async params => {\n const [{ PDFNetworkStream }, { PDFFetchStream }] = await streamsPromise;\n if (isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n} else if (PDFJSDev.test(\"GENERIC || CHROME\")) {\n if (PDFJSDev.test(\"GENERIC\") && isNodeJS) {\n const { PDFNodeStream } = require(\"./display/node_stream.js\");\n\n setPDFNetworkStreamFactory(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const { PDFNetworkStream } = require(\"./display/network.js\");\n const { PDFFetchStream } = require(\"./display/fetch_stream.js\");\n\n setPDFNetworkStreamFactory(params => {\n if (isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n}\n\nexport {\n AnnotationLayer,\n AnnotationMode,\n build,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n GlobalWorkerOptions,\n InvalidPDFException,\n isPdfFile,\n loadScript,\n LoopbackPort,\n MissingPDFException,\n OPS,\n PasswordResponses,\n PDFDataRangeTransport,\n PDFDateString,\n PDFWorker,\n PermissionFlag,\n PixelsPerInch,\n RenderingCancelledException,\n renderTextLayer,\n shadow,\n SVGGraphics,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n Util,\n VerbosityLevel,\n version,\n XfaLayer,\n};\n"],"names":["IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","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","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","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","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","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","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","Error","assert","cond","isSameOrigin","baseUrl","otherUrl","base","URL","origin","e","other","_isValidProtocol","url","protocol","createValidAbsoluteUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","ex","absoluteUrl","shadow","obj","prop","value","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","constructor","prototype","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","str","Uint8Array","charCodeAt","arrayByteLength","arr","byteLength","arraysToBytes","resultLength","pos","data","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","create","key","isLittleEndian","buffer8","view32","Uint32Array","buffer","IsLittleEndianCached","isEvalSupported","Function","IsEvalSupportedCached","hexNumbers","Array","n","toString","padStart","Util","r","g","b","m1","m2","p","m","xt","yt","d","p1","applyTransform","p2","slice","p3","p4","max","v","transpose","a","c","first","second","sqrt","sx","sy","rect","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decode","ii","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","createPromiseCapability","capability","isSettled","get","promise","Promise","resolve","reject","reason","globalThis","_pdfjsCompatibilityChecked","checkNodeBtoa","btoa","isNodeJS","chars","Buffer","from","checkNodeAtob","atob","input","checkDOMMatrix","DOMMatrix","__non_webpack_require__","checkPromise","allSettled","require","checkReadableStream","ReadableStream","checkStructuredClone","structuredClone","process","versions","nw","electron","type","path","module","exports","$","global","isPrototypeOf","getPrototypeOf","setPrototypeOf","copyConstructorProperties","createNonEnumerableProperty","createPropertyDescriptor","clearErrorStack","installErrorCause","iterate","normalizeStringArgument","wellKnownSymbol","ERROR_STACK_INSTALLABLE","TO_STRING_TAG","$AggregateError","AggregateError","errors","arguments","isInstance","AggregateErrorPrototype","that","stack","errorsArray","getOwnPropertyDescriptor","f","redefine","setGlobal","isForced","source","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","noTargetGet","forced","sham","check","it","window","self","DESCRIPTORS","call","propertyIsEnumerableModule","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","P","error","fails","exec","NATIVE_BIND","bind","hasOwnProperty","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","split","FunctionPrototype","fn","stringSlice","TypeError","toPrimitive","isSymbol","argument","isObject","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","isCallable","getBuiltIn","USE_SYMBOL_AS_UID","$Symbol","aFunction","namespace","method","NATIVE_SYMBOL","Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","userAgent","Deno","version","v8","aCallable","func","tryToString","val","valueOf","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","IS_PURE","store","mode","copyright","license","SHARED","toObject","id","postfix","random","createElement","document","EXISTS","definePropertyModule","object","V8_PROTOTYPE_DEFINE_BUG","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","inspectSource","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","state","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","has","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","getDescriptor","PROPER","something","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toIntegerOrInfinity","integer","ceil","floor","number","toLength","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","aPossiblePrototype","CORRECT_SETTER","setter","proto","__proto__","definePropertiesModule","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","objectKeys","defineProperties","props","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","cause","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","iterFn","next","step","stop","condition","callFn","done","Iterators","ITERATOR","ArrayPrototype","usingIterator","iteratorMethod","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","kind","innerResult","innerError","$default","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","values","Arguments","UNSCOPABLES","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TAG","NativePromise","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","Queue","IS_BROWSER","IS_NODE","SPECIES","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","SUBCLASSING","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","then","INCORRECT_ITERATION","all","isThenable","callReaction","reaction","ok","handler","fail","exited","rejection","onHandleUnhandled","enter","exit","notify","isReject","notified","reactions","onUnhandled","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","add","wrap","x","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","Prototype","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","aConstructor","defaultConstructor","S","isConstructor","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","arraySlice","validateArgumentsLength","IS_IOS","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","location","defer","channel","port","run","runner","listener","post","postMessage","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","Reflect","passed","required","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","Pebble","promiseCapability","PromiseCapability","$$resolve","$$reject","tail","entry","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NON_GENERIC","real","onFinally","isFunction","STRING_ITERATOR","point","CONVERT_TO_STRING","position","size","codeAt","collection","collectionStrong","init","Map","InternalMetadataModule","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","REPLACE","forEach","getConstructor","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","splice","$getOwnPropertyNames","windowNames","getWindowNames","createProperty","start","end","k","fin","propertyKey","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","ArrayBuffer","preventExtensions","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","define","getEntry","previous","removed","prev","callbackfn","boundFunction","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","Set","getBuiltin","regExpFlags","EvalError","RangeError","ReferenceError","SyntaxError","URIError","PerformanceMark","WebAssembly","CompileError","LinkError","RuntimeError","DOMException","MapPrototype","mapHas","mapGet","mapSet","setAdd","booleanValueOf","numberValueOf","stringValueOf","getFlags","getTime","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","structuredCloneImplementation","set1","set2","checkNewErrorsSemantic","nativeStructuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","detail","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","structuredCloneInternal","deep","cloned","dataTransfer","RegExp","flags","byteOffset","DOMQuad","DataTransfer","items","files","ImageData","width","height","colorSpace","DataView","setUint8","getUint8","fromPoint","y","z","w","fromRect","fromMatrix","clone","File","PROPER_TRANSFER","transfer","tryToTransfer","rawTransfer","transferredArray","transferred","canvas","context","OffscreenCanvas","getContext","transferFromImageBitmap","transferToImageBitmap","ignoreCase","multiline","dotAll","unicode","sticky","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","NodeCanvasFactory","DOMCanvasFactory","DefaultCMapReaderFactory","NodeCMapReaderFactory","DOMCMapReaderFactory","DefaultStandardFontDataFactory","NodeStandardFontDataFactory","DOMStandardFontDataFactory","createPDFNetworkStream","setPDFNetworkStreamFactory","pdfNetworkStreamFactory","getDocument","PDFDocumentLoadingTask","PDFDataRangeTransport","range","params","rangeTransport","worker","href","isNaN","rangeChunkSize","CMapReaderFactory","StandardFontDataFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","docBaseUrl","isDataScheme","maxImageSize","useWorkerFetch","disableFontFace","useSystemFonts","ownerDocument","disableRange","disableStream","disableAutoFetch","workerParams","GlobalWorkerOptions","workerPort","PDFWorker","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","withCredentials","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","cMapUrl","standardFontDataUrl","idCounters","doc","onPassword","onProgress","onUnsupportedFeature","destroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","abort","PDFDocumentProxy","pdfInfo","_pdfInfo","deprecated","fingerprints","stats","streamTypes","fontTypes","annotationStorage","numPages","_htmlForXfa","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","isPureXfa","loadingTask","loadingParams","saveDocument","getFieldObjects","hasJSActions","getCalculationOrderIds","PDFPageProxy","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","_annotationPromises","rotate","userUnit","view","getViewport","scale","rotation","offsetX","offsetY","dontFlip","PageViewport","viewBox","getAnnotations","intent","intentArgs","getRenderingIntent","cacheKey","renderingIntent","annotations","annotation","titleObj","contentsObj","_jsActionsPromise","getPageJSActions","children","render","canvasContext","viewport","annotationMode","imageLayer","canvasFactory","background","optionalContentConfigPromise","annotationCanvasMap","renderInteractiveForms","includeAnnotationStorage","time","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","complete","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListReadCapability","opListTask","streamTextContent","disableCombineTextItems","includeMarkedContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","highWaterMark","textContent","getTextContent","getXfa","xfa","XfaText","readableStream","pump","reader","read","assign","styles","getReader","getStructTree","_structTreePromise","_destroy","waitOn","force","completed","cancel","resetStats","_startRenderPage","_renderPageChunk","operatorListChunk","serializable","streamReader","RenderingCancelledException","curCacheKey","curIntentState","LoopbackPort","_listeners","_deferred","transfers","removeEventListener","terminate","PDFWorkerUtil","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","currentScript","createCDNWrapper","createObjectURL","Blob","_workerPorts","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","Worker","_mainThreadWorkerMessageHandler","workerSrc","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","pdfjsWorker","loader","mainWorkerMessageHandler","eval","loadScript","getWorkerSrc","fontLoader","FontLoader","_onUnsupportedFeature","styleElement","_params","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","lastModified","page","resetModified","terminated","_getFieldObjectsPromise","_hasJSActionsPromise","cancelAllRequests","sink","getFullReader","evt","onPull","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","fontRegistry","FontInspector","enabled","registerFont","fontAdded","FontFaceObject","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","freeze","fetch","featureId","cachedPromise","num","gen","filename","results","OptionalContentConfig","Metadata","cleanupSuccessful","objId","settled","RenderTask","_internalRenderTask","onContinue","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","_canvas","canvasInUse","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","WeakSet","build","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","err","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","displayName","defineIteratorMethods","isGeneratorFunction","genFun","ctor","mark","awrap","__await","AsyncIterator","PromiseImpl","invoke","record","unwrapped","previousPromise","callInvokeWithMethodAndArg","async","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","reverse","pop","skipTempReset","rootEntry","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","SVG_NS","PixelsPerInch","CSS","PDF","_document","_createCanvas","BaseCanvasFactory","fetchData","asTypedArray","isValidFetchUrl","baseURI","response","statusText","arrayBuffer","text","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","responseText","_fetchData","compressionType","cMapData","BaseCMapReaderFactory","BaseStandardFontDataFactory","DOMSVGFactory","_createSVG","createElementNS","BaseSVGFactory","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","applyInverseTransform","trim","substring","isPdfFile","getFilenameFromUrl","anchor","query","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","started","times","outBuf","longest","duration","padEnd","removeScriptElement","script","onload","remove","onerror","documentElement","pdfDateStringRegex","PDFDateString","matches","year","parseInt","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","getXfaPageViewport","xfaPage","attributes","canvasAndContext","svg","setAttribute","BaseFontLoader","nativeFontFaces","addNativeFontFace","nativeFontFace","fonts","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","hasFonts","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","supported","navigator","completeRequest","otherRequest","shift","getLoadTestFont","int32","offset","spliceString","s","insert","chunk1","chunk2","ctx","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","loadedName","div","visibility","top","left","span","fontFamily","body","translatedData","compiledGlyphs","cssFontInfo","FontFace","css","weight","fontWeight","italicAngle","mimetype","getPathGenerator","character","cmds","jsBuf","cmd","fs","readFile","Canvas","createCanvas","_storage","_timeStamp","_modified","onSetModified","onResetModified","getValue","defaultValue","setValue","modified","_setModified","getAll","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","LINEWIDTH_SCALE_FACTOR","mirrorContextOperations","destCtx","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","translate","__originalTransform","__originalSetTransform","setTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","ctxSave","ctxRestore","ctxTranslate","ctxScale","ctxTransform","ctxSetTransform","ctxResetTransform","ctxRotate","angle","cp1x","cp1y","cp2x","cp2y","addContextCurrentTransform","_transformStack","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","_originalTransform","_originalSetTransform","_originalResetTransform","_transformMatrix","desc","_setLineWidth","_getLineWidth","getLineWidth","_","getCurrentTransform","getCurrentTransformInverse","ad_bc","bc_ad","old","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","j0","points","lineSize","data0","elem","mask","count","sum","steps","Int32Array","outlines","coords","p0","pp","drawOutline","kk","o","l","ll","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateCurvePathMinMax","box","bezierBoundingBox","getPathBoundingBox","pathType","PathType","singularValueDecompose2dScale","xStrokePad","yStrokePad","updateClipFromPath","intersect","Infinity","getClippedPathBoundingBox","putBinaryImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","destPos","dest","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","copyCtxState","sourceCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","layerOffsetX","layerOffsetY","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","PIXELS_TO_PROCESS","chunkSize","row","chunkHeight","composeSMask","layerBox","layerWidth","layerHeight","drawImage","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","PDF_TO_CSS_UNITS","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","markedContentStack","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","fnId","breakIt","depObjId","objsPool","inSMaskMode","endLayout","_scaleImage","img","inverseTransform","widthScale","hypot","heightScale","paintWidth","paintHeight","tmpCanvasId","tmpCanvas","tmpCtx","newWidth","newHeight","clearRect","_createMaskCanvas","isPatternFill","maskCanvas","objToCanvas","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","scaled","mozCurrentTransformInverse","imageSmoothingEnabled","inverse","getPattern","round","limit","dashArray","dashPhase","flatness","states","checkSMaskState","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","compose","dirtyBox","ops","startX","startY","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","glyph","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","scaledAccentX","scaledAccentY","charWidth","isTextInvisible","spacingLength","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","makeHexColor","matrix","getShadingPattern","SHADING","inv","bl","br","ul","ur","bbox","isArray","group","currentCtx","isolated","knockout","currentTransform","getAxialAlignedBoundingBox","canvasBounds","scaleX","scaleY","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","skewX","skewY","positions","trans","images","image","h","imgToPaint","HTMLElement","getCanvasPosition","appendImage","visible","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","savedMatrix","savedDashes","savedDashOffset","op","applyBoundingBox","Path2D","region","BaseShadingPattern","RadialAxialShadingPattern","_type","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","createPattern","domMatrix","drawTriangle","c1","c2","c3","colors","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","_coords","_colors","_figures","_bounds","_background","_createMeshCanvas","combinedScale","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","_processStreamMessage","action","cbSourceName","cbTargetName","_createStreamSink","actionName","ah","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","streamController","_deleteStreamController","parsedData","rawData","getRaw","OptionalContentGroup","creator","_order","_groups","order","groups","baseState","off","_evaluateVisibilityExpression","array","operator","element","expression","policy","ids","setVisibility","getOrder","getGroups","getGroup","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","some","_begin","_loaded","firstReader","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","requestsCapability","output","walk","shouldBuildText","child","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","layer","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_mouseState","mouseState","container","_createContainer","quadrilaterals","_createQuadrilaterals","sign","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","quadPoints","savedRect","quadPoint","_createPopup","trigger","popupElement","PopupElement","modificationDate","richText","hideWrapper","popup","_renderQuadrilaterals","className","quadrilateral","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","getElementById","getElementsByName","platform","isWin","isMac","isTooltipOnly","resetForm","actions","Action","link","addLinkAttributes","newWindow","_bindNamedAction","_bindLink","hasClickAction","_bindJSAction","_bindResetFormAction","linkElement","cloneNode","destination","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","jsName","eventBus","dispatch","otherClickAction","resetFormFields","resetFormRefs","refs","include","allFields","fieldIds","fieldName","field","storage","allIds","valueAsString","Event","hasPopup","alt","dataset","l10nId","l10nArgs","JSON","stringify","alternativeText","title","_getKeyModifier","ctrlKey","metaKey","_setEventListener","baseName","eventName","valueGetter","shiftKey","modifier","_setEventListeners","getter","_setBackgroundColor","_dispatchEventFromSandbox","jsEvent","setColor","styleName","ColorConverters","commonActions","hidden","print","focus","preventScroll","userName","readonly","removeAttribute","bgColor","fgColor","textColor","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","storedData","elementData","userValue","formattedValue","multiLine","disabled","readOnly","tabIndex","defaultFieldValue","blurListener","scrollLeft","activeElement","selRange","selStart","selEnd","setSelectionRange","commitKey","willCommit","selectionStart","selectionEnd","_blurListener","isDown","Keystroke","change","maxLen","maxLength","comb","fieldWidth","combWidth","classList","letterSpacing","verticalAlign","_setTextStyle","TEXT_ALIGNMENT","defaultAppearanceData","fontColor","textAlignment","textAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","fontSizeStyle","selectElement","combo","multiSelect","multiple","option","selected","optionElement","displayValue","isExport","selectedIndex","filter","getItems","multipleSelection","findIndex","insertBefore","indices","editable","changeEx","keyDown","IGNORE_TYPES","parentType","selector","parentId","parentElements","querySelectorAll","parentRect","popupLeft","popupTop","pinned","BACKGROUND_ENLIGHT","hideElement","dir","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","XfaLayer","xfaHtml","lastChild","contents","_formatContents","_toggle","_show","_hide","lines","line","pin","zIndex","unpin","lineCoordinates","append","square","circle","containerClassName","svgElementName","vertices","coordinate","polyline","inkLists","inkList","file","_download","openOrDownloadData","AnnotationLayer","sortedAnnotations","popupAnnotations","rendered","renderedElement","prepend","ownMatrix","elements","ownTransform","querySelector","firstChild","nodeName","replaceChild","makeColorComp","G","R","B","components","RGB_HTML","CMYK_RGB","xfaOn","xfaOff","getAttribute","isHTMLAnchorElement","HTMLAnchorElement","dataId","setupStorage","root","rootHtml","setAttributes","rootDiv","textDivs","childHtml","xmlns","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","ascentCache","AllWhitespaceRegexp","getAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","appendText","geom","textDiv","textDivProperties","_enhanceTextSelection","hasText","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","tx","_viewport","atan2","fontName","fontHeight","fontAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","right","bottom","_canceled","textDivsLength","_renderingDone","findPositiveMin","ts","expand","expanded","expandBounds","divProperties","Float64Array","jj","boxScale","boxes","x1New","x2New","expandBoundsLTR","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_processItems","styleCache","len","parentNode","_render","timeout","mozOpaque","textItems","textStyles","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","padding","renderTextLayer","renderParameters","SVGGraphics","opListToTree","opList","opTree","opListElement","pf","toFixed","pm","acos","SVG_DEFAULTS","fontStyle","XML_NS","XLINK_NS","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","maxBlockLength","deflateBlocks","idat","pi","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","svgElement","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","getAttributeNS","clipId","clipPath","clipElement","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","parse","PDFNodeStream","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","_setReadableStream","BaseRangeReader","createRequestOptions","headers","auth","hostname","handleResponse","statusCode","getResponseHeader","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","createReadStream","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","createResponseStatusError","validateResponseStatus","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","textdecode","contentDispositionStr","quot","part","parts","quotindex","extvalue","encodingend","langvalue","charset","hex","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","getXhr","NetworkManager_getXhr","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","PDFNetworkStream","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStream","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","pdfjsVersion","pdfjsBuild"],"sourceRoot":""} |