pdf.js.map 1.5 MB

1
  1. {"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.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/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/global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.global-this.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/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/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-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/has.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/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/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.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/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/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.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/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.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-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer.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/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/es/object/from-entries.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/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.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/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/iterators.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/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.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/set-to-string-tag.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/modules/es.object.from-entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.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/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-function.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/create-property.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/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/task.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-user-agent.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-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/engine-v8-version.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/modules/web.dom-collections.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/dom-iterables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url-search-params.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.entries.js","webpack://pdfjs-dist/build/pdf/src/display/api.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/api_compatibility.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/shared/xml_parser.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/webgl.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/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/webpack/startup"],"names":["pdfjsVersion","pdfjsBuild","require","PDFNodeStream","setPDFNetworkStreamFactory","params","PDFNetworkStream","PDFFetchStream","isValidFetchUrl","DEFAULT_LINK_REL","SVG_NS","constructor","unreachable","create","reset","canvasAndContext","width","height","destroy","ownerDocument","globalThis","canvas","context","baseUrl","isCompressed","url","compressionType","CMapCompressionType","reason","_fetchData","isFetchSupported","document","response","cMapData","stringToBytes","request","XMLHttpRequest","resolve","reject","assert","svg","createElement","offsetX","offsetY","dontFlip","centerX","viewBox","centerY","rotation","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","Math","offsetCanvasY","clone","scale","convertToViewportPoint","convertToViewportRectangle","topLeft","rect","bottomRight","convertToPdfPoint","LinkTarget","NONE","SELF","BLANK","PARENT","TOP","enabled","urlNullRemoved","removeNullCharacters","link","targetStr","anchor","query","end","Object","time","name","warn","Date","timeEnd","start","outBuf","longest","duration","Response","protocol","removeScriptElement","script","console","isString","pdfDateStringRegex","matches","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","module","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","value","enumerable","configurable","writable","obj","define","protoGenerator","outerFn","generator","tryLocsList","makeInvokeMethod","exports","type","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","ctor","genFun","__await","record","tryCatch","result","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","PromiseImpl","iter","wrap","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","info","entry","tryLoc","locs","keys","key","next","iteratorMethod","iterable","isNaN","i","Context","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","finish","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","PermissionFlag","PRINT","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","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","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","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","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","errorMarkedContent","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","base","other","absoluteUrl","_isValidProtocol","BaseException","NullCharactersRegExp","str","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","chunkEnd","chunk","arr","resultLength","arrayByteLength","pos","data","item","itemLength","buffer8","view32","IsLittleEndianCached","shadow","isLittleEndian","IsEvalSupportedCached","isEvalSupported","hexNumbers","Array","n","m1","m2","xt","p","m","yt","d","p1","Util","p2","r","p3","p4","v","transpose","a","b","c","first","sx","sy","orderedX","rect1","rect2","orderedY","PDFStringTranslateTable","code","match","buf","ii","char","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","date","buffer","capability","isSettled","get","createObjectURL","digits","forceDataSchema","URL","blob","b1","b2","b3","d1","d2","d3","d4","XMLEntities","entity","Buffer","isReadableStreamSupported","controller","isNodeJS","process","$","global","getOwnPropertyDescriptor","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","source","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","prototype","noTargetGet","forced","undefined","sham","check","it","window","self","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","P","error","f","call","fails","defineProperty","exec","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","classof","split","toString","slice","TypeError","isObject","input","PREFERRED_STRING","val","valueOf","hasOwnProperty","EXISTS","definePropertyModule","object","anObject","nativeDefineProperty","Attributes","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","join","store","functionToString","SHARED","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","WeakMap","set","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","test","uid","IS_PURE","push","version","mode","copyright","id","postfix","random","ownKeys","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertySymbols","concat","path","aFunction","variable","namespace","arguments","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toInteger","min","argument","ceil","floor","max","integer","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","fromEntries","addToUnscopables","Iterators","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","withoutSetter","defineProperties","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","domain","ActiveXObject","Properties","objectKeys","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","IteratorsCore","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","toObject","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","iterate","createProperty","k","AS_ENTRIES","isArrayIteratorMethod","bind","getIteratorMethod","iteratorClose","Result","stopped","unboundFunction","that","IS_ITERATOR","INTERRUPTED","iterFn","step","condition","callFn","apply","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","returnMethod","propertyKey","Promise","$AggregateError","AggregateError","errors","message","Error","errorsArray","NativePromise","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_NODE","V8_VERSION","SPECIES","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","GLOBAL_CORE_JS_PROMISE","promise","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","enter","exit","onUnhandled","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","fetch","x","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","defaultConstructor","S","IS_IOS","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","runner","listener","post","postMessage","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","userAgent","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","versions","v8","allSettled","status","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NON_GENERIC","real","onFinally","isFunction","e","charAt","STRING_ITERATOR","point","CONVERT_TO_STRING","position","size","charCodeAt","codeAt","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","USE_NATIVE_URL","assign","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","radix","number","ipv4","pop","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","fragment","codePoint","encodedCodePoints","shift","URLConstructor","urlString","baseState","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","search","getSearch","getSearchParams","hash","getHash","URLPrototype","output","accessorDescriptor","getter","toJSON","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","forEach","sort","nativeAssign","A","B","symbol","alphabet","chr","T","argumentsLength","j","callWithSafeIterationClosing","arrayLike","mapfn","mapping","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","inputLength","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","getIterator","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","RegExp","percentDecode","sequence","deserialize","find","replacer","serialize","parseSearchParams","attributes","attribute","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","URLSearchParamsConstructor","init","entryIterator","entryNext","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","boundFunction","body","headers","factory","SymbolPolyfill","description","noop","getGlobals","globals","typeIsObject","rethrowAssertionErrorRejection","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","newPromise","promiseResolvedWith","promiseRejectedWith","PerformPromiseThen","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","globalQueueMicrotask","resolvedPromise","reflectCall","promiseCall","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","elements","peek","front","cursor","ReadableStreamReaderGenericInitialize","reader","stream","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","AbortSteps","ErrorSteps","CancelSteps","PullSteps","NumberIsFinite","isFinite","MathTrunc","trunc","isDictionary","assertDictionary","assertFunction","assertObject","assertRequiredArgument","assertRequiredField","field","convertUnrestrictedDouble","censorNegativeZero","integerPart","convertUnsignedLongLongWithEnforceRange","lowerBound","upperBound","MAX_SAFE_INTEGER","assertReadableStream","IsReadableStream","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_readRequests","ReadableStreamFulfillReadRequest","_closeSteps","_chunkSteps","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","read","resolvePromise","rejectPromise","_errorSteps","ReadableStreamDefaultReaderRead","releaseLock","closed","toStringTag","_disturbed","_readableStreamController","_a","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorImpl","preventCancel","_ongoingPromise","_isFinished","_preventCancel","_this","nextSteps","_nextSteps","return","returnSteps","_returnSteps","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorImpl","AcquireReadableStreamAsyncIterator","impl","NumberIsNaN","IsFiniteNonNegativeNumber","IsNonNegativeNumber","Infinity","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","PeekQueueValue","ResetQueue","CreateArrayFromList","CopyDataBlockBytes","dest","destOffset","srcOffset","Uint8Array","TransferArrayBuffer","IsDetachedBuffer","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","ArrayBuffer","isView","byteLength","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","_byobRequest","_pendingPullIntos","firstDescriptor","byteOffset","bytesFilled","byobRequest","SetUpReadableStreamBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_closeRequested","_controlledReadableByteStream","ReadableByteStreamControllerClose","enqueue","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","_cancelAlgorithm","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","elementSize","viewConstructor","readerType","ReadableByteStreamControllerCallPullIfNeeded","desiredSize","shouldPull","ReadableByteStreamControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableStreamClose","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","readIntoRequest","DataView","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","_started","firstPendingPullInto","transferredBuffer","transferredView","ReadableStreamError","_strategyHWM","SetUpReadableByteStreamController","startAlgorithm","pullAlgorithm","cancelAlgorithm","highWaterMark","startResult","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","pull","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ExtractHighWaterMark","strategy","defaultHWM","ExtractSizeAlgorithm","convertQueuingStrategy","convertQueuingStrategySize","convertUnderlyingSink","original","abort","convertUnderlyingSinkAbortCallback","convertUnderlyingSinkCloseCallback","convertUnderlyingSinkStartCallback","convertUnderlyingSinkWriteCallback","assertWritableStream","IsWritableStream","WritableStream","rawUnderlyingSink","rawStrategy","underlyingSink","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","locked","WritableStreamDefaultWriter","CreateWritableStream","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_promise","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","closeSentinel","IsWritableStreamDefaultController","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","_strategySizeAlgorithm","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","_readyPromise_resolve","_readyPromise_reject","isAbortSignal","aborted","NativeDOMException","DOMException","isDOMExceptionConstructor","createDOMExceptionPolyfill","captureStackTrace","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","signal","shuttingDown","currentWrite","actions","shutdownWithAction","map","action","pipeLoop","resolveLoop","rejectLoop","pipeStep","resolveRead","rejectRead","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","reading","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","value1","value2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","convertUnderlyingDefaultOrByteSource","convertUnderlyingSourceCancelCallback","convertUnderlyingSourcePullCallback","convertUnderlyingSourceStartCallback","convertReadableStreamType","convertReaderOptions","convertReadableStreamReaderMode","convertIteratorOptions","Boolean","convertPipeOptions","assertAbortSignal","convertReadableWritablePair","readable","ReadableStream","rawUnderlyingSource","InitializeReadableStream","streamBrandCheckException$1","getReader","rawOptions","pipeThrough","rawTransform","pipeTo","destination","tee","branches","sourceCancelPromise","convertQueuingStrategyInit","byteLengthSizeFunction","ByteLengthQueuingStrategy","_byteLengthQueuingStrategyHighWaterMark","IsByteLengthQueuingStrategy","byteLengthBrandCheckException","countSizeFunction","CountQueuingStrategy","_countQueuingStrategyHighWaterMark","IsCountQueuingStrategy","countBrandCheckException","convertTransformer","readableType","writableType","convertTransformerFlushCallback","convertTransformerStartCallback","convertTransformerTransformCallback","TransformStream","rawTransformer","rawWritableStrategy","rawReadableStrategy","writableStrategy","readableStrategy","transformer","readableHighWaterMark","readableSizeAlgorithm","writableHighWaterMark","writableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException$2","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException$1","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","terminate","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","entryUnbind","$padStart","WEBKIT_BUG","padStart","repeat","IS_END","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","CONSTRUCTOR","METHOD","$padEnd","padEnd","$values","TO_ENTRIES","$entries","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","worker","pdfBytes","apiCompatibilityParams","setVerbosityLevel","workerParams","GlobalWorkerOptions","PDFWorker","docId","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","initialData","progressiveDone","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","disableAutoFetch","maxImageSize","disableFontFace","postMessageTransfers","docBaseUrl","ignoreErrors","fontExtraProperties","PDFDocumentLoadingTask","nextDocumentId","transportDestroyed","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","saveDocument","pdfBug","getViewport","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","annotationStorage","optionalContentConfigPromise","render","renderingIntent","intentState","clearTimeout","canvasFactoryInstance","webGLContext","enable","fnArray","argsArray","lastChunk","pageIndex","internalRenderTask","canvasContext","viewport","objs","commonObjs","operatorList","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","readableStream","pump","items","styles","waitOn","force","resetStats","cleanup","_tryCleanup","renderTasks","_startRenderPage","_renderPageChunk","operatorListChunk","_pumpOperatorList","_abortOperatorList","curIntentState","cloned","transfers","desc","cloneValue","pdfWorkerPorts","isWorkerDisabled","nextFakeWorkerId","fallbackWorkerSrc","pdfjsFilePath","deprecated","mainWorkerMessageHandler","fakeWorkerCapability","loader","getMainThreadWorkerMessageHandler","eval","getWorkerSrc","loadScript","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","onUnsupportedFeature","page","terminated","annotationStorageResetModified","pdfDocument","evt","loaded","total","sink","readyReason","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","ex","msg","exception","updatePassword","exportedError","exportedData","fontRegistry","registerFont","pageProxy","MAX_IMAGE_SIZE_TO_STORE","imageData","fetched","builtInCMap","_onUnsupportedFeature","pageNumber","pageInfo","ref","numPages","filename","getPageJSActions","results","contentDispositionFilename","cleanupSuccessful","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","build","addNativeFontFace","insertRule","styleElement","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","_prepareFontLoadEvent","FontLoader","requests","nextRequestId","otherRequest","offset","chunk1","s","chunk2","ctx","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","div","span","supported","navigator","getLoadTestFont","atob","translatedData","bytesToString","getPathGenerator","cmds","js","current","NodeCanvasFactory","NodeCMapReaderFactory","Canvas","__non_webpack_require__","fs","getOrCreateValue","setValue","modified","objectFromEntries","compatibilityParams","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","ad_bc","bc_ad","old","prev","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","elem","mask","j0","sum","steps","outlines","coords","p0","pp","drawOutline","kk","o","l","ll","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","transferMaps","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","elemsInThisChunk","properties","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","lineWidth","scaledLineWidth","fillColor","isPatternFill","needRestore","paths","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","resetLineWidthToOne","glyph","isNum","restoreNeeded","spacing","character","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","img","maskCanvas","putBinaryImageMask","skewX","skewY","positions","images","image","objId","w","h","widthScale","heightScale","imgToPaint","tmpCanvas","tmpCtx","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","left","top","visible","getSinglePixelWidth","absDet","sqNorm1","sqNorm2","pixelHeight","getCanvasPosition","isContentVisible","ShadingIRs","region","fromIR","raw","colorStops","r1","getPattern","applyBoundingBox","grad","createMeshCanvas","colors","rowSize","tmp","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","combinedScale","dimx","dimy","graphics","getSizeAndScale","maxSize","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","callbackId","wrapReason","cbSourceName","cbTargetName","comObj","sourceName","targetName","on","ah","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pullCapability","cancelCapability","_createStreamSink","streamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","_postMessage","parser","lowerCaseName","xmlDocument","_repair","chars","_getSequence","_getCreators","seqNode","authors","_parse","rdf","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","ch","isWhitespace","_resolveEntities","_parseContent","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","searchNode","component","stack","res","siblingPos","child","newPos","currentPos","dump","encodeToXmlString","childNodes","hasAttributes","parseFromString","documentElement","isWhitespaceString","lastElement","isVisible","setVisibility","getGroup","begin","_onReceiveData","_onProgress","firstReader","_removeRangeReader","queuedChunks","getRangeReader","cancelAllRequests","readers","_enqueue","requestCapability","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","cache","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","jj","coordsBuffer","colorsBuffer","tryInitGL","parameters","fieldType","isRenderable","ignoreBorder","createQuadrilaterals","_createContainer","horizontalRadius","verticalRadius","radius","_createQuadrilaterals","quadrilaterals","savedRect","quadPoint","_createPopup","trigger","popupElement","title","modificationDate","contents","hideWrapper","popup","_renderQuadrilaterals","quadrilateral","addLinkAttributes","linkService","rel","linkElement","_bindLink","_bindNamedAction","_bindJSAction","jsName","detail","JSON","_getKeyModifier","_setEventListener","baseName","valueGetter","modifier","_setEventListeners","eventName","storage","elementData","userValue","formattedValue","beforeInputSelectionRange","beforeInputValue","blurListener","valueAsString","focus","preventScroll","userName","hidden","editable","selRange","selStart","selEnd","ColorConverters","commitKey","willCommit","_blurListener","change","fieldWidth","combWidth","_setTextStyle","TEXT_ALIGNMENT","fontColor","checkbox","radio","fieldValue","radioId","selectElement","optionElement","option","getValue","changeEx","keyDown","IGNORE_TYPES","selector","parentElements","popupLeft","popupTop","BACKGROUND_ENLIGHT","g","dateObject","PDFDateString","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","coordinate","polyline","getFilenameFromUrl","stringToPDFString","sortedAnnotations","popupAnnotations","downloadManager","imageResourcesPath","svgFactory","enableScripting","hasJSActions","mouseState","isDown","rendered","G","makeColorComp","R","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","textDiv","textDivProperties","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","shouldScaleText","absScaleX","absScaleY","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","ts","expanded","expandBounds","divProperties","boxScale","findPositiveMin","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","_processItems","len","appendText","_layoutText","fontFamily","_render","styleCache","textItems","textStyles","expandTextDivs","expand","transformBuf","paddingBuf","divProps","renderParameters","textContentStream","enhanceTextSelection","SVGGraphics","opTree","opListElement","pf","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","crc32","deflateSyncUncompressed","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgSrc","cliprect","imgEl","_initialize","definitions","rootGroup","clipGroup","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","quotindex","encodingend","extvalue","encoding","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","array","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","manager","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","abortController","credentials","redirect","createHeaders","createFetchOptions","validateResponseStatus"],"mappings":"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","file":"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/* eslint-disable sort-exports/sort-exports */\n\nimport {\n addLinkAttributes,\n getFilenameFromUrl,\n isFetchSupported,\n isValidFetchUrl,\n LinkTarget,\n loadScript,\n PDFDateString,\n RenderingCancelledException,\n} from \"./display/display_utils.js\";\nimport {\n build,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n setPDFNetworkStreamFactory,\n version,\n} from \"./display/api.js\";\nimport {\n CMapCompressionType,\n createObjectURL,\n createPromiseCapability,\n createValidAbsoluteUrl,\n InvalidPDFException,\n MissingPDFException,\n OPS,\n PasswordResponses,\n PermissionFlag,\n removeNullCharacters,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n Util,\n VerbosityLevel,\n} from \"./shared/util.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { apiCompatibilityParams } from \"./display/api_compatibility.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { renderTextLayer } from \"./display/text_layer.js\";\nimport { SVGGraphics } from \"./display/svg.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 setPDFNetworkStreamFactory(params => {\n return streamsPromise.then(streams => {\n const [{ PDFNetworkStream }, { PDFFetchStream }] = streams;\n if (isFetchSupported() && isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n });\n} else if (PDFJSDev.test(\"GENERIC\")) {\n const { isNodeJS } = require(\"./shared/is_node.js\");\n if (isNodeJS) {\n const PDFNodeStream = require(\"./display/node_stream.js\").PDFNodeStream;\n setPDFNetworkStreamFactory(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = require(\"./display/network.js\").PDFNetworkStream;\n let PDFFetchStream;\n if (isFetchSupported()) {\n PDFFetchStream = require(\"./display/fetch_stream.js\").PDFFetchStream;\n }\n setPDFNetworkStreamFactory(params => {\n if (PDFFetchStream && isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n} else if (PDFJSDev.test(\"CHROME\")) {\n const PDFNetworkStream = require(\"./display/network.js\").PDFNetworkStream;\n let PDFFetchStream;\n const isChromeWithFetchCredentials = function () {\n // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n try {\n // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n delete window[999];\n return false;\n } catch (e) {\n return true;\n }\n };\n if (isFetchSupported() && isChromeWithFetchCredentials()) {\n PDFFetchStream = require(\"./display/fetch_stream.js\").PDFFetchStream;\n }\n setPDFNetworkStreamFactory(params => {\n if (PDFFetchStream && isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n}\n\nexport {\n // From \"./display/display_utils.js\":\n addLinkAttributes,\n getFilenameFromUrl,\n LinkTarget,\n loadScript,\n PDFDateString,\n RenderingCancelledException,\n // From \"./display/api.js\":\n build,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n version,\n // From \"./shared/util.js\":\n CMapCompressionType,\n createObjectURL,\n createPromiseCapability,\n createValidAbsoluteUrl,\n InvalidPDFException,\n MissingPDFException,\n OPS,\n PasswordResponses,\n PermissionFlag,\n removeNullCharacters,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n Util,\n VerbosityLevel,\n // From \"./display/annotation_layer.js\":\n AnnotationLayer,\n // From \"./display/api_compatibility.js\":\n apiCompatibilityParams,\n // From \"./display/worker_options.js\":\n GlobalWorkerOptions,\n // From \"./display/text_layer.js\":\n renderTextLayer,\n // From \"./display/svg.js\":\n SVGGraphics,\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 assert,\n BaseException,\n CMapCompressionType,\n isString,\n removeNullCharacters,\n stringToBytes,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n unreachable(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n unreachable(\"Abstract method `create` called.\");\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\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({ ownerDocument = globalThis.document } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context,\n };\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 * @private\n */\n _fetchData(url, compressionType) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (isFetchSupported() && isValidFetchUrl(url, document.baseURI))\n ) {\n return fetch(url).then(async response => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n let cMapData;\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = stringToBytes(await response.text());\n }\n return { cMapData, compressionType };\n });\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, true);\n\n if (this.isCompressed) {\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 cMapData;\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = stringToBytes(request.responseText);\n }\n if (cMapData) {\n resolve({ cMapData, compressionType });\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n }\n}\n\nclass DOMSVGFactory {\n create(width, height) {\n assert(width > 0 && height > 0, \"Invalid SVG dimensions\");\n\n const svg = document.createElementNS(SVG_NS, \"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 assert(typeof type === \"string\", \"Invalid SVG element type\");\n\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 rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\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);\n this.type = type;\n }\n}\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} [target] - The link target. The default value is\n * `LinkTarget.NONE`.\n * @property {string} [rel] - The link relationship. The default value is\n * `DEFAULT_LINK_REL`.\n * @property {boolean} [enabled] - Whether the link should be enabled. The\n * default value is true.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLLinkElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, enabled = true } = {}) {\n assert(\n url && typeof url === \"string\",\n 'addLinkAttributes: A valid \"url\" parameter must provided.'\n );\n\n const urlNullRemoved = removeNullCharacters(url);\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\"; // LinkTarget.NONE\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\n/**\n * Gets the file name from a given URL.\n * @param {string} url\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\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 isFetchSupported() {\n return (\n typeof fetch !== \"undefined\" &&\n typeof Response !== \"undefined\" &&\n \"body\" in Response.prototype &&\n typeof ReadableStream !== \"undefined\"\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 || !isString(input)) {\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\nexport {\n addLinkAttributes,\n BaseCanvasFactory,\n BaseCMapReaderFactory,\n DEFAULT_LINK_REL,\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMSVGFactory,\n getFilenameFromUrl,\n isFetchSupported,\n isValidFetchUrl,\n LinkTarget,\n loadScript,\n PageViewport,\n PDFDateString,\n RenderingCancelledException,\n StatTimer,\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 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 = Gp.constructor = GeneratorFunctionPrototype;\n 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 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 Gp[iteratorSymbol] = function() {\n return this;\n };\n\n 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, 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 Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 \"./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// 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 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 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 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 errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\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 * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\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 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) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = this.constructor.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);\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {}\n\nclass MissingPDFException extends BaseException {}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {}\n\nconst NullCharactersRegExp = /\\x00/g;\n\n/**\n * @param {string} str\n */\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(\n bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined,\n \"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 assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\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 */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\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 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// Ensures that the returned Object has a `null` prototype.\nfunction objectFromEntries(iterable) {\n return Object.assign(Object.create(null), Object.fromEntries(iterable));\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) * (a + d) - 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\n// prettier-ignore\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,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n // UTF16BE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(\n String.fromCharCode((str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))\n );\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n // UTF16LE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(\n String.fromCharCode((str.charCodeAt(i + 1) << 8) | str.charCodeAt(i))\n );\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\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(String.fromCharCode((char >> 8) & 0xff));\n buf.push(String.fromCharCode(char & 0xff));\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 isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\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 return arr1.every(function (element, index) {\n return element === arr2[index];\n });\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\nconst createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n const digits =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n // eslint-disable-next-line no-shadow\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType });\n return URL.createObjectURL(blob);\n }\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\nconst XMLEntities = {\n /* < */ 0x3c: \"&lt;\",\n /* > */ 0x3e: \"&gt;\",\n /* & */ 0x26: \"&amp;\",\n /* \" */ 0x22: \"&quot;\",\n /* ' */ 0x27: \"&apos;\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createObjectURL,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n encodeToXmlString,\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 isBool,\n IsEvalSupportedCached,\n IsLittleEndianCached,\n isNum,\n isSameOrigin,\n isString,\n MissingPDFException,\n objectFromEntries,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n removeNullCharacters,\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\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 (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked)\n) {\n // Provides support for globalThis in legacy browsers.\n // Support: Firefox<65, Chrome<71, Safari<12.1\n if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n // eslint-disable-next-line no-global-assign\n globalThis = require(\"core-js/es/global-this\");\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 // Provides support for Object.fromEntries in legacy browsers.\n // Support: Firefox<63, Chrome<73, Safari<12.1\n (function checkObjectFromEntries() {\n if (Object.fromEntries) {\n return;\n }\n require(\"core-js/es/object/from-entries.js\");\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\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: Safari\n (function checkURL() {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n // Prevent \"require is not a function\" errors in development mode,\n // since the `URL` constructor should be available in modern browers.\n return;\n } else if (!PDFJSDev.test(\"GENERIC\")) {\n // The `URL` constructor is assumed to be available in the extension\n // builds.\n return;\n } else if (PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders don't use the `URL` constructor, so it\n // doesn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n globalThis.URL = require(\"core-js/web/url.js\");\n })();\n\n // Support: Safari<10.1, Node.js\n (function checkReadableStream() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `ReadableStream`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n let isReadableStreamSupported = false;\n\n if (typeof ReadableStream !== \"undefined\") {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n }\n if (isReadableStreamSupported) {\n return;\n }\n globalThis.ReadableStream = require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n })();\n\n // Provides support for String.prototype.padStart in legacy browsers.\n // Support: Chrome<57, Safari<10\n (function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n require(\"core-js/es/string/pad-start.js\");\n })();\n\n // Provides support for String.prototype.padEnd in legacy browsers.\n // Support: Chrome<57, Safari<10\n (function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n require(\"core-js/es/string/pad-end.js\");\n })();\n\n // Provides support for Object.values in legacy browsers.\n // Support: Chrome<54, Safari<10.1\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require(\"core-js/es/object/values.js\");\n })();\n\n // Provides support for Object.entries in legacy browsers.\n // Support: Chrome<54, Safari<10.1\n (function checkObjectEntries() {\n if (Object.entries) {\n return;\n }\n Object.entries = require(\"core-js/es/object/entries.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.global-this');\n\nmodule.exports = require('../internals/global');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\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*/\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 no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\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","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.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} : nativePropertyIsEnumerable;\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 fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.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\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\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 isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\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 DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(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 isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\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 state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\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 typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\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 NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\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) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(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 inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /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","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.8.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var has = require('../internals/has');\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) {\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 (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\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\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 ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\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\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\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) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\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 = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\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 toInteger = require('../internals/to-integer');\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(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\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 = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\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","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\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 : typeof detection == 'function' ? 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","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.from-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.fromEntries;\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 defineIterator = require('../internals/define-iterator');\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\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\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","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\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 createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var anObject = require('../internals/an-object');\nvar defineProperties = 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 /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\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 : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\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++], Properties[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\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","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\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 IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\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 (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(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#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\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 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) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, 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 getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\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\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\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 = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\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 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 O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var 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 no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(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.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\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, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\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 (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\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","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var classof = require('../internals/classof');\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 it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\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' && typeof O.callee == 'function' ? '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 anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","require('../../modules/es.aggregate-error');\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');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar iterate = require('../internals/iterate');\n\nvar $AggregateError = function AggregateError(errors, message) {\n var that = this;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n if (setPrototypeOf) {\n // eslint-disable-next-line unicorn/error-message\n that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));\n var errorsArray = [];\n iterate(errors, errorsArray.push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(5, $AggregateError),\n message: createPropertyDescriptor(5, ''),\n name: createPropertyDescriptor(5, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\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 NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\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 InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\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 (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['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(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\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) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\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 then.call(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 state.reactions = [];\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 task.call(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 task.call(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 then.call(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, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(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 // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\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 && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\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 capability.reject.call(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 = aFunction(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 values.push(undefined);\n remaining++;\n $promiseResolve.call(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 = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(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","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\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 no-throw-literal\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 aFunction = require('../internals/a-function');\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 : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(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(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(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, 1);\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 typeof postMessage == 'function' &&\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 userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', '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 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_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 (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, 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 notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, 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');\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 aFunction = require('../internals/a-function');\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 = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\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 global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (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 && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\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 = aFunction(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 values.push(undefined);\n remaining++;\n promiseResolve.call(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 aFunction = require('../internals/a-function');\nvar getBuiltIn = require('../internals/get-built-in');\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 capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(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 errors.push(undefined);\n remaining++;\n promiseResolve.call(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 (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new (getBuiltIn('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 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 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 = typeof onFinally == 'function';\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// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\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: String(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 toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (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');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","/**\n * web-streams-polyfill v3.0.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// <reference lib=\"es2015.symbol\" />\n var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n function (description) { return \"Symbol(\" + description + \")\"; };\n\n /// <reference lib=\"dom\" />\n function noop() {\n // do nothing\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n var globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n var rethrowAssertionErrorRejection = noop;\n\n var originalPromise = Promise;\n var originalPromiseThen = Promise.prototype.then;\n var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n var originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n var queueMicrotask = (function () {\n var globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n var resolvedPromise = promiseResolvedWith(undefined);\n return function (fn) { return PerformPromiseThen(resolvedPromise, fn); };\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n var QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n var SimpleQueue = /** @class */ (function () {\n function SimpleQueue() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n Object.defineProperty(SimpleQueue.prototype, \"length\", {\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n SimpleQueue.prototype.push = function (element) {\n var oldBack = this._back;\n var newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n };\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n var oldFront = this._front;\n var newFront = oldFront;\n var oldCursor = this._cursor;\n var newCursor = oldCursor + 1;\n var elements = oldFront._elements;\n var element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n };\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n SimpleQueue.prototype.forEach = function (callback) {\n var i = this._cursor;\n var node = this._front;\n var elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n };\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n var front = this._front;\n var cursor = this._cursor;\n return front._elements[cursor];\n };\n return SimpleQueue;\n }());\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n var NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n var MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(context + \" is not a function.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(\"Parameter \" + position + \" is required in '\" + context + \"'.\");\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(field + \" is required in '\" + context + \"'.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n var lowerBound = 0;\n var upperBound = Number.MAX_SAFE_INTEGER;\n var x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(context + \" is not a finite number\");\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(context + \" is outside the accepted range of \" + lowerBound + \" to \" + upperBound + \", inclusive\");\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(context + \" is not a ReadableStream.\");\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n var ReadableStreamDefaultReader = /** @class */ (function () {\n function ReadableStreamDefaultReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n ReadableStreamDefaultReader.prototype.read = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n _closeSteps: function () { return resolvePromise({ value: undefined, done: true }); },\n _errorSteps: function (e) { return rejectPromise(e); }\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n };\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n ReadableStreamDefaultReader.prototype.releaseLock = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamDefaultReader;\n }());\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n }\n\n /// <reference lib=\"es2018.asynciterable\" />\n var _a;\n var AsyncIteratorPrototype;\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\n // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n AsyncIteratorPrototype = (_a = {},\n // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n _a[SymbolPolyfill.asyncIterator] = function () {\n return this;\n },\n _a);\n Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n }\n\n /// <reference lib=\"es2018.asynciterable\" />\n var ReadableStreamAsyncIteratorImpl = /** @class */ (function () {\n function ReadableStreamAsyncIteratorImpl(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n ReadableStreamAsyncIteratorImpl.prototype.next = function () {\n var _this = this;\n var nextSteps = function () { return _this._nextSteps(); };\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n };\n ReadableStreamAsyncIteratorImpl.prototype.return = function (value) {\n var _this = this;\n var returnSteps = function () { return _this._returnSteps(value); };\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n };\n ReadableStreamAsyncIteratorImpl.prototype._nextSteps = function () {\n var _this = this;\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) {\n _this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(function () { return resolvePromise({ value: chunk, done: false }); });\n },\n _closeSteps: function () {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: function (reason) {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n };\n ReadableStreamAsyncIteratorImpl.prototype._returnSteps = function (value) {\n if (this._isFinished) {\n return Promise.resolve({ value: value, done: true });\n }\n this._isFinished = true;\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n var result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, function () { return ({ value: value, done: true }); });\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value: value, done: true });\n };\n return ReadableStreamAsyncIteratorImpl;\n }());\n var ReadableStreamAsyncIteratorPrototype = {\n next: function () {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return: function (value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n return true;\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n }\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n var NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function IsFiniteNonNegativeNumber(v) {\n if (!IsNonNegativeNumber(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n return true;\n }\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n\n function DequeueValue(container) {\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value: value, size: size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n var pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n function IsDetachedBuffer(O) {\n return false;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n var ReadableStreamBYOBRequest = /** @class */ (function () {\n function ReadableStreamBYOBRequest() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get: function () {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n };\n ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (view.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (view.buffer.byteLength === 0) {\n throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n };\n return ReadableStreamBYOBRequest;\n }());\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n var ReadableByteStreamController = /** @class */ (function () {\n function ReadableByteStreamController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n if (this._byobRequest === null && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos.peek();\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, this, view);\n this._byobRequest = byobRequest;\n }\n return this._byobRequest;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n ReadableByteStreamController.prototype.close = function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n }\n ReadableByteStreamControllerClose(this);\n };\n ReadableByteStreamController.prototype.enqueue = function (chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n };\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n ReadableByteStreamController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n };\n /** @internal */\n ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos.peek();\n firstDescriptor.bytesFilled = 0;\n }\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n ReadableByteStreamController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n };\n return ReadableByteStreamController;\n }());\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return true;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n var done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue.peek();\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n var stream = controller._controlledReadableByteStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n var buffer = TransferArrayBuffer(view.buffer);\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n var stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n // TODO: Figure out whether we should detach the buffer or not here.\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (!IsFiniteNonNegativeNumber(bytesWritten)) {\n throw new RangeError('bytesWritten must be a finite');\n }\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n var controller = Object.create(ReadableByteStreamController.prototype);\n var startAlgorithm = function () { return undefined; };\n var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = function () { return underlyingByteSource.start(controller); };\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = function () { return underlyingByteSource.pull(controller); };\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) { return underlyingByteSource.cancel(reason); };\n }\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n var ReadableStreamBYOBReader = /** @class */ (function () {\n function ReadableStreamBYOBReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n ReadableStreamBYOBReader.prototype.read = function (view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(\"view's buffer must have non-zero byteLength\"));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readIntoRequest = {\n _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n _closeSteps: function (chunk) { return resolvePromise({ value: chunk, done: true }); },\n _errorSteps: function (e) { return rejectPromise(e); }\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n };\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n ReadableStreamBYOBReader.prototype.releaseLock = function () {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamBYOBReader;\n }());\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return true;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n var highWaterMark = strategy.highWaterMark;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n var size = strategy.size;\n if (!size) {\n return function () { return 1; };\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n var size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, context + \" has member 'size' that\")\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return function (chunk) { return convertUnrestrictedDouble(fn(chunk)); };\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n var abort = original === null || original === void 0 ? void 0 : original.abort;\n var close = original === null || original === void 0 ? void 0 : original.close;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n var write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, context + \" has member 'abort' that\"),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, context + \" has member 'close' that\"),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, context + \" has member 'start' that\"),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, context + \" has member 'write' that\"),\n type: type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) { return promiseCall(fn, original, [reason]); };\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return function () { return promiseCall(fn, original, []); };\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(context + \" is not a WritableStream.\");\n }\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n var WritableStream = /** @class */ (function () {\n function WritableStream(rawUnderlyingSink, rawStrategy) {\n if (rawUnderlyingSink === void 0) { rawUnderlyingSink = {}; }\n if (rawStrategy === void 0) { rawStrategy = {}; }\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n Object.defineProperty(WritableStream.prototype, \"locked\", {\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get: function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException('locked');\n }\n return IsWritableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n WritableStream.prototype.abort = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n };\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n WritableStream.prototype.close = function () {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n };\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n WritableStream.prototype.getWriter = function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n };\n return WritableStream;\n }());\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) { highWaterMark = 1; }\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n var stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n var controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return true;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n var promise = newPromise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n }\n var promise = newPromise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n var writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n var promise = newPromise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n var controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n var storedError = stream._storedError;\n stream._writeRequests.forEach(function (writeRequest) {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n var WritableStreamDefaultWriter = /** @class */ (function () {\n function WritableStreamDefaultWriter(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n WritableStreamDefaultWriter.prototype.abort = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n };\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n WritableStreamDefaultWriter.prototype.close = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n };\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n WritableStreamDefaultWriter.prototype.releaseLock = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n };\n WritableStreamDefaultWriter.prototype.write = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n };\n return WritableStreamDefaultWriter;\n }());\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return true;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n var releasedError = new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n var WritableStreamDefaultController = /** @class */ (function () {\n function WritableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n WritableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsWritableStreamDefaultController(this)) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n };\n /** @internal */\n WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n var result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n ResetQueue(this);\n };\n return WritableStreamDefaultController;\n }());\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return true;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n var startResult = startAlgorithm();\n var startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, function () {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (r) {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(WritableStreamDefaultController.prototype);\n var startAlgorithm = function () { return undefined; };\n var writeAlgorithm = function () { return promiseResolvedWith(undefined); };\n var closeAlgorithm = function () { return promiseResolvedWith(undefined); };\n var abortAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingSink.start !== undefined) {\n startAlgorithm = function () { return underlyingSink.start(controller); };\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = function (chunk) { return underlyingSink.write(chunk, controller); };\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = function () { return underlyingSink.close(); };\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = function (reason) { return underlyingSink.abort(reason); };\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n var sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException(name) {\n return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n\n /// <reference lib=\"dom\" />\n var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// <reference types=\"node\" />\n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n var ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n var reader = AcquireReadableStreamDefaultReader(source);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n var shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n var currentWrite = promiseResolvedWith(undefined);\n return newPromise(function (resolve, reject) {\n var abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = function () {\n var error = new DOMException$1('Aborted', 'AbortError');\n var actions = [];\n if (!preventAbort) {\n actions.push(function () {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(function () {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise(function (resolveLoop, rejectLoop) {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, function () {\n return newPromise(function (resolveRead, rejectRead) {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: function (chunk) {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: function () { return resolveRead(true); },\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n if (!preventAbort) {\n shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (!preventCancel) {\n shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, function () {\n if (!preventClose) {\n shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n }\n else {\n shutdown(true, destClosed_1);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n var oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n var ReadableStreamDefaultController = /** @class */ (function () {\n function ReadableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get: function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n ReadableStreamDefaultController.prototype.close = function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n };\n ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n };\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n ReadableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n };\n /** @internal */\n ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n ReadableStreamDefaultController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n };\n return ReadableStreamDefaultController;\n }());\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n var chunkSize = void 0;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n var state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n var startAlgorithm = function () { return undefined; };\n var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingSource.start !== undefined) {\n startAlgorithm = function () { return underlyingSource.start(controller); };\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = function () { return underlyingSource.pull(controller); };\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) { return underlyingSource.cancel(reason); };\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var readRequest = {\n _chunkSteps: function (value) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n reading = false;\n var value1 = value;\n var value2 = value;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // value2 = StructuredDeserialize(StructuredSerialize(value2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);\n }\n resolveCancelPromise(undefined);\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, function (r) {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n resolveCancelPromise(undefined);\n });\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n var original = source;\n var autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n var pull = original === null || original === void 0 ? void 0 : original.pull;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, context + \" has member 'autoAllocateChunkSize' that\"),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, context + \" has member 'cancel' that\"),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, context + \" has member 'pull' that\"),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, context + \" has member 'start' that\"),\n type: type === undefined ? undefined : convertReadableStreamType(type, context + \" has member 'type' that\")\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) { return promiseCall(fn, original, [reason]); };\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return promiseCall(fn, original, [controller]); };\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertReadableStreamType(type, context) {\n type = \"\" + type;\n if (type !== 'bytes') {\n throw new TypeError(context + \" '\" + type + \"' is not a valid enumeration value for ReadableStreamType\");\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n var mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, context + \" has member 'mode' that\")\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = \"\" + mode;\n if (mode !== 'byob') {\n throw new TypeError(context + \" '\" + mode + \"' is not a valid enumeration value for ReadableStreamReaderMode\");\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n var preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n var preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n var signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, context + \" has member 'signal' that\");\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal: signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(context + \" is not an AbortSignal.\");\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n var readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, context + \" has member 'readable' that\");\n var writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, context + \" has member 'writable' that\");\n return { readable: readable, writable: writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n var ReadableStream = /** @class */ (function () {\n function ReadableStream(rawUnderlyingSource, rawStrategy) {\n if (rawUnderlyingSource === void 0) { rawUnderlyingSource = {}; }\n if (rawStrategy === void 0) { rawStrategy = {}; }\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n var highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n Object.defineProperty(ReadableStream.prototype, \"locked\", {\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get: function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n ReadableStream.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n };\n ReadableStream.prototype.getReader = function (rawOptions) {\n if (rawOptions === void 0) { rawOptions = undefined; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n var options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n };\n ReadableStream.prototype.pipeThrough = function (rawTransform, rawOptions) {\n if (rawOptions === void 0) { rawOptions = {}; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n var transform = convertReadableWritablePair(rawTransform, 'First parameter');\n var options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n var promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n };\n ReadableStream.prototype.pipeTo = function (destination, rawOptions) {\n if (rawOptions === void 0) { rawOptions = {}; }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(\"Parameter 1 is required in 'pipeTo'.\");\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));\n }\n var options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n };\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n ReadableStream.prototype.tee = function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n var branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n };\n ReadableStream.prototype.values = function (rawOptions) {\n if (rawOptions === void 0) { rawOptions = undefined; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n var options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n };\n return ReadableStream;\n }());\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) { highWaterMark = 1; }\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n defaultReaderClosedPromiseResolve(reader);\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n defaultReaderClosedPromiseReject(reader, e);\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n var byteLengthSizeFunction = function size(chunk) {\n return chunk.byteLength;\n };\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n var ByteLengthQueuingStrategy = /** @class */ (function () {\n function ByteLengthQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"highWaterMark\", {\n /**\n * Returns the high water mark provided to the constructor.\n */\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"size\", {\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return ByteLengthQueuingStrategy;\n }());\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(\"ByteLengthQueuingStrategy.prototype.\" + name + \" can only be used on a ByteLengthQueuingStrategy\");\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return true;\n }\n\n var countSizeFunction = function size() {\n return 1;\n };\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n var CountQueuingStrategy = /** @class */ (function () {\n function CountQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(CountQueuingStrategy.prototype, \"highWaterMark\", {\n /**\n * Returns the high water mark provided to the constructor.\n */\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CountQueuingStrategy.prototype, \"size\", {\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return CountQueuingStrategy;\n }());\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(\"CountQueuingStrategy.prototype.\" + name + \" can only be used on a CountQueuingStrategy\");\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return true;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n var flush = original === null || original === void 0 ? void 0 : original.flush;\n var readableType = original === null || original === void 0 ? void 0 : original.readableType;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var transform = original === null || original === void 0 ? void 0 : original.transform;\n var writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, context + \" has member 'flush' that\"),\n readableType: readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, context + \" has member 'start' that\"),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, context + \" has member 'transform' that\"),\n writableType: writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return promiseCall(fn, original, [controller]); };\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n var TransformStream = /** @class */ (function () {\n function TransformStream(rawTransformer, rawWritableStrategy, rawReadableStrategy) {\n if (rawTransformer === void 0) { rawTransformer = {}; }\n if (rawWritableStrategy === void 0) { rawWritableStrategy = {}; }\n if (rawReadableStrategy === void 0) { rawReadableStrategy = {}; }\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n var writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n var readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n var transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n var readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n var readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n var writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n var writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n var startPromise_resolve;\n var startPromise = newPromise(function (resolve) {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n Object.defineProperty(TransformStream.prototype, \"readable\", {\n /**\n * The readable side of the transform stream.\n */\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException$2('readable');\n }\n return this._readable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TransformStream.prototype, \"writable\", {\n /**\n * The writable side of the transform stream.\n */\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException$2('writable');\n }\n return this._writable;\n },\n enumerable: false,\n configurable: true\n });\n return TransformStream;\n }());\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return true;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(function (resolve) {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n var TransformStreamDefaultController = /** @class */ (function () {\n function TransformStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get: function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n var readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n },\n enumerable: false,\n configurable: true\n });\n TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n };\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n TransformStreamDefaultController.prototype.error = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n };\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n TransformStreamDefaultController.prototype.terminate = function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n };\n return TransformStreamDefaultController;\n }());\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return true;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n var controller = Object.create(TransformStreamDefaultController.prototype);\n var transformAlgorithm = function (chunk) {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n var flushAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (transformer.transform !== undefined) {\n transformAlgorithm = function (chunk) { return transformer.transform(chunk, controller); };\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = function () { return transformer.flush(controller); };\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n var transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, function (r) {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n var error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n var controller = stream._transformStreamController;\n if (stream._backpressure) {\n var backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, function () {\n var writable = stream._writable;\n var state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n var readable = stream._readable;\n var controller = stream._transformStreamController;\n var flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, function () {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, function (r) {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","require('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","require('../../modules/es.string.pad-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padEnd');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","require('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\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 assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isSameOrigin,\n MissingPDFException,\n PasswordException,\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 loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport { NodeCanvasFactory, NodeCMapReaderFactory } from \"./node_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { apiCompatibilityParams } from \"./api_compatibility.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 { WebGLContext } from \"./webgl.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;\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 * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} [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} [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 `@font-face` rules. If disabled, fonts will\n * be rendered using a built-in font renderer that constructs the glyphs with\n * primitive path commands. The default value is `false`.\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 {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 * @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 * 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|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src -\n * Can be a URL to where a PDF file is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\") {\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 Uint8Array, string or a 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 if (key === \"url\" && typeof window !== \"undefined\") {\n // The full path is required in the 'url' field.\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === \"range\") {\n rangeTransport = source[key];\n continue;\n } else if (key === \"worker\") {\n worker = source[key];\n continue;\n } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n // Converting string or array-like data to Uint8Array.\n const pdfBytes = source[key];\n if (typeof pdfBytes === \"string\") {\n params[key] = stringToBytes(pdfBytes);\n } else if (\n typeof pdfBytes === \"object\" &&\n pdfBytes !== null &&\n !isNaN(pdfBytes.length)\n ) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either typed array, \" +\n \"string or array-like object is expected in the \" +\n \"data property.\"\n );\n }\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory =\n params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\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 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 messageHandler.postMessageTransfers = worker.postMessageTransfers;\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} A promise that is resolved when the worker ID of the\n * `MessageHandler` is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(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 }\n return worker.messageHandler\n .sendWithPromise(\"GetDocRequest\", {\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 postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n })\n .then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n });\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 *\n * @typedef {Object} PDFDocumentLoadingTask\n * @property {string} docId - Unique identifier for the document loading task.\n * @property {boolean} destroyed - Whether the loading task is destroyed or not.\n * @property {function} [onPassword] - Callback to request a password if a wrong\n * or no password was provided. The callback receives two parameters: a\n * function that should be called with the new password, and a reason (see\n * {@link PasswordResponses}).\n * @property {function} [onProgress] - Callback to be able to monitor the\n * loading progress of the PDF file (necessary to implement e.g. a loading\n * bar). The callback receives an {Object} with the properties `loaded`\n * ({number}) and `total` ({number}) that indicate how many bytes are loaded.\n * @property {function} [onUnsupportedFeature] - Callback for when an\n * unsupported feature is used in the PDF document. The callback receives an\n * {@link UNSUPPORTED_FEATURES} argument.\n * @property {Promise<PDFDocumentProxy>} promise - Promise for document loading\n * task completion.\n * @property {function} destroy - Abort all network requests and destroy\n * the worker. Returns a promise that is resolved when destruction is\n * completed.\n */\n\n/**\n * @type {any}\n * @ignore\n */\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\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 */\n // eslint-disable-next-line no-shadow\n class PDFDocumentLoadingTask {\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\" + nextDocumentId++;\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). The callback receives\n * an {Object} with the properties `loaded` ({number}) and `total`\n * ({number}) that indicate how many bytes are loaded.\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 * @returns {Promise<void>} A promise that is resolved when destruction is\n * completed.\n */\n destroy() {\n this.destroyed = true;\n\n const transportDestroyed = !this._transport\n ? Promise.resolve()\n : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n }\n }\n return PDFDocumentLoadingTask;\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 */\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\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\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new 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 {string} A (not guaranteed to be) unique ID to identify a PDF.\n */\n get fingerprint() {\n return this._pdfInfo.fingerprint;\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 {{num: number, gen: number}} ref - The page reference. Must have\n * the `num` and `gen` properties.\n * @returns {Promise<{num: number, gen: number}>} A promise that is resolved\n * with the page index (starting from zero) that is associated with the\n * 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>>} A promise that is resolved with all\n * information of the given named destination.\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 * @returns {Promise<PDFDocumentStats>} A promise this is resolved with\n * current statistics about document structures (see\n * {@link PDFDocumentStats}).\n */\n getStats() {\n return this._transport.getStats();\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 * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup() {\n return this._transport.startCleanup();\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 either needed in the viewer and/or\n * whose default values may be affected by the `apiCompatibilityParams`.\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 * @param {AnnotationStorage} annotationStorage - Storage for annotation\n * data in forms.\n * @returns {Promise<Uint8Array>} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument(annotationStorage) {\n return this._transport.saveDocument(annotationStorage);\n }\n\n /**\n * @returns {Promise<Array<Object> | null>} A promise that is resolved with an\n * {Array<Object>} containing /AcroForm field data for the JS sandbox,\n * 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} normalizeWhitespace - Replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array<TextItem>} items - Array of {@link TextItem} objects.\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 */\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 will be fetched,\n * can be either 'display' (viewable annotations) or 'print' (printable\n * annotations). If the parameter is omitted, all annotations are fetched.\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' or 'print'.\n * The default value is 'display'.\n * @property {boolean} [enableWebGL] - Enables WebGL accelerated rendering for\n * some operations. The default value is `false`.\n * @property {boolean} [renderInteractiveForms] - Whether or not interactive\n * form elements are rendered in the display layer. If so, we do not render\n * them on the canvas as well.\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 {AnnotationStorage} [annotationStorage] - Storage for annotation\n * data in forms.\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 */\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 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.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 {Object} The reference that points to this page. It has `num` and\n * `gen` properties.\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 = null } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(\n this._pageIndex,\n intent\n );\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\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 * 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 enableWebGL = false,\n renderInteractiveForms = false,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n annotationStorage = null,\n optionalContentConfigPromise = null,\n }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\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(renderingIntent);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(renderingIntent, 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 webGLContext = new WebGLContext({\n enable: enableWebGL,\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({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n annotationStorage: annotationStorage?.getAll() || null,\n });\n }\n\n const complete = error => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\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 || renderingIntent === \"print\") {\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,\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 operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug,\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(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 * @returns {Promise<PDFOperatorList>} A promise resolved with an\n * {@link PDFOperatorList} object that represents page's operator list.\n */\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n const i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = \"oplist\";\n let intentState = this._intentStates.get(renderingIntent);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(renderingIntent, 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 = [];\n intentState.renderTasks.push(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({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n });\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\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 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 * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n\n const waitOn = [];\n for (const [intent, intentState] of this._intentStates) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intent === \"oplist\") {\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.annotationsPromise = null;\n this._jsActionsPromise = 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.length !== 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n this.objs.clear();\n this.annotationsPromise = null;\n this._jsActionsPromise = 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, intent) {\n const intentState = this._intentStates.get(intent);\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 (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList(args) {\n assert(\n args.intent,\n 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.'\n );\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n args\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(args.intent);\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 (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].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 assert(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null),\n 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.'\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.length !== 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.cancel(new AbortException(reason?.message));\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 [intent, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(intent);\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(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n if (cloned.has(value)) {\n // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n if (transfers?.includes(buffer)) {\n result = new value.constructor(\n buffer,\n value.byteOffset,\n value.byteLength\n );\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc,\n p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(\n `LoopbackPort.postMessage - cannot clone: ${value[i]}`\n );\n }\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(listener => {\n listener.call(this, { data: obj });\n });\n return;\n }\n\n const cloned = new WeakMap();\n const e = { data: cloneValue(obj) };\n this._deferred.then(() => {\n this._listeners.forEach(listener => {\n listener.call(this, e);\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; the\n * constants from {@link VerbosityLevel} should be used.\n */\n\n/** @type {any} */\nconst PDFWorker = (function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let isWorkerDisabled = false;\n let fallbackWorkerSrc;\n let nextFakeWorkerId = 0;\n let fakeWorkerCapability;\n\n if (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 isWorkerDisabled = true;\n\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"LIB\")) {\n fallbackWorkerSrc = \"../pdf.worker.js\";\n } else {\n fallbackWorkerSrc = \"./pdf.worker.js\";\n }\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath = document.currentScript?.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n }\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker?.WorkerMessageHandler;\n } catch (ex) {\n /* Ignore errors. */\n }\n return mainWorkerMessageHandler || null;\n }\n\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n fakeWorkerCapability = createPromiseCapability();\n\n const loader = async function () {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\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\")(getWorkerSrc());\n return worker.WorkerMessageHandler;\n }\n await loadScript(getWorkerSrc());\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(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 * 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 // eslint-disable-next-line no-shadow\n class PDFWorker {\n /**\n * @param {PDFWorkerParameters} params - Worker initialization parameters.\n */\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n if (port && pdfWorkerPorts.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.postMessageTransfers = true;\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 pdfWorkerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\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 shall be already initialized\n // and ready to accept the 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 !isWorkerDisabled &&\n !getMainThreadWorkerMessageHandler()\n ) {\n let workerSrc = getWorkerSrc();\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 = 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 // supportTypedArray\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\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([\n this.postMessageTransfers ? 255 : 0,\n ]);\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 worker to initialize (especially when AMD\n // loader is used). We will try to send test immediately, and then\n // when 'ready' message will arrive. The worker shall process only\n // first received 'test'.\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 (!isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n 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\" + nextFakeWorkerId++;\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 pdfWorkerPorts.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\n * parameters.\n */\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n }\n return PDFWorker;\n})();\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\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 });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked,\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\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = createPromiseCapability();\n\n this.setupMessageHandler();\n }\n\n get loadingTaskSettled() {\n return this.loadingTask._capability.settled;\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 this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\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 // Allow `AnnotationStorage`-related clean-up when destroying the document.\n if (this.loadingTaskSettled) {\n const annotationStorageResetModified = this.loadingTask.promise\n .then(pdfDocument => {\n // Avoid initializing the `annotationStorage` if it doesn't exist.\n if (pdfDocument.hasOwnProperty(\"annotationStorage\")) {\n pdfDocument.annotationStorage.resetModified();\n }\n })\n .catch(() => {});\n waitOn.push(annotationStorageResetModified);\n }\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\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 && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total,\n });\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 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 }\n if (!(reason instanceof Error)) {\n const msg = \"DocException - expected a valid Error.\";\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n unreachable(msg);\n } else {\n warn(msg);\n }\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 this._passwordCapability.resolve({\n 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 if (loadingTask.onProgress) {\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[data.pageIndex];\n page._startRenderPage(data.transparency, data.intent);\n });\n\n messageHandler.on(\"commonobj\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const [id, type, exportedData] = data;\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\", data => {\n if (this.destroyed) {\n // Ignore any pending requests if the worker was terminated.\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n if (pageProxy.objs.has(id)) {\n return undefined;\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 default:\n throw new Error(`Got unknown object type ${type}`);\n }\n return undefined;\n });\n\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total,\n });\n }\n });\n\n messageHandler.on(\n \"UnsupportedFeature\",\n this._onUnsupportedFeature.bind(this)\n );\n\n messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n fetched = true;\n\n this.CMapReaderFactory.fetch(data)\n .then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n })\n .catch(function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({ featureId }) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\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 if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\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[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler\n .sendWithPromise(\"GetPageIndex\", {\n ref,\n })\n .catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent,\n });\n }\n\n saveDocument(annotationStorage) {\n return this.messageHandler\n .sendWithPromise(\"SaveDocument\", {\n numPages: this._numPages,\n annotationStorage: annotationStorage?.getAll() || null,\n filename: this._fullReader?.filename ?? null,\n })\n .finally(() => {\n if (annotationStorage) {\n annotationStorage.resetModified();\n }\n });\n }\n\n getFieldObjects() {\n return 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 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.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 getStats() {\n return this.messageHandler.sendWithPromise(\"GetStats\", null);\n }\n\n startCleanup() {\n return this.messageHandler.sendWithPromise(\"Cleanup\", null).then(() => {\n for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n const page = this.pageCache[i];\n if (page) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(\n `startCleanup: Page ${i + 1} is currently rendering.`\n );\n }\n }\n }\n this.commonObjs.clear();\n this.fontLoader.clear();\n this._hasJSActionsPromise = null;\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return shadow(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableFontFace: params.disableFontFace,\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 * @ignore\n */\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n /**\n * Ensures there is an object defined for `objId`.\n * @private\n */\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n return (this._objs[objId] = {\n capability: createPromiseCapability(),\n data: null,\n resolved: false,\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 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 this._ensureObj(objId).capability.promise.then(callback);\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 || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj?.resolved || false;\n }\n\n /**\n * Resolves the object `objId` with optional `data`.\n */\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\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 */\nconst InternalRenderTask = (function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n // eslint-disable-next-line no-shadow\n class InternalRenderTask {\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n operatorList,\n pageIndex,\n canvasFactory,\n webGLContext,\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.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\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._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 (canvasInRendering.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 canvasInRendering.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 {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n } = this.params;\n\n this.gfx = new CanvasGraphics(\n canvasContext,\n this.commonObjs,\n this.objs,\n this.canvasFactory,\n this.webGLContext,\n imageLayer,\n optionalContentConfig\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 canvasInRendering.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.cancel.bind(this));\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));\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 canvasInRendering.delete(this._canvas);\n }\n this.callback();\n }\n }\n }\n }\n return InternalRenderTask;\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 getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFDocumentProxy,\n PDFPageProxy,\n PDFWorker,\n setPDFNetworkStreamFactory,\n version,\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 }) {\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 = 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\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n this.nativeFontFaces.forEach(nativeFontFace => {\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 return shadow(this, \"isFontLoadingAPISupported\", !!this._document?.fonts);\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 = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\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 (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].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 (i = 0, ii = names.length; i < ii; ++i) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n this._document.body.removeChild(div);\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 = null,\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 const nativeFontFace = new FontFace(this.loadedName, this.data, {});\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(new Uint8Array(this.data));\n // Add the @font-face rule to the document.\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\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, current;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: UNSUPPORTED_FEATURES.errorFontGetPath,\n });\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 let args,\n js = \"\";\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(\",\");\n } else {\n args = \"\";\n }\n js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n }\n // eslint-disable-next-line no-new-func\n return (this.compiledGlyphs[character] = new Function(\"c\", \"size\", js));\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 (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\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 { BaseCanvasFactory, BaseCMapReaderFactory } from \"./display_utils.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\nif ((typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS) {\n NodeCanvasFactory = class extends BaseCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const Canvas = __non_webpack_require__(\"canvas\");\n const canvas = Canvas.createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\"),\n };\n }\n };\n\n NodeCMapReaderFactory = class extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\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({ cMapData: new Uint8Array(data), compressionType });\n });\n });\n }\n };\n}\n\nexport { NodeCanvasFactory, NodeCMapReaderFactory };\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 { objectFromEntries } 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._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 efffects.\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n /**\n * Get the value for a given key if it exists\n * or store and return the default value\n *\n * @public\n * @memberof AnnotationStorage\n * @param {string} key\n * @param {Object} defaultValue\n * @returns {Object}\n */\n getOrCreateValue(key, defaultValue) {\n if (this._storage.has(key)) {\n return this._storage.get(key);\n }\n\n this._storage.set(key, defaultValue);\n return defaultValue;\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 this._storage.set(key, value);\n modified = true;\n }\n if (modified) {\n this._setModified();\n }\n }\n\n getAll() {\n if (this._storage.size === 0) {\n return null;\n }\n return objectFromEntries(this._storage);\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\nexport { AnnotationStorage };\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 { isNodeJS } from \"../shared/is_node.js\";\n\nconst compatibilityParams = Object.create(null);\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Support: Node.js\n (function checkFontFace() {\n // Node.js is missing native support for `@font-face`.\n if (isNodeJS) {\n compatibilityParams.disableFontFace = true;\n }\n })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\n\nexport { apiCompatibilityParams };\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 isNum,\n OPS,\n shadow,\n TextRenderingMode,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { getShadingPatternFromIR, TilingPattern } from \"./pattern_helper.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\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\n\nconst FULL_CHUNK_HEIGHT = 16;\n\nfunction addContextCurrentTransform(ctx) {\n // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n if (!ctx.mozCurrentTransform) {\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\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\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 m = this._transformMatrix;\n const a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n\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 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] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = 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.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}\n\nconst CachedCanvases = (function CachedCanvasesClosure() {\n // eslint-disable-next-line no-shadow\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(\n id,\n width,\n height,\n trackTransform\n ) {\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 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 return CachedCanvases;\n})();\n\nfunction compileType3Glyph(imgData) {\n const POINT_TO_PROCESS_LIMIT = 1000;\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 // prettier-ignore\n const POINT_TYPES =\n new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\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);\n coords.push((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\nconst CanvasExtraState = (function CanvasExtraStateClosure() {\n // eslint-disable-next-line no-shadow\n function CanvasExtraState() {\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.resumeSMaskCtx = null; // nonclonable field (see the save method below)\n this.transferMaps = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n },\n };\n return CanvasExtraState;\n})();\n\n/**\n * @type {any}\n */\nconst CanvasGraphics = (function CanvasGraphicsClosure() {\n // Defines the time the executeOperatorList is going to be executing\n // before it stops and shedules a continue of execution.\n const EXECUTION_TIME = 15;\n // Defines the number of steps before checking the execution time\n const EXECUTION_STEPS = 10;\n\n // eslint-disable-next-line no-shadow\n function CanvasGraphics(\n canvasCtx,\n commonObjs,\n objs,\n canvasFactory,\n webGLContext,\n imageLayer,\n optionalContentConfig\n ) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\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.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n // Patterns are painted relative to the initial page/form transform, see pdf\n // 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.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\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._cachedGetSinglePixelWidth = null;\n }\n\n function 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 =\n 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\n function 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\n function 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\n function 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 = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function 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\n function 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\n function 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\n function genericComposeSMask(\n maskCtx,\n layerCtx,\n width,\n height,\n subtype,\n backdrop,\n transferMap\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(0, row, width, chunkHeight);\n const layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n const mask = smask.canvas;\n const maskCtx = smask.context;\n\n ctx.setTransform(\n smask.scaleX,\n 0,\n 0,\n smask.scaleY,\n smask.offsetX,\n smask.offsetY\n );\n\n const backdrop = smask.backdrop || null;\n if (!smask.transferMap && webGLContext.isEnabled) {\n const composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask,\n properties: {\n subtype: smask.subtype,\n backdrop,\n },\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n genericComposeSMask(\n maskCtx,\n layerCtx,\n mask.width,\n mask.height,\n smask.subtype,\n backdrop,\n smask.transferMap\n );\n ctx.drawImage(mask, 0, 0);\n }\n\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n const NORMAL_CLIP = {};\n const EO_CLIP = {};\n\n CanvasGraphics.prototype = {\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(\n this.ctx,\n this.compositeCtx.mozCurrentTransform\n );\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n this._combinedScaleFactor = Math.hypot(\n this.baseTransform[0],\n this.baseTransform[2]\n );\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_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: function CanvasGraphics_endDrawing() {\n // Finishing all opened operations such as SMask group painting.\n while (this.stateStack.length || this.current.activeSMask !== null) {\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.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n\n // Graphics state\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n },\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n },\n setGState: function CanvasGraphics_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 if (this.current.activeSMask) {\n // If SMask is currrenly used, it needs to be suspended or\n // finished. Suspend only makes sense when at least one save()\n // was performed and state needs to be reverted on restore().\n if (\n this.stateStack.length > 0 &&\n this.stateStack[this.stateStack.length - 1].activeSMask ===\n this.current.activeSMask\n ) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n this.current.activeSMask = value ? this.tempSMask : null;\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n this.tempSMask = null;\n break;\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n const activeSMask = this.current.activeSMask;\n const drawnWidth = activeSMask.canvas.width;\n const drawnHeight = activeSMask.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId,\n drawnWidth,\n drawnHeight,\n true\n );\n\n const currentCtx = this.ctx;\n const currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n\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 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n // Similar to endSMaskGroup, the intermediate canvas has to be composed\n // and future ctx state restored.\n const groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n\n composeSMask(\n this.ctx,\n this.current.activeSMask,\n groupCtx,\n this.webGLContext\n );\n this.ctx.restore();\n this.ctx.save(); // save is needed since SMask will be resumed.\n copyCtxState(groupCtx, this.ctx);\n\n // Saving state for resuming.\n this.current.resumeSMaskCtx = groupCtx;\n // Transform was changed in the SMask canvas, reflecting this change on\n // this.ctx.\n const deltaTransform = Util.transform(\n this.current.activeSMask.startTransformInverse,\n groupCtx.mozCurrentTransform\n );\n this.ctx.transform.apply(this.ctx, deltaTransform);\n\n // SMask was composed, the results at the groupCtx can be cleared.\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_resumeSMaskGroup() {\n // Resuming state saved by suspendSMaskGroup. We don't need to restore\n // any groupCtx state since restore() command (the only caller) will do\n // that for us. See also beginSMaskGroup.\n const groupCtx = this.current.resumeSMaskCtx;\n const currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n const groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n\n composeSMask(\n this.ctx,\n this.current.activeSMask,\n groupCtx,\n this.webGLContext\n );\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n // Transform was changed in the SMask canvas, reflecting this change on\n // this.ctx.\n const deltaTransform = Util.transform(\n this.current.activeSMask.startTransformInverse,\n groupCtx.mozCurrentTransform\n );\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n // SMask was suspended, we just need to resume it.\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n // SMask has to be finished once there is no states that are using the\n // same SMask.\n if (\n this.current.activeSMask !== null &&\n (this.stateStack.length === 0 ||\n this.stateStack[this.stateStack.length - 1].activeSMask !==\n this.current.activeSMask)\n ) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n\n // Ensure that the clipping path is reset (fixes issue6413.pdf).\n this.pendingClip = null;\n\n this._cachedGetSinglePixelWidth = null;\n } else {\n // We've finished all the SMask groups, reflect that in our state.\n this.current.activeSMask = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n\n this._cachedGetSinglePixelWidth = null;\n },\n\n // Path\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\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\n ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n case OPS.curveTo:\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 j += 6;\n break;\n case OPS.curveTo2:\n ctx.bezierCurveTo(\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 x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_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 // for patterns, we transform to pattern space, calculate\n // the pattern, call stroke, and restore to user space\n ctx.save();\n // The current transform will be replaced while building the pattern,\n // but the line width needs to be adjusted by the current transform,\n // so we must scale it. To properly fix this we should be using a\n // pattern transform instead (see #10955).\n const transform = ctx.mozCurrentTransform;\n const scale = Util.singularValueDecompose2dScale(transform)[0];\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n const lineWidth = this.getSinglePixelWidth();\n const scaledLineWidth = this.current.lineWidth * scale;\n if (lineWidth < 0 && -lineWidth >= scaledLineWidth) {\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n } else {\n ctx.lineWidth = Math.max(lineWidth, scaledLineWidth);\n }\n ctx.stroke();\n ctx.restore();\n } else {\n const lineWidth = this.getSinglePixelWidth();\n if (lineWidth < 0 && -lineWidth >= this.current.lineWidth) {\n // The current transform will transform a square pixel into a\n // parallelogram where both heights are lower than 1 and not equal.\n ctx.save();\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.stroke();\n ctx.restore();\n } else {\n // Prevent drawing too thin lines by enforcing a minimum line width.\n ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n ctx.stroke();\n }\n }\n }\n if (consumePath) {\n this.consumePath();\n }\n // Restore the global alpha to the fill alpha\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_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 if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.contentVisible) {\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();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n\n // Clipping\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n\n // Text\n beginText: function CanvasGraphics_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 endText: function CanvasGraphics_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 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_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 = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n\n paintChar(character, x, y, patternTransform, resetLineWidthToOne) {\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 if (resetLineWidthToOne) {\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\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 if (resetLineWidthToOne) {\n ctx.save();\n ctx.moveTo(x, y);\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.strokeText(character, 0, 0);\n ctx.restore();\n } else {\n ctx.strokeText(character, x, y);\n }\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: function CanvasGraphics_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 let patternTransform;\n if (current.patternFill) {\n // TODO: Patterns are not applied correctly to text if a non-embedded\n // font is used. E.g. issue 8111 and ShowText-ShadingPattern.pdf.\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\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 lineWidth = current.lineWidth;\n let resetLineWidthToOne = false;\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 this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth();\n resetLineWidthToOne = lineWidth < 0;\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 (isNum(glyph)) {\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(\n character,\n scaledX,\n scaledY,\n patternTransform,\n resetLineWidthToOne\n );\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 resetLineWidthToOne\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 },\n\n showType3Text: function CanvasGraphics_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._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 (isNum(glyph)) {\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: function CanvasGraphics_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 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(\n xWidth,\n yWidth,\n llx,\n lly,\n urx,\n ury\n ) {\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: function CanvasGraphics_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 this.webGLContext\n );\n },\n };\n pattern = new TilingPattern(\n IR,\n color,\n this.ctx,\n canvasGraphicsFactory,\n baseTransform\n );\n } else {\n pattern = getShadingPatternFromIR(IR);\n }\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_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 shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n\n this.save();\n const pattern = getShadingPatternFromIR(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\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.restore();\n },\n\n // Images\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n unreachable(\"Should not call beginImageData\");\n },\n\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(\n matrix,\n bbox\n ) {\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.clip();\n this.endPath();\n }\n },\n\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n\n beginGroup: function CanvasGraphics_beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\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 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 }\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 // Reseting mask state, masks will be applied on restore of the group.\n this.current.activeSMask = null;\n },\n\n endGroup: function CanvasGraphics_endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n // Turn off image smoothing to avoid sub pixel interpolation which can\n // look kind of blurry for some pdfs.\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n this.restore();\n },\n\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n\n beginAnnotation: function CanvasGraphics_beginAnnotation(\n rect,\n transform,\n matrix\n ) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\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\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\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, img);\n\n maskCtx.globalCompositeOperation = \"source-in\";\n\n maskCtx.fillStyle = isPatternFill\n ? fillColor.getPattern(maskCtx, this)\n : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n this.paintInlineImageXObject(maskCanvas.canvas);\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 width = imgData.width;\n const height = imgData.height;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\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, imgData);\n\n maskCtx.globalCompositeOperation = \"source-in\";\n\n maskCtx.fillStyle = isPatternFill\n ? fillColor.getPattern(maskCtx, this)\n : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n const ctx = this.ctx;\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(\n scaleX,\n skewX,\n skewY,\n scaleY,\n positions[i],\n positions[i + 1]\n );\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(\n images\n ) {\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(maskCtx, this)\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 },\n\n paintImageXObject: function CanvasGraphics_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: function CanvasGraphics_paintImageXObjectRepeat(\n objId,\n scaleX,\n scaleY,\n positions\n ) {\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: function CanvasGraphics_paintInlineImageXObject(\n imgData\n ) {\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 const currentTransform = ctx.mozCurrentTransformInverse;\n const a = currentTransform[0],\n b = currentTransform[1];\n let widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n const c = currentTransform[2],\n d = currentTransform[3];\n let heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n\n let imgToPaint, tmpCanvas, tmpCtx;\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 tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\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 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 imgToPaint,\n 0,\n 0,\n paintWidth,\n paintHeight,\n 0,\n 0,\n newWidth,\n newHeight\n );\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n ctx.drawImage(\n imgToPaint,\n 0,\n 0,\n paintWidth,\n 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 / currentTransform[0],\n height: height / currentTransform[3],\n });\n }\n this.restore();\n },\n\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(\n imgData,\n map\n ) {\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 },\n\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n },\n\n // Marked content\n\n markPoint: function CanvasGraphics_markPoint(tag) {\n // TODO Marked content.\n },\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {\n // TODO Marked content.\n },\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true,\n });\n },\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(\n tag,\n properties\n ) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties),\n });\n } else {\n this.markedContentStack.push({\n visible: true,\n });\n }\n this.contentVisible = this.isContentVisible();\n },\n endMarkedContent: function CanvasGraphics_endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n },\n\n // Compatibility\n\n beginCompat: function CanvasGraphics_beginCompat() {\n // TODO ignore undefined operators (should we do that anyway?)\n },\n endCompat: function CanvasGraphics_endCompat() {\n // TODO stop ignoring undefined operators\n },\n\n // Helper functions\n\n consumePath: function CanvasGraphics_consumePath() {\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 ctx.beginPath();\n },\n getSinglePixelWidth() {\n if (this._cachedGetSinglePixelWidth === null) {\n // If transform is [a b] then a pixel (square) is transformed\n // [c d]\n // into a parallelogram: its area is the abs value of the determinant.\n // This parallelogram has 2 heights:\n // - Area / |col_1|;\n // - Area / |col_2|.\n // so in order to get a height of at least 1, pixel height\n // must be computed as followed:\n // h = max(sqrt(a² + c²) / |det(M)|, sqrt(b² + d²) / |det(M)|).\n // This is equivalent to:\n // h = max(|line_1_inv(M)|, |line_2_inv(M)|)\n const m = this.ctx.mozCurrentTransform;\n\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const sqNorm1 = m[0] ** 2 + m[2] ** 2;\n const sqNorm2 = m[1] ** 2 + m[3] ** 2;\n const pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet;\n if (\n sqNorm1 !== sqNorm2 &&\n this._combinedScaleFactor * pixelHeight > 1\n ) {\n // The parallelogram isn't a square and at least one height\n // is lower than 1 so the resulting line width must be 1\n // but it cannot be achieved with one scale: when scaling a pixel\n // we'll get a rectangle (see issue #12295).\n // For example with matrix [0.001 0, 0, 100], a pixel is transformed\n // in a rectangle 0.001x100. If we just scale by 1000 (to have a 1)\n // then we'll get a rectangle 1x1e5 which is wrong.\n // In this case, we must reset the transform, set linewidth to 1\n // and then stroke.\n this._cachedGetSinglePixelWidth = -(\n this._combinedScaleFactor * pixelHeight\n );\n } else if (absDet > Number.EPSILON) {\n // The multiplication by the constant 1.0000001 is here to have\n // a number slightly greater than what we \"exactly\" want.\n this._cachedGetSinglePixelWidth = pixelHeight * 1.0000001;\n } else {\n // Matrix is non-invertible.\n this._cachedGetSinglePixelWidth = 1;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n getCanvasPosition: function CanvasGraphics_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: function CanvasGraphics_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\n for (const op in OPS) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\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 { FormatError, info, Util } from \"../shared/util.js\";\n\nconst ShadingIRs = {};\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\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n const type = raw[1];\n const bbox = raw[2];\n const colorStops = raw[3];\n const p0 = raw[4];\n const p1 = raw[5];\n const r0 = raw[6];\n const r1 = raw[7];\n return {\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n let grad;\n if (type === \"axial\") {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === \"radial\") {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (let i = 0, ii = colorStops.length; i < ii; ++i) {\n const c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n return grad;\n },\n };\n },\n};\n\nconst createMeshCanvas = (function createMeshCanvasClosure() {\n function 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 if (y1 === y2) {\n k = 1;\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\n function 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\n // eslint-disable-next-line no-shadow\n function createMeshCanvas(\n bounds,\n combinesScale,\n coords,\n colors,\n figures,\n backgroundColor,\n cachedCanvases,\n webGLContext\n ) {\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(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n const boundsWidth = Math.ceil(bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(bounds[3]) - offsetY;\n\n const width = Math.min(\n Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)),\n MAX_PATTERN_SIZE\n );\n const height = Math.min(\n Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)),\n MAX_PATTERN_SIZE\n );\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n\n const context = {\n coords,\n 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 let canvas, tmpCanvas, i, ii;\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context,\n });\n // https://bugzilla.mozilla.org/show_bug.cgi?id=972126\n tmpCanvas = cachedCanvases.getCanvas(\n \"mesh\",\n paddedWidth,\n paddedHeight,\n false\n );\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n 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 (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 (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY,\n };\n }\n return createMeshCanvas;\n})();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n // var type = raw[1];\n const coords = raw[2];\n const colors = raw[3];\n const figures = raw[4];\n const bounds = raw[5];\n const matrix = raw[6];\n const bbox = raw[7];\n const background = raw[8];\n return {\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n let scale;\n if (shadingFill) {\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 (matrix) {\n const matrixScale = Util.singularValueDecompose2dScale(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 = createMeshCanvas(\n bounds,\n scale,\n coords,\n colors,\n figures,\n shadingFill ? null : background,\n owner.cachedCanvases,\n owner.webGLContext\n );\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (matrix) {\n ctx.transform.apply(ctx, 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 },\n};\n\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n getPattern: function Dummy_fromIR_getPattern() {\n return \"hotpink\";\n },\n };\n },\n};\n\nfunction getShadingPatternFromIR(raw) {\n const shadingIR = ShadingIRs[raw[0]];\n if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n return shadingIR.fromIR(raw);\n}\n\n/**\n * @type {any}\n */\nconst TilingPattern = (function TilingPatternClosure() {\n const PaintType = {\n COLORED: 1,\n UNCOLORED: 2,\n };\n\n const MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n\n // eslint-disable-next-line no-shadow\n function TilingPattern(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.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_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 graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n // transform coordinates to pattern space\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n\n graphics.executeOperatorList(operatorList);\n\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n\n // Rescale canvas so that the ctx.createPattern call generates a pattern\n // with the desired size.\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n\n getSizeAndScale: function TilingPattern_getSizeAndScale(\n step,\n realOutputSize,\n scale\n ) {\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(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: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\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\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(\n graphics,\n paintType,\n color\n ) {\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: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n },\n };\n\n return TilingPattern;\n})();\n\nexport { getShadingPatternFromIR, 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 UnexpectedResponseException,\n UnknownErrorException,\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 typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null),\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n } else {\n if (typeof reason !== \"object\" || reason === null) {\n return reason;\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 \"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.postMessageTransfers = true;\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 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._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._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 const sourceName = this.sourceName;\n const targetName = this.targetName;\n const 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 this._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 self = this;\n const action = this.actionHandler[data.action];\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\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 self._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 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 const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].startCall.resolve();\n } else {\n this.streamControllers[streamId].startCall.reject(\n wrapReason(data.reason)\n );\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(\n wrapReason(data.reason)\n );\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!this.streamSinks[streamId]) {\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,\n // so when it changes from negative to positive,\n // set ready property as resolved promise.\n if (\n this.streamSinks[streamId].desiredSize <= 0 &&\n data.desiredSize > 0\n ) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const { onPull } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && 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(\n this.streamControllers[streamId],\n \"enqueue should have stream controller\"\n );\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(\n this.streamControllers[streamId],\n \"close should have stream controller\"\n );\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n this._deleteStreamController(streamId);\n break;\n case StreamKind.ERROR:\n assert(\n this.streamControllers[streamId],\n \"error should have stream controller\"\n );\n this.streamControllers[streamId].controller.error(\n wrapReason(data.reason)\n );\n this._deleteStreamController(streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(\n wrapReason(data.reason)\n );\n }\n this._deleteStreamController(streamId);\n break;\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n const { onCancel } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\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 this.streamSinks[streamId].sinkCapability.reject(\n wrapReason(data.reason)\n );\n this.streamSinks[streamId].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(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 [\n this.streamControllers[streamId].startCall,\n this.streamControllers[streamId].pullCall,\n this.streamControllers[streamId].cancelCall,\n ].map(function (capability) {\n return capability && capability.promise;\n })\n );\n delete this.streamControllers[streamId];\n }\n\n /**\n * Sends raw message to the comObj.\n * @param {Object} message - Raw message.\n * @param transfers List of transfers/ArrayBuffers, or undefined.\n * @private\n */\n _postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\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 { assert, objectFromEntries } from \"../shared/util.js\";\nimport { SimpleXMLParser } from \"../shared/xml_parser.js\";\n\nclass Metadata {\n constructor(data) {\n assert(typeof data === \"string\", \"Metadata: input is not a string\");\n\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n const parser = new SimpleXMLParser({ lowerCaseName: true });\n const xmlDocument = parser.parseFromString(data);\n\n this._metadataMap = new Map();\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n this._data = data;\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data\n .replace(/^[^<]+/, \"\")\n .replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes\n .replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n })\n .replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n case \"apos\":\n return \"'\";\n case \"gt\":\n return \">\";\n case \"lt\":\n return \"<\";\n case \"quot\":\n return '\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n let chars = \"\";\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (\n code >= /* Space = */ 32 &&\n code < /* Delete = */ 127 &&\n code !== /* '<' = */ 60 &&\n code !== /* '>' = */ 62 &&\n code !== /* '&' = */ 38\n ) {\n chars += String.fromCharCode(code);\n } else {\n chars += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n }\n }\n\n return \">\" + chars;\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _getCreators(entry) {\n if (entry.nodeName !== \"dc:creator\") {\n return false;\n }\n if (!entry.hasChildNodes()) {\n return true;\n }\n\n // Child must be a Bag (unordered array) or a Seq.\n const seqNode = entry.childNodes[0];\n const authors = this._getSequence(seqNode) || [];\n this._metadataMap.set(\n entry.nodeName,\n authors.map(node => node.textContent.trim())\n );\n\n return true;\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n // Wrapped in <xmpmeta>\n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n if (name === \"#text\") {\n continue;\n }\n if (this._getCreators(entry)) {\n continue;\n }\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\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 objectFromEntries(this._metadataMap);\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n}\n\nexport { Metadata };\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// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./util.js\";\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"amp\":\n return \"&\";\n case \"quot\":\n return '\"';\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n while (\n pos < s.length &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\" &&\n s[pos] !== \"?\"\n ) {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== \"=\") {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case \"?\":\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration\n );\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent = s.substring(\n j + 8,\n q + (complexDoctype ? 1 : 0)\n );\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (\n s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n ) {\n isClosed = true;\n } else if (\n s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n ) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n return this.childNodes\n .map(function (child) {\n return child.textContent;\n })\n .join(\"\");\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n /**\n * Search a node in the tree with the given path\n * foo.bar[nnn], i.e. find the nnn-th node named\n * bar under a node named foo.\n *\n * @param {Array} paths - an array of objects as\n * returned by {parseXFAPath}.\n * @param {number} pos - the current position in\n * the paths array.\n * @returns {SimpleDOMNode} The node corresponding\n * to the path or null if not found.\n */\n searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n siblingPos++;\n }\n }\n // We didn't find the correct sibling\n // so just return the first found node\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes && node.childNodes.length !== 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push(encodeToXmlString(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(\n ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n );\n }\n }\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n buffer.push(`</${this.nodeName}>`);\n } else if (this.nodeValue) {\n buffer.push(`>${encodeToXmlString(this.nodeValue)}</${this.nodeName}>`);\n } else {\n buffer.push(\"/>\");\n }\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({ hasAttributes = false, lowerCaseName = false }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case \"apos\":\n return \"'\";\n }\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n if (!lastElement) {\n return;\n }\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser };\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 { objectFromEntries, 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 isVisible(group) {\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. Until\n // we implement this, just fallback to using the group policy for now.\n if (group.expression) {\n warn(\"Visibility expression not supported yet.\");\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 if (!this._groups.size) {\n return null;\n }\n return objectFromEntries(this._groups);\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\";\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\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 );\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 const readers = this._rangeReaders.slice(0);\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n this._pdfDataRangeTransport.abort();\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = 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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\n this._stream._removeRangeReader(this);\n }\n}\n\nexport { PDFDataTransportStream };\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/* eslint-disable no-multi-str */\n\nimport { shadow } from \"../shared/util.js\";\n\nclass WebGLContext {\n constructor({ enable = false }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n return shadow(this, \"isEnabled\", enabled);\n }\n\n composeSMask({ layer, mask, properties }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({ width, height, backgroundColor, figures, context }) {\n return WebGLUtils.drawFigures(\n width,\n height,\n backgroundColor,\n figures,\n context\n );\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n}\n\nconst WebGLUtils = (function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n const shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n const compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n if (!compiled) {\n const errorMsg = gl.getShaderInfoLog(shader);\n throw new Error(\"Error during shader compilation: \" + errorMsg);\n }\n return shader;\n }\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n function createProgram(gl, shaders) {\n const program = gl.createProgram();\n for (let i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n gl.linkProgram(program);\n const linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n const errorMsg = gl.getProgramInfoLog(program);\n throw new Error(\"Error during program linking: \" + errorMsg);\n }\n return program;\n }\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n\n // Set the parameters so we can render any size image.\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n // Upload the image into the texture.\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n let currentGL, currentCanvas;\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n // The temporary canvas is used in the WebGL context.\n currentCanvas = document.createElement(\"canvas\");\n currentGL = currentCanvas.getContext(\"webgl\", {\n premultipliedalpha: false,\n });\n }\n\n const smaskVertexShaderCode =\n \"\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } \";\n\n const smaskFragmentShaderCode =\n \"\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } \";\n\n let smaskCache = null;\n\n function initSmaskGL() {\n generateGL();\n const canvas = currentCanvas;\n currentCanvas = null;\n const gl = currentGL;\n currentGL = null;\n\n // setup a GLSL program\n const vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n const fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n const program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n\n const cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.backdropLocation = gl.getUniformLocation(program, \"u_backdrop\");\n cache.subtypeLocation = gl.getUniformLocation(program, \"u_subtype\");\n\n const texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n const texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n const texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n\n // provide texture coordinates for the rectangle.\n const texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n // prettier-ignore\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n 0.0, 0.0,\n 1.0, 0.0,\n 0.0, 1.0,\n 0.0, 1.0,\n 1.0, 0.0,\n 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n const width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n const cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(\n cache.resolutionLocation,\n properties.backdrop[0],\n properties.backdrop[1],\n properties.backdrop[2],\n 1\n );\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n gl.uniform1i(\n cache.subtypeLocation,\n properties.subtype === \"Luminosity\" ? 1 : 0\n );\n\n // Create a textures\n const texture = createTexture(gl, layer, gl.TEXTURE0);\n const maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n\n // Create a buffer and put a single clipspace rectangle in\n // it (2 triangles)\n const buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n // prettier-ignore\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n 0, 0,\n width, 0,\n 0, height,\n 0, height,\n width, 0,\n width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n // draw\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n gl.flush();\n\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n\n return canvas;\n }\n\n const figuresVertexShaderCode =\n \"\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } \";\n\n const figuresFragmentShaderCode =\n \"\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } \";\n\n let figuresCache = null;\n\n function initFiguresGL() {\n generateGL();\n const canvas = currentCanvas;\n currentCanvas = null;\n const gl = currentGL;\n currentGL = null;\n\n // setup a GLSL program\n const vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n const fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n const program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n\n const cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.scaleLocation = gl.getUniformLocation(program, \"u_scale\");\n cache.offsetLocation = gl.getUniformLocation(program, \"u_offset\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.colorLocation = gl.getAttribLocation(program, \"a_color\");\n\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n const cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n // count triangle points\n let count = 0;\n for (let i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case \"lattice\":\n const rows =\n (figures[i].coords.length / figures[i].verticesPerRow) | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n case \"triangles\":\n count += figures[i].coords.length;\n break;\n }\n }\n // transfer data\n const coords = new Float32Array(count * 2);\n const colors = new Uint8Array(count * 3);\n const coordsMap = context.coords,\n colorsMap = context.colors;\n let pIndex = 0,\n cIndex = 0;\n for (let i = 0, ii = figures.length; i < ii; i++) {\n const figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n switch (figure.type) {\n case \"lattice\":\n const cols = figure.verticesPerRow;\n const rows = (ps.length / cols) | 0;\n for (let row = 1; row < rows; row++) {\n let offset = row * cols + 1;\n for (let col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n break;\n case \"triangles\":\n for (let j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n break;\n }\n }\n\n // draw\n if (backgroundColor) {\n gl.clearColor(\n backgroundColor[0] / 255,\n backgroundColor[1] / 255,\n backgroundColor[2] / 255,\n 1.0\n );\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n const coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n const colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(\n cache.colorLocation,\n 3,\n gl.UNSIGNED_BYTE,\n false,\n 0,\n 0\n );\n\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n\n gl.drawArrays(gl.TRIANGLES, 0, count);\n\n gl.flush();\n\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n return false;\n },\n\n composeSMask,\n\n drawFigures,\n\n cleanup() {\n if (smaskCache?.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n if (figuresCache?.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n smaskCache = null;\n figuresCache = null;\n },\n };\n})();\n\nexport { WebGLContext };\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 addLinkAttributes,\n DOMSVGFactory,\n getFilenameFromUrl,\n LinkTarget,\n PDFDateString,\n} from \"./display_utils.js\";\nimport {\n AnnotationBorderStyleType,\n AnnotationType,\n assert,\n stringToPDFString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { ColorConverters } from \"../shared/scripting_utils.js\";\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPage} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n * @property {Object} svgFactory\n * @property {boolean} [enableScripting]\n * @property {boolean} [hasJSActions]\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.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\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 = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\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 container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\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 = width - 2 * data.borderStyle.width;\n height = 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 if (data.color) {\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 container.style.width = `${width}px`;\n container.style.height = `${height}px`;\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 title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\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 this.quadrilaterals.forEach(quadrilateral => {\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\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.url ||\n parameters.data.dest ||\n parameters.data.action ||\n parameters.data.isTooltipOnly ||\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, { isRenderable, createQuadrilaterals: true });\n }\n\n render() {\n const { data, linkService } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n addLinkAttributes(link, {\n url: data.url,\n target: data.newWindow\n ? LinkTarget.BLANK\n : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled,\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n } else 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 this._bindJSAction(link, data);\n } else {\n this._bindLink(link, \"\");\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 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 }\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 }\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 link.className = \"internalLink\";\n }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.title ||\n parameters.data.contents\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 return (\n (navigator.platform.includes(\"Win\") && event.ctrlKey) ||\n (navigator.platform.includes(\"Mac\") && event.metaKey)\n );\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: event.target.checked,\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\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable =\n parameters.renderInteractiveForms ||\n (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n super(parameters, { isRenderable });\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.renderInteractiveForms) {\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 textContent = storage.getOrCreateValue(id, {\n value: this.data.fieldValue,\n }).value;\n const elementData = {\n userValue: null,\n formattedValue: null,\n beforeInputSelectionRange: null,\n beforeInputValue: 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\n elementData.userValue = textContent;\n element.setAttribute(\"id\", id);\n\n element.addEventListener(\"input\", function (event) {\n storage.setValue(id, { value: event.target.value });\n });\n\n let blurListener = event => {\n if (elementData.formattedValue) {\n event.target.value = elementData.formattedValue;\n }\n event.target.setSelectionRange(0, 0);\n elementData.beforeInputSelectionRange = null;\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\", function (event) {\n const { detail } = event;\n const actions = {\n value() {\n elementData.userValue = detail.value || \"\";\n storage.setValue(id, { value: elementData.userValue.toString() });\n if (!elementData.formattedValue) {\n event.target.value = elementData.userValue;\n }\n },\n valueAsString() {\n elementData.formattedValue = 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 focus() {\n setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n },\n userName() {\n // tooltip\n event.target.title = detail.userName;\n },\n hidden() {\n event.target.style.visibility = detail.hidden\n ? \"hidden\"\n : \"visible\";\n storage.setValue(id, { hidden: detail.hidden });\n },\n editable() {\n event.target.disabled = !detail.editable;\n },\n selRange() {\n const [selStart, selEnd] = detail.selRange;\n if (selStart >= 0 && selEnd < event.target.value.length) {\n event.target.setSelectionRange(selStart, selEnd);\n }\n },\n strokeColor() {\n const color = detail.strokeColor;\n event.target.style.color = ColorConverters[`${color[0]}_HTML`](\n color.slice(1)\n );\n },\n };\n Object.keys(detail)\n .filter(name => name in actions)\n .forEach(name => actions[name]());\n });\n\n if (this.data.actions) {\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 elementData.beforeInputValue = event.target.value;\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 if (this._mouseState.isDown) {\n // Focus out using the mouse: data are committed\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: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd,\n },\n });\n }\n _blurListener(event);\n });\n element.addEventListener(\"mousedown\", event => {\n elementData.beforeInputValue = event.target.value;\n elementData.beforeInputSelectionRange = null;\n });\n element.addEventListener(\"keyup\", event => {\n // keyup is triggered after input\n if (event.target.selectionStart === event.target.selectionEnd) {\n elementData.beforeInputSelectionRange = null;\n }\n });\n element.addEventListener(\"select\", event => {\n elementData.beforeInputSelectionRange = [\n event.target.selectionStart,\n event.target.selectionEnd,\n ];\n });\n\n if (\"Keystroke\" in this.data.actions) {\n // We should use beforeinput but this\n // event isn't available in Firefox\n element.addEventListener(\"input\", event => {\n let selStart = -1;\n let selEnd = -1;\n if (elementData.beforeInputSelectionRange) {\n [selStart, selEnd] = elementData.beforeInputSelectionRange;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: elementData.beforeInputValue,\n change: event.data,\n willCommit: false,\n selStart,\n selEnd,\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\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\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\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}px`;\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.renderInteractiveForms });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n const value = storage.getOrCreateValue(id, {\n value: data.fieldValue && data.fieldValue !== \"Off\",\n }).value;\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"id\", id);\n\n element.addEventListener(\"change\", function (event) {\n const name = event.target.name;\n for (const checkbox of document.getElementsByName(name)) {\n if (checkbox !== event.target) {\n checkbox.checked = false;\n storage.setValue(\n checkbox.parentNode.getAttribute(\"data-annotation-id\"),\n { value: false }\n );\n }\n }\n storage.setValue(id, { value: event.target.checked });\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", event => {\n const { detail } = event;\n const actions = {\n value() {\n event.target.checked = detail.value !== \"Off\";\n storage.setValue(id, { value: event.target.checked });\n },\n focus() {\n setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n },\n hidden() {\n event.target.style.visibility = detail.hidden\n ? \"hidden\"\n : \"visible\";\n storage.setValue(id, { hidden: detail.hidden });\n },\n editable() {\n event.target.disabled = !detail.editable;\n },\n };\n Object.keys(detail)\n .filter(name => name in actions)\n .forEach(name => actions[name]());\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.container.appendChild(element);\n return this.container;\n }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderInteractiveForms });\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 const value = storage.getOrCreateValue(id, {\n value: data.fieldValue === data.buttonValue,\n }).value;\n\n const element = document.createElement(\"input\");\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(\"pdfButtonValue\", data.buttonValue);\n element.setAttribute(\"id\", id);\n\n element.addEventListener(\"change\", function (event) {\n const { target } = event;\n for (const radio of document.getElementsByName(target.name)) {\n if (radio !== target) {\n storage.setValue(radio.getAttribute(\"id\"), { value: false });\n }\n }\n storage.setValue(id, { value: target.checked });\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", event => {\n const { detail } = event;\n const actions = {\n value() {\n const fieldValue = detail.value;\n for (const radio of document.getElementsByName(event.target.name)) {\n const radioId = radio.getAttribute(\"id\");\n if (fieldValue === radio.getAttribute(\"pdfButtonValue\")) {\n radio.setAttribute(\"checked\", true);\n storage.setValue(radioId, { value: true });\n } else {\n storage.setValue(radioId, { value: false });\n }\n }\n },\n focus() {\n setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n },\n hidden() {\n event.target.style.visibility = detail.hidden\n ? \"hidden\"\n : \"visible\";\n storage.setValue(id, { hidden: detail.hidden });\n },\n editable() {\n event.target.disabled = !detail.editable;\n },\n };\n Object.keys(detail)\n .filter(name => name in actions)\n .forEach(name => actions[name]());\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.container.appendChild(element);\n return this.container;\n }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\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.renderInteractiveForms });\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 `getOrCreateValue` is\n // used and the full array of field values is stored.\n storage.getOrCreateValue(id, {\n value:\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined,\n });\n\n const selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n selectElement.setAttribute(\"id\", id);\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 // 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.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n selectElement.appendChild(optionElement);\n }\n\n function getValue(event) {\n const options = event.target.options;\n return options[options.selectedIndex].value;\n }\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", event => {\n const { detail } = event;\n const actions = {\n value() {\n const options = event.target.options;\n const value = detail.value;\n const i = options.indexOf(value);\n if (i !== -1) {\n options.selectedIndex = i;\n storage.setValue(id, { value });\n }\n },\n focus() {\n setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n },\n hidden() {\n event.target.style.visibility = detail.hidden\n ? \"hidden\"\n : \"visible\";\n storage.setValue(id, { hidden: detail.hidden });\n },\n editable() {\n event.target.disabled = !detail.editable;\n },\n };\n Object.keys(detail)\n .filter(name => name in actions)\n .forEach(name => actions[name]());\n });\n\n selectElement.addEventListener(\"input\", event => {\n const value = getValue(event);\n storage.setValue(id, { value });\n\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n changeEx: value,\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 ],\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.container.appendChild(selectElement);\n return this.container;\n }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\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 title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents,\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.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\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.setAttribute(\"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.textContent = this.title;\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.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 const contents = this._formatContents(this.contents);\n popup.appendChild(contents);\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n // Attach the event listeners to the trigger element.\n this.trigger.forEach(element => {\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 {string} contents\n * @memberof PopupElement\n * @returns {HTMLParagraphElement}\n */\n _formatContents(contents) {\n const p = document.createElement(\"p\");\n const lines = contents.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.hasAttribute(\"hidden\")) {\n this.hideElement.removeAttribute(\"hidden\");\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.hasAttribute(\"hidden\") && !this.pinned) {\n this.hideElement.setAttribute(\"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.title ||\n parameters.data.contents\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.title ||\n parameters.data.contents\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 = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\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\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.title ||\n parameters.data.contents\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 = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\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\", \"none\");\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.title ||\n parameters.data.contents\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 = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\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\", \"none\");\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.title ||\n parameters.data.contents\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 = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\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\", \"none\");\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.title ||\n parameters.data.contents\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.title ||\n parameters.data.contents\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 = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\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\", \"none\");\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.title ||\n parameters.data.contents\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.title ||\n parameters.data.contents\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.title ||\n parameters.data.contents\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.title ||\n parameters.data.contents\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.title ||\n parameters.data.contents\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 (!this.data.hasPopup && (this.data.title || this.data.contents)) {\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 if (!this.downloadManager) {\n warn(\"Download cannot be started due to unavailable download manager\");\n return;\n }\n this.downloadManager.downloadData(this.content, this.filename, \"\");\n }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPage} page\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n * @property {boolean} [enableScripting] - Enable embedded script execution.\n * @property {boolean} [hasJSActions] - Some fields have JS actions.\n * The default value is `false`.\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 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 for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderInteractiveForms:\n typeof parameters.renderInteractiveForms === \"boolean\"\n ? parameters.renderInteractiveForms\n : true,\n svgFactory: new DOMSVGFactory(),\n annotationStorage:\n parameters.annotationStorage || new AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\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 parameters.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 parameters.div.prepend(rendered);\n } else {\n parameters.div.appendChild(rendered);\n }\n }\n }\n }\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 transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n for (const data of parameters.annotations) {\n const elements = parameters.div.querySelectorAll(\n `[data-annotation-id=\"${data.id}\"]`\n );\n if (elements) {\n elements.forEach(element => {\n element.style.transform = transform;\n });\n }\n }\n parameters.div.removeAttribute(\"hidden\");\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 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\n/**\n * @typedef {Object} TextLayerRenderTask\n * @property {Promise<void>} promise\n * @property {() => void} cancel\n * @property {(expandDivs: boolean) => void} expandTextDivs\n */\n\n/**\n * @type {(renderParameters: TextLayerRenderParameters) => TextLayerRenderTask}\n */\nconst renderTextLayer = (function renderTextLayerClosure() {\n const MAX_TEXT_DIVS_TO_RENDER = 100000;\n\n const NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n // Initialize all used properties to keep the caches monomorphic.\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1,\n };\n\n task._textDivs.push(textDiv);\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n task._textDivProperties.set(textDiv, textDivProperties);\n return;\n }\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.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n let fontAscent = fontHeight;\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\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}px`;\n textDiv.style.fontFamily = style.fontFamily;\n\n textDiv.textContent = geom.str;\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 (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (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) {\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\n function 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\n function 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\n function 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 points.forEach(function (p, j) {\n const t = Util.applyTransform(p, 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\n function 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 const expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\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 bounds.forEach(function (b) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function 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 bounds.forEach(function (boundary) {\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 horizon.forEach(function (horizonPart) {\n const affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n /**\n * Text layer rendering task.\n *\n * @param {TextContent} textContent\n * @param {HTMLElement} container\n * @param {PageViewport} viewport\n * @param {Array} textDivs\n * @param {boolean} enhanceTextSelection\n * @private\n */\n function TextLayerRenderTask({\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._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 TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new AbortException(\"TextLayer task cancelled.\"));\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 _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let transform = \"\";\n if (textDivProperties.canvasWidth !== 0) {\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 textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.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 this._textDivProperties.set(textDiv, textDivProperties);\n this._container.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\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 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\"' +\n \" 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 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\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.isWhitespace) {\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 // eslint-disable-next-line no-shadow\n function 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\n return renderTextLayer;\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 createObjectURL,\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n ImageKind,\n isNum,\n OPS,\n TextRenderingMode,\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 = function () {\n throw new Error(\"Not implemented: SVGGraphics\");\n};\n\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\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 convertImgDataToPng = (function () {\n const PNG_HEADER = new Uint8Array([\n 0x89,\n 0x50,\n 0x4e,\n 0x47,\n 0x0d,\n 0x0a,\n 0x1a,\n 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 // eslint-disable-next-line no-shadow\n SVGGraphics = class SVGGraphics {\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.sqrt(a * a + b * 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)}px`\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)}px`\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 (isNum(glyph)) {\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)}px`\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] = Util.applyTransform([x0, y0], matrix);\n const [tx1, ty1] = Util.applyTransform([x1, y1], matrix);\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 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 this.extraStack.forEach(function (prev) {\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\n const readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\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 {\n allowRangeRequests,\n 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\";\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 (/\\.pdf$/i.test(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 (\" +\n status +\n ') while retrieving PDF \"' +\n url +\n '\".',\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\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// - Support UTF-8 decoding when TextDecoder is unsupported.\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 bytes = Array.from(value, function (ch) {\n return ch.charCodeAt(0) & 0xff;\n });\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n // TextDecoder constructor threw - unrecognized encoding.\n // Or TextDecoder API is not available (in IE / Edge).\n if (/^utf-?8$/i.test(encoding)) {\n // UTF-8 is commonly used, try to support it in another way:\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\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 args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = (this.isHttp && args.httpHeaders) || {};\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] = {\n xhr,\n });\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 // Maybe abortRequest was called...\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n // Maybe abortRequest was called...\n return;\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 if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\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 if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\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 if (pendingRequest.onError) {\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 if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n const readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\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 {\n allowRangeRequests,\n 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(args) {\n if (args) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: args.chunk, done: false });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\n }\n\n _onError(status) {\n const url = this._url;\n const exception = createResponseStatusError(status, url);\n this._storedError = exception;\n this._headersReceivedCapability.reject(exception);\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n this._requests = [];\n this._cachedChunks = [];\n }\n\n _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength,\n });\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\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 const args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\n this._close();\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded,\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true });\n });\n this._requests = [];\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 const readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\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 {\n allowRangeRequests,\n 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(reason => {\n if (reason?.name === \"AbortError\") {\n return;\n }\n throw reason;\n });\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\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].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].call(module.exports, 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};","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __w_pdfjs_require__(0);\n"],"sourceRoot":""}